1. Field of the Invention
The present invention relates to scalable video coding (SVC), and more particularly, to a method of generating a forward error correction (FEC) packet for scalable video streaming and a server and a client apparatus using the same.
2. Discussion of Related Art
Schemes for transmitting a video over a network include a download scheme and a streaming scheme.
As a scheme for receiving and reproducing a given video file pre-downloaded to a computer of a user, the download scheme is not suitable for the concept of transmitting real-time media.
On the other hand, video streaming technology is available in various application fields such as Internet broadcasting because the video streaming technology is based on real-time transmission, which is executed at the moment a user selects media content.
Because video streaming should be performed in real time, the video streaming is sensitive to delay and loss and a minimum bandwidth required for service should be ensured.
However, the Internet based on a current best-effort transmission scheme does not ensure any service quality for video streaming on the Internet. This means that packets are likely to be lost according to a network situation when a video is transmitted over a network in real time. Accordingly, active research has been conducted on a method capable of improving the quality of a video in the network in which packet loss may occur.
Because real-time video streaming is sensitive to delay, there is a need for an error control method capable of maintaining the image quality of a video to the maximum extent possible. Representative technology for processing packet loss includes automatic retransmission request (ARQ) and FEC. ARQ is not suitable for a video streaming service because the number of network transmissions is increased due to retransmission of a lost packet and hence loss is caused by excessive transmission. On the other hand, FEC does not require additional transmission such as retransmission or feedback because a redundant packet is added to restore loss. However, a delay is caused by the redundant packet.
FEC can be performed at a byte level and a packet level. In the byte-level FEC, one symbol is a byte. In the packet-level FEC, one symbol is a packet. In general, the byte-level FEC is performed in a physical layer and a transport layer. On the other hand, the packet-level FEC is mainly used for real-time services or multicasting services because lost packets can be restored without a retransmission request for the lost packet.
In particular, in real-time video application services, the packet-level FEC is mainly used at an application level as in an unequal error protection (UEP) algorithm so as to improve the deterioration of image quality due to packet loss in an end user stage. That is, the image quality is effectively improved by allocating more redundant packets for packets having a large influence on the deterioration of image quality.
The demand for SVC capable of providing various image qualities while adjusting a bit rate is increasing in various channel environments. Recently, standardization for new SVC based on H.264 has been conducted by the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group (MPEG) and the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) Video Coding Expert Group (VCEG). In SVC, it is possible to generate a bit-stream constituted of one base layer and a plurality of higher layers capable of providing temporal, spatial, and quality improvements so as to provide temporal, spatial, and quality scalability. When the entire bit-stream is received, image quality of a highest resolution can be obtained. There is an advantage in that part of the bit-stream can be received and decoded so that various temporal and spatial resolutions can be provided if a channel environment is bad.
However, although an SVC bit-stream can be adapted to various network environments, it is still difficult to perform transmission robust to packet loss under an unstable network situation.
On the other hand, in general, data interleaving technology is widely used to minimize the deterioration of image quality due to packet loss. In the related art, continuous video packets are separated at given intervals, so that the deterioration of the image quality due to the packet loss is scattered or dispersed. However, an application field can be limited because a delay is caused by interleaving.
Referring to
In the structure as described above, an influence on the deterioration of image quality due to packet loss is larger when the TL is lower. This is because the loss of frames belonging to a TL in which frames of TL1 are referred to affects the deterioration of image quality when TL1 is lost.
In addition, a delay occurs, leading to the deterioration of image quality because a receiving stage can perform FEC decoding only when receiving all frames.
The present invention is directed to a method of generating an FEC packet and a server and a client apparatus using the same, which can minimize a delay when an FEC packet is decoded in SVC having a hierarchical structure.
According to a first aspect of the present invention, there is provided a method of generating an FEC packet, including: generating a plurality of TLs of which the number is a second number to provide temporal scalability for one GOP constituted of a plurality of frames of which the number is a first number; allocating FEC data to each TL; and generating a transmission packet by interleaving at least one of the FEC data and video data constituted of at least one frame for each TL.
According to a second aspect of the present invention, there is provided a server for providing scalable video streaming, including: an FEC packet generation section configured to generate a transmission packet by generating a plurality of TLs of which the number is a second number to provide temporal scalability for one GOP constituted of a plurality of frames of which the number is a first number, allocating FEC data to the TL, and interleaving at least one of the FEC data and video data constituted of at least one frame for the TL; and a communication section configured to transmit the transmission packet to a client apparatus.
According to a third aspect of the present invention, there is provided a client apparatus for receiving scalable video streaming, including: a communication section configured to receive a scalable video bit-stream constituted of a transmission packet generated by generating a plurality of TLs of which the number is a second number to provide temporal scalability for one GOP constituted of a plurality of frames of which the number is a first number, allocating FEC data to the TL, and interleaving at least one of the FEC data and video data constituted of at least one frame for the TL; and a decoder configured to perform FEC decoding and scalable video decoding in units of TLs included in the scalable video bit-stream.
The client apparatus may further include an encoder configured to perform FEC coding and SVC in units of TLs.
The above and other objects, features and advantages of the present invention will become more apparent to those of ordinary skill in the art by describing in detail exemplary embodiments thereof with reference to the accompanying drawings, in which:
Exemplary embodiments of the present invention will be described in detail below with reference to the accompanying drawings. The same reference numbers are used throughout the drawings to refer to the same or like parts.
According to the algorithm illustrated in
On the other hand, in order to achieve an advantage of interleaving in the algorithm illustrated in
Referring to
In the FEC packet structure illustrated in
Referring to
In the FEC packet structure illustrated in
Referring to
The error correction data allocation section 630 allocates FEC data to a TL. According to an exemplary embodiment, it is preferable that a size of FEC data allocated to each TL decrease in order from a low TL to a high TL. According to another exemplary embodiment, it is preferable that a size of FEC data allocated to each SU decrease in order from a low SU to a high SU when the TL is constituted of a plurality of SUs of which the number is a third number.
The interleaving section 650 generates a transmission packet by interleaving at least one of FEC data and video data configured in at least one frame for a TL. According to an exemplary embodiment, it is possible to generate a transmission packet by interleaving FEC data and video data configured in at least one frame for each TL. According to another exemplary embodiment, it is possible to generate a transmission packet by performing interleaving among a plurality of SUs for each TL.
Referring to
The communication section 715 can transmit a bit-stream including the transmission packet provided from the FEC packet generation section 713 to the client apparatus or can be provided to an external device for storage.
The communication section 715 is configured to transmit and receive data to and from an external multimedia device over a wireless network such as wireless Internet, a wireless intranet, a wireless telephone network, a wireless local area network (LAN), a wireless fidelity (Wi-Fi) network, a Wi-Fi Direct (WED) network, a third generation (3G) network, a fourth generation (4G) network, a Bluetooth network, an infrared data association (IrDA) network, a radio frequency identification (RFID) network, an ultra wideband (UWB) network, a Zigbee network, or a near field communication (NFC) network, a wired telephone network, or a wired network such as wired Internet.
On the other hand, in the client apparatus 730, the encoder 733 generates a scalable video bit-stream by performing FEC coding and SVC in units of TLs.
The decoder 735 performs FEC decoding and scalable video decoding in units of TLs included in a received scalable video bit-stream.
The communication section 737 receives a scalable video bit-stream constituted of a transmission packet generated by generating a plurality of TLs of which the number is a second number to provide temporal scalability for one GOP constituted of a plurality of frames of which the number is a first number, allocating FEC data to the TL, and interleaving at least one of the FEC data and video data constituted of at least one frame for the TL. The communication section 737 of the client apparatus 730 can be configured to be similar to the communication section 715 of the server 710.
According to another exemplary embodiment, an encoder can be provided within the server 710, and a decoder can be provided within the client apparatus 730. According to still another exemplary embodiment, the client apparatus can be provided with both the encoder and the decoder.
The method according to the above-described exemplary embodiment can be implemented by a computer-executable program, and implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. A data structure, a program command, or a data file usable in the above-described exemplary embodiments can be recorded on computer-readable recording media through various means. The computer-readable recording media can include all types of storage devices in which data readable by a computer system is stored. For example, the computer-readable media may include magnetic media such as a hard disk, a floppy disk and magnetic tape, optical media such as a compact disc read-only memory (CD-ROM) and a digital versatile disc (DVD), magneto-optical media such as floptical disc, and hardware devices such as a ROM, a random access memory (RAM), and a flash memory particularly implemented to store and execute program commands. In addition, the computer-readable recording media may be transmission media for delivering signals indicating program commands, data structures, and the like. For example, the program commands may be machine language codes produced by a compiler and/or high-level language codes that can be executed by computers using an interpreter and the like.
According to the present invention, it is possible to perform FEC without receiving all data by allocating FEC data in units of TLs, and hence minimize a delay. In addition, there is an advantage in that robustness to burst errors is provided by applying interleaving between video data and FEC data for the TLs.
A method of generating an FEC packet and a server and a client apparatus using the same according to the present invention described above are not limited to the above-described exemplary embodiments. It will be apparent to those skilled in the art that various modifications can be made to the above-described exemplary embodiments of the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention covers all such modifications provided they come within the scope of the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2012-0066602 | Jun 2012 | KR | national |