A method and apparatus for providing a trick play service in a hypertext transfer protocol (HTTP) adaptive streaming (HAS) architecture for adaptively streaming media data according to fluctuation of a streaming environment are provided. The method at a server includes: generating a media presentation description (MPD) file including information about at least one piece of trick play data; transmitting the MPD file to a client; and transmitting the at least one piece of trick play data to the client in response to a request by the client based on the MPD file. The method at a client includes: receiving a media presentation description (MPD) file including information about at least one piece of trick play data; and receiving the at least one piece of trick play data from a server based on the MPD file.

Patent
   RE48360
Priority
Nov 13 2009
Filed
Aug 20 2015
Issued
Dec 15 2020
Expiry
Nov 12 2030
Assg.orig
Entity
Large
1
185
currently ok
0. 68. A method of providing a trick play service at an encoder, the method comprising:
generating at least one piece of trick play data from a media content according to a predetermined generating method that corresponds to information comprised in a media presentation description (MPD) that is transmitted to a client and based on which the client requests the at least one piece of trick play data,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client,
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels,
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time,
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels,
the maximum depth of trick levels is determined based on the maximum trick play speed, and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 50. A method of providing a trick play service at a client, the method comprising:
receiving a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding; and
receiving the at least one trick play data from a server based on the MPD file,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client;
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels;
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time;
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels;
the maximum depth of trick levels is determined based on the maximum trick play speed; and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 67. A client comprising:
a memory storing instructions; and
at least one processor configured to execute the instructions to:
receive a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding, and
to receive the at least one trick play data from a server based on the MPD file,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client,
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels,
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time,
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels,
the maximum depth of trick levels is determined based on the maximum trick play speed, and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 37. A method of providing a trick play service at a server, the method comprising:
generating a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding;
transmitting the MPD file to a client; and
transmitting the at least one trick play data to the client in response to a request by the client based on the MPD file,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client,
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels,
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time,
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels,
the maximum depth of trick levels is determined based on the maximum trick play speed, and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 66. A server comprising:
a memory storing instructions; and
at least one processor configured to execute the instructions to:
generate a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding,
transmit the MPD file to a client, and
transmit the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein the maximum trick play speed is indicated as a multiple of regular playout rate supported with the client,
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels,
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time,
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels,
the maximum depth of trick levels is determined based on the maximum trick play speed, and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 69. A system comprising:
an encoder which generates at least one piece of trick play data from a media content; and
a server which comprises:
at least one processor configured to generate a media presentation description (MPD) file comprising information about a maximum trick play speed of at least one trick play data and information indicating that there is a frame that depends on one or more other frames for decoding, to transmit the MPD file to a client, and to transmit the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein the maximum trick play speed included in the MPD is indicated as a multiple of regular playout rate supported with the client,
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels,
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time,
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels,
the maximum depth of trick levels is determined based on the maximum trick play speed, and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 1. A method of providing a trick play service at a server, the method comprising:
generating a media presentation description (MPD) file comprising information about at least one piece of trick play data;
transmitting the MPD file to a client; and
transmitting the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed, and
wherein the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 2. The method of claim 1, wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
0. 3. The method of claim 1, wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time to be played exclusively at the predetermined trick play speed.
0. 4. The method of claim 1, wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 5. The method of claim 1, wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and
the method further comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed from the trick play data corresponding to the predetermined trick play speed in response to the request of the client based on the MPD file.
0. 6. The method of claim 5, wherein the predetermined trick play speed is a 2× trick play speed.
0. 7. The method of claim 5, wherein the extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
0. 8. The method of claim 5, wherein:
the MPD file further comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 9. The method of claim 1, wherein:
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels;
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time;
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels;
the maximum depth of trick levels is determined based on a maximum trick play speed; and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 10. The method of claim 9, wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and
the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
0. 11. The method of claim 9, wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 12. The method of claim 1, wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time;
the MPD file comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 13. A method of providing a trick play service at a client, the method comprising:
receiving a media presentation description (MPD) file comprising information about at least one piece of trick play data; and
receiving the at least one piece of trick play data from a server based on the MPD file,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 14. The method of claim 13, wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
0. 15. The method of claim 1, wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time and be played exclusively at the predetermined trick play speed.
0. 16. The method of claim 1, wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed;
wherein the frame rate indicates a number of frames to be played per second at the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 17. The method of claim 13, wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and
the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed, which is extracted by the server from the trick play data corresponding to the predetermined trick play speed in response to a request by the client based on the MPD file.
0. 18. The method of claim 17, wherein the predetermined trick play speed is a 2× trick play speed.
0. 19. The method of claim 17, wherein the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed is extracted by the server from the trick play data corresponding to the predetermined trick play speed trick play speed by using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
0. 20. The method of claim 17, wherein:
the MPD file further comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed:
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 21. The method of claim 13, wherein:
a number of the at least one piece of trick play data is determined based on a maximum depth of trick levels;
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time;
the predetermined trick level corresponds to a hierarchical structure and is one of at least one trick level based on the maximum depth of trick levels;
the maximum depth of trick levels is determined based on a maximum trick play speed; and
the frames comprised in the predetermined trick level do not repeatedly exist in another trick level of the at least one trick level.
0. 22. The method of claim 21, wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and
the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
0. 23. The method of claim 22, wherein the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to each trick level in order to support a predetermined trick play speed based on a request by the client.
0. 24. The method of claim 21, further comprising realigning the at least one piece of trick play data in an order of play time.
0. 25. The method of claim 21, wherein:
the MPD file comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 26. The method of claim 13, wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time;
the MPD file comprises information about at least one of a frame rate, a frame type, and a maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 27. The method of claim 26, further comprising varying the frame rate into the number of frames per second corresponding to the predetermined trick play speed.
0. 28. The method of claim 26, further comprising playing the at least one piece of trick play data based on the frame rate.
0. 29. A server comprising:
an information generation unit which generates a media presentation description (MPD) file comprising information about at least one piece of trick play data;
an information transmission unit which transmits the MPD file to a client; and
a trick play data transmission unit which transmits the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 30. A client comprising:
an information reception unit which receives a media presentation description (MPD) file comprising information about at least one piece of trick play data; and
a trick play data reception unit which receives the at least one piece of trick play data from a server based on the MPD file,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 31. A method of providing a trick play service at an encoder, the method comprising:
generating at least one piece of trick play data from a media content according to a predetermined generating method that corresponds to information comprised in a media presentation description (MPD) file that is transmitted to a client and based on which the client requests the at least one piece of trick play data,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 32. A system comprising:
an encoder which generates at least one piece of trick play data from a media content; and
a server which comprises:
an information generation unit which generates a media presentation description (MPD) file comprising information about the at least one piece of trick play data,
an information transmission unit which transmits the MPD file to a client, and
a trick play data transmission unit which transmits the at least one piece of trick play data to the client in response to a request by the client based on the MPD file,
wherein a number of the at least one piece of trick play data is determined based on a maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 33. The system of 32, further comprising the client which comprises:
an information reception unit which receives the MPD file comprising the information about the at least one piece of trick play data; and
a trick play data reception unit which receives the at least one piece of trick play data from the server based on the MPD file.
0. 34. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 1.
0. 35. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 13.
0. 36. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 31.
0. 38. The method of claim 37, wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
0. 39. The method of claim 37, wherein:
a number of the at least one piece of trick play data is determined based on the maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 40. The method of claim 39, wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time to be played exclusively at the predetermined trick play speed.
0. 41. The method of claim 39, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second by the client.
0. 42. The method of claim 39, wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and
the method further comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed from the trick play data corresponding to the predetermined trick play speed in response to the request of the client based on the MPD file.
0. 43. The method of claim 42, wherein the predetermined trick play speed is a 2× trick play speed.
0. 44. The method of claim 42, wherein the extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed comprises extracting the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
0. 45. The method of claim 42, wherein:
the MPD file further comprises information about at least one of a frame rate, a frame type, and the maximum trick play speed;
the frame rate indicates a number of frames to be played per second by the client; and
the frame type indicates whether the at least one piece of trick play data comprises only intra-frames, or intra- and inter-frames.
0. 46. The method of claim 37, wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and
the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
0. 47. The method of claim 37, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second by the client.
0. 48. The method of claim 37, wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time;
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second by the client.
0. 49. The method of claim 37, wherein the information indicates whether the at least one trick play data includes the frame that depends on one or more other frames for decoding and whether the at least one trick play data includes intra frames and does not include inter frames.
0. 51. The method of claim 50, wherein the MPD file comprises type information identifying that the at least one piece of trick play data is data for trick play.
0. 52. The method of claim 50, wherein:
a number of the at least one piece of trick play data is determined based on the maximum trick play speed; and
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time.
0. 53. The method of claim 52, wherein the MPD file comprises information about the predetermined trick play speed and one or more uniform resource locators (URLs) of the one or more segments divided and generated based on time and be played exclusively at the predetermined trick play speed.
0. 54. The method of claim 52, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second at the client.
0. 55. The method of claim 50, wherein:
the MPD file comprises information about trick play data corresponding to a predetermined trick play speed, which physically exists in the server, and information about at least one piece of trick play data corresponding to play speeds other than the predetermined trick play speed, which virtually exists in the server; and
the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed, which is extracted by the server from the trick play data corresponding to the predetermined trick play speed in response to a request by the client based on the MPD file.
0. 56. The method of claim 55, wherein the predetermined trick play speed is a 2× trick play speed.
0. 57. The method of claim 55, wherein the at least one piece of trick play data corresponding to the play speeds other than the predetermined trick play speed is extracted by the server from the trick play data corresponding to the predetermined trick play speed trick play speed by using a common gateway interface (CGI) program based on an index file comprising locations and sizes of frames.
0. 58. The method of claim 55, wherein:
the MPD file further comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second by the client.
0. 59. The method of claim 50, wherein:
the MPD file comprises information about the predetermined trick level and one or more URLs of the one or more segments divided and generated based on time and corresponding to the predetermined trick level; and
the information about the predetermined trick level comprises information about at least one trick play speed using the one or more segments divided and generated based on time.
0. 60. The method of claim 59, wherein the receiving the at least one piece of trick play data from the server comprises receiving, from the server, the at least one piece of trick play data corresponding to each trick level in order to support a predetermined trick play speed based on a request by the client.
0. 61. The method of claim 50, further comprising realigning the at least one piece of trick play data in an order of play time.
0. 62. The method of claim 50, wherein:
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second by the client.
0. 63. The method of claim 50, wherein:
the at least one piece of trick play data comprises one or more segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time;
the MPD file comprises information about at least one of a frame rate and the maximum trick play speed; and
the frame rate indicates a number of frames to be played per second by the client.
0. 64. The method of claim 63, further comprising varying the frame rate into the number of frames per second corresponding to the predetermined trick play speed.
0. 65. The method of claim 63, further comprising playing the at least one piece of trick play data based on the frame rate.
0. 70. The system of claim 69, further comprising the client which comprises:
at least one processor configured to receive the MPD file comprising the information about the at least one piece of trick play data and
to receive the at least one piece of trick play data from the server based on the MPD file.
0. 71. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 37.
0. 72. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 50.
0. 73. A non-transitory computer readable recording medium having recorded thereon a computer program for executing the method of claim 68.

