WO2002001848A2 - System and method for reducing the computational complexity of mpeg video decoding - Google Patents
System and method for reducing the computational complexity of mpeg video decoding Download PDFInfo
- Publication number
- WO2002001848A2 WO2002001848A2 PCT/US2001/020661 US0120661W WO0201848A2 WO 2002001848 A2 WO2002001848 A2 WO 2002001848A2 US 0120661 W US0120661 W US 0120661W WO 0201848 A2 WO0201848 A2 WO 0201848A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- video
- block
- frame
- decoded
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
Definitions
- the present invention generally relates to MPEG video decoders and, more particularly, to a system and corresponding algorithm for reducing the complexity and time associated with decoding MPEG video signals.
- a sequence is comprised of a series of video frames. Each video frame in the sequence is subdivided into a number of rectangular information blocks, each containing a pixel portion of the image. These information blocks are referred to as macroblocks.
- the pixel portions of the image are represented by a series of bits of data.
- the data bits are encoded in a particular fashion.
- the encoded bitstream contains compressed information based on encoding each macroblock of an image.
- An MPEG decoder is used to decode each of the compressed macroblocks in the MPEG encoded bitstream based on previously transmitted and decoded video frames, called reference frames.
- each decoded macroblock refers to one or more image regions in a previously transmitted reference frame to use as a prediction source for decoding the current frame.
- the displacement between the macroblock and the image regions of interest is called a motion vector.
- the displacement motion vectors are computed with half pixel resolution, referred to as half-pel prediction.
- the motion vectors represent displacement on a half-pel grid.
- motion vectors in MPEG are computed with half pixel (half-pel) resolution.
- the displacement in the corresponding decoded block is the entire pixel displacement value as provided in the reference frame. Consequently, prediction of the corresponding macroblock in the decoded frame does not have to be computed.
- the prediction macroblock is reconstructed by taking the average of all the surrounding pixels.
- the present invention is directed to a digital video system which incorporates an algorithm that adjusts the motion vector used to decode a corresponding macroblock of a digital video frame based on a subset of information contained in an encoded input video signal.
- the digital video system comprises means for providing an input signal, said input signal including a plurality of encoded macroblocks; means for constructing a plurality of decoded macroblocks in response to a subset of data present in said plurality of encoded macroblocks; and means for providing an output signal in response to said plurality of decoded macroblocks.
- the video system further includes a means for displaying the constructed video signal.
- the constructing means is a decoder present within a larger digital video disk player which constructs a decoded video frame from an encoded reference frame by retrieving a motion vector from the reference frame; determining whether the block of the reference frame is of a particular type; constructing a modified motion vector from a subset of data contained within the reference frame; and applying the modified motion vector to a corresponding block within the reference frame.
- the algorithm performed by the decoder is most advantageously used in conjunction with motion vectors containing an odd number of half-pels, wherein the motion vector provided by the decoder is comprised of horizontal components and vertical components having values equal to the nearest even half-pel value of the corresponding reference value.
- An advantage of the present invention is that it improves video decoding efficiency by reducing the number of calculations that need to be performed on a given frame.
- Another advantage of the present invention is that it is straightforward to implement.
- a feature of the present invention is that it has minimal effect on video image quality.
- Figures 1(a) - (c) are schematic representations of the calculations made to determine the motion vector components of a half-pel using conventional decoding techniques
- Figure 2 is a schematic representation of the structure of a video frame
- Figures 3(a) - (c) are schematic representations of the types of macroblocks that comprise a video frame
- Figure 4 is a block diagram of a digital video disk player incorporating a decoder module that performs the improved computation algorithm according to the present invention
- Figure 5 is a flow chart illustrating the operating steps performed by the decoder module in decoding a macroblock according to the improved computation algorithm of the present invention
- Figures 6(a) - (b) are schematic representations of a macroblock being constructed using the motion vector calculated according to the improved computation algorithm of the present invention.
- a digital image is comprised of a series of frames.
- the types of frames that make up the video image are illustrated in Figure 2.
- a video sequence is comprised of an I-frame 20, a number of B-frames 22 and a P-frame 24.
- I-frames also referred to as an intra-frame is a type of video frame that is encoded as a stand alone still image. I-frames allow random access points within the video stream. In application, I-frames are used where scene cuts occur.
- B-frames or bi- directional frames, provide the most compression and decrease noise by averaging the pixel information contained in the frames that are used to decode (or predict) the contents of the B-frame.
- P-frames, or predicted frames are frames that are encoded relative to the nearest I-frame or P-frame, resulting in forward prediction processing.
- the I-frame 20, B-frame 22 and P-frame 24 can be encoded using any one of several types (i.e. Huffman) of encoding schemes.
- the data (pixel representation) of the B-frame to be decoded is predicted by a preceding I-frame or P-frame and a subsequent I-frame or P-frame.
- the pixel data of B-frame 22 is decoded by the data contained within the preceding I-frame 20 and a subsequent P-frame 24.
- the same decoding scheme may be applied to decode the contents of the second B-frame
- B-frame 23 in the frame series The content of B-frame 23 is decoded by using the I-frame 20 and the subsequent P-frame 24.
- the I-frame 20, alone can be used to decode P-frame 24.
- the P-frame 24 also can be used to decode either B-frame 23, B-frame 25 or a subsequent P-frame (not shown).
- the B-frame is not used to decode (predict the contents of) any other video frame.
- the P-frame 24 is a fixed reference frame.
- each video frame is comprised of a series of blocks, referred to as macroblocks.
- Each macroblock is comprised of a luminance component and two chrominance components, referred to as U and V, respectively.
- Macroblocks contain a series of pixels (represented as dots in Figure 3(c)) which represent a larger image.
- each pixel is comprised of a series of bits of information, represented as where N is an integer. In a preferred embodiment of the present invention, N equals 8.
- each pixel is comprised of 8 bit of data.
- each macroblock is 16 pixels x 16 pixels in size.
- the luminance component of each macroblock contains 16 x 16 x 8 bits of information.
- the chrominance components of the macroblock contain two corresponding 8 x 8 x 8 bit blocks of information corresponding to the U and V portions, respectively.
- the decoding of the pixel information contained in a current macroblock, for example, current macroblock 32 is a combination of the changes present in a corresponding reference macroblock 32', plus the displacement of the reference macroblock 32' from a standard reference location.
- the displacement of the reference macroblock 32' from the standard reference location is referred to as the motion vector (V m ).
- V m is comprised of two components: (1) the distance along the horizontal direction (x-axis) from the standard reference location (x-component or Vmx); and (2) the distance along the vertical direction (y-axis) from the standard reference location (y-component or V my ).
- the reference macroblock 32' as shown in Figure 3(a), consists of information from a plurality of macroblocks that are determined during frame encoding and the corresponding V m which provides the displacement of the reference macroblock 32' from the corner of the reference frame.
- Vmx and V may either have an integer value or a non-integer value measured on a pel unit scale.
- integer values of components results in an even half-pel component and fractional values of components results in an odd half-pel component.
- Half-pel reference motion vectors require additional calculations before a corresponding V m can be obtained.
- the average displacement of that pixel from the reference pixel location requires the calculation of the displacement from all four surrounding pixel locations as illustrated in Figure 1(c).
- the present invention is directed to a motion vector computation method which reduces the number of calculations that have to be performed when computing V m when the reference displacement vector is a half-pel.
- the computed V m is then used to generate a corresponding decoded macroblock.
- the computation method will now be described with reference to Figures 4-6.
- FIG 4 is a block diagram of a digital versatile disk (DVD) player 40 that performs the improved computation algorithm according to the present invention.
- the DVD player 40 includes a navigation unit 42 and a corresponding video unit 44 which provides an output video signal to a display device 48 on line 47.
- the display device 48 is a progressive display device, such as a computer monitor.
- the display device 48 is an interlaced display device.
- the video unit 44 includes a video decoder module 45 and a video display module 46.
- the decoder module 45 decodes (constructs) the input video signal provided by the navigation unit 42 according to the improved computation algorithm according to the present invention.
- the navigation unit 42 accepts a digital media element such as, for example, a digital versatile disk 11 having digital information, i.e., audio, video and complementary information stored thereon.
- the navigation unit 42 is capable of differentiating between the different types of information stored on the disk 11 and providing the encoded video information on a first data line (VIDEO).
- the audio and other complementary information stored on the disk 11 are provided on an AUDIO line and a COMP line, respectively.
- the encoded video information present on the VIDEO line is transferred to the video unit 44 through the video decoder module 45.
- the video decoder module 45 receives the encoded video bit stream from the navigation unit 42 and reconstructs the I-frames and P-frames of the reference frame 32' ( Figure 3). Using the I-frame 20 and the P-frame 24, and the reference motion vector (V m ') from the reference frame 32', the individual macroblocks of the B-frame 22 are decoded by the video decoder module 45 based on the following representative algorithm: For each macroblock in the image
- ⁇ mv_x mx_x & ⁇ 1 ; ⁇ if(chrominance_block)
- the video decoder module 45 generates a modified motion vector (V m ) for each macroblock based on a subset of the displacement data (horizontal (x) and vertical (y) components of the motion vector) present in the reference motion vector V m '. After generating the motion vector for the current macroblock being decoded, such motion vector is used to obtain the decoded macroblock to provide a modified (decoded) video signal. The modified video signal is then transferred to the video display module 46 on line 43.
- the video display module 46 includes a detection unit (not shown) and a processing unit (not shown) which are capable of detecting the modified video signal provided by the video decoder module 45 and converting the modified video signal into the output video signal that is transferred to the computer monitor 48 on line 47.
- FIG. 5 is a flow chart illustrating the improved computation algorithm according to the present invention.
- a first step 60 the horizontal (x-component) and vertical (y-component) components of the reference motion vector are obtained.
- step 62 a determination is made as to whether the current macroblock to be decoded is within a B-frame. This is done by detecting whether the picture coding type present in the reference frame is bi-directional type. This can be accomplished, for example, by detecting the presence of a flag bit preceding, within, of subsequent to the data bits that comprise the current macroblock.
- step 68 control is passed to step 68 where conventional motion compensation is performed on the macroblock using the reference motion vector.
- the computation algorithm employed by the present invention is only used on B-frames. The reason for applying the computation algorithm only to B-frames is that they are not reference frames used for later decoding.
- the I-frames and P-frames are reference frames and are only used to decode B-frames.
- step 64 a determination is made as to whether the current block is the luminance portion of the block.
- the luminance portion of the block includes data representative of the brightness of the corresponding image.
- control is then passed to step 65 where the horizontal displacement (Vmx) of the modified motion vector is approximated to be the nearest even number integer to that provided by the reference motion vector on a half-pel basis.
- Vmx the horizontal displacement of the reference motion vector
- the algorithm of the present invention approximates V mx to have a value of 8 or 10.
- the vertical displacement, V my retains its current value as provided by the reference motion vector.
- no approximation is performed on the y-component (or vertical displacement) of the reference motion vector.
- the additional computation steps that are performed in conventional decoding schemes to determine the horizontal displacement of the current motion vector are eliminated. This results in increased decoding speed.
- motion compensation is performed on the current macroblock in step 68 where the modified motion vector is applied to the current macroblock to place the current macroblock in the correct position with respect to the frame being decoded.
- the current portion of the block being decoded is not a luminance portion, then the current portion is the chrominance portion of the macroblock and the decoder module of the present invention approximates the horizontal displacement (x- component) and the vertical displacement (y-component) of the current motion vector to have a value equal to the nearest lowest or highest integer of the corresponding values in the reference motion vector in step 66. More specifically, if the horizontal displacement of the reference motion vector has a value of 9, the algorithm of the present invention approximates V mx to have a value of 8 or 10, the nearest integers. Correspondingly, if the vertical displacement of the reference motion vector has a value of 7, the algorithm of the present invention approximates V my to have a value of
- step 66 After the motion vector of the current macroblock has been calculated in step 66, standard motion compensation is then performed to recover the pixel data from the macroblock in step 68 using the V m calculated in step 66 as shown in Figure 6.
- the currently decoded frame 60' (Fig. 6(b)) contains the same pixel information contained in the reference frame 60 (Fig. 6(a)), shifted by the amount of the motion vector V m .
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2001273059A AU2001273059A1 (en) | 2000-06-27 | 2001-06-27 | System and method for reducing the computational complexity of mpeg video decoding |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60509200A | 2000-06-27 | 2000-06-27 | |
US09/605,092 | 2000-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2002001848A2 true WO2002001848A2 (en) | 2002-01-03 |
WO2002001848A3 WO2002001848A3 (en) | 2002-04-11 |
Family
ID=24422222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/020661 WO2002001848A2 (en) | 2000-06-27 | 2001-06-27 | System and method for reducing the computational complexity of mpeg video decoding |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2001273059A1 (en) |
TW (1) | TW535441B (en) |
WO (1) | WO2002001848A2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317397A (en) * | 1991-05-31 | 1994-05-31 | Kabushiki Kaisha Toshiba | Predictive coding using spatial-temporal filtering and plural motion vectors |
US5510834A (en) * | 1992-04-13 | 1996-04-23 | Dv Sweden Ab | Method for adaptive estimation of unwanted global picture instabilities in picture sequences in digital video signals |
-
2001
- 2001-06-27 WO PCT/US2001/020661 patent/WO2002001848A2/en active Application Filing
- 2001-06-27 AU AU2001273059A patent/AU2001273059A1/en not_active Abandoned
- 2001-06-27 TW TW90115525A patent/TW535441B/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317397A (en) * | 1991-05-31 | 1994-05-31 | Kabushiki Kaisha Toshiba | Predictive coding using spatial-temporal filtering and plural motion vectors |
US5510834A (en) * | 1992-04-13 | 1996-04-23 | Dv Sweden Ab | Method for adaptive estimation of unwanted global picture instabilities in picture sequences in digital video signals |
Also Published As
Publication number | Publication date |
---|---|
TW535441B (en) | 2003-06-01 |
WO2002001848A3 (en) | 2002-04-11 |
AU2001273059A1 (en) | 2002-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8358701B2 (en) | Switching decode resolution during video decoding | |
EP1528813B1 (en) | Improved video coding using adaptive coding of block parameters for coded/uncoded blocks | |
US8385427B2 (en) | Reduced resolution video decode | |
US6301304B1 (en) | Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders | |
US6415055B1 (en) | Moving image encoding method and apparatus, and moving image decoding method and apparatus | |
JP3302939B2 (en) | Video signal decompressor for independently compressed even and odd field data | |
US20060072673A1 (en) | Decoding variable coded resolution video with native range/resolution post-processing operation | |
US5739862A (en) | Reverse playback of MPEG video | |
JP2003304542A (en) | Video signal decompression apparatus | |
JP4875007B2 (en) | Moving picture coding apparatus, moving picture coding method, and moving picture decoding apparatus | |
JPH09224254A (en) | Device and method for estimating motion | |
US20020150159A1 (en) | Decoding system and method for proper interpolation for motion compensation | |
KR100260475B1 (en) | Methods and devices for encoding and decoding frame signals and recording medium therefor | |
US5991445A (en) | Image processing apparatus | |
JPH09200695A (en) | Method and device for decoding video data for high-speed reproduction | |
US7116718B2 (en) | Unified memory address generation system and method for fetching and storing MPEG video data | |
JP3078991B2 (en) | Low delay mode image decoding method and apparatus | |
JP2003333540A (en) | Frame rate converting apparatus, video display apparatus using the same, and a television broadcast receiving apparatus | |
US6556714B2 (en) | Signal processing apparatus and method | |
JP2006246277A (en) | Re-encoding apparatus, re-encoding method, and re-encoding program | |
JP3061125B2 (en) | MPEG image reproducing apparatus and MPEG image reproducing method | |
JPH0795536A (en) | Device and method for reversely reproducing moving image | |
WO2002001848A2 (en) | System and method for reducing the computational complexity of mpeg video decoding | |
KR100636465B1 (en) | Data processing device and data processing method | |
JPH1032826A (en) | Animation image processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase in: |
Ref country code: JP |