The present invention relates to a method and apparatus for transmitting and receiving a scalable video coding (SVC) file for each scalable layer, and more particularly, to a method and apparatus for transmitting and receiving an SVC file for each scalable layer wherein the SVC file can be accessed for each scalable layer by allowing metadata to contain a layer descriptor in a network abstraction layer unit (NALU) or in a byte unit.
Referring to
An SVC layer consists of a basic layer and one or more enhancement layers which can be consecutively stacked on the basic layer.
According to lower layer information, each enhancement layer can represent its maximum bit rate, frame rate, and resolution.
In the SVC, the more the enhancement layers are consecutively stacked, the easier the bit rate, the frame rate, and the resolution can be provided in various forms.
Therefore, the SVC can solve a problem occurring in the use of a variety of bandwidths, a problem occurring in the use of a variety of capability and resolution of a receiving terminal, and a problem in the preference of content users.
Referring to
A sub bit-stream (to-be-transmitted coding data a which ranges from 0 to a, or to-be-transmitted coding data b which ranges from 0 to b) can be generated from the scalable base stream according to a bandwidth supported by a network or a specification of a user terminal.
A sub bit-stream a 220 includes to-be-transmitted coding data a. A sub bit-stream b 230 includes the to-be-transmitted coding data b.
The scalable base bit-stream or the sub bit-stream a or the sub bit-stream b consists of one or more scalable layers p1, p2, . . . , pm.
The scalable base bit-stream consists of only one bit-stream having all scalable layers p1 to pm.
The rest of sub bit-streams include specific scalable layers (p1 to pi for the sub bit-stream a, and p1 to p3 for the sub bit-stream b) selected from the scalable layers p1 to pm.
Since the SVC data is stored in each scalable layer, the data has to be accessible for each scalable layer.
In general, video content stored in a file can be reproduced starting from a specific time point when access to the time point can be made to fetch data.
Therefore, actual media data resulted from coding of the content is separately stored in a media data portion.
Random access information, which is used when random access is made to the time point, is separately collected and stored in a track portion of the metadata.
As a result, when the time point needs to be randomly accessed during reproducing the actual content, a desired media data location is found by using only the metadata containing the random access information.
In the conventional content, a minimum access unit of the random access information is one frame unit.
In the case of SVC video content, one frame consists of a plurality of scalable layers.
The SVC data can be used for each salable layer only when the data is accessible for each scalable layer.
The present invention provides a method and apparatus for transmitting and receiving scalable video coding (SVC) data for each scalable layer.
The present invention provides a method and apparatus for transmitting and receiving an SVC file for each scalable layer wherein the SVC file can be accessed for each scalable layer by allowing metadata to contain a layer descriptor in a network abstraction layer unit (NALU) or in a byte unit.
According to the present invention of a method and apparatus for transmitting and receiving a scalable video coding (SVC) file for each scalable layer, SVC data can be randomly accessed or transmitted/received for each scalable layer by proving a layer descriptor formed in a network abstraction layer unit (NALU) or in a byte unit to metadata of the SVC file.
The above and other features and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
Referring to
A basic unit of each scalable layer is called a network abstraction layer unit (NALU).
Therefore, random access can be made for each scalable layer only when a random access unit can be determined to be the NALU within one frame.
Preferably, successful random access is ensured for each NALU only when the random access unit can be determined to be the byte unit.
A portion indicated by the solid line in
Regarding first, second, sixth, seventh, and eighth frames of
Regarding third, fourth, and fifth frames, only a part of one frame is transmitted. Still in this case, partial transmission is achieved in the basic unit of NALU. Transmission is carried out up to the second layer NALU-L2 in the third and fourth frames and up to the third layer NALU-L3 in the fifth frame.
Metadata of random access information further contacts a layer descriptor. The layer descriptor has the following information.
1. User layer number information (num_of_active_NALU) indicating the number of one or more scalable layers used in each frame. That is, num_of active_NALU indicates the number of NALUs existing in one frame.
2. Truncated data_length information (data_length) use for transmitting a fine granular scalable (FGS) layer, if a lastly used scalable layer is the FGS layer. That is, data_length indicates a byte unit to be used while the last NALU is transmitted.
The layer description may be a chunk descriptor that includes one or more frames and represents access information of a scalable layer in a chunk unit.
Preferably, the layer descriptor may further include an FGS identifier that indicates whether the lastly used scalable layer is the FGS layer.
A pseudo-code for the layer descriptor will be described.
Case 1 shows an example in which a function proposed in the present invention is included in the existing SampleToChunkBox function by using num_of_active_NALU and data_length.
Case 2 shows an example in which num_of active_NALU and data_length are separated while the exiting SampleToChunkBox function is used without alteration.
In the aforementioned pseudo-code, if required data portion is assigned up to a specific NALU within one frame, the number of required NALUs is set to num_of_active_NALU.
In addition, if the last NALU has to be partially assigned in the byte unit, truncated_FGS_NAL_flag is set to 1. Otherwise, truncated_FGS_NAL_flag is set to 0.
If truncated_FGS_NAL_flag is set to 1, the exact number of bytes to be partially assigned to each frame (or each sample in the case of pseudo-code) is written.
According to the layer descriptor, in the case shown in
Referring to SubSampleToChunkBox, entry_count is 1, that is, only one entry exists. This is because the whole frame of
Only one chunk exists in the track of
The number of frames to be described by the chunk of
In the whole frame consisting of eight portions of
Thus, in SubSampleToChunkBox, num_of_active_ALU is set to 3. Different transmission byte sizes are respectively assigned to the last NALU for each frame.
Referring to
The SVC transmitting device 500 includes an SVC transmission layer determination element 510 and an SVC adaptive transmitting element 520.
Among scalable layers of SVC content, the SVC transmission layer determination element 510 determines a transmission scalable layer to be transmitted to a network.
That is, the SVC transmission layer determination element 510 determines content (sub content) that can be optimally transmitted among SVC content (whole content).
Among the SVC content, the transmission scalable layer to be transmitted to the network is determined according to adaptive level information.
The adaptive level information is collected from the network so as to determine an adaptive degree of scalable coding. Examples of the adaptive level information include network state information collected from the network and service information selected by a user.
The SVC transmitting device 500 may further include an adaptive level information collecting element 530 which collects the adaptive level information.
The SVC adaptive transmitting element 520 transmits a bit-stream which is generated by extracting the transmission scalable layer from an SVC file 550 containing SVC data.
The SVC adaptive transmitting element 520 includes a sub-track selector 521, an SVC file format parser 522, and an extractor 523.
The sub-track selector 521 selects a sub-track according to the transmission scalable layer determined by the SVC transmission layer determination element 510.
The SVC file 550 containing SVC data includes one or more sub-tracks so as to generate a bit-stream formed in the basic unit of scalable layer.
In the sub-track, the SVC data is accessible for each scalable layer according to the layer descriptor.
The SVC file format parser 522 parses the SVC, file 550 containing the sub-track selected from the sub-track selector 521.
The extractor 523 transmits a bit-stream generated by extracting one or more transmission scalable layers from the parsed SVC file 550.
Accordingly, the SVC transmitting device 500 allows the SVC data to be transmitted for each scalable layer.
The SVC receiving device 540 receives the bit-stream transmitted from the SVC transmitting device 500 and then provides the bit-stream to the user.
A transmission scalable layer to be transmitted to a network is determined among scalable layers of SVC content (operation S601).
Specifically, in this operation, content (sub content) that can be optimally transmitted is determined among SVC content (whole content).
Among the SVC content, the transmission scalable layer to be transmitted to the network is determined according to adaptive level information.
The adaptive level information is collected from the network so as to determine an adaptive degree of scalable coding. Examples of the adaptive level information include network state information collected from the network and service information selected by a user.
The SVC file includes one or more sub-tracks containing a layer descriptor that indicates access information of one or more scalable layers used in each frame.
A bit-stream formed in the basic unit of scalable layer is generated according to the layer descriptor (operations S602 to S604).
Specifically, one sub-track is selected from one or more sub-tracks included in the SVC file so as to generate the bit-stream formed in the basic unit of scalable layer (operation S602).
The SVC file is parsed (operation S603).
A bit-stream is generated by extracting a transmission scalable layer from the parsed SVC file and is then transmitted (operation S604).
The bit-stream is received and provided to the user (operation S605).
As a result, the SVC data can be transmitted and received for each scalable layer by accessing to the data for each scalable layer.
The invention 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, optical data storage devices, and carrier waves (such as data transmission through the Internet). 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.
According to an aspect of the present invention, there is provided a method of transmitting an SVC file for each scalable layer, the method comprising: determining a transmission scalable layer to be transmitted to a network from one or more scalable layers included in each frame of media data of the SVC file, according to adaptive level information collected from the network so as to determine an adaptive degree of scalable coding; and transmitting a bit-stream generated by extracting the transmission scalable layer from the media data of the SVC file, according to a layer descriptor that indicates access information of the scalable layer used in each frame of the SVC file.
In the aforementioned aspect of the present invention, the transmitting of a bit-stream may further comprise: selecting one sub-track from one or more sub-tracks for generating a bit-stream in the basic unit of scalable layer, according to the layer descriptor; parsing the SVC file including metadata containing the selected sub-track, according to the layer descriptor; and transmitting the bit-stream generated by extracting one or more of the transmission scalable layers from the media data of the parsed SVC file.
According to another aspect of the present invention, there is provided a method of transmitting/receiving an SVC file for each scalable layer, the method comprising: transmitting the SVC file by extracting one or more of scalable layers from media data of the SVC file and by generating a bit-stream formed in the basic unit of scalable layer, according to a layer descriptor indicating access information of one or more of the scalable layers included in each frame of the SVC file; and receiving the SVC file by receiving the transmitted bit-stream and by providing a whole or part of the bit-stream to a user.
According to another aspect of the present invention, there is provided an SVC transmitting device comprising: an SVC transmission layer determination element determining a transmission scalable layer to be transmitted to a network from one or more scalable layers included in each frame of media data of the SVC file, according to adaptive level information collected from the network so as to determine an adaptive degree of scalable coding; and an SVC adaptive transmitting element transmitting a bit-stream generated by extracting the transmission salable layer from the media data of the SVC file, according to a layer descriptor that indicates access information of the scalable layer used in each frame of the SVC file.
In the aforementioned aspect of the present invention, the SVC adaptive transmitting element may further comprise: a sub-track selector selecting one sub-track from one or more sub-tracks for generating a bit-stream formed in the basic unit of scalable layer, according to the layer descriptor; an SVC file format parser parsing the SVC file including metadata containing the selected sub-track, according to the layer descriptor; and an SVC adaptive transmitter transmitting the bit-stream generated by extracting one or more of the transmission scalable layers from the media data of the parsed SVC file.
According to another aspect of the present invention, there is provided an SVC transmitting/receiving apparatus comprising: an SVC transmitting device transmitting the SVC file by extracting one or more of the scalable layers from media data of the SVC file and by generating a bit-stream formed in the basic unit of scalable layer, according to a layer descriptor indicating access information of one or more of the scalable layers included in each frame of the SVC file; and an SVC receiving device receiving the SVC file by receiving the transmitted bit-stream and by providing a whole or part of the bit-stream to a user.
In the aforementioned aspect of the present invention, the layer descriptor may include: num_of_active_NALU information portion indicating the number of the one or more of the scalable layers used in each frame; and/or, if a last scalable layer of the scalable layers is an FGS (fine granular scalable) layer, a data_length information portion indicating length information on truncated data used for transmitting the FGS layer.
In addition, num_of_active_NALU information may be described in an NALU (network abstraction layer unit) and data_length information may be described in a byte unit.
Accordingly, SVC data can be randomly accessed and thus transmitted/received for each scalable layer by proving a layer descriptor formed in a network abstraction layer unit (NALU) or in a byte unit to metadata of an SVC file.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.
Number | Date | Country | Kind |
---|---|---|---|
10-2006-0125050 | Dec 2006 | KR | national |
10-2007-002188 | Jan 2007 | KR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/KR07/00165 | 1/9/2007 | WO | 00 | 8/18/2008 |
Number | Date | Country | |
---|---|---|---|
60757279 | Jan 2006 | US |