For example, if the maximum trick play speed is 16× and the trick play service is provided in units of multiples of two, the maximum depth of trick levels is 4 and the number of pieces of the trick play data is 4. The four pieces of the trick play data correspond to trick levels TL1, TL2, TL3, and TL4.

The trick play data corresponding to each trick level corresponds to each trick play speed. However, frames included in the trick play data corresponding to each trick level do not repeatedly exist in another trick level.

For example, if the maximum trick play speed is 16×, the trick play service is provided in units of multiples of two, and the trick play data is encoded by using I-frames, the trick play data corresponding to the trick level TL4 includes I-frames I0, I8, and I16 corresponding to a 16× trick play speed, and the trick play data corresponding to the trick level TL3 includes I-frames I4 and I12 corresponding to a 8× trick play speed other than the I-frames corresponding to the 16× trick play speed. The trick play data corresponding to the trick level TL2 includes 1-frames 12, 16, 110, and 114 corresponding to a 4× trick play speed other than the I-frames corresponding to the 8× trick play speed. The trick play data corresponding to the trick level TL1 includes I-frames I1, I3, I5, I7, I9, I11, I13, and I15 corresponding to a 2× trick play speed other than the I-frames corresponding to the 4× trick play speed.

In exemplary Equation 2, E1,n defines a frame index of each trick level, n=0, 1, 2, . . . N1, and N1 indicates a total number of frames of the trick play data.

