US7515637B2 - Video decoding for motion compensation with weighted prediction - Google Patents

Video decoding for motion compensation with weighted prediction Download PDF

Info

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
Application number
US10/974,179
Other versions
US20050259736A1 (en
Inventor
Christopher Payson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Broadcom Advanced Compression Group LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Broadcom Advanced Compression Group LLC filed Critical Broadcom Advanced Compression Group LLC
Priority to US10/974,179 priority Critical patent/US7515637B2/en
Assigned to BROADCOM ADVANCED COMPRESSION GROUP LLC reassignment BROADCOM ADVANCED COMPRESSION GROUP LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PAYSON, CHRISTOPHER
Priority to EP05010161A priority patent/EP1599049A3/en
Priority to TW094116081A priority patent/TW200608805A/en
Priority to CN 200510074637 priority patent/CN1870757B/en
Publication of US20050259736A1 publication Critical patent/US20050259736A1/en
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROADCOM ADVANCED COMPRESSION GROUP, LLC
Publication of US7515637B2 publication Critical patent/US7515637B2/en
Application granted granted Critical
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: BROADCOM CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROADCOM CORPORATION
Assigned to BROADCOM CORPORATION reassignment BROADCOM CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods 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

Methods and systems for processing pixels within an encoded video stream are disclosed herein. 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.

Description

RELATED APPLICATIONS
This application makes reference to, claims priority to, and claims the benefit of U.S. Provisional Patent Application No. 60/573,547, filed on May 21, 2004 and entitled “Video Decoding For Motion Compensation With Weighted Prediction,” the complete subject matter of which is hereby incorporated herein by reference in its entirety.
This application is related to the following applications, each of which is incorporated herein by reference in its entirety for all purposes:
  • 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.
FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
[Not Applicable]
MICROFICHE/COPYRIGHT REFERENCE
[Not Applicable]
BACKGROUND OF THE INVENTION
During video encoding, 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. For example, 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.
During decoding of temporally predicted video information, 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. In addition, 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.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.
BRIEF SUMMARY OF THE INVENTION
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.
If the 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.
If the prediction weight type comprises an explicit prediction weight type, 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.
If the prediction weight type comprises an implicit prediction weight type, 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.
These and other features and advantages of the present invention may be appreciated from a review of the following detailed description of the present invention, along with the accompanying figures in which like reference numerals refer to like parts throughout.
BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS
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.
DETAILED DESCRIPTION OF THE INVENTION
Certain aspects of the invention may be found in a method and system for processing pixels within an encoded video stream. During encoding of a video stream, prediction information may be encoded within the elementary video stream. For example, for explicitly encoded prediction information, 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. For implicitly encoded video information, motion vector information may be encoded within the elementary video stream and additional prediction information may be generated utilizing the motion vector information. In one aspect of the invention, a single memory may be utilized to handle both explicit and implicit prediction information during decoding.
For example, 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. Similarly, 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. After the look-up table is generated, the explicit prediction information may be removed from the elementary video stream to improve data flow and overall processing speed within the video decoder.
In MPEG-4 video decoding, a partition may be predicted from blocks of pixels P in more than one field/frame. For bi-directionally coded bitstream, a partition may be predicted from two weighted blocks of pixels, P0 and P1, for example. Accordingly, a prediction error E may be calculated as the difference between the weighted average of the prediction blocks W0P0+W1P1 and the partition. The prediction error E and an identification of the prediction blocks P0, P1 may be encoded within the elementary video stream. The prediction blocks P0 and P1 may be identified by motion vectors MV. Prediction weights, or weighting factors, W0 and W1 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 P0 and P1 from a corresponding motion vector. The prediction factors W0 and W1 may, for example, be implied from a temporal distance between the frames/fields containing the prediction blocks P0 and P1 and the frame/field containing the partition. In an exemplary scenario, where T0 is the number of frame/field durations between the frame/field containing P0 and the frame/field containing the partition, and T1 is the number of frame/field durations for P1, the weighting factors may be determined as follows: W0=1−T0/(T0+T1) and W1=1−T1/(T0+T 1). More detailed information on bi-directional coding may be found in U.S. patent application Ser. No. 10/963,677, filed Oct. 13, 2004, the subject matter of which is hereby incorporated by reference in its entirety.
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. For example, in the exemplary two-reference scenario of FIG. 1, 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. In one aspect of the invention, weighting may be a function of a first temporal distance D1 between the first reference picture 0 and the current picture 2, and a second temporal distance D2 between the second reference picture 5 and the current picture 2. In this manner, a first weighting factor W1 may be a function of D2/(D1+D2), and a second weighting factor W2 may be a function of D1/(D1+D2). Even though the present invention contemplates the use of two references, the invention is not limited to a two-reference scenario or characteristics thereof. In addition, the invention is not limited to the use of a reference frame, or reference picture, as a source of reference pixels for temporal prediction. More than two references may also be utilized, as well as units of pixels other than frames may be utilized as a source of reference pixels.
In a different aspect of the invention, an output pixel within the current macroblock B may be estimated utilizing the following equation:
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.
If implicit weighting is utilized to predict pixels within macroblock B, only motion vector information may be encoded within the elementary video stream. Corresponding weighting factors may be generated based on the distance between the current frame and the reference frames associated with the motion vector information.
Implicit and/or explicit weighting prediction factors may be determined at various points during processing. In one exemplary embodiment of the invention, weighting factors may be determined at frame/field boundaries. Alternatively, for example, 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. In addition, weighting factors may be determined by a processor executing software instructions, by hardware, or by a combination thereof.
After prediction information, such as weighting factors, motion vectors, and/or offsets, is obtained from an elementary video stream and/or determined based on information within the elementary video stream, the prediction information for a plurality of reference pictures may be stored in a look-up table. Such weighting information may, for example, be received, determined and/or calculated in real-time. Alternatively, for example, such 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. In an exemplary scenario comprising only a single weighting factor per reference picture, an additional weighting factor may be determined from the single stored weighting factor. For example, in a two-reference scenario, the look-up table may comprise a first weighting factor W1, and a second corresponding weighting factor may be determined to be W0=1−W1. Alternatively, a prediction weighting table may comprise weighting and/or offset information corresponding to a plurality of possible reference pictures. For example, 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. Referring to FIG. 2, 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. In addition, since two references may be used to predict a current pixel, 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. For example, 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.
In one aspect of the invention, 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.
In operation, prior to processing an elementary video stream, 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. Similarly, after a second reference picture is determined from corresponding second motion vector, 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. Referring to FIGS. 1 and 3, 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.
In operation, a video decoder may acquire motion vector information associated with reference pictures 0 and 5. Temporal distances, such as distances D1 and D2 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. For example, 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.” In this manner, 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.
In one aspect of the invention, 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.
After a prediction weighting table is generated with weighting factor and/or offset entries for specific reference pictures, pixels within a current macroblock or a current frame, for example, may be estimated utilizing pixels within previous and/or subsequent macroblocks and/or frames. In an exemplary aspect of the invention, 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. For example, 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. At 401, explicit prediction weighting factors, motion vector information and offset information may be acquired from an elementary video stream. At 403, 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. At 405, the acquired explicit weighting factors, motion vector information and offset information may be removed from the elementary video stream. At 407, 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. At 501, motion vector information may be acquired from an elementary video stream. At 503, temporal distance information between a current frame and a reference frame, or picture, may be determined from the acquired motion vector information. At 505, table index information and prediction weighting factors may be determined based on the temporal distance information. At 507, table index information may be utilized to retrieve weighting factors from the table. At 509, 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. Referring to FIG. 6, 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. For example, 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.
In one aspect of the invention, 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.
After the elementary video stream 605 is decoded, 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.
Accordingly, 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.
Various functional aspects of the present invention may be performed by a processor executing software instructions, by hardware, or by a combination thereof. 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. Additionally, for example, a first type of prediction weighting table may be implemented in a first memory module for a first type of elementary video stream, and 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. However, other meanings of computer program within the understanding of those skilled in the art are also contemplated by the present invention.
While the invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiments disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.

Claims (39)

1. A method for processing pixels within an encoded video stream, the method comprising:
acquiring on a chip, a prediction weight type from the encoded video stream;
acquiring on said chip, prediction weight data for at least one prediction pixel within the encoded video stream based on said acquired prediction weight type;
generating on said chip, at least one look-up table entry in a look-up table for said at least one prediction pixel utilizing said acquired prediction weight data; and
estimating on said chip, at least a portion of a plurality of current pixels within the encoded video stream utilizing said generated at least one look-up table entry.
2. The method according to claim 1, wherein said prediction weight type corresponds to a plurality of reference pictures within the encoded video stream.
3. The method according to claim 1, comprising acquiring on said chip, at least one prediction weight value, offset value and motion vector data for said at least one prediction pixel, if said prediction weight type comprises an explicit prediction weight type.
4. The method according to claim 3, comprising generating on said chip, said at least one look-up table entry utilizing said at least one prediction weight value and offset value for said at least one prediction pixel.
5. The method according to claim 4, wherein said generated at least one look-up table entry corresponds to one or both of luminance and/or chrominance components of said at least one prediction pixel.
6. The method according to claim 4, comprising indexing said at least one look-up table entry utilizing said motion vector data.
7. The method according to claim 6, comprising estimating on said chip, said at least a portion of said plurality of current pixels utilizing said indexed at least one look-up table entry.
8. The method according to claim 3, comprising stripping off said acquired motion vector data, prediction weight value and offset value from the encoded video stream.
9. The method according to claim 1, comprising acquiring on said chip, motion vector data for said at least one prediction pixel, if said prediction weight type comprises an implicit prediction weight type.
10. The method according to claim 9, comprising generating on said chip, at least one prediction weight value for said at least one prediction pixel.
11. The method according to claim 10, wherein said generated at least one prediction weight value is based on at least one temporal distance between portions of a plurality of pixels within the encoded video stream.
12. The method according to claim 10, comprising generating on said chip, said at least one look-up table entry utilizing said generated at least one prediction weight value.
13. The method according to claim 12, comprising estimating on said chip, said at least a portion of said plurality of current pixels utilizing said generated at least one look-up table entry.
14. A computer-readable medium encoded with computer executable instructions for processing pixels within an encoded video stream to perform the steps comprising:
acquiring on a chip, a prediction weight type from the encoded video stream;
acquiring on said chip, prediction weight data for at least one prediction pixel within the encoded video stream based on said acquired prediction weight type;
generating on said chip, at least one look-up table entry in a look-up table for said at least one prediction pixel utilizing said acquired prediction weight data; and
estimating on said chip, at least a portion of a plurality of current pixels within the encoded video stream utilizing said generated at least one look-up table entry.
15. The computer-readable medium according to claim 14, wherein said prediction weight type corresponds to a plurality of reference pictures within the encoded video stream.
16. The computer-readable medium according to claim 14, comprising code for acquiring on said chip, at least one prediction weight value, offset value and motion vector data for said at least one prediction pixel, if said prediction weight type comprises an explicit prediction weight type.
17. The computer-readable medium according to claim 16, comprising code for generating on said chip, said at least one look-up table entry utilizing said at least one prediction weight value and offset value for said at least one prediction pixel.
18. The computer-readable medium according to claim 17, wherein said generated at least one look-up table entry corresponds to one or both of luminance and/or chrominance components of said at least one prediction pixel.
19. The computer-readable medium according to claim 17, comprising code for indexing said at least one look-up table entry utilizing said motion vector data.
20. The computer-readable medium according to claim 19, comprising code for estimating on said chip, said at least a portion of said plurality of current pixels utilizing said indexed at least one look-up table entry.
21. The computer-readable medium according to claim 16, comprising code for stripping off said acquired motion vector data, prediction weight value and offset value from the encoded video stream.
22. The computer-readable medium according to claim 14, comprising code for acquiring on said chip, motion vector data for said at least one prediction pixel, if said prediction weight type comprises an implicit prediction weight type.
23. The computer-readable medium according to claim 22, comprising code for generating on said chip, at least one prediction weight value for said at least one prediction pixel.
24. The computer-readable medium according to claim 23, wherein said generated at least one prediction weight value is based on at least one temporal distance between portions of a plurality of pixels within the encoded video stream.
25. The computer-readable medium according to claim 23, comprising code for generating on said chip, said at least one look-up table entry utilizing said generated at least one prediction weight value.
26. The computer-readable medium according to claim 25 comprising code for estimating on said chip, said at least a portion of said plurality of current pixels utilizing said generated at least one look-up table entry.
27. A system for processing pixels within an encoded video stream, the system comprising:
at least one processor implemented on a chip that acquires on said chip, a prediction weight type from the encoded video stream;
said at least one processor acquires on said chip, prediction weight data for at least one prediction pixel within the encoded video stream based on said acquired prediction weight type;
said at least one processor generates on said chip, at least one look-up table entry in a look-up table for said at least one prediction pixel utilizing said acquired prediction weight data; and
said at least one processor estimates on said chip, at least a portion of a plurality of current pixels within the encoded video stream utilizing said generated at least one look-up table entry.
28. The system according to claim 27, wherein said prediction weight type corresponds to a plurality of reference pictures within the encoded video stream.
29. The system according to claim 27, wherein said at least one processor acquires on said chip, at least one prediction weight value, offset value and motion vector data for said at least one prediction pixel, if said prediction weight type comprises an explicit prediction weight type.
30. The system according to claim 29, wherein said at least one processor generates on said chip, said at least one look-up table entry utilizing said at least one prediction weight value and offset value for said at least one prediction pixel.
31. The system according to claim 30, wherein said generated at least one look-up table entry corresponds to one or both of luminance and/or chrominance components of said at least one prediction pixel.
32. The system according to claim 30, wherein said at least one processor indexes said at least one look-up table entry utilizing said motion vector data.
33. The system according to claim 32, wherein said at least one processor estimates on said chip, said at least a portion of said plurality of current pixels utilizing said indexed at least one look-up table entry.
34. The system according to claim 29, wherein said at least one processor strips off said acquired motion vector data, prediction weight value and offset value from the encoded video stream.
35. The system according to claim 27, wherein said at least one processor acquires on said chip, motion vector data for said at least one prediction pixel, if said prediction weight type comprises an implicit prediction weight type.
36. The system according to claim 35, wherein said at least one processor generates on said chip, at least one prediction weight value for said at least one prediction pixel.
37. The system according to claim 36, wherein said generated at least one prediction weight value is based on at least one temporal distance between portions of a plurality of pixels within the encoded video stream.
38. The system according to claim 36, wherein said at least one processor generates on said chip, said at least one look-up table entry utilizing said generated at least one prediction weight value.
39. The system according to claim 38, wherein said at least one processor estimates on said chip, said at least a portion of said plurality of current pixels utilizing said generated at least one look-up table entry.
US10/974,179 2004-05-21 2004-10-27 Video decoding for motion compensation with weighted prediction Expired - Fee Related US7515637B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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