1. Field of the Invention
Apparatuses and methods consistent with the present invention relate to a multi-layer video coding technique, and more particularly, to a video coding technique using interlayer filtering.
2. Description of the Related Art
With the development of communication technology including Internet, video communication as well as text and voice communication has increased. Conventional text communication cannot satisfy the various demands of users, and thus multimedia services that can provide various types of information such as text, pictures, and music have increased. Multimedia data requires a large capacity storage medium and a wide bandwidth for transmission since the amount of data is usually large. For example, a 24-bit true color image having a resolution of 640*480 needs a capacity of 640*480*24 bits, i.e., data of about 7.37 Mbits per frame. When a video composed of such images is transmitted at a speed of 30 frames per second, a bandwidth of 221 Mbits/sec is required. When a 90-minute movie based on such an image is stored, a storage space of about 1200 Gbits is required. Accordingly, a compression coding method is a requisite for transmitting multimedia data.
A basic principle of multimedia data compression is removing data redundancy. In other words, video data can be compressed by removing spatial, temporal and visual redundancy. Spatial redundancy occurs when the same color or object is repeated in an image. Temporal redundancy occurs when there is little change between adjacent frames in a moving image or the same sound is repeated in audio. The removal of visual redundancy takes into account the limitations of human eyesight and the limited perception of high frequency.
Video data is compressed by a video encoder 110. Currently known Discrete Cosine Transform (DCT)-based video compression algorithms are MPEG-2, MPEG-4, H.263, and H.264. In recent years, research into wavelet-based scalable video coding has been actively conducted. Compressed video data is sent to a video decoder 130 via a network 120. The video decoder 130 decodes the compressed video data to reconstruct the original video data.
The video encoder 110 compresses the original video data so it does not exceed the available bandwidth of the network 120. However, communication bandwidth may vary depending on the type of the network 120. For example, the available communication bandwidth of Ethernet is different from that of a wireless local area network (WLAN). A cellular communication network may have a very narrow bandwidth. Thus, research is being actively conducted into a method for generating video data compressed at various bit-rates from the same compressed video data, in particular, scalable video coding.
Scalable video coding is a video compression technique that enables video data to provide scalability. Scalability is the ability to generate video sequences at different resolutions, frame rates, and qualities from the same compressed bitstream. Temporal scalability can be provided using a Motion Compensation Temporal Filtering (MCTF), Unconstrained MCTF (UMCTF), or Successive Temporal Approximation and Referencing (STAR) algorithm. Spatial scalability can be achieved by a wavelet transform algorithm or multi-layer coding, which have been actively studied in recent years. Signal-to-Noise Ratio (SNR) scalability can be obtained using Embedded ZeroTrees Wavelet (EZW), Set Partitioning in Hierarchical Trees (SPIHT), Embedded ZeroBlock Coding (EZBC), or Embedded Block Coding with Optimized Truncation (EBCOT).
Multi-layer video coding algorithms have recently been adopted for scalable video coding. While conventional multi-layer video coding usually uses a single video coding algorithm, increasing attention has been recently directed to multi-layer video coding using a plurality of video coding algorithms.
Referring to
Referring to
Multi-layer video coding has a problem in that the coding efficiency of an enhancement layer tends to be low due to quantization noise in the previously encoded layer (base layer). In particular, the problem is more severe when multi-layer video coding uses a plurality of video coding algorithms having different characteristics. For example, using both DCT-based AVC coding and wavelet-based coding as shown in
The present invention provides video coding and decoding methods using interlayer filtering, designed to improve the efficiency of multi-layer video coding, and video encoders and decoders.
The above stated object as well as other objects, features and advantages, of the present invention will become clear to those skilled in the art upon review of the following description.
According to an aspect of the present invention, there is provided a video coding method including encoding video frames using a first video coding scheme, performing interlayer filtering on the frames encoded by the first video coding scheme, encoding the video frames using a second video coding scheme by referring the frames subjected to the interlayer filtering, and generating a bitstream containing the frames encoded by the first and second video coding schemes.
According to another aspect of the present invention, there is provided a video coding method including downsampling video frames to generate video frames of low resolution, encoding the low-resolution video frames using a first video coding scheme, upsampling the frames encoded by the first video coding scheme to the resolution of the video frames, performing interlayer filtering on the upsampled frames, encoding the video frames using a second video coding scheme by referring the frames subjected to the interlayer filtering, and generating a bitstream containing the frames encoded by the first and second video coding schemes.
According to still another aspect of the present invention, there is provided a video encoder including a first video coding unit encoding video frames using a first video coding scheme, an interlayer filter performing interlayer filtering on the frames encoded by the first video coding scheme, a second video coding unit encoding the video frames using a second video coding scheme by referring the interlayer filtered frames, and a bitstream generator generating a bitstream containing the frames encoded by the first and second video coding schemes.
According to a further aspect of the present invention, there is provided a video encoder including a downsampler downsampling video frames to generate video frames of low resolution, a first video coding unit encoding the low-resolution video frames using a first video coding scheme, an upsampler upsampling the frames encoded by the first video coding scheme, an interlayer filter performing interlayer filtering on the upsampled frames, a second video coding unit encoding the video frames using a second video coding scheme by referring the interlayer filtered frames, and a bitstream generator generating a bitstream containing the frames encoded by the first and second video coding schemes.
According to yet another aspect of the present invention, there is provided a video decoding method including extracting frames encoded by first and second video coding schemes from a bitstream, decoding the frames encoded by the first video coding scheme using a first video decoding scheme and reconstructing first layer frames, performing interlayer filtering on the reconstructed first layer frames, and decoding the frames encoded by the second video coding scheme using a second video decoding scheme by referring the interlayer filtered first layer frames and reconstructing second layer frames.
According to yet another aspect of the present invention, there is provided a video decoding method including extracting frames encoded by first and second video coding schemes from a bitstream, decoding the frames encoded by the first video coding scheme using a first video decoding scheme and reconstructing first layer frames, upsampling the reconstructed first layer frames, performing interlayer filtering on the upsampled first layer frames, and decoding the frames encoded by the second video coding scheme using a second video decoding scheme by referring the interlayer filtered first layer frames and reconstructing second layer frames.
According to yet another aspect of the present invention, there is provided a video decoder including a bitstream interpreter extracting frames encoded by first and second video coding schemes from a bitstream, a first video decoding unit decoding the frames encoded by the first video coding scheme by referring a first video decoding scheme and reconstructing first layer frames, an interlayer filter performing interlayer filtering on the reconstructed first layer frames, and a second video decoding unit decoding the frames encoded by the second video coding scheme using a second video decoding scheme by referring the interlayer filtered first layer frames and reconstructing second layer frames.
According to yet another aspect of the present invention, there is provided a video decoder including a video decoder including a bitstream interpreter for extracting frames encoded by first and second video coding schemes from a bitstream, a first video decoding unit for decoding the frames encoded by the first video coding scheme using a first video decoding scheme and reconstructing first layer frames, an upsampler for upsampling the reconstructed first layer frames, an interlayer filter for performing interlayer filtering on the upsampled first layer frames, and a second video decoding unit for decoding the frames encoded by the second video coding scheme using a second video decoding scheme by referring to the interlayer filtered first layer frames and reconstructing second layer frames.
The above and other aspects of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
Aspects of the present invention and methods of accomplishing the same may be understood more readily by reference to the following detailed description of exemplary embodiments and the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the exemplary embodiments set forth herein. Rather, these exemplary embodiments are provided so that this disclosure will be thorough and complete and will fully convey the concept of the invention to those skilled in the art, and the present invention will only be defined by the appended claims. Like reference numerals refer to like elements throughout the specification.
The present invention will now be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. For convenience of explanation, it is assumed that a video encoder has two coding units for two layers.
Referring to
The first coding unit 410 includes a temporal filter 411, a Discrete Cosine Transform (DCT) transformer 412, and a quantizer 413 and encodes a video frame using advanced video coding (AVC).
The temporal filter 411 receives a video frame 400 and removes temporal redundancy that the video frame 400 has with adjacent frames. The temporal filter 411 may use a Motion Compensated Temporal Filtering (MCTF) algorithm to remove temporal redundancy between frames. The MCTF algorithm supporting temporal scalability removes temporal redundancy between adjacent frames. A 5/3 filter is widely used for MCTF. Other temporal filtering algorithms supporting temporal scalability, such as Unconstrained MCTF (UMCTF) or Successive Temporal Approximation and Referencing (STAR), may be used.
The DCT transformer 412 performs DCT on the temporally filtered frame. The DCT is performed for each block of a predetermined size (8*8 or 4*4). The entropy of a block subjected to DCT is reduced compared with that of a block before DCT.
The quantizer 413 quantizes the DCT-transformed frame. In AVC, quantization is determined based on a quantization parameter (Qp). The quantized frame is inserted into a bitstream after being subjected to scanning and entropy coding.
The second video coding unit 420 includes a temporal filter 421, a wavelet transformer 422, and a quantizer 423 and encodes a video frame using wavelet coding.
The temporal filter 421 receives a video frame 400 and removes temporal redundancy that the video frame 400 has with adjacent frames. The temporal filter 421 may use an MCTF algorithm to remove the temporal redundancy between frames. The MCTF algorithm supporting temporal scalability removes temporal redundancy between adjacent frames. Other temporal filtering algorithms supporting temporal scalability, such as UMCTF or STAR, may be used.
The wavelet transformer 422 performs a wavelet transform on the temporally filtered frame on a frame-by-frame basis. The wavelet transform algorithm supporting spatial scalability decomposes a frame into one low-pass subband (LL) and three high-pass subbands (LH, HL, and HH). The LL subband is a quarter size of and an approximation of the original frame before being subjected to wavelet transform. The wavelet transform is again performed to decompose the LL subband into one low-pass subband (LLLL) and three high-pass subbands (LLLH, LLHL, and LLHH). The LLLL subband is a quarter size of and an approximation of the LL subband. A 9/7 filter is commonly used for the wavelet transform.
The quantizer 423 quantizes the wavelet-transformed frame. The quantization is performed using an embedded quantization algorithm such as Embedded ZeroTrees Wavelet (EZW), Set Partitioning in Hierarchical Trees (SPIHT), Embedded ZeroBlock Coding (EZBC), or Embedded Block Coding with Optimized Truncation (EBCOT) offering Signal-to-Noise Ratio (SNR) scalability.
The temporal filter 421 removes temporal redundancy that exists in the video frame 400 using adjacent frames or the frame encoded by the first video coding unit 410 as a reference. Block-based DCT, performed before quantization, may cause block artifacts, which degrade the efficiency of wavelet coding performed by the second video coding unit 420. That is, a frame having block artifacts may degrade the wavelet coding efficiency since block artifacts such as noise propagate across the entire frame when the frame is subjected to a wavelet transform.
Thus, the video encoder of
The interlayer filter 440 performs filtering on a frame encoded by DCT-based AVC coding such that it can be suitably used as a reference for wavelet coding. To accomplish this, the interlayer filter downsamples the AVC-coded frame with an MPEG (or other) filter after upsampling the same with a wavelet filter; however, this is merely exemplary. Rather, a downsampling filter in the interlayer filter 440 may be a low-pass filter showing a steep gradient at a cut-off frequency. The interlayer filter 440 may be any single or plurality of filters designed such that the frame subjected to interlayer filtering can be suitably used as a reference by the second video coding unit 420.
The bitstream generator 430 generates a bitstream containing an AVC-coded frame 431, a wavelet-coded frame 432, motion vectors, and other necessary information.
Referring to
The first video coding unit 510 includes a temporal filter 511, a DCT transformer 512, and a quantizer 513 and encodes the low-resolution video frame using AVC coding.
The temporal filter 511 receives the low-resolution video frame and removes temporal redundancy that the low-resolution frame has with adjacent low-resolution frames. The temporal filter 511 uses an MCTF algorithm, which supports temporal scalability, to remove temporal redundancy between low-resolution frames. A 5/3 filter is widely used for MCTF, but other temporal filtering algorithms supporting temporal scalability such as UMCTF or STAR may be used.
The DCT transformer 512 performs DCT on the temporally filtered frame. The DCT is performed for each block of a predetermined size (8*8 or 4*4). The entropy of a block subjected to DCT is reduced compared with that of a block before DCT.
The quantizer 513 quantizes the DCT-transformed frame. In AVC, quantization is determined based on a quantization parameter (Qp). The quantized frame is inserted into a bitstream after being subjected to reordering and entropy coding.
The upsampler 550 upsamples the AVC-coded frame to the resolution of the frame 500.
The interlayer filter 540 performs filtering in such a manner that an upsampled version of a frame can be suitably used as a reference for wavelet coding. In an exemplary embodiment of the present invention, the upsampled version of the frame may be upsampled with a wavelet filter, followed by downsampling using an MPEG filter; however, this is merely exemplary. Rather, a downsampling filter in the interlayer filter 540 may be a low-pass filter showing a steep gradient at a cut-off frequency. The interlayer filter 540 may be any single or plurality of filters designed such that the frame subjected to interlayer filtering can be suitably used as a reference by the second video coding unit 520.
The second video coding unit 520 includes a temporal filter 521, a wavelet transformer 522, and a quantizer 523, and it encodes a video frame using wavelet coding.
The temporal filter 521 receives the video frame 500 and removes temporal redundancy that the video frame 500 has with adjacent frames. In an exemplary embodiment of the present invention, the temporal filter 521 uses an MCTF algorithm to remove temporal redundancy between low-resolution frames. The MCTF algorithm supporting temporal scalability removes temporal redundancy between adjacent low-resolution frames. Other temporal filtering algorithms supporting temporal scalability such as UMCTF or STAR may be used.
The wavelet transformer 522 performs a wavelet transform on the temporally filtered frame. Unlike the DCT transform that is performed in units of blocks, the wavelet transform is performed in units of frames. The wavelet transform algorithm supporting spatial scalability decomposes a frame into one low-pass subband (LL) and three high-pass subbands (LH, HL, and HH). The LL subband is a quarter of the size of and an approximation of the original frame before being subjected to wavelet transform. The wavelet transform is again performed to decompose the LL subband into one low-pass subband (LLLL) and three high-pass subbands (LLLH, LLHL, and LLHH). The LLLL subband is a quarter of the size of and an approximation of the LL subband. A 9/7 filter is commonly used for the wavelet transform.
The quantizer 523 quantizes the wavelet-transformed frame. The quantization may be an embedded quantization algorithm, which provides SNR scalability, such as EZW, SPIHT, EZBC, or EBCOT.
The temporal filter 521 removes temporal redundancy that exists in the video frame 500 using adjacent frames or the frame encoded by the first video coding unit 510 as a reference. The frame encoded by the first video coding unit is upsampled and subjected to interlayer filtering before being sent to the temporal filter 521.
The bitstream generator 530 generates a bitstream containing an AVC-coded frame 531, a wavelet-coded frame 532, motion vectors, and other necessary information.
The temporal filter will be described in greater detail with reference to
While
The temporal filter 600 removes temporal redundancy between video frames using MCTF on a group-of-picture (GOP)-by-GOP basis. To accomplish this function, the temporal filter 600 includes a prediction frame generator 610 for generating a prediction frame, a prediction frame smoother 620 for smoothing the prediction frame, a residual frame generator 630 for generating a residual frame by comparing a smoothed prediction frame with a video frame, and an updater 640 for updating the video frame using the residual frame.
The prediction frame generator 610 generates a prediction frame that will be compared with a video frame in order to generate a residual frame using video frames adjacent to the video frame and a frame subjected to interlayer filtering as a reference. The prediction frame generator 610 finds a matching block for each block in the video frame within reference frames (adjacent video frames and a frame subjected to interlayer filtering) (interceding) or within another block in the video frame (intracoding).
The frame prediction smoother 620 smoothes a prediction frame since blocking artifacts are introduced at block boundaries in the prediction frame made up of blocks corresponding to blocks in the video frame. To accomplish this, the prediction frame smoother 620 may perform de-blocking on pixels at block boundaries in the prediction frame. Since a de-blocking algorithm is commonly used in the H.264 video coding scheme and is well known in the art, a detailed explanation thereof will not be given.
The residual frame generator 630 compares the smoothed prediction frame with the video frame and generates a residual frame in which temporal redundancy has been removed.
The updater 640 uses the residual frame to update other video frames. The updated video frames are then provided to the prediction frame generator 610.
For example, when each GOP consists of eight video frames, the temporal filter 600 removes temporal redundancy in frames 1, 3, 5, and 7 to generate residual frames 1, 3, 5, and 7, respectively. The residual frames 1, 3, 5, and 7 are used to update frames 0, 2, 4, and 6. The temporal filter 600 removes the temporal redundancy from updated frames 2 and 6 to generate residual frames 2 and 6. The residual frames 2 and 6 are used to update frames 0 and 4. Then, the temporal filter 600 removes temporal redundancy in the updated frame 4 to generate a residual frame 4. The residual frame 4 is used to update the frame 0. Through the above process, the temporal filter 600 performs temporal filtering on the eight video frames to obtain one low-pass frame (updated frame 0) and seven high-pass frames (residual frames 1 through 7).
A video coding process and a temporal filtering will be described with reference to
Referring first to
In step S720, the video encoder encodes the input video frame using AVC coding. In the present exemplary embodiment, a first layer is encoded using AVC coding because the AVC coding offers the highest coding efficiency currently available. However, the first layer may be encoded using another video coding algorithm.
After the first layer is encoded, in step S730 the video encoder performs interlayer filtering on the AVC-coded frame so that it can be suitably used as a reference for encoding a second layer. The interlayer filtering involves upsampling the AVC-coded frame using a wavelet filter and downsampling an upsampled version of AVC-coded frame using an MPEG filter.
Following the interlayer filtering, in step S740 the video encoder performs wavelet coding on the video frame using the frame subjected to interlayer filtering as a reference.
After the wavelet coding is finished, in step S750 the video encoder generates a bitstream containing the AVC-coded frame and the wavelet-coded frame. When the first and second layers have different resolutions, the video encoder uses a low-resolution frame obtained by downsampling the input video frame during the AVC coding. After the AVC coding is finished, the video encoder changes the resolution of the AVC-coded frame. For example, when the resolution of the first layer is lower than that of the second layer, the video encoder upsamples the AVC-coded frame to the resolution of the second layer. Then, the video encoder performs interlayer filtering on the upsampled version of the AVC-coded frame.
Referring to
In step S820, upon receipt of the video frame and the frame subjected to interlayer filtering, the second video coding unit performs motion estimation in order to generate a prediction frame that will be used in removing temporal redundancy in the video frame. Various well-known algorithms such as Block Matching and Hierarchical Variable Size Block Matching (HVSBM) may be used for motion estimation.
In step S830, after performing the motion estimation, the second video coding unit uses motion vectors obtained as a result of the motion estimation to generate the prediction frame.
In step S840, the second video coding unit smoothes the prediction frame in order to reduce block artifacts in a residual frame. This is because an apparent block boundary degrades the coding efficiency during wavelet transform and quantization.
In step S850, the second video coding unit compares the prediction frame with the video frame to generate a residual frame. The residual frame corresponds to a high-pass frame (H frame) generated through MCTF.
In step S860, a temporal filter uses a residual frame to update another video frame. An updated version of the video frame corresponds to a low-pass frame (L frame).
After an L frame and H frame are generated on a GOP basis through steps S820 through S860, the second video coding unit performs wavelet transform on the temporally filtered frames (L and H frames) in step S870. While a 9/7 filter is commonly used for wavelet transform, an 11/9 or 13/11 filter may also be used.
In step S880, the second video coding unit quantizes the wavelet-transformed frames using EZW, SPIHT, EZBC, or EBCOT.
Next, a video decoder and a decoding process will be described. While the decoding process is basically performed in reverse order to the encoding process, layers are encoded and decoded in the same order. For example, when a video encoder sequentially encodes first and second layers, a video decoder decodes the first and second layers in the same order. For convenience of explanation, it is assumed that a video frame is reconstructed from a bitstream having two layers.
Referring to
The bitstream interpreter 900 interprets an input bitstream and extracts frames encoded by a first video coding and frames encoded by second video coding. The frames encoded by the first video coding are then provided to the first video decoding unit 910 while the frames encoded by the second video coding are provided to the second video decoding unit 920.
The first video decoding unit 910 includes an inverse quantizer 911, an inverse DCT transformer 912, and an inverse temporal filter 913. The inverse quantizer 911 inversely quantizes the frames encoded by the first video coding. The inverse quantization may involve entropy decoding, inverse scanning, and a process of reconstructing DCT-transformed frames using a quantization table.
The inverse DCT transformer 912 performs an inverse DCT transform on the inversely quantized frames.
The inverse temporal filter 913 reconstructs first layer video frames from the inversely DCT-transformed frames and outputs a decoded frame (931). The reconstructed first layer video frames are obtained by encoding original video frames at a low bit-rate and decoding the encoded frames.
The interlayer filter 940 performs interlayer filtering on the reconstructed first layer frame. The interlayer filtering may be performed using a deblocking algorithm.
The second video decoding unit 920 includes an inverse quantizer 921, an inverse wavelet transformer 922, and an inverse temporal filter 923.
The inverse quantizer 921 applies inverse quantization to the frames encoded by the second video coding. The inverse quantization may involve entropy decoding, inverse scanning, and a process of reconstructing wavelet-transformed frames using a quantization table.
The inverse wavelet transformer 922 performs an inverse wavelet transform on the inversely quantized frames.
The inverse temporal filter 923 reconstructs second layer video frames from the inversely wavelet-transformed frames using frames subjected to the interlayer filtering as a reference and outputs a decoded frame (932). The reconstructed second layer video frames are obtained by encoding original video frames at a high bit-rate and decoding the encoded frames.
The bitstream interpreter 1000 interprets an input bitstream and extracts frames encoded by a first video coding and frames encoded by second video coding. The frames encoded by the first video coding have lower resolution than those encoded by the second video coding. The former is then provided to the first video decoding unit 1010 while the latter is provided to the second video decoding unit 1020.
The first video decoding unit 1010 includes an inverse quantizer 1011, an inverse DCT transformer 1012, and an inverse temporal filter 1013.
The inverse quantizer 1011 inversely quantizes the frames encoded by the first video coding. The inverse quantization may involve entropy decoding, inverse scanning, and a process of reconstructing DCT-transformed frames using a quantization table.
The inverse DCT transformer 1012 performs an inverse DCT transform on the inversely quantized frames.
The inverse temporal filter 1013 reconstructs first layer video frames from the inversely DCT-transformed frames and outputs a decoded frame (1031). The reconstructed first layer video frame is obtained by downsampling and encoding an original video frame and decoding the encoded frame.
The upsampler 1050 upsamples the first layer frame to the resolution of a reconstructed second layer frame.
The interlayer filter 1040 performs interlayer filtering on an upsampled version of the first layer frame. The interlayer filtering may be performed using a de-blocking algorithm.
The second video decoding unit 1020 includes an inverse quantizer 1021, an inverse wavelet transformer 1022, and an inverse temporal filter 1023.
The inverse quantizer 1021 inversely quantizes the frames encoded by the second video coding. The inverse quantization may involve entropy decoding, inverse scanning, and a process of reconstructing wavelet-transformed frames using a quantization table.
The inverse wavelet transformer 1022 performs an inverse wavelet transform on the inversely quantized frames.
The inverse temporal filter 1023 reconstructs second layer video frames from the inversely wavelet-transformed frames using frames that have been subjected to the interlayer filtering as a reference and outputs a decoded frame (1032). The reconstructed second layer video frames are obtained by encoding original video frames and decoding the encoded frames.
While
The inverse temporal filter 1100 reconstructs video frames from inversely wavelet-transformed frames on a GOP-by-GOP basis using MCTF. The inversely wavelet-transformed frames fed into the inverse temporal filter 1100 consist of low- and high-pass frames in which temporal redundancies have been removed during video coding. For example, when each GOP is made up of eight frames, the inversely wavelet-transformed frames may include one low-pass frame (updated frame 0) and seven high-pass frames (residual frames 1 through 7) obtained as a result of video coding.
To accomplish this function, the inverse temporal filter 1100 includes an inverse updater 1110, a prediction frame generator 1120, a prediction frame smoother 1130, and a frame reconstructor 1140.
The inverse updater 1110 updates the inversely wavelet-transformed frames in the reverse order that video coding is performed.
The prediction frame generator 1120 generates a prediction frame that will be used in reconstructing a low-pass frame or video frame from a residual frame using an interlayer filtered frame.
The prediction frame smoother 1130 smoothes a prediction frame.
The frame reconstructor 1140 reconstructs a low-pass frame or video frame from a high-pass frame using a smoothed prediction frame.
For example, when each GOP is made up of eight video frames, the inverse temporal filter 1100 uses residual frame 4 and interlayer filtered frame 0 to inversely update a low-pass frame 0.
Then, the low-pass frame 0 is used to generate a prediction frame for the residual frame 4, and the prediction frame is used to obtain low-pass frame 4 from the residual frame 4.
Then, the inverse temporal filter 1100 uses residual frames 2 and 6 and interlayer filtered frames 0 and 4 to inversely update low-pass frames 0 and 4, and then uses the low-pass frames 0 and 4 and interlayer filtered frames 2 and 6 to generate prediction frames for the residual frames 2 and 6. The prediction frames are then used to obtain low-pass frames 2 and 6 from the residual frames 2 and 6.
Subsequently, the inverse temporal filter 1100 uses residual frames 1, 3, 5, and 7 and interlayer filtered frames 0, 2, 4, and 6 to inversely update the low-pass frames 0, 2, 4, and 6, thereby reconstructing video frames 0, 2, 4, and 6.
Lastly, the inverse temporal filter 1100 uses the reconstructed frames 0, 2, 4, and 6 and inter-layer filtered frames 1, 3, 5, and 7 to generate prediction frames for the residual frames 1, 3, 5, and 7. The prediction frames are then used to reconstruct video frames 1, 3, 5, and 7.
A video decoding process will now be described with reference to
In step S1210, a video decoder receives a bitstream and extracts frames encoded by a first video coding and frames encoded by a second video coding. For example, the first and second video coding schemes may be AVC coding and wavelet coding, respectively.
In step S1220, the video decoder performs AVC decoding on the extracted AVC-coded frames.
In step S1230, the video decoder performs interlayer filtering on the frames decoded by the AVC decoding.
In step S1240, the video decoder performs wavelet decoding on the wavelet-coded frames by referring to the interlayer filtered frames.
In step S1250, after wavelet decoding is finished, the video decoder uses reconstructed video frames to generate a video signal. That is, the video decoder converts luminance (Y) and chrominance (UV) color components of a reconstructed pixel into red (R), green (G), and blue (B) color components.
Referring to
In step S1320, the inverse temporal filter uses a high-pass frame among the inversely wavelet-transformed frames and an interlayer filtered frame to inversely update a low-pass frame.
In step S1330, the inverse temporal filter uses an inversely updated low-pass frame and an inter layer filtered frame to generate a prediction frame.
In step S1340, the inverse temporal filter smoothes the prediction frame.
In step S1350, after smoothing of the prediction frame is finished, the inverse temporal filter uses the smoothed prediction frame and a high-pass frame to reconstruct a low-pass frame or a video frame.
The present invention provides multi-layer video coding and decoding methods employing a plurality of video coding algorithms that can improve the coding efficiency using interlayer filtering.
In particular, the present invention can prevent the degradation of coding efficiency that may occur when a video coding scheme with a block-based transform algorithm and a video coding scheme with a frame-based transform algorithm are used together.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, 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 invention as defined by the following claims. For example, while a video encoder that employs an AVC coding method and a wavelet coding method has been described, the video encoder may employ other coding methods. Therefore, the disclosed exemplary embodiments of the invention are used in a generic and descriptive sense only and not for purposes of limitation.
Number | Date | Country | Kind |
---|---|---|---|
10-2004-0094597 | Nov 2004 | KR | national |
This application claims priority from Korean Patent a Application No. 10-2004-0094597 filed on Nov. 18, 2004 in the Korean Intellectual Property Office, and U.S. Provisional Patent Application No. 60/619,023 filed on Oct. 18, 2004 in the United States Patent and Trademark Office, the disclosures of which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
60619023 | Oct 2004 | US |