E l , n = { 2 l - 1 · n if l = L max 2 l - 1 · ( 2 n + 1 ) otherwise Equation 2

The client 130 requests for at least one piece of trick play data corresponding to each trick level in order to support a desired trick play speed.

For example, the client 130 requests for trick play data corresponding to the trick level TL4 in order to support a 16× trick play speed, requests for a plurality of pieces of trick play data corresponding to the trick levels TL3 and TL4 in order to support a 8× trick play speed, requests for a plurality of pieces of trick play data corresponding to the trick levels TL2, TL3, and TL4 in order to support a 4× trick play speed, and requests for a plurality of pieces of trick play data corresponding to the trick levels TL1, TL2, TL3, and TL4 in order to support a 2× trick play speed.

In exemplary Equation 3, frame_index(x) defines indices of all I-frames for supporting an x trick play speed:

( 3 ) frame_index ( x ) = l = log 2 ( x ) L max n = 0 N l E l , n Equation 3

For example, if the trick play data is encoded by using I-frames, all I-frames for supporting a 8× trick play speed have indices corresponding to the I-frames I0, I4, I8, I12, I16, etc. in the trick levels TL3 and TL4.

FIG. 12B is a diagram for describing a method of providing a trick play service by using multiple streams having a hierarchical structure and including intra- and inter-frames, according to an exemplary embodiment.

The encoder 110 may encode media content by using intra- and inter-frames to generate trick play data. The intra (I)-frames are frames encoded by using information of only corresponding frames. The inter-frames are frames encoded by using information of corresponding frames and other frames and include P-frames and B-frames. The encoder 110 encodes the trick play data at a play start point by using only I-frames. Referring to FIG. 12B, the trick play data includes I-frames, P-frames, and B-frames.

In the method of providing a trick play service by using multiple streams having a hierarchical structure according to an exemplary embodiment, the number of pieces of the trick play data is determined based on a maximum depth of trick levels (or a maximum number of trick levels). The maximum depth of trick levels is determined based on a maximum trick play speed. For example, in the above-described exemplary Equation 1, Lmax is defined as the maximum depth of trick levels, and Rmax is defined as the maximum trick play speed.

In FIG. 12B, if the maximum trick play speed is 16× and the trick play service is provided in units of multiples of two, the maximum depth of trick levels is 4 and the number of pieces of the trick play data is 4. The four pieces of the trick play data correspond to trick levels TL1, TL2, TL3, and TL4.

The trick play data corresponding to each trick level corresponds to each trick play speed. However, frames included in the trick play data corresponding to each trick level do not repeatedly exist in another trick level.

In FIG. 12B, if the maximum trick play speed is 16×, the trick play service is provided in units of multiples of two, and the trick play data is encoded by using I-frames, P-frames, and B-frames, the trick play data corresponding to the trick level TL4 includes I-frames I0, I8, and I16 corresponding to a 16× trick play speed, and the trick play data corresponding to the trick level TL3 includes P-frames P4 and P12 corresponding to a 8× trick play speed other than the frames corresponding to the 16× trick play speed. The trick play data corresponding to the trick level TL2 includes B-frames B2, B6, B10, and B14 corresponding to a 4× trick play speed other than the frames corresponding to the 8× trick play speed. The trick play data corresponding to the trick level TL1 includes B-frames B1, B3, B5, B7, B9, B11, B13, and B15 corresponding to a 2× trick play speed other than the frames corresponding to the 4× trick play speed.

In the above-described exemplary Equation 2, E1,n defines a frame index of each trick level, n=0, 1, 2, . . . N1, and N1 indicates a total number of frames of the trick play data.

The client 130 requests at least one piece of trick play data corresponding to each trick level in order to support a desired trick play speed.

For example, the client 130 requests trick play data corresponding to the trick level TL4 in order to support a 16× trick play speed, requests a plurality of pieces of trick play data corresponding to the trick levels TL3 and TL4 in order to support a 8× trick play speed, requests a plurality of pieces of trick play data corresponding to the trick levels TL2, TL3, and TL4 in order to support a 4× trick play speed, and requests a plurality of pieces of trick play data corresponding to the trick levels TL1, TL2, TL3, and TL4 in order to support a 2× trick play speed.

In the above-described exemplary Equation 3, frame_index(x) defines indices of all frames for supporting an x trick play speed.

If the trick play data is encoded by using I-frames, P-frames, and B-frames as illustrated in FIG. 12B, frames for supporting a 8× trick play speed have indices corresponding to the frames I0, P4, I8, P12, I16, etc., in the trick levels TL3 and TL4.

FIG. 13 is a diagram for describing a method of providing a trick play service by using multiple streams having a hierarchical structure at a server 120, according to an exemplary embodiment

In the present exemplary embodiment, the server 120 includes trick play data corresponding to each trick level. The number of pieces of the trick play data is determined based on a maximum depth of trick levels (or a maximum number of trick levels). As described above with reference to FIG. 12A, the maximum depth of trick levels is determined based on a maximum trick play speed according to exemplary Equation 1.

For example, referring to FIG. 13, if the maximum trick play speed is 16×, the trick play service is provided in units of multiples of two, and the trick play data is encoded by using I-frames, a segment 0 includes a Stream_segment0_16×.ts file including an I-frame I0 corresponding to a trick level TL4, a Stream_segment0_8×.ts file including an I-frame 14 corresponding to a trick level TL3, a Stream_segment0_4×.ts file including an I-frame I2 corresponding to a trick level TL2, and a Stream_segment0_2×.ts file including I-frames I1 and I3 corresponding to a trick level TL1.

Also, a segment 1 includes a Stream_segment1_16×.ts file including an I-frame I8 corresponding to the trick level TL4, a Stream_segment1_4×.ts file including an I-frame I6 corresponding to the trick level TL2, and a Stream_segment1_2×.ts file including I-frames I5, I7, and I9 corresponding to the trick level TL1. Since no I-frame corresponds to the trick level TL3, a Stream_segment1_8×.ts file does not exist.

Furthermore, a segment 2 includes a Stream_segment2_8×.ts file including an I-frame 112 corresponding to the trick level TL3, a Stream_segment2_4×.ts file including I-frames I10 and I14 corresponding to the trick level TL2, and a Stream_segment2_2×.ts file including I-frames I11 and I13 corresponding to the trick level TL1. Since no I-frame corresponds to the trick level TL4, a Stream_segment2_16×.ts file does not exist.

FIG. 14 is a diagram for describing a method of providing a trick play service by using multiple streams having a hierarchical structure at a client 130, according to an exemplary embodiment.

In the present exemplary embodiment, the client 130 requests at least one piece of trick play data corresponding to each trick level in order to support a desired trick play speed.

For example, referring to FIG. 14, the client 130 requests trick play data corresponding to a trick level TL4 in order to support a 16× trick play speed. The client 130 requests the Stream_segment0_16×.ts file, the Stream_segment1_16×.ts file, etc.

The client 130 requests a plurality of pieces of trick play data corresponding to trick levels TL2, TL3, and TL4 in order to support a 4× trick play speed. The client 130 requests the server 120 for files corresponding to each segment in the trick levels TL2, TL3, and TL4 according to a flow of time. For example, the Stream_segment0_16×.ts, Stream_segment0_8×.ts, and stream_segment 0_4×.ts files are requested in the segment 0, and the Stream_segment1_16×.ts, Stream_segment1_8×.ts, and stream_segment 1_4×.ts files are requested in the segment 1.

The client 130 realigns at least one piece of trick play data corresponding to each trick level in an order of reproduction time. That is, the client 130 realigns I-frames included in the received segment files in order.

FIGS. 15 and 16A are diagrams showing MPDs of a method of providing a trick play service by using multiple streams having a hierarchical structure, according to an exemplary embodiment.

In the present exemplary embodiment, a trick level corresponding to trick play data may be defined by at least one “AlternatePlayoutRate” attribute, though it is understood that the name of the attribute may vary.

Referring to FIGS. 15 and 16A, a trick level TL4 is defined by using four “AlternatePlayoutRate” attributes such as “<AlternatePlayoutRate>2 </AlternatePlayoutRate>, <AlternatePlayoutRate>4</AlternatePlayoutRate>, <AlternatePlayoutRate>8</AlternatePlayoutRate>, and <AlternatePlayoutRate>16</AlternatePlayoutRate>”. A trick level TL2 is defined by using two “AlternatePlayoutRate” attributes such as “<AlternatePlayoutRate>2</AlternatePlayoutRate> and <AlternatePlayoutRate>4</AlternatePlayoutRate>”.

While in the present exemplary embodiment, a trick level is identified by using at least one “AlternatePlayoutRate” attribute, it is understood that another exemplary embodiment is not limited thereto and another identification method may be used.

FIG. 16B is a diagram showing an MPD of a method of providing a trick play service by using multiple streams having a hierarchical structure for identifying a trick level and a frame rate, according to an exemplary embodiment.

An encoder 110 according to an exemplary embodiment may encode media content by using intra- and inter-frames to generate trick play data. The intra (I)-frames are frames encoded by using information of only corresponding frames. The inter-frames are frames encoded by using information of corresponding frames and other frames and include P-frames and B-frames. Furthermore, the encoder 110 encodes the trick play data at a play start point by using only I-frames. Referring to FIG. 16B, the trick play data includes I-frames, P-frames, and B-frames.

In the method of providing a trick play service by using multiple streams having a hierarchical structure, the number of pieces of the trick play data is determined based on a maximum number of trick levels. In the present exemplary embodiment, the maximum number of trick levels is 4 and the number of pieces of the trick play data is 4. The four pieces of the trick play data correspond to trick levels TL1, TL2, TL3, and TL4. A trick level of the trick play data may be defined by using a “tricklevel” attribute, though it is understood that the name of the attribute may vary.

The trick play data corresponding to each trick level defines a trick play speed by using a frame rate. The trick play speed of the trick play data may be defined by using a “frame rate” attribute, though it is understood that the name of the attribute may vary. Frames included in the trick play data corresponding to each trick level do not repeatedly exist in another trick level.

In the present exemplary embodiment, the encoder 110 defines the trick play data including 30 frames per second (fps) by using four trick levels TL1, TL2, TL3, and TL4.

The trick play data corresponding to the trick level TL4 includes frames corresponding to a trick play speed of 3.75 frames per second (fps), and the trick play data corresponding to the trick level TL3 includes frames corresponding to a trick play speed of 7.5 fps other than the frames corresponding to the trick play speed of 3.75 fps. The trick play data corresponding to the trick level TL2 includes frames corresponding to a trick play speed of 15 fps other than the frames corresponding to the trick play speed of 7.5 fps. The trick play data corresponding to the trick level TL1 includes frames corresponding to a trick play speed of 30 fps other than the frames corresponding to the trick play speed of 15 fps. The frames of the trick play data are stored in the server 120 in an order from the trick level TL4 to the trick level TL1, and a desired trick level may be accessed by using index information indicating the trick level.

The client 130 requests at least one piece of trick play data corresponding to each trick level in order to support a desired trick play speed.

For example, the client, 130 requests trick play data corresponding to the trick level TL4 in order to support a trick play speed of 3.75 fps, requests a plurality of pieces of trick play data corresponding to the trick levels TL3 and TL4 in order to support a trick play speed of 7.5 fps, requests a plurality of pieces of trick play data corresponding to the trick levels TL2, TL3, and TL4 in order to support a trick play speed of 15 fps, and requests a plurality of pieces of trick play data corresponding to the trick levels TL1, TL2, TL3, and TL4 in order to support a trick play speed of 30 fps.

According to another exemplary embodiment, for example, location information of trick play data corresponding to each trick level may be added in the form of a box of an MP4 file by using information about a trick level, and a frame rate, though it is understood that the name of the box may differ.

FIG. 17 is a structural diagram of a transport stream (TS) packet for detecting an I-frame from an MPEG TS, according to an exemplary embodiment.

Referring to FIG. 17, an “Adaptation field” is a portion of a TS header and is an optional field for inputting TS-related additional information. The “Adaptation field” has a plurality of parameters and includes a “private-data-byte” field that may be arbitrarily used by a user. A “transport-private-data-length” parameter indicates the size of the “private-data-byte” field included in the “Adaptation field.” The “private-data-byte” field is a space for storing data arbitrarily defined by the user. A client 130 according to an exemplary embodiment may calculate a start point of a subsequent I-frame in the MPEG TS by using the “transport-private-data-length” parameter and the “private-data-byte” field.

The start point of a subsequent I-frame in the MPEG TS may be calculated when the client 130 realigns I-frames included in received segment files in order according to a method of providing a trick play service by using multiple streams having a hierarchical structure, though it is understood that another exemplary embodiment is not limited thereto, and the start point of a subsequent I-frame may be calculated for another purpose.

FIG. 18 is a diagram for describing a method of forming a TS packet for detecting an I-frame from an MPEG TS, according to an exemplary embodiment.

Referring to FIG. 18, an “Adaptation field” includes a “private-data-byte” field for inputting “private data.” An encoder 110 according to an exemplary embodiment defines the length of the “private-data-byte” field and inputs the length as a “transport-private-data-length” parameter. The encoder 110 records the “private data” in the “private-data-byte” field by the “transport-private-data-length.” The “private-data-byte” field has a numerical value in the form of an “unsigned integer.” The value of the “private-data-byte” field is an offset value regarding a start point of a TS packet having a subsequent I-frame with respect to a current TS packet. If a plurality of I-frames is included in one TS, the “Adaptation field” exists at a start point of each I-frame.

FIG. 19 is a flowchart of a method of detecting an I-frame from an MPEG TS, according to an exemplary embodiment.

Referring to FIG. 19, in operation 1910, a client 130 downloads a trick play segment from a server 120.

In operation 1920, if a subsequent I-frame is to be detected from the trick play segment, an “Adaptation field” of the MPEG TS is parsed.

In operation 1930, an offset value of the subsequent I-frame is extracted by using a “private-data-byte” field of the “Adaptation field.” For example, if the offset value is 2462, 0x99E obtained by changing the value 2462 into a 16-bit value is calculated. Since the size of the “unsigned integer” is 4 bytes, the value of a “transport-private-data-length” parameter is registered as 4. 0x99E is converted into “0x0 00x00 0x09 0x9E,” i.e., a 4-byte integer. The converted value is input to the “private-data-byte” field. Moreover, according to a method of extracting the offset value from the “private-data-byte” field, if the private-data-byte is declared as pdb[4], the offset value may be calculated as (int) (pdb[3]<<24|pdb[2]<<16|pdb[1]<<8|pdb[0]).

In operation 1940, a TS file, i.e., a segment file, is divided by the offset value of the subsequent I-frame.

In operation 1950, it is determined whether the segment file is the last frame. If the segment file is not the last frame, the method returns to operation 1930 and a subsequent I-frame is extracted. If the segment file is the last frame, the method returns to operation 1910 and the client 130 downloads a subsequent trick play segment from the server 120.

FIG. 20 is a structural diagram of an MP4 file for detecting an I-frame from an MPEG TS, according to an exemplary embodiment.

Referring to FIG. 20, in the MP4 file, each piece of trick play data corresponds to a track of the MP4 file. A “trak” box of each track includes metadata of the trick play data. The number of pieces of the trick play data may be determined based on a maximum trick play speed according to exemplary Equation 1 as described above with reference to FIG. 11.

A server 120 according to an exemplary embodiment includes at least one piece of trick play data corresponding to each trick level, together with normal speed play data. The trick play data corresponding to each trick level includes at least one segment divided and generated based on time. Each segment includes a “moof” box and an “mdat” box. The “moof” box includes metadata of a segment and the “mdat” box includes media content corresponding to the segment.

Location information of an I-frame corresponding to a desired trick play speed may be obtained by using a “Trak” box or a “Traf” box of the MP4 file.

When I-frames included in received segment files are realigned in order, a client 130 according to an exemplary embodiment may obtain the location information of a subsequent I-frame by using the “Trak” box or the “Traf” box.

FIG. 21 is a conceptual diagram for describing a method of providing a trick play service by varying a frame rate, according to an exemplary embodiment.

In the method of providing a trick play service by varying a frame rate, a server 120 includes one piece of trick play data corresponding to a default play speed. For example, if a maximum trick play speed is 16× and the trick play service is provided in units of multiples of two, the server 120 includes one piece of trick play data corresponding to a 2× trick play speed. Referring to FIG. 21, the server 120 includes one piece of trick play data corresponding to a 2× trick play speed, which is formed by extracting one frame in every unit time of two seconds. Play speeds other than 2× may be supported by varying a frame rate of the trick play data corresponding to a 2× trick play speed at the client 130.

The client 130 may support 2× trick play by playing one frame in a unit time, may support 4× trick play by playing two frames in the unit time, may support 8× trick play by playing four frames in the unit time, and may support 16× trick play by playing eight frames in the unit time.

Furthermore, the method of providing a trick play service by varying a frame rate may be used together with at least one of the above-described methods of providing a trick play service by using multiple streams, method of providing a trick play service by using a frame range query, method of providing a trick play service by using virtual streams, and method of providing a trick play service by using multiple streams having a hierarchical structure, so as to support a variable trick play speed. For example, where the method of providing a trick play service by using multiple streams and the method of providing a trick play service by varying a frame rate are used together, a client 130 may receive from the server 120 one piece of trick play data corresponding to a certain trick play speed (e.g., 8×), and then may support a variable trick play speed that is different from the certain trick play speed by varying a frame rate.

FIG. 22 is a diagram for describing a method of providing a trick play service by varying a frame rate at a server 120 and a client 130 illustrated in FIG. 1, according to an exemplary embodiment.

Referring to FIG. 22, the server 120 includes a piece of trick play data corresponding to a default play speed, and an MPD file including information about the trick play data. For example, if a maximum trick play speed is 16× and the trick play service is provided in units of multiples of two, the server 120 includes a piece of trick play data corresponding to a 2× trick play speed.

The MPD file includes information about a frame rate, a frame type, and the maximum trick play speed. The frame rate indicates the number of frames to be played per second at the client 130. The frame type indicates whether the trick play data includes only intra-frames, or intra- and inter-frames. In FIG. 22, an “alternatePlayoutRate” attribute describes the maximum trick play speed as 16, a “type” attribute identifies that the trick play data includes only I-frames, and a “frameRate” attribute is described as “1 fps.” A schema of the MPD file will be described in detail below with reference to FIGS. 23 and 24.

The client 130 requests a piece of trick play data corresponding to a 2× trick play speed based on the MPD file including information about the trick play data.

If the client 130 desires 2× trick play, one frame corresponding to 2× is played in every unit time based on the frame rate described in the MPD file. The client 130 may support play speeds other than 2× by varying the frame rate.

For example, if the client 130 desires 4× trick play, the frame rate described in the MPD file is varied from “1 fps” to “2 fps” and two frames corresponding to 2× are played in every unit time.

If the client 130 desires 8× trick play, the frame rate described in the MPD file is varied from “1 fps” to “4 fps” and four frames corresponding to 2× are played in every unit time.

If the client 130 desires 16× trick play, the frame rate described in the MPD file is varied from “1 fps” to “8 fps” and eight frames corresponding to 2× are played in every unit time.

FIG. 23 is a schema of an MPD of a method of providing a trick play service by varying a frame rate, according to an exemplary embodiment.

Referring to FIG. 23, in the method of providing a trick play service by varying a frame rate, an MPD includes a “TrickMode” tag. The “TrickMode” tag includes an “alternatePlayoutRate” attribute, a “type” attribute, and a “frameRate” attribute.

The “alternatePlayoutRate” attribute defines a maximum trick play speed. The “type” attribute defines whether trick play data includes only intra-frames, or intra- and inter-frames. The “frameRate” attribute defines the number of frames to be played per second at a client 130.

FIG. 24 is a diagram showing an MPD of a method of providing a trick play service by varying a frame rate, according to an exemplary embodiment.

Referring to FIG. 24, an “alternatePlayoutRate” attribute has a value 16 and indicates that a maximum trick play speed is 16×. A “type” attribute has a value “Intra” from among values “Intra” and “Intra or Inter”, and indicates that trick play data includes only I-frames. A “frameRate” attribute has a value 1 and indicates that the number of frames to be played per second is one.

FIG. 25 is a block diagram of a server 2500 according to an exemplary embodiment.

Referring to FIG. 25, the server 2500 includes an information generation unit 2510, an information transmission unit 2520, and a trick play data transmission unit 2530.

The information generation unit 2510 generates an MPD file including information about at least one piece of trick play data. The MPD file includes type information for identifying that the trick play data is data for trick play.

In a method of providing a trick play service by using multiple streams according to an exemplary embodiment, the number of pieces of trick play data is determined based on a maximum trick play speed, and the trick play data includes at least one of a plurality of segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed and dividing the encoded frames based on time. In this case, the MPD file includes information about the predetermined trick play speed, and URLs of the segments that are divided and generated based on time and are to be played at the predetermined trick play speed.

In a method of providing a trick play service by using virtual streams according to an exemplary embodiment, the MPD file includes information about trick play data corresponding to a 2× trick play speed, which physically exists in the server 2500, and information about at least one piece of trick play data corresponding to play speeds other than 2×, which virtually exists in the server 2500. In this case, the server 2500 may further include an extraction unit (not shown) which extracts the trick play data corresponding to play speeds other than 2× from the trick play data corresponding to a 2× trick play speed upon a request of a client based on the MPD file. The extraction unit may be realized by using a CGI program based on an index file including locations and sizes of frames.

In a method of providing a trick play service by using a frame range query according to an exemplary embodiment, at least one piece of trick play data includes at least one of a plurality of segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed (e.g., 2×) and dividing the encoded frames based on time. In this case, the information generation unit 2510 may further generate an index file including locations and sizes of frames. Furthermore, in this case, the MPD file includes information about trick play data corresponding to a predetermined trick play speed, and a URL of the index file. The server 2500 may further include an extraction unit (not shown) which extracts the trick play data corresponding to play speeds other than 2× from the trick play data corresponding to a 2× trick play speed upon a request of the client that received the MPD file and the index file. The extraction unit may be realized by using an HTTP server capable of processing an HTTP range response.

In a method of providing a trick play service by using multiple streams having a hierarchical structure according to an exemplary embodiment, the number of pieces of trick play data is determined based on a maximum trick play speed, and the trick play data includes at least one of a plurality of segments generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick level and dividing the encoded frames based on time. The predetermined trick level forms a hierarchical structure and is one of at least one trick level based on a maximum depth of trick levels. The maximum depth of trick levels is determined based on the maximum trick play speed. Moreover, frames included in the predetermined trick level do not repeatedly exist in another trick level. In this case, the MPD file includes information about the predetermined trick level, and URLs of a plurality of segments divided and generated based on time and corresponding to the predetermined trick level. The predetermined trick level is described to include information about at least one trick play speed using a plurality of segments divided and generated based on time.

In a method of providing a trick play service by varying a frame rate according to an exemplary embodiment, at least one piece of trick play data includes at least one of a plurality of segment generated by encoding media content at a predetermined bit rate into frames corresponding to a predetermined trick play speed, and dividing the encoded frames based on time. In this case, the MPD file includes information about at least one of a frame rate, a frame type, and a maximum trick play speed. The frame rate indicates the number of frames to be played per second at the client. The frame type indicates whether the trick play data includes only intra-frames, or intra- and inter-frames.

The information transmission unit 2520 transmits the MPD file to the client.

In a method of providing a trick play service by using a frame range query according to an exemplary embodiment, the information transmission unit 2520 may further transmit the index file to the client.

The trick play data transmission unit 2530 transmits the trick play data to the client upon a request of the client based on the MPD file.

FIG. 26 is a block diagram of a client 2600 according to an exemplary embodiment.

Referring to FIG. 26, the client 2600 includes an information reception unit 2610 and a trick play data reception unit 2620.

The information reception unit 2610 receives from a server an MPD file including information about at least one piece of trick play data.

The trick play data reception unit 2620 receives the trick play data from the server based on the MPD file.

In a method of providing a trick play service by using multiple streams having a hierarchical structure according to an exemplary embodiment, the trick play data reception unit 2620 receives a plurality of segments divided and generated based on time and corresponding to at least one trick level in order to support a predetermined trick play speed based on the request of the client. In this case, the client 2600 may further include a realignment unit (not shown) which realigns the trick play data in an order of play time.

In a method of providing a trick play service by varying a frame rate according to an exemplary embodiment, the client 2600 may further include a play unit (not shown) which reproduces the trick play data based on a frame rate.

In a method of providing a trick play service by using a frame range query according to an exemplary embodiment, the information reception unit 2610 may further receive an index file from the server with reference to a URL of the index file, which is included in the MPD file. In this case, the trick play data reception unit 2620 may receive from the server the trick play data including I-frames corresponding to a desired trick play speed based on the index file. The trick play data reception unit 2620 may be realized by using an HTTP client capable of processing an HTTP range query.

While exemplary embodiments have been particularly shown and described above, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present inventive concept as defined by the following claims.

For example, the server 2500 and the client 2600 can include a bus coupled to units of each of the devices shown in FIGS. 25 and 26, and at least one processor connected to the bus. In addition, a memory coupled to at least one processor for performing commands as described above can be included and connected to the bus to store the commands and received messages or generated messages.

An exemplary embodiment can also be embodied as computer readable codes on a computer readable recording medium. The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks and, optical data storage devices. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

Kwon, O-hoon, Ha, Ho-jin, Zhang, Guanhua, Choi, Hyung-tak, Kim, Sun-bal, Keum, Ji-Eun, Im, Sung-bin

Patent Priority Assignee Title
11622164, Jul 12 2019 Carrier Corporation System and method for streaming video/s
Patent Priority Assignee Title
5612742, Oct 19 1994 Google Technology Holdings LLC Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
5784528, Sep 29 1995 MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD Method and an apparatus for interleaving bitstream to record thereof on a recording medium, and reproducing the interleaved bitstream therefrom
6499060, Mar 12 1999 Microsoft Technology Licensing, LLC Media coding for loss recovery with remotely predicted data units
6536043, Feb 14 1996 DISTRIBUTED MEDIA SOLUTIONS, LLC Method and systems for scalable representation of multimedia data for progressive asynchronous transmission
6851091, Sep 17 1998 Sony Corporation Image display apparatus and method
6895410, May 02 2003 Nokia Corporation Method and apparatus for providing a multimedia data stream
6996618, Jul 03 2001 HEWLETT-PACKARD DEVELOPMENT COMPANY L P Method for handling off multiple description streaming media sessions between servers in fixed and mobile streaming media systems
7043560, Jun 19 2001 Nokia Technologies Oy Dynamic probing and reporting of bit rate information
7051110, Dec 20 1999 MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions
7057535, Feb 13 2004 Hewlett-Packard Development Company, L.P. Methods for scaling encoded data without requiring knowledge of the encoding scheme
7103668, Aug 29 2000 VIVA VISION, INC Method and apparatus for distributing multimedia to remote clients
7277958, Mar 12 2001 Edgestream, Inc. Re-assembly of streaming files from separate connections
7421127, Oct 26 2001 Koninklijke Philips Electronics N V Spatial scalable compression scheme using spatial sharpness enhancement techniques
7447791, Dec 15 2000 British Telecommunications public limited company Transmission and reception of audio and/or video material
7504968, Feb 13 2004 Hewlett-Packard Development Company, L.P.; HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Media data decoding device
7760990, Mar 19 1999 Sony Corporation Recording apparatus, recording method, playback apparatus, playback method and recording media, including recorded list of random access points
7886069, Jan 05 2007 DivX CF Holdings LLC; DIVX, LLC Video distribution system including progressive playback
7944808, Mar 24 2006 LG Electronics Inc.; LG Electronics Inc OFDM symbol design for different channel conditions and for backward compatibility with 1xEV-DO and NxEV-DO
7944908, Oct 10 2007 Samsung Electronics Co., Ltd. Method for setting output bit rate for video data transmission in a WiBro system
8059711, Jan 28 2003 INTERDIGITAL CE PATENT HOLDINGS Robust mode staggercasting
8176029, Feb 22 2006 Composite display method and system for search engine of same resource information based on degree of attention
8341662, Sep 30 1999 International Business Machine Corporation User-controlled selective overlay in a streaming media
8365235, Dec 18 2007 Netflix, Inc Trick play of streaming media
8619851, Mar 01 2007 Canon Kabushiki Kaisha Information distribution apparatus, information distribution method, and information distribution program
8661105, Aug 10 2007 ZTE Corporation Integrated video service peer to peer network system
8781305, Dec 02 2008 Microsoft Technology Licensing, LLC Media streaming with smooth fast-forward and rewind
8838680, Feb 08 2011 GOOGLE LLC Buffer objects for web-based configurable pipeline media processing
9245127, Jun 27 2008 Microsoft Technology Licensing, LLC Segmented media content rights management
20020053085,
20020161739,
20030061369,
20030072376,
20030135633,
20030177503,
20030189649,
20030236895,
20040064572,
20040064573,
20040119814,
20040220966,
20050018873,
20050047345,
20050071491,
20050102371,
20050123136,
20050135476,
20050160177,
20050183120,
20050193138,
20050193425,
20050198282,
20050210145,
20050234892,
20050262541,
20060037057,
20060117360,
20060120378,
20060126713,
20070003251,
20070016657,
20070025687,
20070101164,
20070177854,
20080040498,
20080046578,
20080069204,
20080109532,
20080162713,
20080177865,
20080195743,
20080301380,
20090010273,
20090018681,
20090031007,
20090055417,
20090080864,
20090089535,
20090097819,
20090106288,
20090110060,
20090141888,
20090150557,
20090161994,
20090196567,
20090204487,
20090258594,
20090300145,
20100046611,
20100054329,
20100138489,
20100235427,
20100235528,
20110029649,
20110080940,
20110097058,
20110099594,
20110119394,
20110238789,
20110239078,
20130089142,
20130298170,
20140053214,
20140143439,
20140185670,
20150256585,
20160323342,
CN101014947,
CN101018323,
CN101247511,
CN101321265,
CN101365128,
CN101371307,
CN101459809,
CN101518027,
CN101521583,
CN1290895,
CN1459066,
CN1481643,
CN1559119,
CN1568620,
CN1575603,
CN1592418,
CN1625880,
CN1698378,
CN1764974,
CN1784652,
CN1787422,
CN1902865,
CN1985321,
CN1988547,
EP1043892,
EP1395014,
EP2117143,
JP200013761,
JP2000341640,
JP2001024994,
JP2001359081,
JP2003087737,
JP2003111048,
JP2003235031,
JP2004013283,
JP2004135307,
JP2004140584,
JP2004140654,
JP2004186890,
JP2004215074,
JP2004312304,
JP2004328204,
JP2004516717,
JP200488766,
JP2005039667,
JP2005073138,
JP2005229153,
JP2005303927,
JP2006304232,
JP2006311328,
JP2007036666,
JP200711584,
JP200725959,
JP2007274142,
JP2007518294,
JP2008219267,
JP2008236667,
JP200897381,
JP2009134700,
JP2009159625,
JP200917345,
JP2013505680,
JP6252876,
KR100805308,
KR100920733,
KR1020080099629,
KR1020090001707,
KR1020090028017,
KR1020090036765,
KR1020090063775,
KR1020100007368,
WO249343,
WO2005043783,
WO2006105158,
WO2007095834,
WO2008062979,
WO2008130191,
WO2009119394,
WO2009158344,
/
Executed onAssignorAssigneeConveyanceFrameReelDoc
Aug 20 2015Samsung Electronics Co., Ltd.(assignment on the face of the patent)
Date Maintenance Fee Events
Apr 12 2021REM: Maintenance Fee Reminder Mailed.
Apr 13 2021M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Apr 13 2021M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity.


Date Maintenance Schedule
Dec 15 20234 years fee payment window open
Jun 15 20246 months grace period start (w surcharge)
Dec 15 2024patent expiry (for year 4)
Dec 15 20262 years to revive unintentionally abandoned end. (for year 4)
Dec 15 20278 years fee payment window open
Jun 15 20286 months grace period start (w surcharge)
Dec 15 2028patent expiry (for year 8)
Dec 15 20302 years to revive unintentionally abandoned end. (for year 8)
Dec 15 203112 years fee payment window open
Jun 15 20326 months grace period start (w surcharge)
Dec 15 2032patent expiry (for year 12)
Dec 15 20342 years to revive unintentionally abandoned end. (for year 12)