US7515637B2 - Video decoding for motion compensation with weighted prediction - Google Patents
Video decoding for motion compensation with weighted prediction Download PDFInfo
- Publication number
- US7515637B2 US7515637B2 US10/974,179 US97417904A US7515637B2 US 7515637 B2 US7515637 B2 US 7515637B2 US 97417904 A US97417904 A US 97417904A US 7515637 B2 US7515637 B2 US 7515637B2
- Authority
- US
- United States
- Prior art keywords
- prediction
- chip
- look
- prediction weight
- video stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- 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/136—Incoming video signal characteristics or properties
-
- 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/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/176—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 block, e.g. a macroblock
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- an exemplary video stream may be encoded on a frame-by-frame basis, and each frame may be encoded on a macroblock-by-macroblock basis.
- the MPEG-4 video compression standard may be utilized to encode video information on a macroblock-by-macroblock basis.
- the MPEG-4 standard specifies the use of spatial prediction, temporal prediction, discrete cosine transformation (DCT), interlaced coding, and lossless entropy coding to compress macroblocks within a video stream.
- Spatial prediction techniques may be utilized during decoding to estimate pixels based on neighboring pixels. For example, pixels in a current macroblock may be estimated utilizing spatial prediction from pixels within a neighboring macroblock to the top and/or to the left of the current macroblock.
- Temporal prediction techniques may also be utilized during decoding of an elementary video stream to estimate pixels in a current macroblock based on pixels in different previous or subsequent frames and/or reference pictures.
- explicit and/or implicit prediction data may be utilized to decode temporally predicted pixels within an elementary video stream.
- a conventional decoder utilizes separate hardware blocks, including separate memories, to implement temporal prediction of video information based on explicit and implicit prediction data.
- explicit prediction data which may be encoded directly in the elementary video stream, may be acquired from the video stream and communicated to different processing blocks within the decoder for further processing.
- the utilization of separate hardware processing blocks within a conventional decoder to acquire or generate prediction data and process the acquired or generated prediction data separately to predict each encoded pixel results in a significant increase in the processing time necessary for decoding an elementary video stream and, therefore, a decrease in the efficiency of the video decoder.
- Certain embodiments of the invention may be found in a method and system for processing pixels within an encoded video stream. Aspects of the method may comprise acquiring on a chip, a prediction weight type from the encoded video stream. Prediction weight data for at least one prediction pixel within the encoded video stream may be acquired based on the prediction weight type. A look-up table entry in a look-up table may be generated for the prediction pixel utilizing the prediction weight data. A plurality of current pixels within the encoded video stream may be estimated utilizing the look-up table entry.
- the prediction weight type may correspond to a plurality of reference pictures within the encoded video stream.
- a prediction weight value, offset value and motion vector data for the prediction pixel may be acquired on the chip, if the prediction weight type comprises an explicit prediction weight type.
- the look-up table entry may be generated on the chip utilizing the prediction weight value and offset value for the prediction pixel.
- the generated look-up table entry may correspond to a luminance and/or chrominance components of the prediction pixel.
- the look-up table entry may be indexed utilizing the motion vector data.
- the current pixels may be estimated utilizing the indexed look-up table entry.
- the acquired motion vector data, prediction weight value and offset value may be stripped off from the encoded video stream.
- prediction weight type comprises an implicit prediction weight type
- motion vector data for the prediction pixel may be acquired.
- a prediction weight value for the prediction pixel may then be generated, where the prediction weight value may be based on a temporal distance between pixels within the encoded video stream.
- the look-up table entry may be generated on the chip utilizing the prediction weight value.
- the current pixels may be estimated utilizing the generated look-up table entry.
- Another aspect of the method may comprise receiving the encoded video stream and acquiring prediction data from the received encoded video stream.
- a table may be generated during the acquiring of the prediction data based on the acquired prediction data for estimating a current pixel based on a previous pixel and a subsequent pixel. The generated table may be updated for a plurality of frames. If the acquired data comprises explicit prediction data, prediction weight information, offset and motion vector information may be acquired from the encoded video stream. If the acquired data comprises implicit prediction data, motion vector information may be acquired from the encoded video stream. Prediction weight information corresponding to the acquired motion vector information may be generated based on temporal distances between pixels in a current frame and a reference frame.
- Another embodiment of the invention may provide a machine-readable storage, having stored thereon, a computer program having at least one code section executable by a machine, thereby causing the machine to perform the steps as described above for processing pixels within an encoded video stream.
- aspects of the system may comprise at least one processor that acquires on a chip, prediction weight type from encoded video stream.
- Prediction weight data for a prediction pixel within the encoded video stream may be acquired by the processor based on the prediction weight type.
- a look-up table entry in a look-up table may be generated by the processor for the prediction pixel utilizing the prediction weight data.
- a current pixel within the encoded video stream may be estimated by the processor utilizing the look-up table entry.
- the prediction weight type may correspond to a plurality of reference pictures within the encoded video stream.
- the processor may acquire a prediction weight value, an offset value and motion vector data for the prediction pixel.
- the look-up table entry may be generated by the processor utilizing the prediction weight value and offset value for the prediction pixel.
- the generated look-up table entry may correspond to luminance and/or chrominance components of the prediction pixel.
- the processor may index the look-up table entry utilizing the motion vector data and may estimate the current pixels utilizing the indexed look-up table entry.
- the motion vector data, prediction weight value and offset value may be stripped off by the processor from the encoded video stream.
- motion vector data for the prediction pixel may be acquired by the processor.
- a prediction weight value for the prediction pixel may be generated by the processor and the prediction weight value may be based on a temporal distance between plurality of pixels within the encoded video stream.
- the processor may generate the look-up table entry utilizing the prediction weight value and may estimate the current pixels utilizing the generated look-up table entry.
- FIG. 1 is a block diagram of an exemplary weighted video processing scenario, in accordance with an embodiment of the invention.
- FIG. 2 is a diagram illustrating an exemplary explicit prediction weighting table, in accordance with an embodiment of the invention.
- FIG. 3 is a diagram illustrating an exemplary implicit prediction weighting table, in accordance with an embodiment of the invention.
- FIG. 4 is a flow diagram illustrating an exemplary method for implementing an explicit prediction weighting table, in accordance with an embodiment of the invention.
- FIG. 5 is a flow diagram illustrating an exemplary method for implementing an implicit prediction weighting table, in accordance with an embodiment of the invention.
- FIG. 6 is a block diagram illustrating an exemplary system for video decoding utilizing motion compensation with weighted prediction, in accordance with an embodiment of the invention.
- prediction information may be encoded within the elementary video stream.
- motion vector information associated with one or more reference pictures may be encoded within the elementary video stream, together with prediction weighting information and/or offset information.
- motion vector information may be encoded within the elementary video stream and additional prediction information may be generated utilizing the motion vector information.
- a single memory may be utilized to handle both explicit and implicit prediction information during decoding.
- an implicit prediction weighting look-up table may be generated utilizing motion vector information obtained from the video stream.
- the implicit prediction weighting look-up table may comprise prediction weights for a plurality of reference pictures.
- explicitly encoded prediction information may be extracted from the elementary video stream and a look-up table may be generated with corresponding prediction weight and offset information for a plurality of reference pictures used for decoding pixels within a current frame.
- the explicit prediction information may be removed from the elementary video stream to improve data flow and overall processing speed within the video decoder.
- a partition may be predicted from blocks of pixels P in more than one field/frame.
- a partition may be predicted from two weighted blocks of pixels, P 0 and P 1 , for example. Accordingly, a prediction error E may be calculated as the difference between the weighted average of the prediction blocks W 0 P 0 +W 1 P 1 and the partition.
- the prediction error E and an identification of the prediction blocks P 0 , P 1 may be encoded within the elementary video stream.
- the prediction blocks P 0 and P 1 may be identified by motion vectors MV.
- Prediction weights, or weighting factors, W 0 and W 1 may, for example, be encoded explicitly in the elementary video stream, or implied from an identification of the field(s)/frame(s) containing the prediction blocks P 0 and P 1 from a corresponding motion vector.
- the prediction factors W 0 and W 1 may, for example, be implied from a temporal distance between the frames/fields containing the prediction blocks P 0 and P 1 and the frame/field containing the partition.
- FIG. 1 is a block diagram 100 of an exemplary weighted video processing scenario, in accordance with an embodiment of the invention. Referring to FIG. 1 , there is illustrated a weighted prediction scenario of pixels within a current macroblock B in a current reference picture 2 utilizing prediction pixels in macroblocks A and C in a corresponding previous reference picture 0 and a subsequent reference picture 5 , respectively.
- Weighting prediction to obtain pixels within the current macroblock B may be a function of temporal distance between the current reference picture 2 and one or more previous or subsequent reference pictures.
- weighting may be a function of respective temporal distances between macroblocks A and C in reference pictures 0 and 5 and the current macroblock B in reference picture 2 .
- weighting may be a function of a first temporal distance D 1 between the first reference picture 0 and the current picture 2 , and a second temporal distance D 2 between the second reference picture 5 and the current picture 2 .
- a first weighting factor W 1 may be a function of D 2 /(D 1 +D 2 )
- a second weighting factor W 2 may be a function of D 1 /(D 1 +D 2 ).
- An offset value may also be utilized to estimate the output pixel within the current macroblock B. The offset value may be a non-zero value if explicit weighting prediction is utilized, and it may be equal to zero if implicit weighting prediction is utilized.
- weighting factors W A and W C for pixels within macroblocks A and C may be encoded within the elementary video stream, together with a corresponding offset value.
- Motion vector information may also be encoded within the elementary video stream to indicate the corresponding frames that may be used for temporal prediction.
- Implicit and/or explicit weighting prediction factors may be determined at various points during processing.
- weighting factors may be determined at frame/field boundaries.
- weighting factors may be determined at slice or macroblock boundaries.
- a set of weighting factors may, for example, be determined whenever a plurality of potential reference pictures/frames for a current picture/frame changes.
- weighting factors may be determined by a processor executing software instructions, by hardware, or by a combination thereof.
- the prediction information for a plurality of reference pictures may be stored in a look-up table.
- weighting information may, for example, be received, determined and/or calculated in real-time.
- weighting prediction information, or various components thereof may be pre-stored and retrieved in real-time.
- the look-up table may be updated or modified at various points during video information processing and in response to various events. In an exemplary scenario, where the look-up table is generated once per frame, the look-up table may be utilized during the processing of every macroblock in the frame before the look-up table is updated.
- An entry in an exemplary look-up table may comprise a single weighting factor or a plurality of weighting factors, for example.
- an additional weighting factor may be determined from the single stored weighting factor.
- a prediction weighting table may comprise weighting and/or offset information corresponding to a plurality of possible reference pictures.
- a current macroblock may be defined by a first and second motion vector. The first motion vector may comprise information based on a first reference picture, and the second motion vector may comprise information based on a second reference picture.
- FIG. 2 is a diagram illustrating an exemplary explicit prediction weighting table 200 , in accordance with an embodiment of the invention.
- the explicit prediction weighting table 200 may comprise prediction information for a plurality of reference pictures used for temporal prediction of pixels within a current frame.
- the weighting table 200 may comprise two columns of prediction information, a “0” column and a “1” column, with prediction information for pixels in two reference pictures.
- the explicit prediction weighting table 200 may comprise prediction information for 32 pairs of reference pictures organized in a “0” column and a “1” column, or prediction information for a total of 64 reference pictures.
- each entry in the explicit prediction weighting table 200 may comprise 6 bytes that may be utilized, for example, to store weighting factor information [W (0;i)Y ; W (0;i)U ; W (0;i)V ] and offset information [S (0;i)Y ; S (0;i)U ; S (0;i)V ] for each of the luminance and chrominance components of pixels within a reference picture “i.”
- the weighting factor information [W (0;i)Y ; W (0;i)U ; W (0;i)V ] and offset information [S (0;i)Y ; S (0;i)U ; S (0;i)V ] for each of the luminance and chrominance components of pixels within a reference picture “i” may be obtained from the elementary video stream and may be recorded in the explicit prediction weighting table prior to processing any pixel information.
- Each of the entries in the explicit prediction weighting table 200 may be indexed by the reference picture number and/or by the corresponding motion vector information obtained from the elementary video stream. After motion vector information is acquired and weighting factor information and offset information are recorded as entries in the explicit prediction weighting table 200 , such prediction information may be stripped off the elementary video stream. The stripping off of the prediction information from the elementary video stream may decrease the amount of information being processed in the video decoder and, therefore, improve the processing speed and overall decoding efficiency of the video decoder.
- the explicit prediction weighting table 200 may be initially loaded with default prediction weighting and offset values. After an initial sequence of video frames and/or video slices, for example, is acquired from the elementary video stream, the explicit prediction weighting table may be generated with weighting factor and offset information acquired from the elementary video stream. After a first reference picture is determined from corresponding motion vector, information of the first reference picture, such as the reference picture number and/or a temporal distance information between the reference picture and the current picture, may be utilized as a table index to obtain weighting and/or offset information corresponding to the first reference picture from a “0” column in the explicit prediction weighting table 200 .
- information pertaining to the second reference picture may be utilized to obtain weighting and/or offset information corresponding to the second reference picture from a “1” column in the explicit prediction weighting table 200 .
- Information pertaining to the second reference picture may comprise a reference picture number and/or a temporal distance information between the reference picture and the current picture.
- FIG. 3 is a diagram illustrating an exemplary implicit prediction weighting table 300 , in accordance with an embodiment of the invention.
- the implicit prediction weighting table 300 may comprise prediction information for a plurality of reference pictures used for temporal prediction of pixels within a current frame. For example, pixels within a current macroblock B in a current picture 2 of FIG. 1 may be estimated utilizing prediction pixels within a previous macroblock A in reference picture 0 and pixels within a subsequent macroblock C in reference picture 5 . Weighting factors for pixels within macroblocks A and C may be implicitly encoded within the elementary video stream.
- a video decoder may acquire motion vector information associated with reference pictures 0 and 5 . Temporal distances, such as distances D 1 and D 2 in FIG. 1 , may then be generated based on the acquired motion vector information. The motion vector information and the temporal distance information may be utilized by the video decoder to generate the implicit prediction weighting table 300 of FIG. 3 . Entries within the implicit prediction weighting table 300 may be separated into a “0” column and a “1” column based on the direction of a corresponding motion vector between a current picture and a reference picture.
- the first row in the implicit prediction weighting table 300 may be utilized to store weighting factors for reference picture 0 depending on whether a motion vector designates temporal movement direction from reference picture 0 to current picture 2 , reflected in column “0,” or temporal movement direction from current picture 2 to reference picture 0 , reflected in column “1.”
- the implicit prediction weighting table 300 may be order-dependent so that a table entry, or weighting factor, W (0; 3) corresponding to indices (2:3) does not necessarily contain the same information as weighting factor W (1; 3) corresponding to indices (3:2).
- a first table index therefore, may correspond to a temporally preceding picture reference and a second successive table index may correspond to a temporally succeeding picture reference.
- a video decoder may acquire motion vector information from an elementary video stream and may generate an implicit prediction weighting table for a total of n reference pictures, as illustrated in FIG. 3 .
- the generated implicit prediction weighting table may be utilized to provide weighting factor information for a specific macroblock, frame and/or slice. Entries within the generated implicit prediction weighting table, similarly to entries in the explicit prediction weighting table may be updated on the fly or after decoding a determined number of frames and/or video slices.
- a decoder utilizing motion compensation with weighted prediction may utilize prediction information within an elementary video stream and generate an explicit or implicit prediction weighting table that may be used to decode subsequent video frames and/or slices.
- Memory within the decoder such as on-chip RAM, may be efficiently utilized for storing either an explicit or implicit prediction weighting table, depending on whether prediction information is explicitly or implicitly encoded within the elementary video stream.
- pixels within a current macroblock or a current frame may be estimated utilizing pixels within previous and/or subsequent macroblocks and/or frames.
- the incoming elementary video stream may comprise weighting and/or offset information corresponding to a video slice.
- a video decoder may receive such information and may process the received information and place such information in a weighting table. Subsequent processing may then process blocks and sub-blocks within the slice by utilizing table information for the slice.
- the table may, for example, comprise weighting and/or offset information corresponding to various reference pictures. Prediction information within an explicit and/or implicit weighting information table may be updated at different intervals.
- weighting information tables may be updated after a determined number of frames and/or a determined number of video slices.
- the present invention is not limited by the number of weighting factors that may be stored within an implicit and/or explicit prediction weighting table, nor is the present invention limited by the frequency at which the implicit or explicit prediction weighting table may be updated during decoding.
- FIG. 4 is a flow diagram illustrating an exemplary method 400 for implementing an explicit prediction weighting table, in accordance with an embodiment of the invention.
- explicit prediction weighting factors, motion vector information and offset information may be acquired from an elementary video stream.
- a table of explicit prediction weighting factors may be generated, where each table entry may comprise prediction weighting values and offset values for luminance and chrominance pixel components of a reference picture.
- the acquired explicit weighting factors, motion vector information and offset information may be removed from the elementary video stream.
- the explicit prediction weighting factors from the generated table may be utilized to estimate a current pixel.
- FIG. 5 is a flow diagram illustrating an exemplary method 500 for implementing an implicit prediction weighting table, in accordance with an embodiment of the invention.
- motion vector information may be acquired from an elementary video stream.
- temporal distance information between a current frame and a reference frame, or picture may be determined from the acquired motion vector information.
- table index information and prediction weighting factors may be determined based on the temporal distance information.
- table index information may be utilized to retrieve weighting factors from the table.
- the retrieved weighting factors may be utilized during temporal prediction of a current pixel.
- FIG. 6 is a block diagram illustrating an exemplary system 600 for video decoding utilizing motion compensation with weighted prediction, in accordance with an embodiment of the invention.
- the video signal processing system 600 may comprise a video signal source 607 , a video enabled device 601 and a display 604 .
- the video signal source 607 may comprise a video encoder and may be adapted to generate an elementary video stream 605 .
- the video signal source 607 may utilize one or more video encoding standards, such as MPEG-4, for example, and may be implemented as a video head end, for example.
- the video signal source 607 may communicate the elementary video stream 605 to the video enabled device 601 for further processing, including decoding of the elementary video stream 605 .
- the video signal source 607 may be connected to the video enabled device 601 via a wired and/or a wireless connection.
- the video enabled device 601 comprises suitable circuitry, logic and/or code and may be adapted to process an elementary video stream 605 .
- the video enabled device 601 may comprise a decoder 602 and may be adapted to decode the elementary video signal 605 to generate a decoded video signal 606 .
- the video enabled device 601 may be implemented as a cable set top box, a satellite receiver box, a hand held device such as a PDA and/or cellular phone, a computer, and/or a digital antenna tuner, for example.
- the video enabled device 601 may comprise a decoder 602 .
- the decoder 602 may be adapted to decode the elementary video stream 605 utilizing a motion compensator 603 .
- the motion compensator 603 may be adapted to acquire temporally encoded prediction information, such as motion vector information, weighting factors and/or offset information that may be utilized by a central processing unit (CPU) 608 to predict pixels within a current macroblock.
- the CPU 608 may predict pixels within a current macroblock utilizing the acquired prediction information and pixels within a previous and/or a subsequent reference picture.
- the decoded video signal 606 may be communicated to a display 604 for further processing.
- the display 604 may be implemented within a television or other video screen, for example, and may be adapted to display the decoded video signal 606 .
- aspects of the invention may be realized in hardware, software, firmware or a combination thereof.
- the invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited.
- a typical combination of hardware, software and firmware may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
- the explicit and/or implicit prediction weighting tables may, for example, be implemented in various memory types, including but not limited to, on-chip and/or off-chip memory, local and/or non-local memory, SRAM and/or DRAM, volatile and/or non-volatile memory, etc. Further, various table implementations may be mirrored between various memory modules. For example, various table portions may be maintained in relatively low-speed memory and may be loaded into relatively high-speed memory for utilization.
- a first type of prediction weighting table may be implemented in a first memory module for a first type of elementary video stream
- a second type of prediction weighting table may be implemented in the first memory module for a second type of elementary video stream, such as in overlapping memory spaces or in separate memory spaces. Accordingly, the scope of various aspects of the present invention should not be limited by characteristics of particular software and/or hardware implementations.
- One embodiment of the present invention may be implemented as a board level product, as a single chip, application specific integrated circuit (ASIC), or with varying levels integrated on a single chip with other portions of the system as separate components.
- the degree of integration of the system will primarily be determined by speed and cost considerations. Because of the sophisticated nature of modern processors, it is possible to utilize a commercially available processor, which may be implemented external to an ASIC implementation of the present system. Alternatively, if the processor is available as an ASIC core or logic block, then the commercially available processor may be implemented as part of an ASIC device with various functions implemented as firmware.
- the invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods.
- Computer program in the present context may mean, for example, any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
- other meanings of computer program within the understanding of those skilled in the art are also contemplated by the present invention.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
- U.S. patent application Ser. No. 11/000,731 filed Dec. 1, 2004;
- U.S. patent application Ser. No. 10/963,677 filed Oct. 13, 2004;
- U.S. patent application Ser. No. 10/985,501 filed Nov. 10, 2004;
- U.S. patent application Ser. No. 11/112,632 filed Apr. 22, 2005;
- U.S. patent application Ser. No. 10/985,110 filed Nov. 10, 2004;
- U.S. patent application Ser. No. 10/965,172 filed Oct. 13, 2004;
- U.S. patent application Ser. No. 10/972,931 filed Oct. 25, 2004;
- U.S. patent application Ser. No. 10/974,872 filed Oct. 27, 2004;
- U.S. patent application Ser. No. 10/970,923 filed Oct. 21, 2004;
- U.S. patent application Ser. No. 10/963,680 filed Oct. 13, 2004;
- U.S. patent application Ser. No. 11/013,768 filed Dec. 16, 2004;
- U.S. patent application Ser. No. 11/102,389 filed Apr. 8, 2005;
- U.S. patent application Ser. No. 11/135,929 filed May 23, 2005; and
- U.S. patent application Ser. No. 11/000,676 filed Dec. 1, 2004.
outpel B=inpel A*W A+inpel C*W C+(±)Offset,
where inpel A and inpel C may be prediction pixels within macroblocks A and C, associated with prediction weighting factors WA and WC, respectively. An offset value may also be utilized to estimate the output pixel within the current macroblock B. The offset value may be a non-zero value if explicit weighting prediction is utilized, and it may be equal to zero if implicit weighting prediction is utilized. If explicit weighting is utilized to predict pixels within macroblock B, weighting factors WA and WC for pixels within macroblocks A and C may be encoded within the elementary video stream, together with a corresponding offset value. Motion vector information may also be encoded within the elementary video stream to indicate the corresponding frames that may be used for temporal prediction.
Claims (39)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/974,179 US7515637B2 (en) | 2004-05-21 | 2004-10-27 | Video decoding for motion compensation with weighted prediction |
EP05010161A EP1599049A3 (en) | 2004-05-21 | 2005-05-10 | Multistandard video decoder |
TW094116081A TW200608805A (en) | 2004-05-21 | 2005-05-18 | Multistandard video decoder |
CN 200510074637 CN1870757B (en) | 2004-05-21 | 2005-05-23 | Multistandard video decoder |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US57354704P | 2004-05-21 | 2004-05-21 | |
US10/974,179 US7515637B2 (en) | 2004-05-21 | 2004-10-27 | Video decoding for motion compensation with weighted prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
US20050259736A1 US20050259736A1 (en) | 2005-11-24 |
US7515637B2 true US7515637B2 (en) | 2009-04-07 |
Family
ID=35375128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/974,179 Expired - Fee Related US7515637B2 (en) | 2004-05-21 | 2004-10-27 | Video decoding for motion compensation with weighted prediction |
Country Status (1)
Country | Link |
---|---|
US (1) | US7515637B2 (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060133486A1 (en) * | 2002-10-01 | 2006-06-22 | Thomson Licensing S.A. | Implicit weighting of reference pictures in a video decoder |
US20060133492A1 (en) * | 2002-10-01 | 2006-06-22 | Thomson Licensing S.A. | Implicit weighting of reference pictures in a video encoder |
US20060198440A1 (en) * | 2003-06-25 | 2006-09-07 | Peng Yin | Method and apparatus for weighted prediction estimation using a displaced frame differential |
US20070064812A1 (en) * | 2005-06-30 | 2007-03-22 | Samsung Electronics Co., Ltd. | Error concealment method and apparatus |
US20080205524A1 (en) * | 2005-05-25 | 2008-08-28 | Nxp B.V. | Multiple Instance Video Decoder For Macroblocks Coded in Progressive and an Interlaced Way |
US20080205778A1 (en) * | 2007-02-28 | 2008-08-28 | Oki Electric Industriy Co., Ltd. | Image predicting apparatus and method, and image coding apparatus and method |
US20110103487A1 (en) * | 2008-07-01 | 2011-05-05 | France Telecom | Method and device for encoding a sequence of images implementing a temporal prediction, corresponding signal, data storage medium, method and decoding device and computer program products |
US20120189058A1 (en) * | 2011-01-24 | 2012-07-26 | Qualcomm Incorporated | Single reference picture list construction for video coding |
US20120230405A1 (en) * | 2009-10-28 | 2012-09-13 | Media Tek Singapore Pte. Ltd. | Video coding methods and video encoders and decoders with localized weighted prediction |
US20130003842A1 (en) * | 2010-01-18 | 2013-01-03 | Sony Corporation | Apparatus and method for image processing, and program |
CN103430543A (en) * | 2011-03-14 | 2013-12-04 | 汤姆逊许可公司 | Method for reconstructing and coding image block |
US9106916B1 (en) | 2010-10-29 | 2015-08-11 | Qualcomm Technologies, Inc. | Saturation insensitive H.264 weighted prediction coefficients estimation |
US20160309192A1 (en) * | 2008-09-11 | 2016-10-20 | Google Inc. | System and Method for Video Encoding Using Constructed Reference Frame |
US9549191B2 (en) | 2002-07-15 | 2017-01-17 | Thomson Licensing | Adaptive weighting of reference pictures in video encoding |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6765964B1 (en) | 2000-12-06 | 2004-07-20 | Realnetworks, Inc. | System and method for intracoding video data |
KR100703770B1 (en) * | 2005-03-25 | 2007-04-06 | 삼성전자주식회사 | Video coding and decoding using weighted prediction, and apparatus for the same |
CA2655970A1 (en) * | 2006-07-07 | 2008-01-10 | Telefonaktiebolaget L M Ericsson (Publ) | Video data management |
US8189683B2 (en) * | 2006-11-28 | 2012-05-29 | General Instrument Corporation | Method and system for providing single cycle context weight update leveraging context address look ahead |
US20080247459A1 (en) * | 2007-04-04 | 2008-10-09 | General Instrument Corporation | Method and System for Providing Content Adaptive Binary Arithmetic Coder Output Bit Counting |
US8213499B2 (en) * | 2007-04-04 | 2012-07-03 | General Instrument Corporation | Method and apparatus for context address generation for motion vectors and coefficients |
US8526499B2 (en) | 2007-06-15 | 2013-09-03 | Sungkyunkwan University Foundation For Corporate Collaboration | Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording medium |
WO2008153262A1 (en) | 2007-06-15 | 2008-12-18 | Sungkyunkwan University Foundation For Corporate Collaboration | Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording midium |
JP5098081B2 (en) * | 2007-07-19 | 2012-12-12 | オリンパス株式会社 | Image processing method and image processing apparatus |
KR20090099720A (en) * | 2008-03-18 | 2009-09-23 | 삼성전자주식회사 | Method and apparatus for video encoding and decoding |
US8335256B2 (en) * | 2008-11-14 | 2012-12-18 | General Instrument Corporation | Motion compensation in video coding |
US8462852B2 (en) | 2009-10-20 | 2013-06-11 | Intel Corporation | Methods and apparatus for adaptively choosing a search range for motion estimation |
US9654792B2 (en) * | 2009-07-03 | 2017-05-16 | Intel Corporation | Methods and systems for motion vector derivation at a video decoder |
US8917769B2 (en) | 2009-07-03 | 2014-12-23 | Intel Corporation | Methods and systems to estimate motion based on reconstructed reference frames at a video decoder |
US20110002387A1 (en) * | 2009-07-03 | 2011-01-06 | Yi-Jen Chiu | Techniques for motion estimation |
US8995526B2 (en) * | 2009-07-09 | 2015-03-31 | Qualcomm Incorporated | Different weights for uni-directional prediction and bi-directional prediction in video coding |
US8711930B2 (en) * | 2009-07-09 | 2014-04-29 | Qualcomm Incorporated | Non-zero rounding and prediction mode selection techniques in video encoding |
US9161057B2 (en) * | 2009-07-09 | 2015-10-13 | Qualcomm Incorporated | Non-zero rounding and prediction mode selection techniques in video encoding |
WO2012083487A1 (en) | 2010-12-21 | 2012-06-28 | Intel Corporation | System and method for enhanced dmvd processing |
JP5988252B2 (en) * | 2011-01-12 | 2016-09-07 | サン パテント トラスト | Moving picture encoding method, moving picture decoding method, moving picture encoding apparatus, and moving picture decoding apparatus using a plurality of reference pictures |
WO2012108181A1 (en) | 2011-02-08 | 2012-08-16 | Panasonic Corporation | Methods and apparatuses for encoding and decoding video using multiple reference pictures |
ES2770437T3 (en) | 2011-03-21 | 2020-07-01 | Lg Electronics Inc | Method of selecting a motion vector predictor and a device that uses it |
US8638854B1 (en) | 2011-04-07 | 2014-01-28 | Google Inc. | Apparatus and method for creating an alternate reference frame for video compression using maximal differences |
WO2012178008A1 (en) * | 2011-06-22 | 2012-12-27 | General Instrument Corporation | Construction of combined list using temporal distance |
US9609341B1 (en) | 2012-04-23 | 2017-03-28 | Google Inc. | Video data encoding and decoding using reference picture lists |
US9426459B2 (en) | 2012-04-23 | 2016-08-23 | Google Inc. | Managing multi-reference picture buffers and identifiers to facilitate video data coding |
US9756331B1 (en) | 2013-06-17 | 2017-09-05 | Google Inc. | Advance coded reference prediction |
WO2017035831A1 (en) * | 2015-09-06 | 2017-03-09 | Mediatek Inc. | Adaptive inter prediction |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526099B1 (en) * | 1996-10-25 | 2003-02-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Transcoder |
US20050175091A1 (en) * | 2004-02-06 | 2005-08-11 | Atul Puri | Rate and quality controller for H.264/AVC video coder and scene analyzer therefor |
-
2004
- 2004-10-27 US US10/974,179 patent/US7515637B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526099B1 (en) * | 1996-10-25 | 2003-02-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Transcoder |
US20050175091A1 (en) * | 2004-02-06 | 2005-08-11 | Atul Puri | Rate and quality controller for H.264/AVC video coder and scene analyzer therefor |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11102486B2 (en) | 2002-07-15 | 2021-08-24 | Interdigital Vc Holdings, Inc. | Adaptive weighting of reference pictures in video encoding |
US9549191B2 (en) | 2002-07-15 | 2017-01-17 | Thomson Licensing | Adaptive weighting of reference pictures in video encoding |
US9930335B2 (en) | 2002-07-15 | 2018-03-27 | Thomson Licensing | Adaptive weighting of reference pictures in video encoding |
US10326993B2 (en) | 2002-07-15 | 2019-06-18 | Interdigital Vc Holdings, Inc. | Adaptive weighting of reference pictures in video encoding |
US10721472B2 (en) | 2002-07-15 | 2020-07-21 | Interdigital Vc Holdings, Inc. | Adaptive weighting of reference pictures in video encoding |
US20060133492A1 (en) * | 2002-10-01 | 2006-06-22 | Thomson Licensing S.A. | Implicit weighting of reference pictures in a video encoder |
US7720152B2 (en) * | 2002-10-01 | 2010-05-18 | Thomson Licensing | Implicit weighting of reference pictures in a video decoder |
US7801217B2 (en) | 2002-10-01 | 2010-09-21 | Thomson Licensing | Implicit weighting of reference pictures in a video encoder |
US20060133486A1 (en) * | 2002-10-01 | 2006-06-22 | Thomson Licensing S.A. | Implicit weighting of reference pictures in a video decoder |
US7809059B2 (en) * | 2003-06-25 | 2010-10-05 | Thomson Licensing | Method and apparatus for weighted prediction estimation using a displaced frame differential |
US20060198440A1 (en) * | 2003-06-25 | 2006-09-07 | Peng Yin | Method and apparatus for weighted prediction estimation using a displaced frame differential |
US20080205524A1 (en) * | 2005-05-25 | 2008-08-28 | Nxp B.V. | Multiple Instance Video Decoder For Macroblocks Coded in Progressive and an Interlaced Way |
US8369416B2 (en) * | 2005-06-30 | 2013-02-05 | Samsung Electronics Co., Ltd. | Error concealment method and apparatus |
US20070064812A1 (en) * | 2005-06-30 | 2007-03-22 | Samsung Electronics Co., Ltd. | Error concealment method and apparatus |
US20080205778A1 (en) * | 2007-02-28 | 2008-08-28 | Oki Electric Industriy Co., Ltd. | Image predicting apparatus and method, and image coding apparatus and method |
US20110103487A1 (en) * | 2008-07-01 | 2011-05-05 | France Telecom | Method and device for encoding a sequence of images implementing a temporal prediction, corresponding signal, data storage medium, method and decoding device and computer program products |
US8855206B2 (en) * | 2008-07-01 | 2014-10-07 | France Telecom | Method and device for encoding a sequence of images implementing a temporal prediction, corresponding signal, data storage medium, method and decoding device and computer program products |
US20160309192A1 (en) * | 2008-09-11 | 2016-10-20 | Google Inc. | System and Method for Video Encoding Using Constructed Reference Frame |
US10165306B2 (en) * | 2008-09-11 | 2018-12-25 | Google Llc | System and method for video encoding using constructed reference frame |
US11375240B2 (en) | 2008-09-11 | 2022-06-28 | Google Llc | Video coding using constructed reference frames |
US20120230405A1 (en) * | 2009-10-28 | 2012-09-13 | Media Tek Singapore Pte. Ltd. | Video coding methods and video encoders and decoders with localized weighted prediction |
US20130003842A1 (en) * | 2010-01-18 | 2013-01-03 | Sony Corporation | Apparatus and method for image processing, and program |
US9106916B1 (en) | 2010-10-29 | 2015-08-11 | Qualcomm Technologies, Inc. | Saturation insensitive H.264 weighted prediction coefficients estimation |
US9008181B2 (en) * | 2011-01-24 | 2015-04-14 | Qualcomm Incorporated | Single reference picture list utilization for interprediction video coding |
US20120189058A1 (en) * | 2011-01-24 | 2012-07-26 | Qualcomm Incorporated | Single reference picture list construction for video coding |
CN103430543A (en) * | 2011-03-14 | 2013-12-04 | 汤姆逊许可公司 | Method for reconstructing and coding image block |
Also Published As
Publication number | Publication date |
---|---|
US20050259736A1 (en) | 2005-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7515637B2 (en) | Video decoding for motion compensation with weighted prediction | |
EP1044566B1 (en) | Improved video coding and decoding using adaptive coding of block parameters for coded/uncoded blocks | |
US20040258162A1 (en) | Systems and methods for encoding and decoding video data in parallel | |
US7079692B2 (en) | Reduced complexity video decoding by reducing the IDCT computation in B-frames | |
US20070171979A1 (en) | Method of video decoding | |
US20070025443A1 (en) | Moving picture coding apparatus, method and program | |
US20070133689A1 (en) | Low-cost motion estimation apparatus and method thereof | |
US20060140271A1 (en) | Encoding and decoding of video images with delayed reference picture refresh | |
US20060222251A1 (en) | Method and system for frame/field coding | |
US20060227865A1 (en) | Unified architecture for inverse scanning for plurality of scanning scheme | |
US8111753B2 (en) | Video encoding method and video encoder for improving performance | |
JP4278385B2 (en) | IDCT decoding with reduced complexity with graceful degradation | |
US20050259734A1 (en) | Motion vector generator for macroblock adaptive field/frame coded video data | |
US7840082B2 (en) | Coding method and system with an adaptive bitplane coding mode | |
JP2001103521A (en) | Method for recognizing progressive or interlace contents in video sequence | |
JP4126044B2 (en) | Video encoding apparatus and method | |
US8831099B2 (en) | Selecting a macroblock encoding mode by using raw data to compute intra cost | |
US7843997B2 (en) | Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data | |
US20070153909A1 (en) | Apparatus for image encoding and method thereof | |
US20060227874A1 (en) | System, method, and apparatus for DC coefficient transformation | |
US7065139B2 (en) | Video encoding method and video encoder for improving performance | |
US9094686B2 (en) | Systems and methods for faster throughput for compressed video data decoding | |
US8111748B2 (en) | Method and apparatus for video coding | |
JP2001309388A (en) | Error image supplementing method in image decoder | |
US20060222065A1 (en) | System and method for improving video data compression by varying quantization bits based on region within picture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BROADCOM ADVANCED COMPRESSION GROUP LLC, MASSACHUS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PAYSON, CHRISTOPHER;REEL/FRAME:015502/0181 Effective date: 20041020 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM ADVANCED COMPRESSION GROUP, LLC;REEL/FRAME:022299/0916 Effective date: 20090212 Owner name: BROADCOM CORPORATION,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM ADVANCED COMPRESSION GROUP, LLC;REEL/FRAME:022299/0916 Effective date: 20090212 |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |
|
REMI | Maintenance fee reminder mailed | ||
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001 Effective date: 20170119 |
|
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20170407 |