US20030156646A1 - Multi-resolution motion estimation and compensation - Google Patents

Multi-resolution motion estimation and compensation Download PDF

Info

Publication number
US20030156646A1
US20030156646A1 US10/322,351 US32235102A US2003156646A1 US 20030156646 A1 US20030156646 A1 US 20030156646A1 US 32235102 A US32235102 A US 32235102A US 2003156646 A1 US2003156646 A1 US 2003156646A1
Authority
US
United States
Prior art keywords
motion
pixel
resolution
computer
plural
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.)
Abandoned
Application number
US10/322,351
Inventor
Pohsiang Hsu
Chih-Lung Lin
Ming-Chieh Lee
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Priority to US10/322,351 priority Critical patent/US20030156646A1/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HSU, POHSIANG, LEE, MING-CHIEH, LIN, CHIH-LUNG
Publication of US20030156646A1 publication Critical patent/US20030156646A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Abandoned legal-status Critical Current

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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/146Data rate or code amount at the encoder output
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/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/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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
    • 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/513Processing of motion vectors
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/527Global motion vector estimation
    • 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/547Motion estimation performed in a transform domain
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • 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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel

Definitions

  • a video encoder adaptively switches between different motion resolutions, which allows the encoder to select a suitable resolution for a particular video source or coding circumstances.
  • a typical raw digital video sequence includes 15 or 30 frames per second. Each frame can include tens or hundreds of thousands of pixels (also called pels). Each pixel represents a tiny element of the picture. In raw form, a computer commonly represents a pixel with 24 bits. Thus, the number of bits per second, or bitrate, of a typical raw digital video sequence can be 5 million bits/second or more.
  • compression also called coding or encoding
  • Compression can be lossless, in which quality of the video does not suffer but decreases in bitrate are limited by the complexity of the video.
  • compression can be lossy, in which quality of the video suffers but decreases in bitrate are more dramatic. Decompression reverses compression.
  • video compression techniques include intraframe compression and interframe compression.
  • Intraframe compression techniques compress individual frames, typically called I-frames, or key frames.
  • Interframe compression techniques compress frames with reference to preceding and/or following frames, and are called typically called predicted frames, P-frames, or B-frames.
  • Microsoft Corporation's Windows Media Video, Version 7 [“WMV7”] includes a video encoder and a video decoder.
  • the WMV7 encoder uses intraframe and interframe compression
  • the WMV7 decoder uses intraframe and interframe decompression.
  • FIG. 1 illustrates block-based intraframe compression ( 100 ) of a block ( 105 ) of pixels in a key frame in the WMV7 encoder.
  • a block is a set of pixels, for example, an 8 ⁇ 8 arrangement of pixels.
  • the WMV7 encoder splits a key video frame into 8 ⁇ 8 blocks of pixels and applies an 8 ⁇ 8 Discrete Cosine Transform [“DCT”] ( 110 ) to individual blocks such as the block ( 105 ).
  • a DCT is a type of frequency transform that converts the 8 ⁇ 8 block of pixels (spatial information) into an 8 ⁇ 8 block of DCT coefficients ( 115 ), which are frequency information.
  • the DCT operation itself is lossless or nearly lossless.
  • the DCT coefficients are more efficient for the encoder to compress since most of the significant information is concentrated in low frequency coefficients (conventionally, the upper left of the block ( 115 )) and many of the high frequency coefficients (conventionally, the lower right of the block ( 115 )) have values of zero or close to zero.
  • the encoder then quantizes ( 120 ) the DCT coefficients, resulting in an 8 ⁇ 8 block of quantized DCT coefficients ( 125 ).
  • the encoder applies a uniform, scalar quantization step size to each coefficient, which is analogous to dividing each coefficient by the same value and rounding. For example, if a DCT coefficient value is 163 and the step size is 10, the quantized DCT coefficient value is 16. Quantization is lossy. The reconstructed DCT coefficient value will be 160, not 163. Since low frequency DCT coefficients tend to have higher values, quantization results in loss of precision but not complete loss of the information for the coefficients.
  • high frequency DCT coefficients tend to have values of zero or close to zero
  • quantization of the high frequency coefficients typically results in contiguous regions of zero values.
  • high frequency DCT coefficients are quantized more coarsely than low frequency DCT coefficients, resulting in greater loss of precision/information for the high frequency DCT coefficients.
  • the encoder then prepares the 8 ⁇ 8 block of quantized DCT coefficients ( 125 ) for entropy encoding, which is a form of lossless compression.
  • the exact type of entropy encoding can vary depending on whether a coefficient is a DC coefficient (lowest frequency), an AC coefficient (other frequencies) in the top row or left column, or another AC coefficient.
  • the encoder encodes the DC coefficient ( 126 ) as a differential from the DC coefficient ( 136 ) of a neighboring 8 ⁇ 8 block, which is a previously encoded neighbor (e.g., top or left) of the block being encoded.
  • FIG. 1 shows a neighbor block ( 135 ) that is situated to the left of the block being encoded in the frame.
  • the encoder entropy encodes ( 140 ) the differential.
  • the entropy encoder can encode the left column or top row of AC coefficients as a differential from a corresponding column or row of the neighboring 8 ⁇ 8 block.
  • FIG. 1 shows the left column ( 127 ) of AC coefficients encoded as a differential ( 147 ) from the left column ( 137 ) of the neighboring (to the left) block ( 135 ).
  • the differential coding increases the chance that the differential coefficients have zero values.
  • the remaining AC coefficients are from the block ( 125 ) of quantized DCT coefficients.
  • the encoder scans ( 150 ) the 8 ⁇ 8 block ( 145 ) of predicted, quantized AC DCT coefficients into a one-dimensional array ( 155 ) and then entropy encodes the scanned AC coefficients using a variation of run length coding ( 160 ).
  • the encoder selects an entropy code from one or more run/level/last tables ( 165 ) and outputs the entropy code.
  • a key frame contributes much more to bitrate than a predicted frame.
  • key frames are often critical bottlenecks for performance, so efficient compression of key frames is critical.
  • FIG. 2 illustrates a disadvantage of intraframe compression such as shown in FIG. 1.
  • exploitation of redundancy between blocks of the key frame is limited to prediction of a subset of frequency coefficients (e.g., the DC coefficient and the left column (or top row) of AC coefficients) from the left ( 220 ) or top ( 230 ) neighboring block of a block ( 210 ).
  • the DC coefficient represents the average of the block
  • the left column of AC coefficients represents the averages of the rows of a block
  • the top row represents the averages of the columns.
  • prediction of DC and AC coefficients as in WMV7 limits extrapolation to the row-wise (or column-wise) average signals of the left (or top) neighboring block.
  • the AC coefficients in the left DCT coefficient column for the left block ( 220 ) are used to predict the entire corresponding row ( 211 ) of the block ( 210 ).
  • the disadvantages of this prediction include:
  • Interframe compression in the WMV7 encoder uses block-based motion compensated prediction coding followed by transform coding of the residual error.
  • FIGS. 3 and 4 illustrate the block-based interframe compression for a predicted frame in the WMV7 encoder.
  • FIG. 3 illustrates motion estimation for a predicted frame ( 310 )
  • FIG. 4 illustrates compression of a prediction residual for a motion-estimated block of a predicted frame.
  • the WMV7 encoder splits a predicted frame into 8 ⁇ 8 blocks of pixels. Groups of 4 8 ⁇ 8 blocks form macroblocks. For each macroblock, a motion estimation process is performed. The motion estimation approximates the motion of the macroblock of pixels relative to a reference frame, for example, a previously coded, preceding frame.
  • the WMV7 encoder computes a motion vector for a macroblock ( 315 ) in the predicted frame ( 310 ). To compute the motion vector, the encoder searches in a search area ( 335 ) of a reference frame ( 330 ).
  • the encoder compares the macroblock ( 315 ) from the predicted frame ( 310 ) to various candidate macroblocks in order to find a candidate macroblock that is a good match.
  • the encoder can check candidate macroblocks every pixel or every 1 ⁇ 2 pixel in the search area ( 335 ), depending on the desired motion estimation resolution for the encoder. Other video encoders check at other increments, for example, every 1 ⁇ 4 pixel.
  • the encoder checks the difference between the macroblock ( 315 ) of the predicted frame ( 310 ) and the candidate macroblock and the cost of encoding the motion vector for that macroblock. After the encoder finds a good matching macroblock, the block matching process ends.
  • the encoder outputs the motion vector (entropy coded) for the matching macroblock so the decoder can find the matching macroblock during decoding.
  • a decoder uses the motion vector to compute a prediction macroblock for the macroblock ( 315 ) using information from the reference frame ( 330 ).
  • the prediction for the macroblock ( 315 ) is rarely perfect, so the encoder usually encodes 8 ⁇ 8 blocks of pixel differences (also called the error or residual blocks) between the prediction macroblock and the macroblock ( 315 ) itself.
  • the resolution of the motion estimation (i.e., pixel, 1 ⁇ 2 pixel, 1 ⁇ 4 pixel increments) does not adapt to the video source. For example, for different qualities of video source (clean vs. noisy), the video encoder uses the same resolution of motion estimation, which can hurt compression efficiency.
  • the search range is too large and inefficient.
  • the horizontal resolution is the same as the vertical resolution in the search range, which does not match the motion characteristics of many video signals.
  • FIG. 4 illustrates the computation and encoding of an error block ( 435 ) for a motion-estimated block in the WMV7 encoder.
  • the error block ( 435 ) is the difference between the predicted block ( 415 ) and the original current block ( 425 ).
  • the encoder applies a DCT ( 440 ) to error block ( 435 ), resulting in 8 ⁇ 8 block ( 445 ) of coefficients.
  • the significant information for the error block ( 435 ) is concentrated in low frequency coefficients (conventionally, the upper left of the block ( 445 )) and many of the high frequency coefficients have values of zero or close to zero (conventionally, the lower right of the block ( 445 )).
  • the encoder then quantizes ( 450 ) the DCT coefficients, resulting in an 8 ⁇ 8 block of quantized DCT coefficients ( 455 ).
  • the quantization step size is adjustable. Again, since low frequency DCT coefficients tend to have higher values, quantization results in loss of precision, but not complete loss of the information for the coefficients. On the other hand, since high frequency DCT coefficients tend to have values of zero or close to zero, quantization of the high frequency coefficients results in contiguous regions of zero values. In addition, in some cases high frequency DCT coefficients are quantized more coarsely than low frequency DCT coefficients, resulting in greater loss of precision/information for the high frequency DCT coefficients.
  • the encoder then prepares the 8 ⁇ 8 block ( 455 ) of quantized DCT coefficients for entropy encoding.
  • the encoder scans ( 460 ) the 8 ⁇ 8 block ( 455 ) into a one dimensional array ( 465 ) with 64 elements, such that coefficients are generally ordered from lowest frequency to highest frequency, which typical creates long runs of zero values.
  • the encoder entropy encodes the scanned coefficients using a variation of run length coding ( 470 ).
  • the encoder selects an entropy code from one or more run/level/last tables ( 475 ) and outputs the entropy code.
  • FIG. 5 shows the decoding process ( 500 ) for an inter-coded block. Due to the quantization of the DCT coefficients, the reconstructed block ( 575 ) is not identical to the corresponding original block. The compression is lossy.
  • a decoder decodes ( 510 , 520 ) entropy-coded information representing a prediction residual using variable length decoding and one or more run/level/last tables ( 515 ).
  • the decoder inverse scans ( 530 ) a one-dimensional array ( 525 ) storing the entropy-decoded information into a two-dimensional block ( 535 ).
  • the decoder inverse quantizes and inverse discrete cosine transforms (together, 540 ) the data, resulting in a reconstructed error block ( 545 ).
  • the decoder computes a predicted block ( 565 ) using motion vector information ( 555 ) for displacement from a reference frame.
  • the decoder combines ( 570 ) the predicted block ( 555 ) with the reconstructed error block ( 545 ) to form the reconstructed block ( 575 ).
  • the amount of change between the original and reconstructed frame is termed the distortion and the number of bits required to code the frame is termed the rate.
  • the amount of distortion is roughly inversely proportional to the rate. In other words, coding a frame with fewer bits (greater compression) will result in greater distortion and vice versa.
  • One of the goals of a video compression scheme is to try to improve the rate-distortion—in other words to try to achieve the same distortion using fewer bits (or the same bits and lower distortion).
  • the size of the frequency transform is the size of the prediction residual block (e.g., an 8 ⁇ 8 DCT for an 8 ⁇ 8 prediction residual). In some circumstances, this fails to exploit localization of error within the prediction residual block.
  • the WMV7 decoder can process reconstructed frames with a deblocking filter.
  • the deblocking filter smoothes the boundaries between blocks.
  • the deblocking filter in WMV7 improves perceived video quality, it has several disadvantages.
  • the smoothing occurs only on reconstructed output in the decoder. Therefore, prediction processes such as motion estimation cannot take advantage of the smoothing.
  • the smoothing by the post-processing filter can be too extreme.
  • a video encoder adaptively switches between multiple different motion resolutions, which allows the encoder to select a suitable resolution for a particular video source or coding circumstances. For example, the encoder adaptively switches between pixel, half-pixel, and quarter-pixel resolutions. The encoder can switch based upon a closed-loop decision involving actual coding with the different options, or based upon an open-loop estimation. The encoder switches resolutions on a frame-by-frame basis or other basis.
  • a video encoder uses previously computed results from a first resolution motion estimation to speed up another resolution motion estimation. For example, in some circumstances, the encoder searches for a quarter-pixel motion vector around an integer-pixel motion vector that was also used in half-pixel motion estimation. Or, the encoder uses previously computed half-pixel location values in computation of quarter-pixel location values.
  • a video encoder uses a search range with different directional resolutions. This allows the encoder and decoder to place greater emphasis on directions likely to have more motion, and to eliminate the calculation of numerous sub-pixel values in the search range.
  • the encoder uses a search range with quarter-pixel increments and resolution horizontally, and half-pixel increments and resolution vertically.
  • the search range is effectively quarter the size of a full quarter-by-quarter-pixel search range, and the encoder eliminates calculation of many of the quarter-pixel location points.
  • a video encoder uses a motion vector representation with different bit allocation for horizontal and vertical motion. This allows the encoder to reduce bitrate by eliminating resolution that is less essential to quality. For example, the encoder represents a quarter-pixel motion vector by adding 1 bit to a half-pixel motion vector code to indicate a corresponding quarter-pixel location.
  • FIG. 1 is a diagram showing block-based intraframe compression of an 8 ⁇ 8 block of pixels according to prior art.
  • FIG. 2 is a diagram showing prediction of frequency coefficients according to the prior art.
  • FIG. 3 is a diagram showing motion estimation in a video encoder according to the prior art.
  • FIG. 4 is a diagram showing block-based interframe compression for an 8 ⁇ 8 block of prediction residuals in a video encoder according to the prior art.
  • FIG. 5 is a diagram showing block-based intraframe decompression for an 8 ⁇ 8 block of prediction residuals according to the prior art.
  • FIG. 6 is a block diagram of a suitable computing environment in which several described embodiments may be implemented.
  • FIG. 7 is a block diagram of a generalized video encoder system used in several described embodiments.
  • FIG. 8 is a block diagram of a generalized video decoder system used in several described embodiments.
  • FIG. 9 is a flowchart showing a technique for selecting a motion estimation resolution for a predicted frame in a video encoder.
  • FIGS. 1O a and 1 O b are flowcharts showing techniques for computing and evaluating motion vectors of a predicted frame in a video encoder.
  • FIG. 11 is a chart showing search locations for sub-pixel motion estimation.
  • FIG. 12 is a chart showing sub-pixel locations with values computed by interpolation in sub-pixel motion estimation.
  • FIG. 13 is a flowchart showing a technique for entropy decoding motion vectors of different resolutions in a video decoder.
  • a video encoder incorporates techniques that improve the efficiency of interframe coding
  • a video decoder incorporates techniques that improve the efficiency of interframe decoding
  • a bitstream format includes flags and other codes to incorporate the techniques.
  • FIG. 6 illustrates a generalized example of a suitable computing environment ( 600 ) in which several of the described embodiments may be implemented.
  • the computing environment ( 600 ) is not intended to suggest any limitation as to scope of use or functionality, as the techniques and tools may be implemented in diverse general-purpose or special-purpose computing environments.
  • the computing environment ( 600 ) includes at least one processing unit ( 610 ) and memory ( 620 ).
  • the processing unit ( 610 ) executes computer-executable instructions and may be a real or a virtual processor. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power.
  • the memory ( 620 ) may be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two.
  • the memory ( 620 ) stores software ( 680 ) implementing a video encoder or decoder.
  • a computing environment may have additional features.
  • the computing environment ( 600 ) includes storage ( 640 ), one or more input devices ( 650 ), one or more output devices ( 660 ), and one or more communication connections ( 670 ).
  • An interconnection mechanism such as a bus, controller, or network interconnects the components of the computing environment ( 600 ).
  • operating system software provides an operating environment for other software executing in the computing environment ( 600 ), and coordinates activities of the components of the computing environment ( 600 ).
  • the storage ( 640 ) may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or any other medium which can be used to store information and which can be accessed within the computing environment ( 600 ).
  • the storage ( 640 ) stores instructions for the software ( 680 ) implementing the video encoder or decoder.
  • the input device(s) ( 650 ) may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing environment ( 600 ).
  • the input device(s) ( 650 ) may be a sound card, video card, TV tuner card, or similar device that accepts audio or video input in analog or digital form, or a CD-ROM or CD 30 RW that reads audio or video samples into the computing environment ( 600 ).
  • the output device(s) ( 660 ) may be a display, printer, speaker, CD-writer, or another device that provides output from the computing environment ( 600 ).
  • the communication connection(s) ( 670 ) enable communication over a communication medium to another computing entity.
  • the communication medium conveys information such as computer-executable instructions, audio or video input or output, or other data in a modulated data signal.
  • a modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media include wired or wireless techniques implemented with an electrical, optical, RF, infrared, acoustic, or other carrier.
  • Computer-readable media are any available media that can be accessed within a computing environment.
  • Computer-readable media include memory ( 620 ), storage ( 640 ), communication media, and combinations of any of the above.
  • program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • the functionality of the program modules may be combined or split between program modules as desired in various embodiments.
  • Computer-executable instructions for program modules may be executed within a local or distributed computing environment.
  • FIG. 7 is a block diagram of a generalized video encoder ( 700 ) and FIG. 8 is a block diagram of a generalized video decoder ( 800 ).
  • FIGS. 7 and 8 usually do not show side information indicating the encoder settings, modes, tables, etc. used for a video sequence, frame, macroblock, block, etc.
  • Such side information is sent in the output bitstream, typically after entropy encoding of the side information.
  • the format of the output bitstream can be Windows Media Video version 8 format or another format.
  • the encoder ( 700 ) and decoder ( 800 ) are block-based and use a 4:2:0 macroblock format with each macroblock including 4 luminance 8 ⁇ 8 luminance blocks (at times treated as one 16 ⁇ 16 macroblock) and two 8 ⁇ 8 chrominance blocks.
  • the encoder ( 700 ) and decoder ( 800 ) are object-based, use a different macroblock or block format, or perform operations on sets of pixels of different size or configuration than 8 ⁇ 8 blocks and 16 ⁇ 16 macroblocks.
  • modules of the encoder or decoder can be added, omitted, split into multiple modules, combined with other modules, and/or replaced with like modules.
  • encoder or decoders with different modules and/or other configurations of modules perform one or more of the described techniques.
  • FIG. 7 is a block diagram of a general video encoder system ( 700 ).
  • the encoder system ( 700 ) receives a sequence of video frames including a current frame ( 705 ), and produces compressed video information ( 795 ) as output.
  • Particular embodiments of video encoders typically use a variation or supplemented version of the generalized encoder ( 700 ).
  • the encoder system ( 700 ) compresses predicted frames and key frames.
  • FIG. 7 shows a path for key frames through the encoder system ( 700 ) and a path for forward-predicted frames.
  • Many of the components of the encoder system ( 700 ) are used for compressing both key frames and predicted frames. The exact operations performed by those components can vary depending on the type of information being compressed.
  • a predicted frame (also called p-frame, b-frame for bi-directional prediction, or inter-coded frame] is represented in terms of prediction (or difference) from one or more other frames.
  • a prediction residual is the difference between what was predicted and the original frame.
  • a key frame also called i-frame, intra-coded frame
  • a motion estimator ( 710 ) estimates motion of macroblocks or other sets of pixels of the current frame ( 705 ) with respect to a reference frame, which is the reconstructed previous frame ( 725 ) buffered in the frame store ( 720 ).
  • the reference frame is a later frame or the current frame is bi-directionally predicted.
  • the motion estimator ( 710 ) can estimate motion by pixel, 1 ⁇ 2 pixel, 1 ⁇ 4 pixel, or other increments, and can switch the resolution of the motion estimation on a frame-by-frame basis or other basis. The resolution of the motion estimation can be the same or different horizontally and vertically.
  • the motion estimator ( 710 ) outputs as side information motion information ( 715 ) such as motion vectors.
  • a motion compensator ( 730 ) applies the motion information ( 715 ) to the reconstructed previous frame ( 725 ) to form a motion-compensated current frame ( 735 ).
  • the prediction is rarely perfect, however, and the difference between the motion-compensated current frame ( 735 ) and the original current frame ( 705 ) is the prediction residual ( 745 ).
  • a motion estimator and motion compensator apply another type of motion estimation/compensation.
  • a frequency transformer ( 760 ) converts the spatial domain video information into frequency domain (i.e., spectral) data.
  • the frequency transformer ( 760 ) applies a discrete cosine transform [“DCT”] or variant of DCT to blocks of the pixel data or prediction residual data, producing blocks of DCT coefficients.
  • the frequency transformer ( 760 ) applies another conventional frequency transform such as a Fourier transform or uses wavelet or subband analysis.
  • the frequency transformer ( 760 ) can apply a re-oriented frequency transform such as a skewed DCT to blocks of prediction residuals for the key frame.
  • the frequency transformer ( 760 ) applies an 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, or other size frequency transforms (e.g., DCT) to prediction residuals for predicted frames.
  • a quantizer ( 770 ) then quantizes the blocks of spectral data coefficients.
  • the quantizer applies uniform, scalar quantization to the spectral data with a step-size that varies on a frame-by-frame basis or other basis.
  • the quantizer applies another type of quantization to the spectral data coefficients, for example, a non-uniform, vector, or non-adaptive quantization, or directly quantizes spatial domain data in an encoder system that does not use frequency transformations.
  • the encoder ( 700 ) can use frame dropping, adaptive filtering, or other techniques for rate control.
  • an inverse quantizer ( 776 ) performs inverse quantization on the quantized spectral data coefficients.
  • An inverse frequency transformer ( 766 ) then performs the inverse of the operations of the frequency transformer ( 760 ), producing a reconstructed prediction residual (for a predicted frame) or a reconstructed key frame. If the current frame ( 705 ) was a key frame, the reconstructed key frame is taken as the reconstructed current frame (not shown). If the current frame ( 705 ) was a predicted frame, the reconstructed prediction residual is added to the motion-compensated current frame ( 735 ) to form the reconstructed current frame.
  • the frame store ( 720 ) buffers the reconstructed current frame for use in predicting the next frame.
  • the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the blocks of the frame.
  • the entropy coder ( 780 ) compresses the output of the quantizer ( 770 ) as well as certain side information (e.g., motion information ( 715 ), spatial extrapolation modes, quantization step size).
  • Typical entropy coding techniques include arithmetic coding, differential coding, Huffman coding, run length coding, LZ coding, dictionary coding, and combinations of the above.
  • the entropy coder ( 780 ) typically uses different coding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, different kinds of side information), and can choose from among multiple code tables within a particular coding technique.
  • the entropy coder ( 780 ) puts compressed video information ( 795 ) in the buffer ( 790 ).
  • a buffer level indicator is fed back to bitrate adaptive modules.
  • the compressed video information ( 795 ) is depleted from the buffer ( 790 ) at a constant or relatively constant bitrate and stored for subsequent streaming at that bitrate. Therefore, the level of the buffer ( 790 ) is primarily a function of the entropy of the filtered, quantized video information, which affects the efficiency of the entropy coding.
  • the encoder system ( 700 ) streams compressed video information immediately following compression, and the level of the buffer ( 790 ) also depends on the rate at which information is depleted from the buffer ( 790 ) for transmission.
  • the compressed video information ( 795 ) can be channel coded for transmission over the network.
  • the channel coding can apply error detection and correction data to the compressed video information ( 795 ).
  • FIG. 8 is a block diagram of a general video decoder system ( 800 ).
  • the decoder system ( 800 ) receives information ( 895 ) for a compressed sequence of video frames and produces output including a reconstructed frame ( 805 ).
  • Particular embodiments of video decoders typically use a variation or supplemented version of the generalized decoder ( 800 ).
  • the decoder system ( 800 ) decompresses predicted frames and key frames.
  • FIG. 8 shows a path for key frames through the decoder system ( 800 ) and a path for forward-predicted frames.
  • Many of the components of the decoder system ( 800 ) are used for compressing both key frames and predicted frames. The exact operations performed by those components can vary depending on the type of information being compressed.
  • a buffer ( 890 ) receives the information ( 895 ) for the compressed video sequence and makes the received information available to the entropy decoder ( 880 ).
  • the buffer ( 890 ) typically receives the information at a rate that is fairly constant over time, and includes a jitter buffer to smooth short-term variations in bandwidth or transmission.
  • the buffer ( 890 ) can include a playback buffer and other buffers as well. Alternatively, the buffer ( 890 ) receives information at a varying rate. Before or after the buffer ( 890 ), the compressed video information can be channel decoded and processed for error detection and correction.
  • the entropy decoder ( 880 ) entropy decodes entropy-coded quantized data as well as entropy-coded side information (e.g., motion information ( 815 ), spatial extrapolation modes, quantization step size), typically applying the inverse of the entropy encoding performed in the encoder.
  • Entropy decoding techniques include arithmetic decoding, differential decoding, Huffman decoding, run length decoding, LZ decoding, dictionary decoding, and combinations of the above.
  • the entropy decoder ( 880 ) frequently uses different decoding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, different kinds of side information), and can choose from among multiple code tables within a particular decoding technique.
  • a motion compensator ( 830 ) applies motion information ( 815 ) to a reference frame ( 825 ) to form a prediction ( 835 ) of the frame ( 805 ) being reconstructed.
  • the motion compensator ( 830 ) uses a macroblock motion vector to find a macroblock in the reference frame ( 825 ).
  • a frame buffer ( 820 ) stores previous reconstructed frames for use as reference frames.
  • the motion compensator ( 830 ) can compensate for motion at pixel, 1 ⁇ 2 pixel, 1 ⁇ 4 pixel, or other increments, and can switch the resolution of the motion compensation on a frame-by-frame basis or other basis.
  • the resolution of the motion compensation can be the same or different horizontally and vertically.
  • a motion compensator applies another type of motion compensation.
  • the prediction by the motion compensator is rarely perfect, so the decoder ( 800 ) also reconstructs prediction residuals.
  • the frame store ( 820 ) buffers the reconstructed frame for use in predicting the next frame.
  • the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the blocks of the frame.
  • An inverse quantizer ( 870 ) inverse quantizes entropy-decoded data.
  • the inverse quantizer applies uniform, scalar inverse quantization to the entropy-decoded data with a step-size that varies on a frame-by-frame basis or other basis.
  • the inverse quantizer applies another type of inverse quantization to the data, for example, a non-uniform, vector, or non-adaptive quantization, or directly inverse quantizes spatial domain data in a decoder system that does not use inverse frequency transformations.
  • An inverse frequency transformer ( 860 ) converts the quantized, frequency domain data into spatial domain video information.
  • the inverse frequency transformer ( 860 ) applies an inverse DCT [“IDCT”] or variant of IDCT to blocks of the DCT coefficients, producing pixel data or prediction residual data for key frames or predicted frames, respectively.
  • the frequency transformer ( 860 ) applies another conventional inverse frequency transform such as a Fourier transform or uses wavelet or subband synthesis.
  • the decoder uses spatial extrapolation (not shown in FIG.
  • the inverse frequency transformer ( 860 ) can apply a re-oriented inverse frequency transform such as a skewed IDCT to blocks of prediction residuals for the key frame.
  • the inverse frequency transformer ( 860 ) applies an 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, or other size inverse frequency transforms (e.g., IDCT) to prediction residuals for predicted frames.
  • a video encoder exploits redundancies in typical still images in order to code the I-frame information using a smaller number of bits.
  • intraframe encoding and decoding See U.S. patent application Ser. No. aa/bbb,ccc, entitled “Spatial Extrapolation of Pixel Values in Intraframe Video Coding and Decoding,” filed concurrently herewith.
  • Inter-frame coding exploits temporal redundancy between frames to achieve compression. Temporal redundancy reduction uses previously coded frames as predictors when coding the current frame.
  • a video encoder exploits temporal redundancies in typical video sequences in order to code the information using a smaller number of bits.
  • the video encoder uses motion estimation/compensation of a macroblock or other set of pixels of a current frame with respect to a reference frame.
  • a video decoder uses corresponding motion compensation.
  • Various features of the motion estimation/compensation can be used in combination or independently. These features include, but are not limited to:
  • a motion information representation with different bit allocation for horizontal and vertical motion For example, a video encoder uses an additional bit for motion information in the horizontal direction, compared to the vertical direction.
  • a resolution bit with a motion information representation for additional resolution of motion estimation/compensation. For example, a video encoder adds a bit to half-pixel motion information to differentiate between a half-pixel increment and a quarter-pixel increment. A video decoder receives the resolution bit.
  • a video encoder adds a bit to half-pixel motion information to differentiate between a half-pixel increment and a quarter-pixel increment only for half-pixel motion information, not integer-pixel motion information.
  • a video decoder selectively receives the resolution bit.
  • the video encoder establishes a search range within the reference frame.
  • the video encoder can center the search range around a predicted location that is set based upon the motion information for neighboring sets of pixels.
  • the encoder uses a reduced coverage range for the higher resolution motion estimation (e.g., quarter-pixel motion estimation) to balance between the bits used to signal the higher resolution motion information and distortion reduction due to the higher resolution motion estimation.
  • the higher resolution motion estimation e.g., quarter-pixel motion estimation
  • Most motions observed in TV and movie content tends to be dominated by finer horizontal motion than vertical motion. This is probably due to the fact that most camera movements tend to be more horizontal, since rapid vertical motion seems to make viewers dizzy.
  • the encoder uses higher resolution motion estimation/compensation that covers more horizontal locations than vertical locations. This strikes a balance between rate and distortion, and lowers the computational complexity of the motion information search process as well.
  • the search range has the same resolution horizontally and vertically.
  • the encoder finds a motion vector that parameterizes the motion of a macroblock or other set of pixels in the predicted frame.
  • the encoder computes and switches between higher sub-pixel accuracy and lower sub-pixel accuracy.
  • the encoder does not switch between resolutions for motion estimation/compensation.
  • the encoder can compute other types motion information to parameterize motion of a set of pixels between frames.
  • the encoder switches between quarter-pixel accuracy using a combination of four taps/two taps filter, and half-pixel accuracy using a two-tap filter.
  • the encoder switches resolution of motion estimation/compensation on a per frame basis, per sequence basis, or other basis.
  • quarter-pixel motion compensation works well for very clean video sources (i.e., no noise)
  • half-pixel motion compensation handles noisy video sources (e.g., video from a cable feed) much better.
  • the two-tap filter of the half-pixel motion compensation acts as a lowpass filter and tends to attenuate the noise.
  • the four-tap filter of the quarter-pixel motion compensation has some highpass effects so it can preserve the edges, but, unfortunately, it also tends to accentuate the noise.
  • Other implementations use different filters.
  • the encoder After the encoder finds a motion vector or other motion information, the encoder outputs the information. For example, the encoder outputs entropy-coded data for the motion vector, motion vector differentials, or other motion information.
  • the encoder uses a motion vector with different bit allocation for horizontal and vertical motion. An extra bit adds quarter-pixel resolution horizontally to a half-pixel motion vector. The encoder saves bits by coding vertical motion vector at half-pixel accuracy. The encoder can add the bit only for half-pixel motion vectors, not for integer-pixel motion vectors, which further reduces the overall bitrate. In alternative embodiments, the encoder uses the same bit allocation for horizontal and vertical motions.
  • a video encoder switches resolution of motion estimation/compensation.
  • FIG. 9 shows a technique for selecting a motion estimation resolution for a predicted video frame. The encoder selects between half-pixel resolution and quarter-pixel resolution for motion vectors on a per frame basis. For the sake of simplicity, FIG. 9 does not show the various ways in which the technique ( 900 ) can be used in conjunction with other techniques. In alternative embodiments, the encoder switches between resolutions other than quarter and half-pixel and/or switches at a frequency other than per frame.
  • the encoder gets ( 910 ) a macroblock for a predicted frame and computes ( 920 ) a half-pixel motion vector for the macroblock. The encoder also computes ( 930 ) a quarter-pixel motion vector for the macroblock. The encoder evaluates ( 940 ) the motion vectors. For example, for each of the motion vectors, the encoder computes an error measure such as sum of absolute differences [“SAD”], mean square error [“MSE”], a perceptual distortion measure, or another measure for the prediction residual.
  • an error measure such as sum of absolute differences [“SAD”], mean square error [“MSE”], a perceptual distortion measure, or another measure for the prediction residual.
  • the encoder computes and evaluates motion vectors as shown in FIG 10 a .
  • the encoder computes ( 1010 ) a half-pixel motion vector MV h in integer-pixel accuracy.
  • the encoder finds a motion vector by searching at integer increments within the search range.
  • the encoder then computes ( 1020 ) MV h to half-pixel accuracy in a region around the first computed MV h .
  • the encoder computes ( 1050 ) a quarter-pixel motion vector MV q in integer-pixel accuracy and then computes ( 1070 ) MV q to quarter-pixel accuracy in a region around the first computed MV q .
  • the encoder then evaluates ( 1090 ) the final MV h and MV q .
  • the encoder evaluates the motion vectors later.
  • the encoder eliminates a computation of a motion vector at integer-pixel accuracy in many cases by computing motion vectors as shown in FIG. 10 b .
  • the encoder computes ( 1010 ) MV h to integer-pixel accuracy.
  • the encoder checks ( 1030 ) whether the integer-pixel accurate MV h can be used for MV q . Specifically, the encoder checks whether integer-pixel accurate MV h lies within the motion vector search range for the set of quarter-pixel motion vectors.
  • the motion vector search range for a given macroblock is set to be ⁇ 16 (R in FIG. 10) of a motion vector predictor for the quarter-pixel motion vector.
  • the motion vector predictor for a macroblock is the component-wise median of the macroblock's left, top, and top-right neighboring macroblocks' motion vectors, and can be different for MV h and MV q .
  • the range, motion vector predictor, or conditional bypass is computed differently.
  • the encoder skips the computation of the integer-pixel MV q , and simply sets ( 1040 ) MV q to MV h . Otherwise, the encoder computes ( 1050 ) MV q to integer-pixel accuracy.
  • the encoder computes ( 1020 ) MV h to half-pixel accuracy, computes ( 1070 ) MV q to quarter-pixel accuracy, and evaluates ( 1070 ) the motion vectors. Alternatively, the encoder computes the quarter-pixel motion vector at integer-pixel accuracy first, and selectively bypasses the computation of the half-pixel motion vector at integer-pixel accuracy.
  • the encoder determines ( 950 ) whether there are any more macroblocks in the frame. If so, the encoder gets ( 960 ) the next macroblock and computes motion vectors for it.
  • the encoder selects ( 970 ) the motion vector resolution for the predicted frame.
  • the encoder uses a rate-distortion criterion to select the set of MV h 's or the set of MV q 's. The encoder compares the cost of choosing half-pixel resolution versus quarter-pixel resolution and picks the minimum of the two.
  • J h and J q are the cost of choosing half-pixel resolution and quarter-pixel resolution, respectively.
  • SAD h and SAD q are the sums of the residual error from prediction using the half-pixel and quarter-pixel motion vectors, respectively.
  • QP is a quantization parameter. The effect of QP is to bias the selection in favor of half-pixel resolution in cases where QP is high and distortion in residuals would offset gains in quality from the higher resolution motion estimation.
  • iMvBitOverhead is the extra bits for coding quarter-pixel motion vectors compared to the half-pixel motion vectors.
  • iMvBitOverhead is the number of non-integer-pixel motion vectors in the set of MV q s.
  • the encoder uses other costs functions, for example, cost functions that directly compare the bits spent for different resolutions of motion vectors.
  • a video encoder uses a search range with different horizontal and vertical resolutions.
  • the horizontal resolution of the search range is quarter pixel and the vertical resolution of the search range is half pixel.
  • the encoder finds an integer-pixel accurate motion vector in a search range, for example, by searching at integer increments within the search range. In a region around the integer-pixel accurate motion vector, the encoder computes a sub-pixel accurate motion vector by evaluating motion vectors at sub-pixel locations in the region.
  • FIG. 11 shows a location I that is pointed to by an integer-pixel accurate motion vector.
  • the encoder computes a half-pixel motion vector by searching for the best match among all eight half-pixel locations H 0 to H 7 surrounding the integer position I.
  • the encoder computes the quarter-pixel motion vector by searching for the best match among the eight half-pixel locations H 0 to H 7 and eight quarter-pixel locations Q 0 to Q 7 .
  • the searched quarter-pixel locations are placed horizontally between adjacent half-pixel locations.
  • the searched quarter-pixel locations are not placed vertically between adjacent half-pixel locations.
  • the search density increases on horizontal quarter-pixel locations, but not vertical quarter-pixel locations. This feature improves performance by speeding up the motion estimation process compared to a search in each direction by quarter-pixel increments, which would also require the computation of values for additional quarter-pixel locations.
  • the quarter-pixel location to the right of the integer-pixel location is not searched as a valid location for a quarter-pixel motion vector, although a sub-pixel value is computed there for matching purposes.
  • that quarter-pixel location is also searched and a different scheme is used to represent quarter-pixel motion vectors.
  • the encoder uses a different search pattern for quarter-pixel motion vectors.
  • the encoder generates values for sub-pixel locations by interpolation.
  • the interpolation filter differs depending on the resolution chosen. For half-pixel resolution, the encoder uses a two-tap bilinear filter to generate the match, while for quarter-pixel resolution, the encoder uses a combination of four-tap and two-tap filters to generate the match.
  • FIG. 12 shows sub-pixel locations H 0 , H 1 , H 2 with values computed by interpolation of integer-pixel values a, b, c, . . . , p.
  • H 0 ( f+g+ 1 ⁇ iRndCtrl)>>1.
  • H 1 ( f+j+ 1 ⁇ iRndCtrl)>>1.
  • H 2 ( f+g+j+k+ 2 ⁇ iRndCtrl)>>2.
  • iRndCtrl indicates rounding control and varies between 0 and 1 from frame to frame.
  • H 0 ( ⁇ e+ 9 f+ 9 g ⁇ h+ 8)>>4.
  • H 1 ( ⁇ b+ 9 f+ 9 j ⁇ n+ 8)>>4.
  • H 2 ( ⁇ t 0 +9 t 1 +9 t 2 ⁇ t 3 +8)>>4.
  • the encoder also searches some of the quarter-pixel locations, as indicated by Q 0 to Q 7 in FIG. 11. These quarter-pixel locations are situated horizontally in between either two half-pixel locations or an integer-pixel location and a half-pixel location.
  • the encoder uses bilinear interpolation (i.e., (x+y+1)>>1) using the two horizontally neighboring half-pixel/integer-pixel locations without rounding control. Using bicubic interpolation followed by bilinear interpolation balances computational complexity and information preservation, giving good results for reasonable computational complexity.
  • the encoder uses filters with different numbers or magnitudes of taps.
  • bilinear interpolation smoothes the values, attenuating high frequency information, whereas bicubic interpolation preserves more high frequency information but can accentuate noise.
  • Using two bilinear steps one for half-pixel locations, the second for quarter-pixel locations) is simple, but can smooth the pixels too much for efficient motion estimation.
  • a video encoder uses different bit allocation for horizontal and vertical motion vectors. For example, the video encoder uses one or more extra bits to represent motion in one direction with finer resolution that motion in another direction. This allows the encoder to reduce bitrate for vertical resolution information that is less useful for compression, compared to systems that code motion information at quarter-pixel resolution both horizontally and vertically.
  • a video encoder uses an extra bit for quarter-pixel resolution of horizontal component motion vectors for macroblocks.
  • the video encoder uses half-pixel vertical component motion vectors.
  • the video encoder can also use integer-pixel motion vectors.
  • the encoder outputs one or more entropy codes or another representation for a horizontal component motion vector and a vertical component motion vector.
  • the encoder also outputs an additional bit that indicates a quarter-pixel horizontal increment. A value of 0 indicates no quarter-pixel increment and a value of 1 indicates a quarter-pixel increment, or vice versa.
  • the use of the extra bit avoids the use of separate entropy code tables for quarter-pixel MVs/DMVs and half-pixel MVs/DMVs, and also adds little to bitrate.
  • a video encoder selectively uses the extra bit for quarter-pixel resolution of horizontal component motion vectors for macroblocks.
  • the encoder adds the extra bit only if 1) quarter-pixel resolution is used for the frame and 2) at least one of the horizontal or vertical component motion vectors for a macroblock has half-pixel resolution.
  • the extra bit is not used when quarter-pixel resolution is not used for a frame or when the motion vector for the macroblock is integer-pixel resolution, which reduces overall bitrate.
  • the encoder adds the extra bit based upon other criteria.
  • FIG. 13 shows a technique for decoding information for motion vectors at selective resolution.
  • FIG. 13 does not show the various ways in which the technique ( 1300 ) can be used in conjunction with other techniques.
  • a decoder gets ( 1310 ) motion vector information for a macroblock, for example, receiving one or more entropy codes or other information for a motion vector, component motion vectors, differential motion vectors (“DMVs”), or differential component motion vectors.
  • DMVs differential motion vectors
  • the decoder determines ( 1330 ) whether it has received all of the motion vector information for the macroblock. For example, the decoder determines whether additional resolution is enabled for the macroblock (e.g., at a frame level). Or, the decoder determines from decoding of the already received motion vector information whether to expect additional information. Or, the encoder considers both whether the additional resolution is enabled and whether to expect it based upon previously decoded information.
  • the decoder gets ( 1340 ) the additional information. For example, the decoder gets one or more additional resolution bits for the motion vector information for the macroblock.
  • the decoder then reconstructs ( 1350 ) the macroblock using the motion vector information and determines ( 1360 ) whether there are other macroblocks in the frame. If not, the technique ends. Otherwise, the decoder gets ( 1370 ) the motion vector information for the next macroblock and continues.
  • Motion estimation is rarely perfect, and the video encoder uses prediction residuals to represent the differences between the original video information and the video information predicted using motion estimation.
  • a video encoder exploits redundancies in prediction residuals in order to code the information using a smaller number of bits.
  • U.S. patent application Ser. No. aa/bbb,ccc entitled “Sub-Block Transform Coding of Prediction Residuals,” filed concurrently herewith.
  • Quantization and other lossy processing of prediction residuals can cause blocky artifacts in reference frames that are used for motion estimation/compensation for subsequent predicted frames.
  • a video encoder processes a reconstructed frame to reduce blocky artifacts prior to motion estimation using the reference frame.
  • a video decoder processes the reconstructed frame to reduce blocky artifacts prior to motion compensation using the reference frame.
  • deblocking a reference frame becomes a better reference candidate to encode the following frame.
  • using the deblocking filter improves the quality of motion estimation/compensation, resulting in better prediction and lower bitrate for prediction residuals.
  • U.S. patent application Ser. No. aa/bbb,ccc entitled “Motion Compensation Loop With Filtering,” filed concurrently herewith.

Abstract

Techniques and tools for motion estimation and compensation are described. For example, a video encoder adaptively switches between different motion resolutions, which allows the encoder to select a suitable resolution for a particular video source or coding circumstances.

Description

    RELATED APPLICATION INFORMATION
  • The present application claims the benefit of U.S. Provisional Patent Application Serial No. 60/341,674, entitled “Techniques and Tools for Video Encoding and Decoding,” filed Dec. 17, 2001, the disclosure of which is incorporated by reference. The following concurrently filed U.S. patent applications relate to the present application: 1) U.S. patent application Ser. No. aa/bbb,ccc, entitled, “Motion Compensation Loop With Filtering,” filed concurrently herewith; 2) U.S. patent application Ser. No. aa/bbb,ccc, entitled, “Spatial Extrapolation of Pixel Values in Intraframe Video Coding and Decoding,” filed concurrently herewith; and 3) U.S. patent application Ser. No. aa/bbb,ccc, entitled, “Sub-Block Transform Coding of Prediction Residuals,” filed concurrently herewith.[0001]
  • TECHNICAL FIELD
  • Techniques and tools for motion estimation and compensation are described. For example, a video encoder adaptively switches between different motion resolutions, which allows the encoder to select a suitable resolution for a particular video source or coding circumstances. [0002]
  • BACKGROUND
  • Digital video consumes large amounts of storage and transmission capacity. A typical raw digital video sequence includes 15 or 30 frames per second. Each frame can include tens or hundreds of thousands of pixels (also called pels). Each pixel represents a tiny element of the picture. In raw form, a computer commonly represents a pixel with 24 bits. Thus, the number of bits per second, or bitrate, of a typical raw digital video sequence can be 5 million bits/second or more. [0003]
  • Most computers and computer networks lack the resources to process raw digital video. For this reason, engineers use compression (also called coding or encoding) to reduce the bitrate of digital video. Compression can be lossless, in which quality of the video does not suffer but decreases in bitrate are limited by the complexity of the video. Or, compression can be lossy, in which quality of the video suffers but decreases in bitrate are more dramatic. Decompression reverses compression. [0004]
  • In general, video compression techniques include intraframe compression and interframe compression. Intraframe compression techniques compress individual frames, typically called I-frames, or key frames. Interframe compression techniques compress frames with reference to preceding and/or following frames, and are called typically called predicted frames, P-frames, or B-frames. [0005]
  • Microsoft Corporation's Windows Media Video, Version 7 [“WMV7”] includes a video encoder and a video decoder. The WMV7 encoder uses intraframe and interframe compression, and the WMV7 decoder uses intraframe and interframe decompression. [0006]
  • A. Intraframe Compression in WMV7 [0007]
  • FIG. 1 illustrates block-based intraframe compression ([0008] 100) of a block (105) of pixels in a key frame in the WMV7 encoder. A block is a set of pixels, for example, an 8×8 arrangement of pixels. The WMV7 encoder splits a key video frame into 8×8 blocks of pixels and applies an 8×8 Discrete Cosine Transform [“DCT”] (110) to individual blocks such as the block (105). A DCT is a type of frequency transform that converts the 8×8 block of pixels (spatial information) into an 8×8 block of DCT coefficients (115), which are frequency information. The DCT operation itself is lossless or nearly lossless. Compared to the original pixel values, however, the DCT coefficients are more efficient for the encoder to compress since most of the significant information is concentrated in low frequency coefficients (conventionally, the upper left of the block (115)) and many of the high frequency coefficients (conventionally, the lower right of the block (115)) have values of zero or close to zero.
  • The encoder then quantizes ([0009] 120) the DCT coefficients, resulting in an 8×8 block of quantized DCT coefficients (125). For example, the encoder applies a uniform, scalar quantization step size to each coefficient, which is analogous to dividing each coefficient by the same value and rounding. For example, if a DCT coefficient value is 163 and the step size is 10, the quantized DCT coefficient value is 16. Quantization is lossy. The reconstructed DCT coefficient value will be 160, not 163. Since low frequency DCT coefficients tend to have higher values, quantization results in loss of precision but not complete loss of the information for the coefficients. On the other hand, since high frequency DCT coefficients tend to have values of zero or close to zero, quantization of the high frequency coefficients typically results in contiguous regions of zero values. In addition, in some cases high frequency DCT coefficients are quantized more coarsely than low frequency DCT coefficients, resulting in greater loss of precision/information for the high frequency DCT coefficients.
  • The encoder then prepares the 8×8 block of quantized DCT coefficients ([0010] 125) for entropy encoding, which is a form of lossless compression. The exact type of entropy encoding can vary depending on whether a coefficient is a DC coefficient (lowest frequency), an AC coefficient (other frequencies) in the top row or left column, or another AC coefficient.
  • The encoder encodes the DC coefficient ([0011] 126) as a differential from the DC coefficient (136) of a neighboring 8×8 block, which is a previously encoded neighbor (e.g., top or left) of the block being encoded. (FIG. 1 shows a neighbor block (135) that is situated to the left of the block being encoded in the frame.) The encoder entropy encodes (140) the differential.
  • The entropy encoder can encode the left column or top row of AC coefficients as a differential from a corresponding column or row of the neighboring 8×8 block. FIG. 1 shows the left column ([0012] 127) of AC coefficients encoded as a differential (147) from the left column (137) of the neighboring (to the left) block (135). The differential coding increases the chance that the differential coefficients have zero values. The remaining AC coefficients are from the block (125) of quantized DCT coefficients.
  • The encoder scans ([0013] 150) the 8×8 block (145) of predicted, quantized AC DCT coefficients into a one-dimensional array (155) and then entropy encodes the scanned AC coefficients using a variation of run length coding (160). The encoder selects an entropy code from one or more run/level/last tables (165) and outputs the entropy code.
  • A key frame contributes much more to bitrate than a predicted frame. In low or mid-bitrate applications, key frames are often critical bottlenecks for performance, so efficient compression of key frames is critical. [0014]
  • FIG. 2 illustrates a disadvantage of intraframe compression such as shown in FIG. 1. In particular, exploitation of redundancy between blocks of the key frame is limited to prediction of a subset of frequency coefficients (e.g., the DC coefficient and the left column (or top row) of AC coefficients) from the left ([0015] 220) or top (230) neighboring block of a block (210). The DC coefficient represents the average of the block, the left column of AC coefficients represents the averages of the rows of a block, and the top row represents the averages of the columns. In effect, prediction of DC and AC coefficients as in WMV7 limits extrapolation to the row-wise (or column-wise) average signals of the left (or top) neighboring block. For a particular row (221) in the left block (220), the AC coefficients in the left DCT coefficient column for the left block (220) are used to predict the entire corresponding row (211) of the block (210). The disadvantages of this prediction include:
  • 1) Since the prediction is based on averages, the far edge of the neighboring block has the same influence on the predictor as the adjacent edge of the neighboring block, whereas intuitively the far edge should have a smaller influence. [0016]
  • 2) Only the average pixel value across the row (or column) is extrapolated. [0017]
  • 3) Diagonally oriented edges or lines that propagate from either predicting block (top or left) to the current block are not predicted adequately. [0018]
  • 4) When the predicting block is to the left, there is no enforcement of continuity between the last row of the top block and the first row of the extrapolated block.[0019]
  • B. Interframe Compression in WMV7 [0020]
  • Interframe compression in the WMV7 encoder uses block-based motion compensated prediction coding followed by transform coding of the residual error. [0021]
  • FIGS. 3 and 4 illustrate the block-based interframe compression for a predicted frame in the WMV7 encoder. In particular, FIG. 3 illustrates motion estimation for a predicted frame ([0022] 310) and FIG. 4 illustrates compression of a prediction residual for a motion-estimated block of a predicted frame.
  • The WMV7 encoder splits a predicted frame into 8×8 blocks of pixels. Groups of 4 8×8 blocks form macroblocks. For each macroblock, a motion estimation process is performed. The motion estimation approximates the motion of the macroblock of pixels relative to a reference frame, for example, a previously coded, preceding frame. In FIG. 3, the WMV7 encoder computes a motion vector for a macroblock ([0023] 315) in the predicted frame (310). To compute the motion vector, the encoder searches in a search area (335) of a reference frame (330). Within the search area (335), the encoder compares the macroblock (315) from the predicted frame (310) to various candidate macroblocks in order to find a candidate macroblock that is a good match. The encoder can check candidate macroblocks every pixel or every ½ pixel in the search area (335), depending on the desired motion estimation resolution for the encoder. Other video encoders check at other increments, for example, every ¼ pixel. For a candidate macroblock, the encoder checks the difference between the macroblock (315) of the predicted frame (310) and the candidate macroblock and the cost of encoding the motion vector for that macroblock. After the encoder finds a good matching macroblock, the block matching process ends. The encoder outputs the motion vector (entropy coded) for the matching macroblock so the decoder can find the matching macroblock during decoding. When decoding the predicted frame (310), a decoder uses the motion vector to compute a prediction macroblock for the macroblock (315) using information from the reference frame (330). The prediction for the macroblock (315) is rarely perfect, so the encoder usually encodes 8×8 blocks of pixel differences (also called the error or residual blocks) between the prediction macroblock and the macroblock (315) itself.
  • Motion estimation and compensation are effective compression techniques, but various previous motion estimation/compensation techniques (as in WMV7 and elsewhere) have several disadvantages, including:[0024]
  • 1) The resolution of the motion estimation (i.e., pixel, ½ pixel, ¼ pixel increments) does not adapt to the video source. For example, for different qualities of video source (clean vs. noisy), the video encoder uses the same resolution of motion estimation, which can hurt compression efficiency. [0025]
  • 2) For ¼ pixel motion estimation, the search strategy fails to adequately exploit previously completed computations to speed up searching. [0026]
  • 3) For ¼ pixel motion estimation, the search range is too large and inefficient. In particular, the horizontal resolution is the same as the vertical resolution in the search range, which does not match the motion characteristics of many video signals. [0027]
  • 4) For ¼ pixel motion estimation, the representation of motion vectors is inefficient to the extent bit allocation for horizontal movement is the same as bit allocation for vertical resolution.[0028]
  • FIG. 4 illustrates the computation and encoding of an error block ([0029] 435) for a motion-estimated block in the WMV7 encoder. The error block (435) is the difference between the predicted block (415) and the original current block (425). The encoder applies a DCT (440) to error block (435), resulting in 8×8 block (445) of coefficients. Even more than was the case with DCT coefficients for pixel values, the significant information for the error block (435) is concentrated in low frequency coefficients (conventionally, the upper left of the block (445)) and many of the high frequency coefficients have values of zero or close to zero (conventionally, the lower right of the block (445)).
  • The encoder then quantizes ([0030] 450) the DCT coefficients, resulting in an 8×8 block of quantized DCT coefficients (455). The quantization step size is adjustable. Again, since low frequency DCT coefficients tend to have higher values, quantization results in loss of precision, but not complete loss of the information for the coefficients. On the other hand, since high frequency DCT coefficients tend to have values of zero or close to zero, quantization of the high frequency coefficients results in contiguous regions of zero values. In addition, in some cases high frequency DCT coefficients are quantized more coarsely than low frequency DCT coefficients, resulting in greater loss of precision/information for the high frequency DCT coefficients.
  • The encoder then prepares the 8×8 block ([0031] 455) of quantized DCT coefficients for entropy encoding. The encoder scans (460) the 8×8 block (455) into a one dimensional array (465) with 64 elements, such that coefficients are generally ordered from lowest frequency to highest frequency, which typical creates long runs of zero values.
  • The encoder entropy encodes the scanned coefficients using a variation of run length coding ([0032] 470). The encoder selects an entropy code from one or more run/level/last tables (475) and outputs the entropy code.
  • FIG. 5 shows the decoding process ([0033] 500) for an inter-coded block. Due to the quantization of the DCT coefficients, the reconstructed block (575) is not identical to the corresponding original block. The compression is lossy.
  • In summary of FIG. 5, a decoder decodes ([0034] 510, 520) entropy-coded information representing a prediction residual using variable length decoding and one or more run/level/last tables (515). The decoder inverse scans (530) a one-dimensional array (525) storing the entropy-decoded information into a two-dimensional block (535). The decoder inverse quantizes and inverse discrete cosine transforms (together, 540) the data, resulting in a reconstructed error block (545). In a separate path, the decoder computes a predicted block (565) using motion vector information (555) for displacement from a reference frame. The decoder combines (570) the predicted block (555) with the reconstructed error block (545) to form the reconstructed block (575).
  • The amount of change between the original and reconstructed frame is termed the distortion and the number of bits required to code the frame is termed the rate. The amount of distortion is roughly inversely proportional to the rate. In other words, coding a frame with fewer bits (greater compression) will result in greater distortion and vice versa. One of the goals of a video compression scheme is to try to improve the rate-distortion—in other words to try to achieve the same distortion using fewer bits (or the same bits and lower distortion). [0035]
  • Compression of prediction residuals as in WMV7 can dramatically reduce bitrate while slightly or moderately affecting quality, but the compression technique is less than optimal in some circumstances. The size of the frequency transform is the size of the prediction residual block (e.g., an 8×8 DCT for an 8×8 prediction residual). In some circumstances, this fails to exploit localization of error within the prediction residual block. [0036]
  • C. Post-processing with a Deblocking Filter in WMV7 [0037]
  • For block-based video compression and decompression, quantization and other lossy processing stages introduce distortion that commonly shows up as blocky artifacts—perceptible discontinuities between blocks. [0038]
  • To reduce the perceptibility of blocky artifacts, the WMV7 decoder can process reconstructed frames with a deblocking filter. The deblocking filter smoothes the boundaries between blocks. [0039]
  • While the deblocking filter in WMV7 improves perceived video quality, it has several disadvantages. For example, the smoothing occurs only on reconstructed output in the decoder. Therefore, prediction processes such as motion estimation cannot take advantage of the smoothing. Moreover, the smoothing by the post-processing filter can be too extreme. [0040]
  • D. Standards for Video Compression and Decompression [0041]
  • Aside from WMV7, several international standards relate to video compression and decompression. These standards include the Motion Picture Experts Group [“MPEG”] 1, 2, and 4 standards and the H.261, H.262, and H.263 standards from the International Telecommunication Union [“ITU”]. Like WMV7, these standards use a combination of intraframe and interframe compression, although the standards typically differ from WMV7 in the details of the compression techniques used. For additional detail about the standards, see the standards' specifications themselves. [0042]
  • Given the critical importance of video compression and decompression to digital video, it is not surprising that video compression and decompression are richly developed fields. Whatever the benefits of previous video compression and decompression techniques, however, they do not have the advantages of the following techniques and tools. [0043]
  • SUMMARY
  • In summary, the detailed description is directed to various techniques and tools for motion estimation and compensation. These techniques and tools address several of the disadvantages of motion estimation and compensation according to the prior art. The various techniques and tools can be used in combination or independently. [0044]
  • According to a first set of techniques and tools, a video encoder adaptively switches between multiple different motion resolutions, which allows the encoder to select a suitable resolution for a particular video source or coding circumstances. For example, the encoder adaptively switches between pixel, half-pixel, and quarter-pixel resolutions. The encoder can switch based upon a closed-loop decision involving actual coding with the different options, or based upon an open-loop estimation. The encoder switches resolutions on a frame-by-frame basis or other basis. [0045]
  • According to a second set of techniques and tools, a video encoder uses previously computed results from a first resolution motion estimation to speed up another resolution motion estimation. For example, in some circumstances, the encoder searches for a quarter-pixel motion vector around an integer-pixel motion vector that was also used in half-pixel motion estimation. Or, the encoder uses previously computed half-pixel location values in computation of quarter-pixel location values. [0046]
  • According to a third set of techniques and tools, a video encoder uses a search range with different directional resolutions. This allows the encoder and decoder to place greater emphasis on directions likely to have more motion, and to eliminate the calculation of numerous sub-pixel values in the search range. For example, the encoder uses a search range with quarter-pixel increments and resolution horizontally, and half-pixel increments and resolution vertically. The search range is effectively quarter the size of a full quarter-by-quarter-pixel search range, and the encoder eliminates calculation of many of the quarter-pixel location points. [0047]
  • According to a fourth set of techniques and tools, a video encoder uses a motion vector representation with different bit allocation for horizontal and vertical motion. This allows the encoder to reduce bitrate by eliminating resolution that is less essential to quality. For example, the encoder represents a quarter-pixel motion vector by adding 1 bit to a half-pixel motion vector code to indicate a corresponding quarter-pixel location. [0048]
  • Additional features and advantages will be made apparent from the following detailed description of different embodiments that proceeds with reference to the accompanying drawings.[0049]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram showing block-based intraframe compression of an 8×8 block of pixels according to prior art. [0050]
  • FIG. 2 is a diagram showing prediction of frequency coefficients according to the prior art. [0051]
  • FIG. 3 is a diagram showing motion estimation in a video encoder according to the prior art. [0052]
  • FIG. 4 is a diagram showing block-based interframe compression for an 8×8 block of prediction residuals in a video encoder according to the prior art. [0053]
  • FIG. 5 is a diagram showing block-based intraframe decompression for an 8×8 block of prediction residuals according to the prior art. [0054]
  • FIG. 6 is a block diagram of a suitable computing environment in which several described embodiments may be implemented. [0055]
  • FIG. 7 is a block diagram of a generalized video encoder system used in several described embodiments. [0056]
  • FIG. 8 is a block diagram of a generalized video decoder system used in several described embodiments. [0057]
  • FIG. 9 is a flowchart showing a technique for selecting a motion estimation resolution for a predicted frame in a video encoder. [0058]
  • FIGS. 1O[0059] a and 1Ob are flowcharts showing techniques for computing and evaluating motion vectors of a predicted frame in a video encoder.
  • FIG. 11 is a chart showing search locations for sub-pixel motion estimation. [0060]
  • FIG. 12 is a chart showing sub-pixel locations with values computed by interpolation in sub-pixel motion estimation. [0061]
  • FIG. 13 is a flowchart showing a technique for entropy decoding motion vectors of different resolutions in a video decoder.[0062]
  • DETAILED DESCRIPTION
  • The present application relates to techniques and tools for video encoding and decoding. In various described embodiments, a video encoder incorporates techniques that improve the efficiency of interframe coding, a video decoder incorporates techniques that improve the efficiency of interframe decoding, and a bitstream format includes flags and other codes to incorporate the techniques. [0063]
  • The various techniques and tools can be used in combination or independently. Different embodiments implement one or more of the described techniques and tools. [0064]
  • I. Computing Environment
  • FIG. 6 illustrates a generalized example of a suitable computing environment ([0065] 600) in which several of the described embodiments may be implemented. The computing environment (600) is not intended to suggest any limitation as to scope of use or functionality, as the techniques and tools may be implemented in diverse general-purpose or special-purpose computing environments.
  • With reference to FIG. 6, the computing environment ([0066] 600) includes at least one processing unit (610) and memory (620). In FIG. 6, this most basic configuration (630) is included within a dashed line. The processing unit (610) executes computer-executable instructions and may be a real or a virtual processor. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power. The memory (620) may be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two. The memory (620) stores software (680) implementing a video encoder or decoder.
  • A computing environment may have additional features. For example, the computing environment ([0067] 600) includes storage (640), one or more input devices (650), one or more output devices (660), and one or more communication connections (670). An interconnection mechanism (not shown) such as a bus, controller, or network interconnects the components of the computing environment (600). Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment (600), and coordinates activities of the components of the computing environment (600).
  • The storage ([0068] 640) may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, CD-ROMs, DVDs, or any other medium which can be used to store information and which can be accessed within the computing environment (600). The storage (640) stores instructions for the software (680) implementing the video encoder or decoder.
  • The input device(s) ([0069] 650) may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to the computing environment (600). For audio or video encoding, the input device(s) (650) may be a sound card, video card, TV tuner card, or similar device that accepts audio or video input in analog or digital form, or a CD-ROM or CD30 RW that reads audio or video samples into the computing environment (600). The output device(s) (660) may be a display, printer, speaker, CD-writer, or another device that provides output from the computing environment (600).
  • The communication connection(s) ([0070] 670) enable communication over a communication medium to another computing entity. The communication medium conveys information such as computer-executable instructions, audio or video input or output, or other data in a modulated data signal. A modulated data signal is a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired or wireless techniques implemented with an electrical, optical, RF, infrared, acoustic, or other carrier.
  • The techniques and tools can be described in the general context of computer-executable readable media. Computer-readable media are any available media that can be accessed within a computing environment. By way of example, and not limitation, with the computing environment ([0071] 600), computer-readable media include memory (620), storage (640), communication media, and combinations of any of the above.
  • The techniques and tools can be described in the general context of computer-executable instructions, such as those included in program modules, being executed in a computing environment on a target real or virtual processor. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or split between program modules as desired in various embodiments. Computer-executable instructions for program modules may be executed within a local or distributed computing environment. [0072]
  • For the sake of presentation, the detailed description uses terms like “determine,” “select,” “adjust,” and “apply” to describe computer operations in a computing environment. These terms are high-level abstractions for operations performed by a computer, and should not be confused with acts performed by a human being. The actual computer operations corresponding to these terms vary depending on implementation. [0073]
  • II. Generalized Video Encoder and Decoder
  • FIG. 7 is a block diagram of a generalized video encoder ([0074] 700) and FIG. 8 is a block diagram of a generalized video decoder (800).
  • The relationships shown between modules within the encoder and decoder indicate the main flow of information in the encoder and decoder; other relationships are not shown for the sake of simplicity. In particular, FIGS. 7 and 8 usually do not show side information indicating the encoder settings, modes, tables, etc. used for a video sequence, frame, macroblock, block, etc. Such side information is sent in the output bitstream, typically after entropy encoding of the side information. The format of the output bitstream can be Windows Media Video version 8 format or another format. [0075]
  • The encoder ([0076] 700) and decoder (800) are block-based and use a 4:2:0 macroblock format with each macroblock including 4 luminance 8×8 luminance blocks (at times treated as one 16×16 macroblock) and two 8×8 chrominance blocks. Alternatively, the encoder (700) and decoder (800) are object-based, use a different macroblock or block format, or perform operations on sets of pixels of different size or configuration than 8×8 blocks and 16×16 macroblocks.
  • Depending on implementation and the type of compression desired, modules of the encoder or decoder can be added, omitted, split into multiple modules, combined with other modules, and/or replaced with like modules. In alternative embodiments, encoder or decoders with different modules and/or other configurations of modules perform one or more of the described techniques. [0077]
  • A. Video Encoder [0078]
  • FIG. 7 is a block diagram of a general video encoder system ([0079] 700). The encoder system (700) receives a sequence of video frames including a current frame (705), and produces compressed video information (795) as output. Particular embodiments of video encoders typically use a variation or supplemented version of the generalized encoder (700).
  • The encoder system ([0080] 700) compresses predicted frames and key frames. For the sake of presentation, FIG. 7 shows a path for key frames through the encoder system (700) and a path for forward-predicted frames. Many of the components of the encoder system (700) are used for compressing both key frames and predicted frames. The exact operations performed by those components can vary depending on the type of information being compressed.
  • A predicted frame [also called p-frame, b-frame for bi-directional prediction, or inter-coded frame] is represented in terms of prediction (or difference) from one or more other frames. A prediction residual is the difference between what was predicted and the original frame. In contrast, a key frame [also called i-frame, intra-coded frame] is compressed without reference to other frames. [0081]
  • If the current frame ([0082] 705) is a forward-predicted frame, a motion estimator (710) estimates motion of macroblocks or other sets of pixels of the current frame (705) with respect to a reference frame, which is the reconstructed previous frame (725) buffered in the frame store (720). In alternative embodiments, the reference frame is a later frame or the current frame is bi-directionally predicted. The motion estimator (710) can estimate motion by pixel, ½ pixel, ¼ pixel, or other increments, and can switch the resolution of the motion estimation on a frame-by-frame basis or other basis. The resolution of the motion estimation can be the same or different horizontally and vertically. The motion estimator (710) outputs as side information motion information (715) such as motion vectors. A motion compensator (730) applies the motion information (715) to the reconstructed previous frame (725) to form a motion-compensated current frame (735). The prediction is rarely perfect, however, and the difference between the motion-compensated current frame (735) and the original current frame (705) is the prediction residual (745). Alternatively, a motion estimator and motion compensator apply another type of motion estimation/compensation.
  • A frequency transformer ([0083] 760) converts the spatial domain video information into frequency domain (i.e., spectral) data. For block-based video frames, the frequency transformer (760) applies a discrete cosine transform [“DCT”] or variant of DCT to blocks of the pixel data or prediction residual data, producing blocks of DCT coefficients. Alternatively, the frequency transformer (760) applies another conventional frequency transform such as a Fourier transform or uses wavelet or subband analysis. In embodiments in which the encoder uses spatial extrapolation (not shown in FIG. 7) to encode blocks of key frames, the frequency transformer (760) can apply a re-oriented frequency transform such as a skewed DCT to blocks of prediction residuals for the key frame. In other embodiments, the frequency transformer (760) applies an 8×8, 8×4, 4×8, or other size frequency transforms (e.g., DCT) to prediction residuals for predicted frames.
  • A quantizer ([0084] 770) then quantizes the blocks of spectral data coefficients. The quantizer applies uniform, scalar quantization to the spectral data with a step-size that varies on a frame-by-frame basis or other basis. Alternatively, the quantizer applies another type of quantization to the spectral data coefficients, for example, a non-uniform, vector, or non-adaptive quantization, or directly quantizes spatial domain data in an encoder system that does not use frequency transformations. In addition to adaptive quantization, the encoder (700) can use frame dropping, adaptive filtering, or other techniques for rate control.
  • When a reconstructed current frame is needed for subsequent motion estimation/compensation, an inverse quantizer ([0085] 776) performs inverse quantization on the quantized spectral data coefficients. An inverse frequency transformer (766) then performs the inverse of the operations of the frequency transformer (760), producing a reconstructed prediction residual (for a predicted frame) or a reconstructed key frame. If the current frame (705) was a key frame, the reconstructed key frame is taken as the reconstructed current frame (not shown). If the current frame (705) was a predicted frame, the reconstructed prediction residual is added to the motion-compensated current frame (735) to form the reconstructed current frame. The frame store (720) buffers the reconstructed current frame for use in predicting the next frame. In some embodiments, the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the blocks of the frame.
  • The entropy coder ([0086] 780) compresses the output of the quantizer (770) as well as certain side information (e.g., motion information (715), spatial extrapolation modes, quantization step size). Typical entropy coding techniques include arithmetic coding, differential coding, Huffman coding, run length coding, LZ coding, dictionary coding, and combinations of the above. The entropy coder (780) typically uses different coding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, different kinds of side information), and can choose from among multiple code tables within a particular coding technique.
  • The entropy coder ([0087] 780) puts compressed video information (795) in the buffer (790). A buffer level indicator is fed back to bitrate adaptive modules.
  • The compressed video information ([0088] 795) is depleted from the buffer (790) at a constant or relatively constant bitrate and stored for subsequent streaming at that bitrate. Therefore, the level of the buffer (790) is primarily a function of the entropy of the filtered, quantized video information, which affects the efficiency of the entropy coding. Alternatively, the encoder system (700) streams compressed video information immediately following compression, and the level of the buffer (790) also depends on the rate at which information is depleted from the buffer (790) for transmission.
  • Before or after the buffer ([0089] 790), the compressed video information (795) can be channel coded for transmission over the network. The channel coding can apply error detection and correction data to the compressed video information (795).
  • B. Video Decoder [0090]
  • FIG. 8 is a block diagram of a general video decoder system ([0091] 800). The decoder system (800) receives information (895) for a compressed sequence of video frames and produces output including a reconstructed frame (805). Particular embodiments of video decoders typically use a variation or supplemented version of the generalized decoder (800).
  • The decoder system ([0092] 800) decompresses predicted frames and key frames. For the sake of presentation, FIG. 8 shows a path for key frames through the decoder system (800) and a path for forward-predicted frames. Many of the components of the decoder system (800) are used for compressing both key frames and predicted frames. The exact operations performed by those components can vary depending on the type of information being compressed.
  • A buffer ([0093] 890) receives the information (895) for the compressed video sequence and makes the received information available to the entropy decoder (880). The buffer (890) typically receives the information at a rate that is fairly constant over time, and includes a jitter buffer to smooth short-term variations in bandwidth or transmission. The buffer (890) can include a playback buffer and other buffers as well. Alternatively, the buffer (890) receives information at a varying rate. Before or after the buffer (890), the compressed video information can be channel decoded and processed for error detection and correction.
  • The entropy decoder ([0094] 880) entropy decodes entropy-coded quantized data as well as entropy-coded side information (e.g., motion information (815), spatial extrapolation modes, quantization step size), typically applying the inverse of the entropy encoding performed in the encoder. Entropy decoding techniques include arithmetic decoding, differential decoding, Huffman decoding, run length decoding, LZ decoding, dictionary decoding, and combinations of the above. The entropy decoder (880) frequently uses different decoding techniques for different kinds of information (e.g., DC coefficients, AC coefficients, different kinds of side information), and can choose from among multiple code tables within a particular decoding technique.
  • If the frame ([0095] 805) to be reconstructed is a forward-predicted frame, a motion compensator (830) applies motion information (815) to a reference frame (825) to form a prediction (835) of the frame (805) being reconstructed. For example, the motion compensator (830) uses a macroblock motion vector to find a macroblock in the reference frame (825). A frame buffer (820) stores previous reconstructed frames for use as reference frames. The motion compensator (830) can compensate for motion at pixel, ½ pixel, ¼ pixel, or other increments, and can switch the resolution of the motion compensation on a frame-by-frame basis or other basis. The resolution of the motion compensation can be the same or different horizontally and vertically. Alternatively, a motion compensator applies another type of motion compensation. The prediction by the motion compensator is rarely perfect, so the decoder (800) also reconstructs prediction residuals.
  • When the decoder needs a reconstructed frame for subsequent motion compensation, the frame store ([0096] 820) buffers the reconstructed frame for use in predicting the next frame. In some embodiments, the encoder applies a deblocking filter to the reconstructed frame to adaptively smooth discontinuities in the blocks of the frame.
  • An inverse quantizer ([0097] 870) inverse quantizes entropy-decoded data. In general, the inverse quantizer applies uniform, scalar inverse quantization to the entropy-decoded data with a step-size that varies on a frame-by-frame basis or other basis. Alternatively, the inverse quantizer applies another type of inverse quantization to the data, for example, a non-uniform, vector, or non-adaptive quantization, or directly inverse quantizes spatial domain data in a decoder system that does not use inverse frequency transformations.
  • An inverse frequency transformer ([0098] 860) converts the quantized, frequency domain data into spatial domain video information. For block-based video frames, the inverse frequency transformer (860) applies an inverse DCT [“IDCT”] or variant of IDCT to blocks of the DCT coefficients, producing pixel data or prediction residual data for key frames or predicted frames, respectively. Alternatively, the frequency transformer (860) applies another conventional inverse frequency transform such as a Fourier transform or uses wavelet or subband synthesis. In embodiments in which the decoder uses spatial extrapolation (not shown in FIG. 8) to decode blocks of key frames, the inverse frequency transformer (860) can apply a re-oriented inverse frequency transform such as a skewed IDCT to blocks of prediction residuals for the key frame. In other embodiments, the inverse frequency transformer (860) applies an 8×8, 8×4, 4×8, or other size inverse frequency transforms (e.g., IDCT) to prediction residuals for predicted frames.
  • III. Intraframe Encoding and Decoding
  • In one or more embodiments, a video encoder exploits redundancies in typical still images in order to code the I-frame information using a smaller number of bits. For additional detail about intraframe encoding and decoding in some embodiments, see U.S. patent application Ser. No. aa/bbb,ccc, entitled “Spatial Extrapolation of Pixel Values in Intraframe Video Coding and Decoding,” filed concurrently herewith. [0099]
  • IV. Interframe Encoding and Decoding
  • Inter-frame coding exploits temporal redundancy between frames to achieve compression. Temporal redundancy reduction uses previously coded frames as predictors when coding the current frame. [0100]
  • A. Motion Estimation [0101]
  • In one or more embodiments, a video encoder exploits temporal redundancies in typical video sequences in order to code the information using a smaller number of bits. The video encoder uses motion estimation/compensation of a macroblock or other set of pixels of a current frame with respect to a reference frame. A video decoder uses corresponding motion compensation. Various features of the motion estimation/compensation can be used in combination or independently. These features include, but are not limited to: [0102]
  • 1a) Adaptive switching of the resolution of motion estimation/compensation. For example, the resolution switches between quarter-pixel and half-pixel resolutions. [0103]
  • 1b) Adaptive switching of the resolution of motion estimation/compensation depending on a video source with a closed loop or open loop decision. [0104]
  • 1c) Adaptive switching of the resolution of motion estimation/compensation on a frame-by-frame basis or other basis. [0105]
  • 2a) Using previously computed results of a first motion resolution evaluation to speed up a second motion resolution evaluation. [0106]
  • 2b) Selectively using integer-pixel motion information from a first motion resolution evaluation to speed up a second motion resolution evaluation. [0107]
  • 2c) Using previously computed sub-pixel values from a first motion resolution evaluation to speed up a second motion resolution evaluation. [0108]
  • 3) Using a search range with different directional resolution for motion estimation. For example, the horizontal resolution of the search range is quarter pixel and the vertical resolution is half pixel. This speeds up motion estimation by skipping certain quarter-pixel locations. [0109]
  • 4) Using a motion information representation with different bit allocation for horizontal and vertical motion. For example, a video encoder uses an additional bit for motion information in the horizontal direction, compared to the vertical direction. [0110]
  • 5a) Using a resolution bit with a motion information representation for additional resolution of motion estimation/compensation. For example, a video encoder adds a bit to half-pixel motion information to differentiate between a half-pixel increment and a quarter-pixel increment. A video decoder receives the resolution bit. [0111]
  • 5b) Selectively using a resolution bit with a motion information representation for additional resolution of motion estimation/compensation. For example, a video encoder adds a bit to half-pixel motion information to differentiate between a half-pixel increment and a quarter-pixel increment only for half-pixel motion information, not integer-pixel motion information. A video decoder selectively receives the resolution bit. [0112]
  • For motion estimation, the video encoder establishes a search range within the reference frame. The video encoder can center the search range around a predicted location that is set based upon the motion information for neighboring sets of pixels. In some embodiments, the encoder uses a reduced coverage range for the higher resolution motion estimation (e.g., quarter-pixel motion estimation) to balance between the bits used to signal the higher resolution motion information and distortion reduction due to the higher resolution motion estimation. Most motions observed in TV and movie content tends to be dominated by finer horizontal motion than vertical motion. This is probably due to the fact that most camera movements tend to be more horizontal, since rapid vertical motion seems to make viewers dizzy. Taking advantage of this characteristic, the encoder uses higher resolution motion estimation/compensation that covers more horizontal locations than vertical locations. This strikes a balance between rate and distortion, and lowers the computational complexity of the motion information search process as well. In alternative embodiments, the search range has the same resolution horizontally and vertically. [0113]
  • Within the search range, the encoder finds a motion vector that parameterizes the motion of a macroblock or other set of pixels in the predicted frame. In some embodiments, with an efficient and low complexity method, the encoder computes and switches between higher sub-pixel accuracy and lower sub-pixel accuracy. In alternative embodiments, the encoder does not switch between resolutions for motion estimation/compensation. Instead of motion vectors (translations), the encoder can compute other types motion information to parameterize motion of a set of pixels between frames. [0114]
  • In one implementation, the encoder switches between quarter-pixel accuracy using a combination of four taps/two taps filter, and half-pixel accuracy using a two-tap filter. The encoder switches resolution of motion estimation/compensation on a per frame basis, per sequence basis, or other basis. The rationale behind this is that quarter-pixel motion compensation works well for very clean video sources (i.e., no noise), while half-pixel motion compensation handles noisy video sources (e.g., video from a cable feed) much better. This is due to the fact that the two-tap filter of the half-pixel motion compensation acts as a lowpass filter and tends to attenuate the noise. In contrast, the four-tap filter of the quarter-pixel motion compensation has some highpass effects so it can preserve the edges, but, unfortunately, it also tends to accentuate the noise. Other implementations use different filters. [0115]
  • After the encoder finds a motion vector or other motion information, the encoder outputs the information. For example, the encoder outputs entropy-coded data for the motion vector, motion vector differentials, or other motion information. In some embodiments, the encoder uses a motion vector with different bit allocation for horizontal and vertical motion. An extra bit adds quarter-pixel resolution horizontally to a half-pixel motion vector. The encoder saves bits by coding vertical motion vector at half-pixel accuracy. The encoder can add the bit only for half-pixel motion vectors, not for integer-pixel motion vectors, which further reduces the overall bitrate. In alternative embodiments, the encoder uses the same bit allocation for horizontal and vertical motions. [0116]
  • 1. Resolution Switching [0117]
  • In some embodiments, a video encoder switches resolution of motion estimation/compensation. FIG. 9 shows a technique for selecting a motion estimation resolution for a predicted video frame. The encoder selects between half-pixel resolution and quarter-pixel resolution for motion vectors on a per frame basis. For the sake of simplicity, FIG. 9 does not show the various ways in which the technique ([0118] 900) can be used in conjunction with other techniques. In alternative embodiments, the encoder switches between resolutions other than quarter and half-pixel and/or switches at a frequency other than per frame.
  • The encoder gets ([0119] 910) a macroblock for a predicted frame and computes (920) a half-pixel motion vector for the macroblock. The encoder also computes (930) a quarter-pixel motion vector for the macroblock. The encoder evaluates (940) the motion vectors. For example, for each of the motion vectors, the encoder computes an error measure such as sum of absolute differences [“SAD”], mean square error [“MSE”], a perceptual distortion measure, or another measure for the prediction residual.
  • In one implementation, the encoder computes and evaluates motion vectors as shown in FIG [0120] 10 a. For a macroblock, the encoder computes (1010) a half-pixel motion vector MVh in integer-pixel accuracy. For example, the encoder finds a motion vector by searching at integer increments within the search range. The encoder then computes (1020) MVh to half-pixel accuracy in a region around the first computed MVh.
  • In a separate path, the encoder computes ([0121] 1050) a quarter-pixel motion vector MVq in integer-pixel accuracy and then computes (1070) MVq to quarter-pixel accuracy in a region around the first computed MVq. The encoder then evaluates (1090) the final MVh and MVq. Alternatively, the encoder evaluates the motion vectors later.
  • In another implementation, the encoder eliminates a computation of a motion vector at integer-pixel accuracy in many cases by computing motion vectors as shown in FIG. 10[0122] b. The encoder computes (1010) MVh to integer-pixel accuracy.
  • Most of the time the integer-pixel portion of the MV[0123] q is the same as the integer-pixel portion of MVh. Thus, instead of computing the MVq to integer-pixel accuracy every time as in FIG. 1Oa, the encoder checks (1030) whether the integer-pixel accurate MVh can be used for MVq. Specifically, the encoder checks whether integer-pixel accurate MVh lies within the motion vector search range for the set of quarter-pixel motion vectors. The motion vector search range for a given macroblock is set to be ±16 (R in FIG. 10) of a motion vector predictor for the quarter-pixel motion vector. The motion vector predictor for a macroblock is the component-wise median of the macroblock's left, top, and top-right neighboring macroblocks' motion vectors, and can be different for MVh and MVq. Alternatively, the range, motion vector predictor, or conditional bypass is computed differently.
  • If the integer-pixel MV[0124] h lies within the range then the encoder skips the computation of the integer-pixel MVq, and simply sets (1040) MVq to MVh. Otherwise, the encoder computes (1050) MVq to integer-pixel accuracy. The encoder computes (1020) MVh to half-pixel accuracy, computes (1070) MVq to quarter-pixel accuracy, and evaluates (1070) the motion vectors. Alternatively, the encoder computes the quarter-pixel motion vector at integer-pixel accuracy first, and selectively bypasses the computation of the half-pixel motion vector at integer-pixel accuracy.
  • Returning to FIG. 9, the encoder determines ([0125] 950) whether there are any more macroblocks in the frame. If so, the encoder gets (960) the next macroblock and computes motion vectors for it.
  • Otherwise, the encoder selects ([0126] 970) the motion vector resolution for the predicted frame. In one implementation, the encoder uses a rate-distortion criterion to select the set of MVh's or the set of MVq's. The encoder compares the cost of choosing half-pixel resolution versus quarter-pixel resolution and picks the minimum of the two.
  • The cost functions are defined as follows:[0127]
  • J q=SADq+QP*iMvBitOverhead
  • J h=SADh
  • where J[0128] h and Jq are the cost of choosing half-pixel resolution and quarter-pixel resolution, respectively. SADh and SADq are the sums of the residual error from prediction using the half-pixel and quarter-pixel motion vectors, respectively. QP is a quantization parameter. The effect of QP is to bias the selection in favor of half-pixel resolution in cases where QP is high and distortion in residuals would offset gains in quality from the higher resolution motion estimation. iMvBitOverhead is the extra bits for coding quarter-pixel motion vectors compared to the half-pixel motion vectors. In an implementation in which half-pixel motion vectors (but not integer-pixel motion vectors) have an extra resolution bit, iMvBitOverhead is the number of non-integer-pixel motion vectors in the set of MVqs. Alternatively, the encoder uses other costs functions, for example, cost functions that directly compare the bits spent for different resolutions of motion vectors.
  • 2. Different Horizontal and Vertical Resolutions [0129]
  • In some embodiments, a video encoder uses a search range with different horizontal and vertical resolutions. For example, the horizontal resolution of the search range is quarter pixel and the vertical resolution of the search range is half pixel. [0130]
  • The encoder finds an integer-pixel accurate motion vector in a search range, for example, by searching at integer increments within the search range. In a region around the integer-pixel accurate motion vector, the encoder computes a sub-pixel accurate motion vector by evaluating motion vectors at sub-pixel locations in the region. [0131]
  • FIG. 11 shows a location I that is pointed to by an integer-pixel accurate motion vector. The encoder computes a half-pixel motion vector by searching for the best match among all eight half-pixel locations H[0132] 0 to H7 surrounding the integer position I. On the other hand, the encoder computes the quarter-pixel motion vector by searching for the best match among the eight half-pixel locations H0 to H7 and eight quarter-pixel locations Q0 to Q7. The searched quarter-pixel locations are placed horizontally between adjacent half-pixel locations. The searched quarter-pixel locations are not placed vertically between adjacent half-pixel locations. Thus, the search density increases on horizontal quarter-pixel locations, but not vertical quarter-pixel locations. This feature improves performance by speeding up the motion estimation process compared to a search in each direction by quarter-pixel increments, which would also require the computation of values for additional quarter-pixel locations.
  • In an implementation in which quarter-pixel resolution is indicated by adding an extra bit to half-pixel motion vectors, the quarter-pixel location to the right of the integer-pixel location is not searched as a valid location for a quarter-pixel motion vector, although a sub-pixel value is computed there for matching purposes. In other implementations, that quarter-pixel location is also searched and a different scheme is used to represent quarter-pixel motion vectors. In alternative embodiments, the encoder uses a different search pattern for quarter-pixel motion vectors. [0133]
  • The encoder generates values for sub-pixel locations by interpolation. In one implementation, for each searched location, the interpolation filter differs depending on the resolution chosen. For half-pixel resolution, the encoder uses a two-tap bilinear filter to generate the match, while for quarter-pixel resolution, the encoder uses a combination of four-tap and two-tap filters to generate the match. FIG. 12 shows sub-pixel locations H[0134] 0, H1, H2with values computed by interpolation of integer-pixel values a, b, c, . . . , p.
  • For half-pixel resolution, the interpolation used in the three distinct half-pixel locations H[0135] 0, H1, H2 is:
  • H 0=(f+g+1−iRndCtrl)>>1.
  • H 1=(f+j+1−iRndCtrl)>>1.
  • H 2=(f+g+j+k+2−iRndCtrl)>>2.
  • where iRndCtrl indicates rounding control and varies between 0 and 1 from frame to frame. [0136]
  • For quarter-pixel resolution, the interpolation used for the three distinct half-pixel locations H[0137] 0, H1, H2 is:
  • H 0=(−e+9f+9g−h+8)>>4.
  • H 1=(−b+9f+9j−n+8)>>4.
  • H 2=(−t 0+9t 1+9t 2−t3+8)>>4.
  • where t[0138] 0, t1, t2, t3 are computed as follows:
  • t 0=(−a+9b+9c−d+8)>>4
  • t 1=(−e+9f+9g−h+8)>>4
  • t 2=(−i+9j+9k−l+8)>>4
  • t 3=(−m+9n+9o−p+8)>>4
  • For the quarter-pixel resolution, the encoder also searches some of the quarter-pixel locations, as indicated by Q[0139] 0 to Q7 in FIG. 11. These quarter-pixel locations are situated horizontally in between either two half-pixel locations or an integer-pixel location and a half-pixel location. For these quarter-pixel locations, the encoder uses bilinear interpolation (i.e., (x+y+1)>>1) using the two horizontally neighboring half-pixel/integer-pixel locations without rounding control. Using bicubic interpolation followed by bilinear interpolation balances computational complexity and information preservation, giving good results for reasonable computational complexity.
  • Alternatively, the encoder uses filters with different numbers or magnitudes of taps. In general, bilinear interpolation smoothes the values, attenuating high frequency information, whereas bicubic interpolation preserves more high frequency information but can accentuate noise. Using two bilinear steps (one for half-pixel locations, the second for quarter-pixel locations) is simple, but can smooth the pixels too much for efficient motion estimation. [0140]
  • 3. Encoding and Decoding Motion Vector Information [0141]
  • In some embodiments, a video encoder uses different bit allocation for horizontal and vertical motion vectors. For example, the video encoder uses one or more extra bits to represent motion in one direction with finer resolution that motion in another direction. This allows the encoder to reduce bitrate for vertical resolution information that is less useful for compression, compared to systems that code motion information at quarter-pixel resolution both horizontally and vertically. [0142]
  • In one implementation, a video encoder uses an extra bit for quarter-pixel resolution of horizontal component motion vectors for macroblocks. For vertical component motion vectors, the video encoder uses half-pixel vertical component motion vectors. The video encoder can also use integer-pixel motion vectors. For example, the encoder outputs one or more entropy codes or another representation for a horizontal component motion vector and a vertical component motion vector. The encoder also outputs an additional bit that indicates a quarter-pixel horizontal increment. A value of 0 indicates no quarter-pixel increment and a value of 1 indicates a quarter-pixel increment, or vice versa. In this implementation, the use of the extra bit avoids the use of separate entropy code tables for quarter-pixel MVs/DMVs and half-pixel MVs/DMVs, and also adds little to bitrate. [0143]
  • In another implementation, a video encoder selectively uses the extra bit for quarter-pixel resolution of horizontal component motion vectors for macroblocks. The encoder adds the extra bit only if 1) quarter-pixel resolution is used for the frame and 2) at least one of the horizontal or vertical component motion vectors for a macroblock has half-pixel resolution. Thus, the extra bit is not used when quarter-pixel resolution is not used for a frame or when the motion vector for the macroblock is integer-pixel resolution, which reduces overall bitrate. Alternatively, the encoder adds the extra bit based upon other criteria. [0144]
  • FIG. 13 shows a technique for decoding information for motion vectors at selective resolution. For the sake of simplicity, FIG. 13 does not show the various ways in which the technique ([0145] 1300) can be used in conjunction with other techniques.
  • A decoder gets ([0146] 1310) motion vector information for a macroblock, for example, receiving one or more entropy codes or other information for a motion vector, component motion vectors, differential motion vectors (“DMVs”), or differential component motion vectors.
  • The decoder determines ([0147] 1330) whether it has received all of the motion vector information for the macroblock. For example, the decoder determines whether additional resolution is enabled for the macroblock (e.g., at a frame level). Or, the decoder determines from decoding of the already received motion vector information whether to expect additional information. Or, the encoder considers both whether the additional resolution is enabled and whether to expect it based upon previously decoded information.
  • If the decoder expects additional motion vector resolution information, the decoder gets ([0148] 1340) the additional information. For example, the decoder gets one or more additional resolution bits for the motion vector information for the macroblock.
  • The decoder then reconstructs ([0149] 1350) the macroblock using the motion vector information and determines (1360) whether there are other macroblocks in the frame. If not, the technique ends. Otherwise, the decoder gets (1370) the motion vector information for the next macroblock and continues.
  • B. Coding of Prediction Residuals [0150]
  • Motion estimation is rarely perfect, and the video encoder uses prediction residuals to represent the differences between the original video information and the video information predicted using motion estimation. In one or more embodiments, a video encoder exploits redundancies in prediction residuals in order to code the information using a smaller number of bits. For additional detail about coding of prediction residuals in some embodiments, see U.S. patent application Ser. No. aa/bbb,ccc, entitled “Sub-Block Transform Coding of Prediction Residuals,” filed concurrently herewith. [0151]
  • C. Loop Filtering [0152]
  • Quantization and other lossy processing of prediction residuals can cause blocky artifacts in reference frames that are used for motion estimation/compensation for subsequent predicted frames. In one or more embodiments, a video encoder processes a reconstructed frame to reduce blocky artifacts prior to motion estimation using the reference frame. A video decoder processes the reconstructed frame to reduce blocky artifacts prior to motion compensation using the reference frame. With deblocking, a reference frame becomes a better reference candidate to encode the following frame. Thus, using the deblocking filter improves the quality of motion estimation/compensation, resulting in better prediction and lower bitrate for prediction residuals. For additional detail about using a deblocking filter in motion estimation/compensation in some embodiments, see U.S. patent application Ser. No. aa/bbb,ccc, entitled “Motion Compensation Loop With Filtering,” filed concurrently herewith. [0153]
  • Having described and illustrated the principles of our invention with reference to various embodiments, it will be recognized that the various embodiments can be modified in arrangement and detail without departing from such principles. It should be understood that the programs, processes, or methods described herein are not related or limited to any particular type of computing environment, unless indicated otherwise. Various types of general purpose or specialized computing environments may be used with or perform operations in accordance with the teachings described herein. Elements of embodiments shown in software may be implemented in hardware and vice versa. [0154]
  • In view of the many possible embodiments to which the principles of our invention may be applied, we claim as our invention all such embodiments as may come within the scope and spirit of the following claims and equivalents thereto. [0155]

Claims (37)

We claim:
1. In a computer system, a computer-implemented method of exploiting temporal redundancy between plural video frames, the method comprising:
selecting a fractional pixel motion resolution from among plural different fractional pixel motion resolutions, wherein each of the plural different fractional pixel motion resolutions is less than single integer-pixel motion resolution, and wherein each of the plural different fractional pixel motion resolutions is associated with a different reference frame sub-pixel interpolation technique; and
applying one or more motion vectors at the selected fractional pixel motion resolution to predict one or more pixels in a current frame of the plural video frames relative to one or more corresponding pixels in a reference frame of the plural video frames.
2. The method of claim 1 wherein the plural different fractional pixel motion resolutions include a quarter-pixel motion resolution.
3. The method of claim 1 wherein each of the one or more motion vectors is for a macroblock.
4. The method of claim 1 wherein the selecting occurs on a per frame basis.
5. The method of claim 1 wherein the selecting occurs on a per sequence basis.
6. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 1 during video encoding.
7. The method of claim 1 wherein a video encoder performs the selecting based upon evaluation of the plural different fractional pixel motion resolutions.
8. The method of claim 1 wherein the selecting depends at least in part on a quantization factor.
9. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 1 during video decoding.
10. The method of claim 1 wherein a video decoder performs the selecting based upon information received from the encoder.
11. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of exploiting temporal redundancy between video frames from a video source during video encoding, the method comprising:
selecting a motion resolution from among plural different motion resolutions, wherein the selecting depends at least in part upon evaluation of the plural different motion resolutions, wherein the evaluation includes a first motion estimation for a first motion resolution of the plural different motion resolutions and a second motion estimation for a second motion resolution of the plural different motion resolutions, and wherein the selecting further depends at least in part upon noise level of the video frames from the video source; and
applying motion information at the selected motion resolution to predict one or more pixels in a current frame of the plural video frames relative to one or more corresponding pixels in a reference frame of the plural video frames.
12. The computer-readable medium of claim 11 wherein the evaluation is a closed loop evaluation of the plural different motion resolutions.
13. The computer-readable medium of claim 11 wherein the evaluation is an open loop evaluation of the plural different motion resolutions.
14. The computer-readable medium of claim 11 wherein the selecting further depends at least in part upon a quantization factor.
15. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of exploiting temporal redundancy between video frames during video encoding, the method comprising:
selecting a motion resolution from among plural different motion resolutions after different motion estimation for each of the plural different motion resolutions, wherein the selecting depends at least in part upon a quantization factor; and
applying motion information at the selected motion resolution to predict one or more pixels in a current frame of the plural video frames relative to one or more corresponding pixels in a reference frame of the plural video frames.
16. A computer-readable medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of exploiting temporal redundancy between video frames, the method comprising:
in a first evaluation for a first motion resolution, computing intermediate motion evaluation results for the first motion resolution; and
in a second evaluation for a second motion resolution, using the intermediate motion evaluation results in computation of final motion evaluation results for the second motion resolution.
17. The computer-readable medium of claim 16 wherein the first motion resolution is a half-pixel resolution, and wherein the second motion resolution is a quarter-pixel resolution.
18. The computer-readable medium of claim 16 wherein the intermediate motion evaluation results include an integer-pixel motion vector used as an intermediate motion vector result for the first motion resolution and for the second motion resolution.
19. The computer-readable medium of claim 18 wherein an encoder uses the integer-pixel motion vector when the integer-pixel motion vector falls within a search range for the second evaluation.
20. The computer-readable medium of claim 16 wherein the intermediate motion evaluation results include interpolated pixel values at half-pixel locations.
21. In a computer system, a computer-implemented method of exploiting temporal redundancy between plural video frames, the method comprising:
computing a pixel value at each of plural half-pixel sample positions in a reference frame of the plural video frames, the reference frame including plural pixel values at integer-pixel sample positions organized by row and column, wherein:
for each of the plural half-pixel sample positions in either an integer-pixel row or an integer-pixel column, the computed pixel value is a function of the pixel values at at least four integer-pixel sample positions, and
for each of the plural half-pixel sample positions in both a half-pixel row and a half-pixel column, the computed pixel value is a function of the pixel values at at least four half-pixel sample positions; and
computing a pixel value at each of plural quarter-pixel sample positions in the reference frame, wherein:
for each of the plural quarter-pixel sample positions, the computed pixel value is a function of the pixel values at two sample positions adjacent the quarter-pixel sample position and on opposites sides of the quarter-pixel sample position, wherein each of the two sample positions is either an integer-pixel sample position or a half-pixel sample position.
22. The method of claim 21 wherein the pixel values are luminance values.
23. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 21 during video encoding.
24. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 21 during video decoding.
25. In a computer system, a computer-implemented method of exploiting temporal redundancy between plural video frames, the method comprising:
defining a motion prediction range in a reference frame of the plural video frames, wherein the defined motion prediction range has a horizontal motion resolution and a vertical motion resolution, and wherein the horizontal motion resolution is different than the vertical motion resolution; and
applying motion information for one or more pixels of a current frame of the plural video frames relative to one or more corresponding pixels in the defined motion prediction range in the reference frame.
26. The method of claim 25 wherein the horizontal motion resolution is finer than the vertical motion resolution.
27. The method of claim 26 wherein the horizontal motion resolution is quarter pixel and the vertical motion resolution is half pixel.
28. The method of claim 25 further comprising computing the motion information in a video encoder, wherein the video encoder interpolates pixel values at different numbers of sub-pixel locations horizontally and vertically.
29. The method of claim 25 wherein the motion information comprises motion vector information with different horizontal and vertical component resolutions.
30. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 25 during video encoding.
31. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 25 during video decoding.
32. In a computer system, a computer-implemented method of exploiting temporal redundancy between plural video frames, the method comprising:
defining a motion prediction range in a reference frame of the plural video frames, including using plural different sub-pixel interpolation filters in the reference frame; and
applying motion information for one or more pixels of a current frame of the plural video frames relative to one or more corresponding pixels in the defined motion prediction range in the reference frame, wherein the motion information includes a horizontal motion component and a vertical motion component, and wherein motion resolution of the vertical motion component is different than motion resolution of the horizontal motion component.
33. The method of claim 32 wherein an extra bit associated with the motion information in a bitstream increases the motion resolution of the horizontal motion component by a factor of 2.
34. The method of claim 32 further comprising checking whether differential motion resolution is enabled for the current frame and if so performing the applying.
35. The method of claim 32 further comprising checking whether differential motion resolution applies for the motion information and if so performing the applying.
36. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 32 during video encoding.
37. A computer-readable medium storing computer-executable instructions for causing the computer system to perform the method of claim 32 during video encoding.
US10/322,351 2001-12-17 2002-12-17 Multi-resolution motion estimation and compensation Abandoned US20030156646A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/322,351 US20030156646A1 (en) 2001-12-17 2002-12-17 Multi-resolution motion estimation and compensation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US34167401P 2001-12-17 2001-12-17
US10/322,351 US20030156646A1 (en) 2001-12-17 2002-12-17 Multi-resolution motion estimation and compensation

Publications (1)

Publication Number Publication Date
US20030156646A1 true US20030156646A1 (en) 2003-08-21

Family

ID=40743509

Family Applications (20)

Application Number Title Priority Date Filing Date
US10/322,352 Active 2025-04-20 US7266149B2 (en) 2001-12-17 2002-12-17 Sub-block transform coding of prediction residuals
US10/322,383 Active 2025-02-01 US7120197B2 (en) 2001-12-17 2002-12-17 Motion compensation loop with filtering
US10/322,351 Abandoned US20030156646A1 (en) 2001-12-17 2002-12-17 Multi-resolution motion estimation and compensation
US10/322,171 Active 2024-12-24 US7116830B2 (en) 2001-12-17 2002-12-17 Spatial extrapolation of pixel values in intraframe video coding and decoding
US11/345,869 Expired - Lifetime US7263232B2 (en) 2001-12-17 2006-02-01 Spatial extrapolation of pixel values in intraframe video coding and decoding
US11/441,699 Expired - Lifetime US7577305B2 (en) 2001-12-17 2006-05-26 Spatial extrapolation of pixel values in intraframe video coding and decoding
US11/890,059 Active 2027-01-27 US8817868B2 (en) 2001-12-17 2007-08-03 Sub-block transform coding of prediction residuals
US13/943,665 Expired - Lifetime US8908768B2 (en) 2001-12-17 2013-07-16 Video coding / decoding with motion resolution switching and sub-block transform sizes
US13/943,648 Expired - Lifetime US8743949B2 (en) 2001-12-17 2013-07-16 Video coding / decoding with re-oriented transforms and sub-block transform sizes
US14/258,797 Expired - Fee Related US9258570B2 (en) 2001-12-17 2014-04-22 Video coding / decoding with re-oriented transforms and sub-block transform sizes
US14/337,578 Expired - Lifetime US9456216B2 (en) 2001-12-17 2014-07-22 Sub-block transform coding of prediction residuals
US14/538,667 Expired - Lifetime US9432686B2 (en) 2001-12-17 2014-11-11 Video coding / decoding with motion resolution switching and sub-block transform sizes
US14/985,058 Expired - Lifetime US10075731B2 (en) 2001-12-17 2015-12-30 Video coding / decoding with re-oriented transforms and sub-block transform sizes
US15/246,237 Expired - Lifetime US10158879B2 (en) 2001-12-17 2016-08-24 Sub-block transform coding of prediction residuals
US15/250,597 Expired - Lifetime US10123038B2 (en) 2001-12-17 2016-08-29 Video coding / decoding with sub-block transform sizes and adaptive deblock filtering
US16/177,860 Expired - Fee Related US10390037B2 (en) 2001-12-17 2018-11-01 Video coding/decoding with sub-block transform sizes and adaptive deblock filtering
US16/197,156 Expired - Fee Related US10531117B2 (en) 2001-12-17 2018-11-20 Sub-block transform coding of prediction residuals
US16/502,665 Expired - Fee Related US10567791B2 (en) 2001-12-17 2019-07-03 Video coding / decoding with sub-block transform sizes and adaptive deblock filtering
US16/711,238 Expired - Lifetime US10687075B2 (en) 2001-12-17 2019-12-11 Sub-block transform coding of prediction residuals
US16/775,107 Expired - Lifetime US10931967B2 (en) 2001-12-17 2020-01-28 Video coding/decoding with sub-block transform sizes and adaptive deblock filtering

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/322,352 Active 2025-04-20 US7266149B2 (en) 2001-12-17 2002-12-17 Sub-block transform coding of prediction residuals
US10/322,383 Active 2025-02-01 US7120197B2 (en) 2001-12-17 2002-12-17 Motion compensation loop with filtering

Family Applications After (17)

Application Number Title Priority Date Filing Date
US10/322,171 Active 2024-12-24 US7116830B2 (en) 2001-12-17 2002-12-17 Spatial extrapolation of pixel values in intraframe video coding and decoding
US11/345,869 Expired - Lifetime US7263232B2 (en) 2001-12-17 2006-02-01 Spatial extrapolation of pixel values in intraframe video coding and decoding
US11/441,699 Expired - Lifetime US7577305B2 (en) 2001-12-17 2006-05-26 Spatial extrapolation of pixel values in intraframe video coding and decoding
US11/890,059 Active 2027-01-27 US8817868B2 (en) 2001-12-17 2007-08-03 Sub-block transform coding of prediction residuals
US13/943,665 Expired - Lifetime US8908768B2 (en) 2001-12-17 2013-07-16 Video coding / decoding with motion resolution switching and sub-block transform sizes
US13/943,648 Expired - Lifetime US8743949B2 (en) 2001-12-17 2013-07-16 Video coding / decoding with re-oriented transforms and sub-block transform sizes
US14/258,797 Expired - Fee Related US9258570B2 (en) 2001-12-17 2014-04-22 Video coding / decoding with re-oriented transforms and sub-block transform sizes
US14/337,578 Expired - Lifetime US9456216B2 (en) 2001-12-17 2014-07-22 Sub-block transform coding of prediction residuals
US14/538,667 Expired - Lifetime US9432686B2 (en) 2001-12-17 2014-11-11 Video coding / decoding with motion resolution switching and sub-block transform sizes
US14/985,058 Expired - Lifetime US10075731B2 (en) 2001-12-17 2015-12-30 Video coding / decoding with re-oriented transforms and sub-block transform sizes
US15/246,237 Expired - Lifetime US10158879B2 (en) 2001-12-17 2016-08-24 Sub-block transform coding of prediction residuals
US15/250,597 Expired - Lifetime US10123038B2 (en) 2001-12-17 2016-08-29 Video coding / decoding with sub-block transform sizes and adaptive deblock filtering
US16/177,860 Expired - Fee Related US10390037B2 (en) 2001-12-17 2018-11-01 Video coding/decoding with sub-block transform sizes and adaptive deblock filtering
US16/197,156 Expired - Fee Related US10531117B2 (en) 2001-12-17 2018-11-20 Sub-block transform coding of prediction residuals
US16/502,665 Expired - Fee Related US10567791B2 (en) 2001-12-17 2019-07-03 Video coding / decoding with sub-block transform sizes and adaptive deblock filtering
US16/711,238 Expired - Lifetime US10687075B2 (en) 2001-12-17 2019-12-11 Sub-block transform coding of prediction residuals
US16/775,107 Expired - Lifetime US10931967B2 (en) 2001-12-17 2020-01-28 Video coding/decoding with sub-block transform sizes and adaptive deblock filtering

Country Status (2)

Country Link
US (20) US7266149B2 (en)
CN (1) CN101448162B (en)

Cited By (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194011A1 (en) * 2002-04-10 2003-10-16 Microsoft Corporation Rounding control for multi-stage interpolation
US20030198294A1 (en) * 2002-04-23 2003-10-23 Andre Zaccarin Methods and apparatuses for selecting encoding options based on decoding energy requirements
US20030202607A1 (en) * 2002-04-10 2003-10-30 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US20040008899A1 (en) * 2002-07-05 2004-01-15 Alexandros Tourapis Optimization techniques for data compression
US20040131261A1 (en) * 2002-09-04 2004-07-08 Microsoft Corporation Image compression and synthesis for video effects
US20040213470A1 (en) * 2002-04-25 2004-10-28 Sony Corporation Image processing apparatus and method
US20050013497A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US20050025249A1 (en) * 2002-08-14 2005-02-03 Lifeng Zhao Systems and methods for selecting a macroblock mode in a video encoder
US20050053295A1 (en) * 2003-09-07 2005-03-10 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US20050056618A1 (en) * 2003-09-15 2005-03-17 Schmidt Kenneth R. Sheet-to-tube welded structure and method
US20050117810A1 (en) * 2003-11-17 2005-06-02 Gisle Bjontegaard Method for correcting interpolated pixel values
US20050129330A1 (en) * 2003-12-16 2005-06-16 Genesis Microchip Inc. Method and apparatus for MPEG artifacts reduction
US20050135483A1 (en) * 2003-12-23 2005-06-23 Genesis Microchip Inc. Temporal motion vector filtering
US20050135482A1 (en) * 2003-12-23 2005-06-23 Genesis Microchip Inc. Motion vector computation for video sequences
US20050135485A1 (en) * 2003-12-23 2005-06-23 Genesis Microchip Inc. Vector selection decision for pixel interpolation
US20050169369A1 (en) * 2004-02-03 2005-08-04 Sony Corporation Scalable MPEG video/macro block rate control
US20050169370A1 (en) * 2004-02-03 2005-08-04 Sony Electronics Inc. Scalable MPEG video/macro block rate control
US20050195278A1 (en) * 2003-12-23 2005-09-08 Genesis Microchip Inc. Robust camera pan vector estimation using iterative center of mass
US20050207496A1 (en) * 2004-03-17 2005-09-22 Daisaku Komiya Moving picture coding apparatus
US20050226323A1 (en) * 2004-03-31 2005-10-13 Mitsubishi Denki Kabushiki Kaisha Direction-adaptive scalable motion parameter coding for scalable video coding
US20060012610A1 (en) * 2004-07-15 2006-01-19 Karlov Donald D Using pixel homogeneity to improve the clarity of images
US20060133507A1 (en) * 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
US7110459B2 (en) 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
WO2006108654A2 (en) * 2005-04-13 2006-10-19 Universität Hannover Method and apparatus for enhanced video coding
US20060280252A1 (en) * 2005-06-14 2006-12-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding video signal with improved compression efficiency using model switching in motion estimation of sub-pixel
US20070086518A1 (en) * 2005-10-05 2007-04-19 Byeong-Moon Jeon Method and apparatus for generating a motion vector
US7224731B2 (en) 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US20070147493A1 (en) * 2005-10-05 2007-06-28 Byeong-Moon Jeon Methods and apparatuses for constructing a residual data stream and methods and apparatuses for reconstructing image blocks
US20070154103A1 (en) * 2005-06-17 2007-07-05 Au Oscar C L Enhanced block-based motion estimation algorithms for video compression
US20070237226A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Switching distortion metrics during motion estimation
US20070237232A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US20070237239A1 (en) * 2006-03-24 2007-10-11 Byeong-Moon Jeon Methods and apparatuses for encoding and decoding a video data stream
US20070268964A1 (en) * 2006-05-22 2007-11-22 Microsoft Corporation Unit co-location-based motion estimation
US20080019450A1 (en) * 2006-07-19 2008-01-24 Samsung Electronics Co., Ltd. Apparatus and method of restoring image
US20080159401A1 (en) * 2007-01-03 2008-07-03 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US7408986B2 (en) 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
US20090168883A1 (en) * 2007-12-30 2009-07-02 Ning Lu Configurable performance motion estimation for video encoding
US7558320B2 (en) 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
US20090323807A1 (en) * 2008-06-30 2009-12-31 Nicholas Mastronarde Enabling selective use of fractional and bidirectional video motion estimation
US7646810B2 (en) 2002-01-25 2010-01-12 Microsoft Corporation Video coding
US7680185B2 (en) 2003-09-07 2010-03-16 Microsoft Corporation Self-referencing bi-directionally predicted frames
US20100111182A1 (en) * 2008-10-03 2010-05-06 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US20100296582A1 (en) * 2008-05-20 2010-11-25 Kenji Shimizu Image coding device and image coding method
US20110069763A1 (en) * 2009-09-21 2011-03-24 Electronics And Telecommunications Research Institute Scalable video encoding/decoding method and apparatus for increasing image quality of base layer
US7924920B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Motion vector coding and decoding in interlaced frame coded pictures
US20110110434A1 (en) * 2005-10-05 2011-05-12 Seung Wook Park Method for decoding and encoding a video signal
US20120069906A1 (en) * 2009-06-09 2012-03-22 Kazushi Sato Image processing apparatus and method (as amended)
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20120183041A1 (en) * 2011-01-14 2012-07-19 Sony Corporation Interpolation filter for intra prediction of hevc
US20120201293A1 (en) * 2009-10-14 2012-08-09 Guo Liwei Methods and apparatus for adaptive coding of motion information
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US20130003841A1 (en) * 2011-07-01 2013-01-03 General Instrument Corporation Joint sub-pixel interpolation filter for temporal prediction
US8374245B2 (en) 2002-06-03 2013-02-12 Microsoft Corporation Spatiotemporal prediction for bidirectionally predictive(B) pictures and motion vector prediction for multi-picture reference motion compensation
US8379722B2 (en) 2002-07-19 2013-02-19 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US20130051463A1 (en) * 2011-06-24 2013-02-28 General Instrument Corporation Selection of phase offsets for interpolation filters for motion compensation
US20130294518A1 (en) * 2011-01-15 2013-11-07 Sk Telecom Co., Ltd. Method and device for encoding/decoding motion vector
US8625669B2 (en) 2003-09-07 2014-01-07 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8687697B2 (en) 2003-07-18 2014-04-01 Microsoft Corporation Coding of motion vector information
US20140307793A1 (en) * 2006-09-06 2014-10-16 Alexander MacInnis Systems and Methods for Faster Throughput for Compressed Video Data Decoding
US9313519B2 (en) 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
US9628793B1 (en) * 2014-09-26 2017-04-18 Polycom, Inc. Motion estimation
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
WO2019242528A1 (en) * 2018-06-20 2019-12-26 腾讯科技(深圳)有限公司 Video encoding and decoding method and device, storage medium, and computer device
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes

Families Citing this family (413)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6593423B1 (en) * 2000-05-03 2003-07-15 Ppg Industries Ohio, Inc. Adhesion promoting agent and coating compositions for polymeric substrates
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
JP4365998B2 (en) * 2000-07-21 2009-11-18 株式会社日立製作所 Multicast communication method and communication apparatus
US6931063B2 (en) * 2001-03-26 2005-08-16 Sharp Laboratories Of America, Inc. Method and apparatus for controlling loop filtering or post filtering in block based motion compensationed video coding
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
ES2587022T3 (en) 2001-11-22 2016-10-20 Godo Kaisha Ip Bridge 1 Variable length coding procedure and variable length decoding procedure
US7200275B2 (en) 2001-12-17 2007-04-03 Microsoft Corporation Skip macroblock coding
CN101448162B (en) * 2001-12-17 2013-01-02 微软公司 Method for processing video image
IL147370A (en) * 2001-12-27 2007-07-24 Itzhak Florentin Method and system for guiding a remote vehicle via lagged communication channel
KR100538215B1 (en) * 2002-01-23 2005-12-21 삼성전자주식회사 Video reproduction apparatus having fast post-processing and method thereof
EP2894856A1 (en) 2002-01-31 2015-07-15 Samsung Electronics Co., Ltd Filtering method and apparatus for reducing block artifacts or ringing noise
CN100380980C (en) * 2002-04-23 2008-04-09 诺基亚有限公司 Method and device for indicating quantizer parameters in a video coding system
US7386048B2 (en) * 2002-05-28 2008-06-10 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode organization
US7236524B2 (en) * 2002-05-28 2007-06-26 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode communication
US20030231795A1 (en) * 2002-06-12 2003-12-18 Nokia Corporation Spatial prediction based intra-coding
US7543326B2 (en) * 2002-06-10 2009-06-02 Microsoft Corporation Dynamic rate control
US7289674B2 (en) * 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
US20030235250A1 (en) 2002-06-24 2003-12-25 Ankur Varma Video deblocking
AU2013200690B2 (en) * 2002-06-28 2013-06-27 Dolby Laboratories Licensing Corporation Region sizing for macroblocks
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7084929B2 (en) * 2002-07-29 2006-08-01 Koninklijke Philips Electronics N.V. Video data filtering arrangement and method
EP2006840B1 (en) 2002-09-04 2012-07-04 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7003170B1 (en) 2002-09-20 2006-02-21 Pegasus Imaging Corporation Methods and apparatus for improving quality of block-transform coded images
CN1232126C (en) 2002-09-30 2005-12-14 三星电子株式会社 Image code method and device and image decode method and device
US6931061B2 (en) * 2002-11-13 2005-08-16 Sony Corporation Method of real time MPEG-4 texture decoding for a multiprocessor environment
AU2003291058C1 (en) * 2002-11-15 2010-10-28 Qualcomm Incorporated Apparatus and method for multiple description encoding
FR2848373A1 (en) * 2002-12-04 2004-06-11 Koninkl Philips Electronics Nv METHOD FOR MEASURING BLOCK ARTIFACTS
US6831868B2 (en) * 2002-12-05 2004-12-14 Intel Corporation Byte aligned redundancy for memory array
US7170934B2 (en) * 2002-12-20 2007-01-30 Lsi Logic Corporation Method and/or apparatus for motion estimation using a hierarchical search followed by a computation split for different block sizes
US7463688B2 (en) * 2003-01-16 2008-12-09 Samsung Electronics Co., Ltd. Methods and apparatus for removing blocking artifacts of MPEG signals in real-time video reception
FR2850512B1 (en) * 2003-01-28 2005-03-11 Medialive AUTOMATIC AND ADAPTIVE ANALYSIS AND SCRAMBLING METHOD AND SYSTEM FOR DIGITAL VIDEO STREAMS
US7995849B2 (en) * 2003-03-17 2011-08-09 Qualcomm, Incorporated Method and apparatus for improving video quality of low bit-rate video
US20040208169A1 (en) * 2003-04-18 2004-10-21 Reznik Yuriy A. Digital audio signal compression method and apparatus
US7742926B2 (en) * 2003-04-18 2010-06-22 Realnetworks, Inc. Digital audio signal compression method and apparatus
US7471726B2 (en) * 2003-07-15 2008-12-30 Microsoft Corporation Spatial-domain lapped transform in digital media compression
US7830963B2 (en) 2003-07-18 2010-11-09 Microsoft Corporation Decoding jointly coded transform type and subblock pattern information
US20050013494A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US7299417B1 (en) * 2003-07-30 2007-11-20 Barris Joel M System or method for interacting with a representation of physical space
US7289562B2 (en) * 2003-08-01 2007-10-30 Polycom, Inc. Adaptive filter to improve H-264 video quality
US7577198B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US8625680B2 (en) * 2003-09-07 2014-01-07 Microsoft Corporation Bitstream-controlled post-processing filtering
US7688894B2 (en) 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7782954B2 (en) 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US8085844B2 (en) * 2003-09-07 2011-12-27 Microsoft Corporation Signaling reference frame distances
EP1665804A1 (en) * 2003-09-17 2006-06-07 Thomson Licensing S.A. Adaptive reference picture generation
DE10343220B3 (en) * 2003-09-18 2005-05-25 Siemens Ag A method and apparatus for transcoding a data stream comprising one or more encoded digitized images
JP2005123732A (en) * 2003-10-14 2005-05-12 Matsushita Electric Ind Co Ltd Apparatus and method for deblocking filter processing
US7280595B1 (en) 2003-10-21 2007-10-09 Redrock Semiconductor, Ltd. Post-inverse-quantization AC prediction with a unified variable-length-decoding and inverse-quantization stage
US7430329B1 (en) * 2003-11-26 2008-09-30 Vidiator Enterprises, Inc. Human visual system (HVS)-based pre-filtering of video data
KR20050075578A (en) * 2004-01-16 2005-07-21 삼성전자주식회사 Scalable video encoding method supporting closed-loop optimization and apparatus thereof
US7809061B1 (en) 2004-01-22 2010-10-05 Vidiator Enterprises Inc. Method and system for hierarchical data reuse to improve efficiency in the encoding of unique multiple video streams
EP1569462A1 (en) * 2004-02-13 2005-08-31 France Telecom Method for determining the optimal prediction direction for video intra-prediction coding
JP2007526687A (en) * 2004-02-19 2007-09-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Variable block length signal decoding scheme
US7397853B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US20050243914A1 (en) * 2004-04-29 2005-11-03 Do-Kyoung Kwon Adaptive de-blocking filtering apparatus and method for mpeg video decoder
US7460596B2 (en) * 2004-04-29 2008-12-02 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7397854B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7539248B2 (en) * 2004-04-29 2009-05-26 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7496141B2 (en) * 2004-04-29 2009-02-24 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7400679B2 (en) * 2004-04-29 2008-07-15 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US8116374B2 (en) * 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
US7894530B2 (en) * 2004-05-07 2011-02-22 Broadcom Corporation Method and system for dynamic selection of transform size in a video decoder based on signal content
US20060002475A1 (en) * 2004-07-02 2006-01-05 Fuchs Robert J Caching data for video edge filtering
EP1613091B1 (en) * 2004-07-02 2009-08-26 Mitsubishi Electric Information Technology Centre Europe B.V. Intra-frame prediction for high-pass temporal-filtered frames in wavelet video coding
US7738563B2 (en) * 2004-07-08 2010-06-15 Freescale Semiconductor, Inc. Method and system for performing deblocking filtering
US8130827B2 (en) * 2004-08-13 2012-03-06 Samsung Electronics Co., Ltd. Method and apparatus for interpolating a reference pixel in an annular image and encoding/decoding an annular image
NO322722B1 (en) * 2004-10-13 2006-12-04 Tandberg Telecom As Video encoding method by reducing block artifacts
BRPI0517069A (en) * 2004-11-04 2008-09-30 Thomson Licensing fast intra mode prediction for a video encoder
WO2006061838A2 (en) * 2004-12-08 2006-06-15 Imagine Communications Ltd. Distributed statistical multiplexing of multi-media
JP4495580B2 (en) * 2004-12-13 2010-07-07 パナソニック株式会社 In-plane prediction apparatus and in-plane prediction method
US7471850B2 (en) * 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7305139B2 (en) * 2004-12-17 2007-12-04 Microsoft Corporation Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
US7428342B2 (en) * 2004-12-17 2008-09-23 Microsoft Corporation Reversible overlap operator for efficient lossless data compression
JP4501676B2 (en) * 2004-12-22 2010-07-14 日本電気株式会社 Video compression encoding method, video compression encoding apparatus, and program
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US8311119B2 (en) * 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
KR101108681B1 (en) * 2005-01-19 2012-01-25 삼성전자주식회사 Frequency transform coefficient prediction method and apparatus in video codec, and video encoder and decoder therewith
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
US8576924B2 (en) * 2005-01-25 2013-11-05 Advanced Micro Devices, Inc. Piecewise processing of overlap smoothing and in-loop deblocking
US7684632B2 (en) * 2005-05-16 2010-03-23 Hewlett-Packard Development Company, L.P. Estimating image compression quantization parameter values
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US9955205B2 (en) * 2005-06-10 2018-04-24 Hewlett-Packard Development Company, L.P. Method and system for improving interactive media response systems using visual cues
US7965773B1 (en) 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7599840B2 (en) * 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US8036274B2 (en) * 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
EP1989876A2 (en) * 2005-08-31 2008-11-12 Micronas USA, Inc. Systems and methods for video transformation and in loop filtering
US20070058723A1 (en) * 2005-09-14 2007-03-15 Chandramouly Ashwin A Adaptively adjusted slice width selection
KR100813963B1 (en) * 2005-09-16 2008-03-14 세종대학교산학협력단 Method and apparatus for loseless encoding and decoding image
US8068569B2 (en) * 2005-10-05 2011-11-29 Lg Electronics, Inc. Method and apparatus for signal processing and encoding and decoding
WO2007046644A1 (en) * 2005-10-21 2007-04-26 Electronics And Telecommunications Research Institute Apparatus and method for encoding and decoding moving picture using adaptive scanning
KR100873636B1 (en) * 2005-11-14 2008-12-12 삼성전자주식회사 Method and apparatus for encoding/decoding image using single coding mode
US7944965B2 (en) * 2005-12-19 2011-05-17 Seiko Epson Corporation Transform domain based distortion cost estimation
US7636497B1 (en) 2005-12-27 2009-12-22 Advanced Micro Devices, Inc. Video rotation in a media acceleration engine
US20070147510A1 (en) * 2005-12-27 2007-06-28 Islam Asad Method and module for altering color space parameters of video data stream in compressed domain
US7830800B1 (en) 2006-01-12 2010-11-09 Zenverge, Inc. Architecture for combining media processing with networking
US8102916B1 (en) 2006-01-12 2012-01-24 Zenverge, Inc. Dynamically changing media compression format in compressed domain
US7903733B2 (en) 2006-01-26 2011-03-08 Qualcomm Incorporated Adaptive filtering to enhance video encoder performance
US8009963B2 (en) * 2006-01-26 2011-08-30 Qualcomm Incorporated Adaptive filtering to enhance video bit-rate control performance
KR100757734B1 (en) * 2006-03-15 2007-09-11 삼성전자주식회사 Apparatus and method for post video image process
US8848789B2 (en) * 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US20070237237A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Gradient slope detection for video compression
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8831111B2 (en) * 2006-05-19 2014-09-09 The Hong Kong University Of Science And Technology Decoding with embedded denoising
JP4610523B2 (en) * 2006-06-13 2011-01-12 Okiセミコンダクタ株式会社 Movie processing device
KR100846870B1 (en) * 2006-07-06 2008-07-16 한국전자통신연구원 Apparatus and method of multi-stage, multi-dimensional transform based on multiple unit blocks
US8355440B2 (en) * 2006-08-07 2013-01-15 Vixs Systems, Inc. Motion search module with horizontal compression preprocessing and methods for use therewith
US7945121B2 (en) * 2006-08-29 2011-05-17 Ati Technologies Ulc Method and apparatus for interpolating image information
KR100927733B1 (en) * 2006-09-20 2009-11-18 한국전자통신연구원 An apparatus and method for encoding / decoding selectively using a transformer according to correlation of residual coefficients
FR2906433B1 (en) * 2006-09-22 2009-02-27 Canon Kk METHODS AND DEVICES FOR ENCODING AND DECODING IMAGES, COMPUTER PROGRAM USING THEM AND INFORMATION SUPPORT FOR IMPLEMENTING THEM
US20080084932A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation Controlling loop filtering for interlaced video frames
EP2082585A2 (en) * 2006-10-18 2009-07-29 Thomson Licensing Method and apparatus for video coding using prediction data refinement
US8311114B1 (en) 2006-12-06 2012-11-13 Zenverge, Inc. Streamlined transcoder architecture
KR101380843B1 (en) * 2006-12-28 2014-04-07 삼성전자주식회사 Method for generating reduced image of compressed image including blocks encoded according to intra prediction and apparatus thereof
WO2008082762A1 (en) * 2006-12-29 2008-07-10 Motorola, Inc. Method and system for processing encoded video data
US20080165843A1 (en) * 2007-01-03 2008-07-10 Human Monitoring Ltd. Architecture for image compression in a video hardware
KR101366086B1 (en) * 2007-01-03 2014-02-21 삼성전자주식회사 Method of deciding on coding for coefficients of residual block, apparatus, encoder and decoder
US8259804B2 (en) * 2007-01-03 2012-09-04 International Business Machines Corporation Method and system for signal prediction in predictive coding
US8019167B2 (en) * 2007-01-03 2011-09-13 Human Monitoring Ltd. Compressing high resolution images in a low resolution video
KR100843100B1 (en) * 2007-02-07 2008-07-03 삼성전자주식회사 Method and apparatus for reducing block noises of digital image, and encoder/decoder using the same
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US20080240257A1 (en) * 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) * 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8340183B2 (en) 2007-05-04 2012-12-25 Qualcomm Incorporated Digital multimedia channel switching
US7957600B2 (en) * 2007-05-08 2011-06-07 Arris Group, Inc. Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US8571104B2 (en) * 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
US7774205B2 (en) * 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP4821723B2 (en) * 2007-07-13 2011-11-24 富士通株式会社 Moving picture coding apparatus and program
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (en) * 2007-10-12 2016-10-11 Qualcomm Inc adaptive encoding of video block header information
KR101712915B1 (en) 2007-10-16 2017-03-07 엘지전자 주식회사 A method and an apparatus for processing a video signal
KR101370288B1 (en) * 2007-10-24 2014-03-05 삼성전자주식회사 Method of compressing image signal and apparatus therefor
US8331454B2 (en) * 2007-11-12 2012-12-11 Cisco Technology, Inc. Integer transform function for video compression systems
US8228983B2 (en) * 2007-12-04 2012-07-24 Hong Kong Applied Science And Technology Research Method and device for order-16 integer transform from order-8 integer cosine transform
EP2383920B1 (en) 2007-12-20 2014-07-30 Optis Wireless Technology, LLC Control channel signaling using a common signaling field for transport format and redundancy version
US8265168B1 (en) 2008-02-01 2012-09-11 Zenverge, Inc. Providing trick mode for video stream transmitted over network
WO2009097284A1 (en) * 2008-02-01 2009-08-06 Zenverge, Inc. Intermediate compression of reference frames for transcoding
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8369638B2 (en) 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US20090304085A1 (en) * 2008-06-04 2009-12-10 Novafora, Inc. Adaptive Deblocking Complexity Control Apparatus and Method
WO2010017166A2 (en) 2008-08-04 2010-02-11 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
US8325801B2 (en) * 2008-08-15 2012-12-04 Mediatek Inc. Adaptive restoration for video coding
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
KR101432775B1 (en) 2008-09-08 2014-08-22 에스케이텔레콤 주식회사 Video Encoding/Decoding Method and Apparatus Using Arbitrary Pixel in Subblock
US8311111B2 (en) * 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
KR101483497B1 (en) * 2008-09-25 2015-01-20 에스케이텔레콤 주식회사 Video Encoding/Decoding Apparatus and Method of Considering Impulse Signal
US8160392B1 (en) * 2008-10-01 2012-04-17 Adobe Systems Incorporated Automatic suggestion of image blending techniques
JP5259828B2 (en) * 2008-10-03 2013-08-07 クゥアルコム・インコーポレイテッド Video coding using transforms larger than 4x4 and 8x8
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
WO2010051846A1 (en) * 2008-11-06 2010-05-14 Nokia Corporation Fast block selection algorithm for video coding using spatially varying transform
KR101590633B1 (en) * 2008-11-11 2016-02-02 삼성전자주식회사 / /apparatus for processing video encoding and decoding using video separation based on slice level and method therefor
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
JP5490404B2 (en) * 2008-12-25 2014-05-14 シャープ株式会社 Image decoding device
KR20180123153A (en) * 2009-01-27 2018-11-14 톰슨 라이센싱 Methods and apparatus for transform selection in video encoding and decoding
GB0906058D0 (en) * 2009-04-07 2009-05-20 Nokia Corp An apparatus
US9110849B2 (en) 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8451903B2 (en) * 2009-05-14 2013-05-28 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
US8509309B2 (en) 2009-05-14 2013-08-13 Massachusetts Institute Of Technology Selecting transforms for compressing visual data
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US9106910B2 (en) * 2009-06-23 2015-08-11 Orange Method of coding and decoding images, corresponding device for coding and decoding and computer program
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US20100329362A1 (en) * 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Video encoding and decoding apparatus and method using adaptive in-loop filter
US20110002386A1 (en) * 2009-07-06 2011-01-06 Mediatek Singapore Pte. Ltd. Video encoder and method for performing intra-prediction and video data compression
EP2452499A1 (en) 2009-07-06 2012-05-16 Thomson Licensing Methods and apparatus for spatially varying residue coding
KR101474756B1 (en) 2009-08-13 2014-12-19 삼성전자주식회사 Method and apparatus for encoding and decoding image using large transform unit
AU2013201883B2 (en) * 2009-08-13 2014-08-21 Samsung Electronics Co., Ltd Method and apparatus for encoding and decoding image by using large transformation unit
KR101624649B1 (en) * 2009-08-14 2016-05-26 삼성전자주식회사 Method and apparatus for video encoding considering hierarchical coded block pattern, and method and apparatus for video decoding considering hierarchical coded block pattern
KR101456498B1 (en) * 2009-08-14 2014-10-31 삼성전자주식회사 Method and apparatus for video encoding considering scanning order of coding units with hierarchical structure, and method and apparatus for video decoding considering scanning order of coding units with hierarchical structure
KR101487686B1 (en) 2009-08-14 2015-01-30 삼성전자주식회사 Method and apparatus for video encoding, and method and apparatus for video decoding
KR101712097B1 (en) * 2009-08-19 2017-03-03 삼성전자 주식회사 Method and apparatus for encoding and decoding image based on flexible orthogonal transform
US8861879B2 (en) 2009-09-17 2014-10-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
TW201119407A (en) * 2009-11-19 2011-06-01 Thomson Licensing Method for coding and method for reconstruction of a block of an image
US20110135011A1 (en) * 2009-12-04 2011-06-09 Apple Inc. Adaptive dithering during image processing
EP2640075A3 (en) * 2009-12-08 2014-02-26 Thomson Licensing Methods and apparatus for adaptive template matching prediction for video encoding and decoding
JP5488612B2 (en) * 2009-12-28 2014-05-14 富士通株式会社 Moving picture encoding apparatus and moving picture decoding apparatus
KR101703327B1 (en) * 2010-01-14 2017-02-06 삼성전자 주식회사 Method and apparatus for video encoding using pattern information of hierarchical data unit, and method and apparatus for video decoding using pattern information of hierarchical data unit
KR101675118B1 (en) 2010-01-14 2016-11-10 삼성전자 주식회사 Method and apparatus for video encoding considering order of skip and split, and method and apparatus for video decoding considering order of skip and split
EP2963928A1 (en) 2010-01-22 2016-01-06 Samsung Electronics Co., Ltd Apparatus and method for encoding and decoding based on region
WO2011096869A1 (en) * 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) De-blocking filtering control
TWI562600B (en) 2010-02-08 2016-12-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding
US9094691B2 (en) * 2010-03-15 2015-07-28 Mediatek Singapore Pte. Ltd. Methods of utilizing tables adaptively updated for coding/decoding and related processing circuits thereof
US9082278B2 (en) * 2010-03-19 2015-07-14 University-Industry Cooperation Group Of Kyung Hee University Surveillance system
EP2555523A4 (en) * 2010-03-31 2016-05-11 Mitsubishi Electric Corp Image encoding device, image decoding device, image encoding method, and image decoding method
WO2011126277A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
WO2011126283A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
US8982961B2 (en) 2010-04-05 2015-03-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
KR101602873B1 (en) 2010-04-13 2016-03-11 삼성전자주식회사 Method and apparatus for video encoding with deblocking filtering based on tree-structured data unit, and method and apparatus for video decoding with the same
PT3435674T (en) * 2010-04-13 2023-09-06 Ge Video Compression Llc Coding of significance maps and transform coefficient blocks
KR101791242B1 (en) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 Video Coding and Decoding Method and Apparatus
CN105245887B (en) * 2010-04-23 2017-09-19 M&K控股株式会社 Image encoding apparatus
KR20110125153A (en) * 2010-05-12 2011-11-18 에스케이 텔레콤주식회사 Method and apparatus for filtering image and encoding/decoding of video data using thereof
US8638863B1 (en) 2010-05-18 2014-01-28 Google Inc. Apparatus and method for filtering video using extended edge-detection
US20110317757A1 (en) * 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
US9172968B2 (en) * 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
CN102316317B (en) 2010-07-10 2013-04-24 华为技术有限公司 Method and device for generating predicted value of picture
AU2016277600B2 (en) * 2010-07-14 2018-08-16 Ntt Docomo, Inc. Low-complexity intra prediction for video coding
KR101530284B1 (en) 2010-07-16 2015-06-19 삼성전자주식회사 Method and apparatus for video intra prediction encoding, and method and apparatus for video intra prediction decoding
KR101373814B1 (en) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 Apparatus of generating prediction block
WO2012016354A1 (en) * 2010-08-04 2012-02-09 Nxp B.V. Video player
KR101681301B1 (en) * 2010-08-12 2016-12-01 에스케이 텔레콤주식회사 Method and Apparatus for Encoding/Decoding of Video Data Capable of Skipping Filtering Mode
KR20120016991A (en) * 2010-08-17 2012-02-27 오수미 Inter prediction process
US8824554B2 (en) * 2010-09-02 2014-09-02 Intersil Americas LLC Systems and methods for video content analysis
US20120082395A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Entropy Coder for Image Compression
US20120082225A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Selective indication of transform sizes
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
US8787443B2 (en) 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US9300321B2 (en) * 2010-11-05 2016-03-29 University of Maribor Light detection and ranging (LiDAR)data compression and decompression methods and apparatus
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
EP3748962A1 (en) 2010-12-07 2020-12-09 Sony Corporation Image processing device and image processing method
US9609351B2 (en) * 2010-12-14 2017-03-28 M&K Holdings Inc. Apparatus for decoding a moving picture
US9473789B2 (en) * 2010-12-14 2016-10-18 M&K Holdings Inc. Apparatus for decoding a moving picture
EP2654301A4 (en) * 2010-12-14 2016-02-17 M&K Holdings Inc Method for decoding inter predictive encoded motion pictures
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
JP5594841B2 (en) * 2011-01-06 2014-09-24 Kddi株式会社 Image encoding apparatus and image decoding apparatus
CN104811705B (en) * 2011-01-06 2018-05-08 三星电子株式会社 The coding method of video and the coding/decoding method and device of device and video
WO2012093969A1 (en) * 2011-01-07 2012-07-12 Agency For Science, Technology And Research Method and an apparatus for coding an image
US9161041B2 (en) 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
WO2012096150A1 (en) * 2011-01-12 2012-07-19 三菱電機株式会社 Dynamic image encoding device, dynamic image decoding device, dynamic image encoding method, and dynamic image decoding method
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US9380319B2 (en) 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US8923386B2 (en) * 2011-02-11 2014-12-30 Alcatel Lucent Method and apparatus for signal compression and decompression
US9001883B2 (en) 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
KR102403793B1 (en) 2011-03-06 2022-05-30 엘지전자 주식회사 Intra prediction method of chrominance block using luminance sample, and apparatus using same
US10397577B2 (en) 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
US9788019B2 (en) * 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
US9042458B2 (en) 2011-04-01 2015-05-26 Microsoft Technology Licensing, Llc Multi-threaded implementations of deblock filtering
US8781004B1 (en) * 2011-04-07 2014-07-15 Google Inc. System and method for encoding video using variable loop filter
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
US8767817B1 (en) 2011-04-07 2014-07-01 Google Inc. Apparatus and method for coding using parameterized equation
US20120257702A1 (en) * 2011-04-11 2012-10-11 Matthias Narroschke Order of deblocking
CN107547899B (en) * 2011-04-22 2020-03-17 杜比国际公司 Lossy compression coding data method and device and corresponding data reconstruction method and device
US9747255B2 (en) * 2011-05-13 2017-08-29 Texas Instruments Incorporated Inverse transformation using pruning for video coding
KR101383775B1 (en) * 2011-05-20 2014-04-14 주식회사 케이티 Method And Apparatus For Intra Prediction
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
KR20120140181A (en) * 2011-06-20 2012-12-28 한국전자통신연구원 Method and apparatus for encoding and decoding using filtering for prediction block boundary
BR112013030469B1 (en) 2011-06-23 2022-07-26 Sun Patent Trust IMAGE DECODING METHOD, IMAGE ENCODING METHOD, IMAGE DECODING APPARATUS, IMAGE ENCODING APPARATUS, AND IMAGE ENCODING AND DECODING APPARATUS
USRE47366E1 (en) 2011-06-23 2019-04-23 Sun Patent Trust Image decoding method and apparatus based on a signal type of the control parameter of the current block
CA2833855C (en) 2011-06-24 2018-08-28 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CA2830046C (en) 2011-06-24 2018-09-04 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
GB2492333B (en) * 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
EP2725793A4 (en) * 2011-06-27 2014-12-03 Panasonic Ip Corp America Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device
WO2013000324A1 (en) * 2011-06-28 2013-01-03 Mediatek Singapore Pte. Ltd. Method and apparatus of intra mode coding
CN106878724B (en) 2011-06-28 2020-06-05 太阳专利托管公司 Image encoding and decoding device
WO2013001767A1 (en) 2011-06-29 2013-01-03 パナソニック株式会社 Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device
KR102060619B1 (en) 2011-06-30 2019-12-30 선 페이턴트 트러스트 Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device
CA2837537C (en) 2011-06-30 2019-04-02 Panasonic Corporation Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CN102857755B (en) * 2011-07-01 2016-12-14 华为技术有限公司 The method and apparatus determining transform block size
MX2013013941A (en) 2011-07-11 2014-01-31 Panasonic Corp Image decoding method, image encoding method, image decoding apparatus, image encoding apparatus, and image encoding/decoding apparatus.
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
CN103650004B (en) * 2011-08-11 2016-03-02 松下电器产业株式会社 Image processing apparatus, image processing method and integrated circuit
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
CN104025589B (en) 2011-11-03 2018-01-12 汤姆逊许可公司 Video coding and decoding based on image thinning
WO2013067436A1 (en) 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding
KR20130050149A (en) 2011-11-07 2013-05-15 오수미 Method for generating prediction block in inter prediction mode
CN110139108B (en) 2011-11-11 2023-07-18 Ge视频压缩有限责任公司 Apparatus and method for encoding multi-view signals into multi-view data streams
WO2013068548A2 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient multi-view coding using depth-map estimate for a dependent view
WO2013072484A1 (en) 2011-11-18 2013-05-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-view coding with efficient residual handling
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
US8660374B1 (en) 2011-12-23 2014-02-25 Massachusetts Institute Of Technology Selecting transform paths for compressing visual data
JP6480186B2 (en) * 2012-01-19 2019-03-06 ヴィド スケール インコーポレイテッド Video coding quantization and dynamic range control system and method
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
US9131073B1 (en) 2012-03-02 2015-09-08 Google Inc. Motion estimation aided noise reduction
US20130243085A1 (en) * 2012-03-15 2013-09-19 Samsung Electronics Co., Ltd. Method of multi-view video coding and decoding based on local illumination and contrast compensation of reference frames without extra bitrate overhead
TWI784916B (en) * 2012-03-26 2022-11-21 日商Jvc建伍股份有限公司 Image decoding device, image decoding method, recording medium storing image decoding program, image encoding device, image encoding method, and recording medium storing image encoding program
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
PL2869557T3 (en) 2012-06-29 2024-02-19 Electronics And Telecommunications Research Institute Method and device for encoding/decoding images
US9344729B1 (en) 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9344742B2 (en) 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US8675731B2 (en) * 2012-08-13 2014-03-18 Gurulogic Microsystems Oy Encoder and method
US9826229B2 (en) 2012-09-29 2017-11-21 Google Technology Holdings LLC Scan pattern determination from base layer pixel information for scalable extension
EP2904786B1 (en) 2012-10-01 2018-12-05 GE Video Compression, LLC Scalable video coding using inter-layer prediction of spatial intra prediction parameters
US9369732B2 (en) 2012-10-08 2016-06-14 Google Inc. Lossless intra-prediction video coding
US20140133582A1 (en) * 2012-11-12 2014-05-15 Rtc Vision Ltd. Enhancing digital signals
EP2920962A4 (en) * 2012-11-13 2016-07-20 Intel Corp Content adaptive transform coding for next generation video
US9350988B1 (en) 2012-11-20 2016-05-24 Google Inc. Prediction mode-based block ordering in video coding
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
CN105409215B (en) 2013-01-11 2018-10-09 华为技术有限公司 depth prediction mode selecting method and device
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
CN104737542B (en) 2013-01-30 2018-09-25 英特尔公司 Content-adaptive entropy coding for next-generation video
US9681128B1 (en) 2013-01-31 2017-06-13 Google Inc. Adaptive pre-transform scanning patterns for video and image compression
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9668019B2 (en) * 2013-03-15 2017-05-30 Samsung Electronics Co., Ltd. Electronic system with adaptive enhancement mechanism and method of operation thereof
JP6212890B2 (en) * 2013-03-22 2017-10-18 富士通株式会社 Moving picture coding apparatus, moving picture coding method, and moving picture coding program
CN104077796B (en) * 2013-03-28 2017-01-18 北京京东方光电科技有限公司 Method and device for converting two-dimensional image into three-dimensional image
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
US9313493B1 (en) * 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
GB2516425B (en) * 2013-07-17 2015-12-30 Gurulogic Microsystems Oy Encoder and decoder, and method of operation
MX368246B (en) 2013-07-24 2019-09-25 Microsoft Technology Licensing Llc Scanning orders for non-transform coding.
US9247251B1 (en) 2013-07-26 2016-01-26 Google Inc. Right-edge extension for quad-tree intra-prediction
FR3011429A1 (en) * 2013-09-27 2015-04-03 Orange VIDEO CODING AND DECODING BY HERITAGE OF A FIELD OF MOTION VECTORS
US10075266B2 (en) * 2013-10-09 2018-09-11 Qualcomm Incorporated Data transmission scheme with unequal code block sizes
KR102185857B1 (en) * 2014-02-13 2020-12-02 삼성전자주식회사 Method and apparatus for encoding and decoding image using modification of residual block
US9591313B2 (en) * 2014-03-04 2017-03-07 Vixs Systems, Inc. Video encoder with transform size preprocessing and methods for use therewith
US10136140B2 (en) 2014-03-17 2018-11-20 Microsoft Technology Licensing, Llc Encoder-side decisions for screen content encoding
US9819395B2 (en) 2014-05-05 2017-11-14 Nxp B.V. Apparatus and method for wireless body communication
US10014578B2 (en) 2014-05-05 2018-07-03 Nxp B.V. Body antenna system
US9812788B2 (en) 2014-11-24 2017-11-07 Nxp B.V. Electromagnetic field induction for inter-body and transverse body communication
US9819075B2 (en) 2014-05-05 2017-11-14 Nxp B.V. Body communication antenna
US10015604B2 (en) 2014-05-05 2018-07-03 Nxp B.V. Electromagnetic induction field communication
US10009069B2 (en) 2014-05-05 2018-06-26 Nxp B.V. Wireless power delivery and data link
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
KR102257379B1 (en) * 2014-07-22 2021-06-01 삼성전자주식회사 Video encoding circuit and video encoding method therewith
EP2980793A1 (en) * 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder, system and methods for encoding and decoding
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
CN104301730A (en) * 2014-10-14 2015-01-21 河海大学常州校区 Two-way video coding and decoding system and method based on video mobile equipment
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
EP3254463A4 (en) 2015-02-06 2018-02-21 Microsoft Technology Licensing, LLC Skipping evaluation stages during media encoding
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
CN107455007B (en) * 2015-04-02 2021-02-09 株式会社Kt Method for encoding and decoding video signal
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
EP3314894B1 (en) * 2015-06-25 2024-03-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Refinement of a low-pel resolution motion estimation vector
US10136132B2 (en) * 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US9819097B2 (en) 2015-08-26 2017-11-14 Nxp B.V. Antenna system
WO2017043941A1 (en) * 2015-09-10 2017-03-16 엘지전자(주) Method and apparatus for processing video signal using graph-based transformation based on prediction angle
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
KR102477266B1 (en) * 2015-10-21 2022-12-13 삼성전자주식회사 Electronic apparatus and method to design multi-format decoder
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
US10330642B2 (en) 2015-12-14 2019-06-25 Qorvo Us, Inc. BAW sensor device with peel-resistant wall structure
WO2017156669A1 (en) * 2016-03-14 2017-09-21 Mediatek Singapore Pte. Ltd. Methods for motion vector storage in video coding
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US10320086B2 (en) 2016-05-04 2019-06-11 Nxp B.V. Near-field electromagnetic induction (NFEMI) antenna
CN109643456A (en) 2016-06-17 2019-04-16 因默希弗机器人私人有限公司 Method for compressing image and equipment
US9712830B1 (en) 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
CN106658024B (en) * 2016-10-20 2019-07-16 杭州当虹科技股份有限公司 A kind of quick method for video coding
CN106709933B (en) * 2016-11-17 2020-04-07 南京邮电大学 Motion estimation method based on unsupervised learning
CN108206950B (en) * 2016-12-19 2021-11-12 北京君正集成电路股份有限公司 Code stream length calculation method and device
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
KR20180080115A (en) * 2017-01-02 2018-07-11 한양대학교 산학협력단 Intraprediction method and apparatus for performing adaptive filtering on reference pixels
CN110169059B (en) * 2017-01-13 2023-08-22 谷歌有限责任公司 Composite Prediction for Video Coding
US10580167B1 (en) * 2017-01-24 2020-03-03 Amazon Technologies, Inc. Excluding masked regions of virtual reality (VR) frames from encoder processing
US10593122B1 (en) * 2017-01-24 2020-03-17 Amazon Technologies, Inc. Mirroring edge pixels
EP3579940A4 (en) 2017-02-08 2020-11-18 Immersive Robotics Pty Ltd Displaying content to users in a multiplayer venue
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
CN108429910B (en) * 2017-02-15 2021-09-10 扬智科技股份有限公司 Image compression method
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
KR20230048569A (en) * 2017-04-06 2023-04-11 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 Encoding device, decoding device, encoding method, and decoding method
US10014158B1 (en) * 2017-05-09 2018-07-03 Fei Company Innovative image processing in charged particle microscopy
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US20200145696A1 (en) 2017-06-05 2020-05-07 Immersive Robotics Pty Ltd Digital Content Stream Compression
KR102401851B1 (en) * 2017-06-14 2022-05-26 삼성디스플레이 주식회사 Method of compressing image and display apparatus for performing the same
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
JP7147145B2 (en) * 2017-09-26 2022-10-05 富士通株式会社 Video encoding device, video encoding method, and video encoding program
WO2019065537A1 (en) * 2017-09-28 2019-04-04 シャープ株式会社 Motion compensation filter device, image decoding device, and moving image coding device
WO2019076138A1 (en) 2017-10-16 2019-04-25 Huawei Technologies Co., Ltd. Encoding method and apparatus
CN109756739B (en) * 2017-11-07 2022-09-02 华为技术有限公司 Image prediction method and device
EP3714598A4 (en) 2017-11-21 2021-03-31 Immersive Robotics Pty Ltd Frequency component selection for image compression
WO2019100108A1 (en) 2017-11-21 2019-05-31 Immersive Robotics Pty Ltd Image compression for digital reality
CN108012149B (en) * 2017-12-19 2021-05-18 四川九洲电器集团有限责任公司 Code rate control method in video coding
EP3732886A1 (en) * 2017-12-29 2020-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding and/or decoding of video using reference values and related devices
CN108111862B (en) * 2018-01-12 2020-04-28 北京数码视讯软件技术发展有限公司 Video coding method and device
KR102438149B1 (en) 2018-02-23 2022-08-29 후아웨이 테크놀러지 컴퍼니 리미티드 Position Dependent Spatial Variable Transform for Video Coding
US10713997B2 (en) * 2018-03-23 2020-07-14 Valve Corporation Controlling image display via mapping of pixel values to pixels
CN116320411A (en) * 2018-03-29 2023-06-23 日本放送协会 Image encoding device, image decoding device, and program
US10536720B2 (en) * 2018-05-07 2020-01-14 Tencent America LLC Method, apparatus and medium for decoding or encoding
UA127899C2 (en) * 2018-05-31 2024-02-07 Хуавей Текнолоджиз Ко., Лтд. Spatially varying transform with adaptive transform type
EP4351140A1 (en) * 2018-06-07 2024-04-10 Beijing Bytedance Network Technology Co., Ltd. Partial cost calculation
US10771783B2 (en) 2018-06-11 2020-09-08 Google Llc Transforms for large video and image blocks
US10638145B2 (en) * 2018-06-19 2020-04-28 Novatek Microelectronics Corp. Video encoding apparatus and operating method thereof
EP3815359A1 (en) * 2018-06-27 2021-05-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Contour mode prediction
TWI719519B (en) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 Block size restrictions for dmvr
US11166044B2 (en) * 2018-07-31 2021-11-02 Tencent America LLC Method and apparatus for improved compound orthonormal transform
EP3664017B1 (en) * 2018-12-06 2022-03-02 Robert Bosch GmbH Method and device for digital image or video data processing
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
CN110135231B (en) * 2018-12-25 2021-05-28 杭州慧牧科技有限公司 Animal face recognition method and device, computer equipment and storage medium
US10798397B2 (en) * 2019-01-02 2020-10-06 Tencent America LLC Method and apparatus for video coding
US10666986B1 (en) 2019-03-08 2020-05-26 Sony Corporation Sub-block based entropy coding for embedded image codec
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
EP4022908A4 (en) * 2019-09-25 2022-11-09 Huawei Technologies Co., Ltd. Method and apparatus of simplified geometric merge mode for inter prediction
US20210127125A1 (en) * 2019-10-23 2021-04-29 Facebook Technologies, Llc Reducing size and power consumption for frame buffers using lossy compression
WO2021108787A1 (en) * 2019-11-30 2021-06-03 Bytedance Inc. Dictionary based coding of video data
WO2021210743A1 (en) * 2020-04-14 2021-10-21 엘지전자 주식회사 Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method
CN112019880B (en) * 2020-10-30 2021-02-12 南斗六星系统集成有限公司 Video file splicing method with any frame rate
US20230388484A1 (en) * 2022-05-24 2023-11-30 Tencent America LLC Method and apparatus for asymmetric blending of predictions of partitioned pictures

Citations (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862267A (en) * 1987-06-09 1989-08-29 Sony Corp. Motion compensated interpolation of digital television images
US5103306A (en) * 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US5491523A (en) * 1993-06-01 1996-02-13 Matsushita Electric Industrial Co. Ltd. Image motion vector detecting method and motion vector coding method
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US5659365A (en) * 1995-06-06 1997-08-19 Sony Corporation Video compression
US5692063A (en) * 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5784175A (en) * 1995-10-05 1998-07-21 Microsoft Corporation Pixel block correlation process
US5787203A (en) * 1996-01-19 1998-07-28 Microsoft Corporation Method and system for filtering compressed video images
US5799113A (en) * 1996-01-19 1998-08-25 Microsoft Corporation Method for expanding contracted video images
US5844613A (en) * 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
US5874995A (en) * 1994-10-28 1999-02-23 Matsuhita Electric Corporation Of America MPEG video decoder having a high bandwidth memory for use in decoding interlaced and progressive signals
US5929940A (en) * 1995-10-25 1999-07-27 U.S. Philips Corporation Method and device for estimating motion between images, system for encoding segmented images
US5973755A (en) * 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
US5982438A (en) * 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
US5991447A (en) * 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6067322A (en) * 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6130963A (en) * 1996-11-22 2000-10-10 C-Cube Semiconductor Ii, Inc. Memory efficient decoding of video frame chroma
US6219464B1 (en) * 1995-11-08 2001-04-17 Genesis Microchip Inc. Source data interpolation method and apparatus
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6259741B1 (en) * 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6266091B1 (en) * 1997-07-31 2001-07-24 Lsi Logic Corporation System and method for low delay mode operation video decoding
US6282243B1 (en) * 1997-06-11 2001-08-28 Fujitsu Limited Apparatus and method for interframe predictive video coding and decoding with capabilities to avoid rounding error accumulation
US6281942B1 (en) * 1997-08-11 2001-08-28 Microsoft Corporation Spatial and temporal filtering mechanism for digital motion video signals
US6295376B1 (en) * 1997-06-09 2001-09-25 Hitachi, Ltd. Image sequence coding method and decoding method
US6310918B1 (en) * 1997-07-31 2001-10-30 Lsi Logic Corporation System and method for motion vector extraction and computation meeting 2-frame store and letterboxing requirements
US6320593B1 (en) * 1999-04-20 2001-11-20 Agilent Technologies, Inc. Method of fast bi-cubic interpolation of image information
US20010050957A1 (en) * 1997-06-09 2001-12-13 Yuichiro Nakaya Image decoding method
US6377628B1 (en) * 1996-12-18 2002-04-23 Thomson Licensing S.A. System for maintaining datastream continuity in the presence of disrupted source data
US6381279B1 (en) * 1998-01-22 2002-04-30 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
US6396876B1 (en) * 1997-08-04 2002-05-28 Thomson Licensing S.A. Preprocessing process and device for motion estimation
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US20020186890A1 (en) * 2001-05-03 2002-12-12 Ming-Chieh Lee Dynamic filtering for lossy compression
US6496608B1 (en) * 1999-01-15 2002-12-17 Picsurf, Inc. Image data interpolation system and method
US6539056B1 (en) * 1998-07-23 2003-03-25 Sony Corporation Picture decoding method and apparatus
US20030095603A1 (en) * 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Reduced-complexity video decoding using larger pixel-grid motion compensation
US20030112864A1 (en) * 2001-09-17 2003-06-19 Marta Karczewicz Method for sub-pixel value interpolation
US20030152146A1 (en) * 2001-12-17 2003-08-14 Microsoft Corporation Motion compensation loop with filtering
US20030202705A1 (en) * 2002-04-26 2003-10-30 Sharp Laboratories Of America, Inc. System and method for lossless video coding
US6661470B1 (en) * 1997-03-31 2003-12-09 Matsushita Electric Industrial Co., Ltd. Moving picture display method and apparatus
US6728317B1 (en) * 1996-01-30 2004-04-27 Dolby Laboratories Licensing Corporation Moving image compression quality enhancement using displacement filters with negative lobes

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3684047D1 (en) 1985-07-02 1992-04-09 Matsushita Electric Ind Co Ltd BLOCK CODING DEVICE.
JPH0824341B2 (en) * 1985-10-28 1996-03-06 株式会社日立製作所 Image data encoding method
FR2599577B1 (en) 1986-05-29 1988-08-05 Guichard Jacques TRANSFORMATION CODING METHOD FOR TRANSMITTING IMAGE SIGNALS.
DE3704777C1 (en) 1987-02-16 1988-04-07 Ant Nachrichtentech Method of transmitting and playing back television picture sequences
JPH0832047B2 (en) * 1989-04-28 1996-03-27 日本ビクター株式会社 Predictive coding device
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
US5144426A (en) * 1989-10-13 1992-09-01 Matsushita Electric Industrial Co., Ltd. Motion compensated prediction interframe coding system
US5107345A (en) * 1990-02-27 1992-04-21 Qualcomm Incorporated Adaptive block size image compression method and system
JPH082107B2 (en) 1990-03-02 1996-01-10 国際電信電話株式会社 Method and apparatus for moving picture hybrid coding
US5068724A (en) 1990-06-15 1991-11-26 General Instrument Corporation Adaptive motion compensation for digital television
US5260783A (en) * 1991-02-21 1993-11-09 Gte Laboratories Incorporated Layered DCT video coder for packet switched ATM networks
DE4113505A1 (en) 1991-04-25 1992-10-29 Thomson Brandt Gmbh METHOD FOR IMAGE SIGNAL CODING
ES2110504T3 (en) * 1991-06-04 1998-02-16 Qualcomm Inc SYSTEM OF COMPRESSION OF IMAGES BY SIZE SELF-ADAPTIVE OF BLOCKS.
US6160503A (en) * 1992-02-19 2000-12-12 8×8, Inc. Deblocking filter for encoder/decoder arrangement and method with divergence reduction
US6215425B1 (en) * 1992-02-19 2001-04-10 Netergy Networks, Inc. Deblocking filter for encoder/decoder arrangement and method with divergence reduction
KR0166716B1 (en) 1992-06-18 1999-03-20 강진구 Encoding and decoding method and apparatus by using block dpcm
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
WO1994018799A1 (en) * 1993-02-03 1994-08-18 Qualcomm Incorporated Interframe video encoding and decoding system
KR970002967B1 (en) * 1993-04-09 1997-03-13 대우전자 주식회사 Motion vector detecting apparatus using block classification pattern
US5815646A (en) * 1993-04-13 1998-09-29 C-Cube Microsystems Decompression processor for video applications
US5442400A (en) 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
US5477272A (en) 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
GB2281465B (en) * 1993-08-27 1997-06-04 Sony Uk Ltd Image data compression
KR0155784B1 (en) * 1993-12-16 1998-12-15 김광호 Adaptable variable coder/decoder method of image data
US6356663B1 (en) * 1994-09-09 2002-03-12 Intel Corporation Processing image signals using spatial decomposition
US6009236A (en) 1994-09-26 1999-12-28 Mitsubishi Denki Kabushiki Kaisha Digital video signal record and playback device and method for giving priority to a center of an I frame
US5802213A (en) * 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
JP3351645B2 (en) 1995-01-31 2002-12-03 松下電器産業株式会社 Video coding method
US6104754A (en) 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
JPH08265770A (en) * 1995-03-20 1996-10-11 Sony Corp High efficiency encoding method, high efficiency encoder, recording and reproducing device and information transmission system
US5828413A (en) * 1995-09-21 1998-10-27 Lucent Technologies Inc. Method and apparatus for image processing using model-based localized quantization
US5623313A (en) * 1995-09-22 1997-04-22 Tektronix, Inc. Fractional pixel motion estimation of video signals
US5883678A (en) * 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
JP3855286B2 (en) * 1995-10-26 2006-12-06 ソニー株式会社 Image encoding device, image encoding method, image decoding device, image decoding method, and recording medium
US6571019B1 (en) * 1995-10-26 2003-05-27 Hyundai Curitel, Inc Apparatus and method of encoding/decoding a coded block pattern
SE507410C2 (en) * 1995-11-08 1998-05-25 Ericsson Telefon Ab L M Motion estimation method and apparatus
US5850294A (en) * 1995-12-18 1998-12-15 Lucent Technologies Inc. Method and apparatus for post-processing images
JP2798035B2 (en) * 1996-01-17 1998-09-17 日本電気株式会社 Motion compensated inter-frame prediction method using adaptive motion vector interpolation
US5778098A (en) 1996-03-22 1998-07-07 Microsoft Corporation Sprite coding
US5764814A (en) * 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
KR100403077B1 (en) 1996-05-28 2003-10-30 마쯔시다덴기산교 가부시키가이샤 Image predictive decoding apparatus and method thereof, and image predictive cording apparatus and method thereof
JPH1070717A (en) * 1996-06-19 1998-03-10 Matsushita Electric Ind Co Ltd Image encoding device and image decoding device
WO1998003018A2 (en) 1996-07-11 1998-01-22 Philips Electronics N.V. Transmission and reception of encoded video pictures
US5952943A (en) * 1996-10-11 1999-09-14 Intel Corporation Encoding image data for decode rate control
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
US6038256A (en) * 1996-12-31 2000-03-14 C-Cube Microsystems Inc. Statistical multiplexed video encoding using pre-encoding a priori statistics and a priori and a posteriori statistics
CN1208971C (en) * 1997-02-14 2005-06-29 日本电信电话株式会社 Predictive coding method and decoding method for dynamic image
FI106071B (en) 1997-03-13 2000-11-15 Nokia Mobile Phones Ltd Adaptive filter
US6633611B2 (en) * 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
KR100243225B1 (en) * 1997-07-16 2000-02-01 윤종용 Signal adaptive filtering method for reducting blocking effect and ringing noise and filter thereof
US6011870A (en) * 1997-07-18 2000-01-04 Jeng; Fure-Ching Multiple stage and low-complexity motion estimation for interframe video coding
CN100459715C (en) * 1997-07-31 2009-02-04 日本胜利株式会社 Inter-block interpolation prediction coder, decoder, coding method and decoding method
US6178205B1 (en) * 1997-12-12 2001-01-23 Vtel Corporation Video postfiltering with motion-compensated temporal filtering and/or spatial-adaptive filtering
US6339656B1 (en) * 1997-12-25 2002-01-15 Matsushita Electric Industrial Co., Ltd. Moving picture encoding decoding processing apparatus
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
JP3209171B2 (en) * 1998-01-08 2001-09-17 日本電気株式会社 Video encoding device
US6501798B1 (en) * 1998-01-22 2002-12-31 International Business Machines Corporation Device for generating multiple quality level bit-rates in a video encoder
JP3132456B2 (en) 1998-03-05 2001-02-05 日本電気株式会社 Hierarchical image coding method and hierarchical image decoding method
KR100285599B1 (en) * 1998-03-14 2001-04-02 전주범 Device and method for texture padding for motion estimation in alternate line encoding
US7016413B2 (en) * 1998-03-20 2006-03-21 International Business Machines Corporation Adaptively encoding a picture of contrasted complexity having normal video and noisy video portions
JP2000023162A (en) * 1998-06-29 2000-01-21 Sony Corp Device and method for encoding
US20020027954A1 (en) * 1998-06-30 2002-03-07 Kenneth S. Singh Method and device for gathering block statistics during inverse quantization and iscan
AU717480B2 (en) * 1998-08-01 2000-03-30 Korea Advanced Institute Of Science And Technology Loop-filtering method for image data and apparatus therefor
US6380985B1 (en) * 1998-09-14 2002-04-30 Webtv Networks, Inc. Resizing and anti-flicker filtering in reduced-size video images
TW379509B (en) 1998-09-15 2000-01-11 Acer Inc Adaptive post-filtering of compressed video images to remove artifacts
US6141382A (en) * 1998-09-18 2000-10-31 Sarnoff Corporation Using estimated distortion values
JP3576402B2 (en) * 1998-10-23 2004-10-13 三菱電機株式会社 Image decoding device
US6466624B1 (en) * 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
KR100366643B1 (en) * 1998-11-25 2003-02-19 삼성전자 주식회사 Method and apparatus for de-blocking
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6236764B1 (en) * 1998-11-30 2001-05-22 Equator Technologies, Inc. Image processing circuit and method for reducing a difference between pixel values across an image boundary
US6983018B1 (en) * 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6473409B1 (en) * 1999-02-26 2002-10-29 Microsoft Corp. Adaptive filtering system and method for adaptively canceling echoes and reducing noise in digital signals
US6449382B1 (en) * 1999-04-28 2002-09-10 International Business Machines Corporation Method and system for recapturing a trajectory of an object
CN1107381C (en) * 1999-06-03 2003-04-30 鸿友科技股份有限公司 Real-time compression/decompression method for scanned image
JP2001112000A (en) 1999-10-07 2001-04-20 Matsushita Electric Ind Co Ltd Video signal encoding device
FI116819B (en) 2000-01-21 2006-02-28 Nokia Corp Procedure for transferring images and an image encoder
US7203234B1 (en) * 2000-03-31 2007-04-10 Sharp Laboratories Of America, Inc. Method of directional filtering for post-processing compressed video
US6654419B1 (en) 2000-04-28 2003-11-25 Sun Microsystems, Inc. Block-based, adaptive, lossless video coder
DE10022331A1 (en) * 2000-05-10 2001-11-15 Bosch Gmbh Robert Method for transformation coding of moving image sequences e.g. for audio-visual objects, involves block-wise assessing movement vectors between reference- and actual- image signals of image sequence
GB2365647A (en) 2000-08-04 2002-02-20 Snell & Wilcox Ltd Deriving parameters for post-processing from an encoded signal
US6765964B1 (en) * 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US7792390B2 (en) 2000-12-19 2010-09-07 Altera Corporation Adaptive transforms
US6766063B2 (en) * 2001-02-02 2004-07-20 Avid Technology, Inc. Generation adaptive filtering for subsampling component video as input to a nonlinear editing system
WO2002067589A1 (en) * 2001-02-23 2002-08-29 Seiko Epson Corporation Image processing system, image processing method, and image processing program
US20020150166A1 (en) * 2001-03-02 2002-10-17 Johnson Andrew W. Edge adaptive texture discriminating filtering
US7450641B2 (en) * 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
US6925126B2 (en) * 2001-04-18 2005-08-02 Koninklijke Philips Electronics N.V. Dynamic complexity prediction and regulation of MPEG2 decoding in a media processor
US6704718B2 (en) * 2001-06-05 2004-03-09 Microsoft Corporation System and method for trainable nonlinear prediction of transform coefficients in data compression
US6870963B2 (en) * 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
CN1220391C (en) 2001-06-29 2005-09-21 株式会社Ntt都科摩 Image encoder, image decoder, image encoding method, and image decoding method
US20030012286A1 (en) * 2001-07-10 2003-01-16 Motorola, Inc. Method and device for suspecting errors and recovering macroblock data in video coding
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US7039117B2 (en) * 2001-08-16 2006-05-02 Sony Corporation Error concealment of video data using texture data recovery
US6983079B2 (en) * 2001-09-20 2006-01-03 Seiko Epson Corporation Reducing blocking and ringing artifacts in low-bit-rate coding
CN1253009C (en) 2001-10-26 2006-04-19 皇家飞利浦电子股份有限公司 Spatial scalable compression
EP2222084A2 (en) 2001-11-16 2010-08-25 NTT DoCoMo, Inc. Image coding and decoding method
US6980596B2 (en) 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
EP2320660B8 (en) 2001-11-29 2015-09-09 Godo Kaisha IP Bridge 1 Coding distortion removal method
US8284844B2 (en) * 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
JP4368575B2 (en) 2002-04-19 2009-11-18 パナソニック株式会社 Variable length decoding method, variable length decoding apparatus and program
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US8111753B2 (en) * 2003-02-06 2012-02-07 Samsung Electronics Co., Ltd. Video encoding method and video encoder for improving performance
JP2005005844A (en) * 2003-06-10 2005-01-06 Hitachi Ltd Computation apparatus and coding processing program
US7830963B2 (en) 2003-07-18 2010-11-09 Microsoft Corporation Decoding jointly coded transform type and subblock pattern information
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
JP5280003B2 (en) 2003-09-07 2013-09-04 マイクロソフト コーポレーション Slice layer in video codec
EP1665804A1 (en) * 2003-09-17 2006-06-07 Thomson Licensing S.A. Adaptive reference picture generation
KR20050061762A (en) 2003-12-18 2005-06-23 학교법인 대양학원 Method of encoding mode determination and motion estimation, and encoding apparatus
AU2005222719B2 (en) * 2004-03-19 2011-03-24 Abbott Laboratories Multiple drug delivery from a balloon and a prosthesis
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US7957610B2 (en) * 2006-04-11 2011-06-07 Panasonic Corporation Image processing method and image processing device for enhancing the resolution of a picture by using multiple input low-resolution pictures
KR101369746B1 (en) 2007-01-22 2014-03-07 삼성전자주식회사 Method and apparatus for Video encoding and decoding using adaptive interpolation filter
US8190232B2 (en) * 2007-10-04 2012-05-29 Siemens Aktiengesellschaft Automatic alignment of magnetic resonance imaging (MRI) brain scan by anatomic landmarks
US8711948B2 (en) 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
KR101663762B1 (en) * 2010-07-20 2016-10-07 에스케이 텔레콤주식회사 Competition-Based Intra Prediction Coding/Decoding Apparatus and Method Using Multiple Prediction Filters
CN104077796B (en) * 2013-03-28 2017-01-18 北京京东方光电科技有限公司 Method and device for converting two-dimensional image into three-dimensional image
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream

Patent Citations (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4862267A (en) * 1987-06-09 1989-08-29 Sony Corp. Motion compensated interpolation of digital television images
US5103306A (en) * 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US5594813A (en) * 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
US5901248A (en) * 1992-02-19 1999-05-04 8X8, Inc. Programmable architecture and methods for motion estimation
US5491523A (en) * 1993-06-01 1996-02-13 Matsushita Electric Industrial Co. Ltd. Image motion vector detecting method and motion vector coding method
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US5874995A (en) * 1994-10-28 1999-02-23 Matsuhita Electric Corporation Of America MPEG video decoder having a high bandwidth memory for use in decoding interlaced and progressive signals
US5659365A (en) * 1995-06-06 1997-08-19 Sony Corporation Video compression
US5784175A (en) * 1995-10-05 1998-07-21 Microsoft Corporation Pixel block correlation process
US5796855A (en) * 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching method
US5970173A (en) * 1995-10-05 1999-10-19 Microsoft Corporation Image compression and affine transformation for image motion compensation
US5825929A (en) * 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US5929940A (en) * 1995-10-25 1999-07-27 U.S. Philips Corporation Method and device for estimating motion between images, system for encoding segmented images
US6219464B1 (en) * 1995-11-08 2001-04-17 Genesis Microchip Inc. Source data interpolation method and apparatus
US5787203A (en) * 1996-01-19 1998-07-28 Microsoft Corporation Method and system for filtering compressed video images
US5799113A (en) * 1996-01-19 1998-08-25 Microsoft Corporation Method for expanding contracted video images
US5692063A (en) * 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US6728317B1 (en) * 1996-01-30 2004-04-27 Dolby Laboratories Licensing Corporation Moving image compression quality enhancement using displacement filters with negative lobes
US5982438A (en) * 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6337881B1 (en) * 1996-09-16 2002-01-08 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6130963A (en) * 1996-11-22 2000-10-10 C-Cube Semiconductor Ii, Inc. Memory efficient decoding of video frame chroma
US6377628B1 (en) * 1996-12-18 2002-04-23 Thomson Licensing S.A. System for maintaining datastream continuity in the presence of disrupted source data
USRE38563E1 (en) * 1997-03-07 2004-08-10 Gen Instrument Corp Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US5991447A (en) * 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US5844613A (en) * 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
US6661470B1 (en) * 1997-03-31 2003-12-09 Matsushita Electric Industrial Co., Ltd. Moving picture display method and apparatus
US5973755A (en) * 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
US6067322A (en) * 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US20050036700A1 (en) * 1997-06-09 2005-02-17 Yuichiro Nakaya Encoding and decoding method and apparatus using plus and/or minus rounding of images
US6295376B1 (en) * 1997-06-09 2001-09-25 Hitachi, Ltd. Image sequence coding method and decoding method
US6650781B2 (en) * 1997-06-09 2003-11-18 Hitachi, Ltd. Image decoder
US20010050957A1 (en) * 1997-06-09 2001-12-13 Yuichiro Nakaya Image decoding method
US6282243B1 (en) * 1997-06-11 2001-08-28 Fujitsu Limited Apparatus and method for interframe predictive video coding and decoding with capabilities to avoid rounding error accumulation
US6310918B1 (en) * 1997-07-31 2001-10-30 Lsi Logic Corporation System and method for motion vector extraction and computation meeting 2-frame store and letterboxing requirements
US6266091B1 (en) * 1997-07-31 2001-07-24 Lsi Logic Corporation System and method for low delay mode operation video decoding
US6396876B1 (en) * 1997-08-04 2002-05-28 Thomson Licensing S.A. Preprocessing process and device for motion estimation
US6281942B1 (en) * 1997-08-11 2001-08-28 Microsoft Corporation Spatial and temporal filtering mechanism for digital motion video signals
US6381279B1 (en) * 1998-01-22 2002-04-30 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
US6539056B1 (en) * 1998-07-23 2003-03-25 Sony Corporation Picture decoding method and apparatus
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6496608B1 (en) * 1999-01-15 2002-12-17 Picsurf, Inc. Image data interpolation system and method
US6259741B1 (en) * 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6320593B1 (en) * 1999-04-20 2001-11-20 Agilent Technologies, Inc. Method of fast bi-cubic interpolation of image information
US20020186890A1 (en) * 2001-05-03 2002-12-12 Ming-Chieh Lee Dynamic filtering for lossy compression
US20030112864A1 (en) * 2001-09-17 2003-06-19 Marta Karczewicz Method for sub-pixel value interpolation
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US20030095603A1 (en) * 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Reduced-complexity video decoding using larger pixel-grid motion compensation
US20030152146A1 (en) * 2001-12-17 2003-08-14 Microsoft Corporation Motion compensation loop with filtering
US20030202705A1 (en) * 2002-04-26 2003-10-30 Sharp Laboratories Of America, Inc. System and method for lossless video coding

Cited By (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646810B2 (en) 2002-01-25 2010-01-12 Microsoft Corporation Video coding
US10284843B2 (en) 2002-01-25 2019-05-07 Microsoft Technology Licensing, Llc Video coding
US8638853B2 (en) 2002-01-25 2014-01-28 Microsoft Corporation Video coding
US9888237B2 (en) 2002-01-25 2018-02-06 Microsoft Technology Licensing, Llc Video coding
US8406300B2 (en) 2002-01-25 2013-03-26 Microsoft Corporation Video coding
US7620109B2 (en) 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7110459B2 (en) 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US20030202607A1 (en) * 2002-04-10 2003-10-30 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US20030194011A1 (en) * 2002-04-10 2003-10-16 Microsoft Corporation Rounding control for multi-stage interpolation
US7305034B2 (en) 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US20030198294A1 (en) * 2002-04-23 2003-10-23 Andre Zaccarin Methods and apparatuses for selecting encoding options based on decoding energy requirements
US7555043B2 (en) * 2002-04-25 2009-06-30 Sony Corporation Image processing apparatus and method
US20040213470A1 (en) * 2002-04-25 2004-10-28 Sony Corporation Image processing apparatus and method
US8873630B2 (en) 2002-06-03 2014-10-28 Microsoft Corporation Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US9571854B2 (en) 2002-06-03 2017-02-14 Microsoft Technology Licensing, Llc Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US10116959B2 (en) 2002-06-03 2018-10-30 Microsoft Technology Licesning, LLC Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US8374245B2 (en) 2002-06-03 2013-02-12 Microsoft Corporation Spatiotemporal prediction for bidirectionally predictive(B) pictures and motion vector prediction for multi-picture reference motion compensation
US9185427B2 (en) 2002-06-03 2015-11-10 Microsoft Technology Licensing, Llc Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7224731B2 (en) 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US20040008899A1 (en) * 2002-07-05 2004-01-15 Alexandros Tourapis Optimization techniques for data compression
US8774280B2 (en) 2002-07-19 2014-07-08 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US8379722B2 (en) 2002-07-19 2013-02-19 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US20050025249A1 (en) * 2002-08-14 2005-02-03 Lifeng Zhao Systems and methods for selecting a macroblock mode in a video encoder
US6944224B2 (en) * 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US7421129B2 (en) 2002-09-04 2008-09-02 Microsoft Corporation Image compression and synthesis for video effects
US20040131261A1 (en) * 2002-09-04 2004-07-08 Microsoft Corporation Image compression and synthesis for video effects
US7408986B2 (en) 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
US7558320B2 (en) 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
US9313509B2 (en) 2003-07-18 2016-04-12 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US20050013497A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US10063863B2 (en) 2003-07-18 2018-08-28 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US9148668B2 (en) 2003-07-18 2015-09-29 Microsoft Technology Licensing, Llc Coding of motion vector information
US8917768B2 (en) 2003-07-18 2014-12-23 Microsoft Corporation Coding of motion vector information
US10659793B2 (en) 2003-07-18 2020-05-19 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US8687697B2 (en) 2003-07-18 2014-04-01 Microsoft Corporation Coding of motion vector information
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US8625669B2 (en) 2003-09-07 2014-01-07 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7924920B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Motion vector coding and decoding in interlaced frame coded pictures
US7852936B2 (en) 2003-09-07 2010-12-14 Microsoft Corporation Motion vector prediction in bi-directionally predicted interlaced field-coded pictures
US20050053295A1 (en) * 2003-09-07 2005-03-10 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7680185B2 (en) 2003-09-07 2010-03-16 Microsoft Corporation Self-referencing bi-directionally predicted frames
US20050056618A1 (en) * 2003-09-15 2005-03-17 Schmidt Kenneth R. Sheet-to-tube welded structure and method
US20050117810A1 (en) * 2003-11-17 2005-06-02 Gisle Bjontegaard Method for correcting interpolated pixel values
US7660471B2 (en) * 2003-11-28 2010-02-09 Tandberg Telecom As Method for correcting interpolated pixel values
US20050129330A1 (en) * 2003-12-16 2005-06-16 Genesis Microchip Inc. Method and apparatus for MPEG artifacts reduction
US7346226B2 (en) 2003-12-16 2008-03-18 Genesis Microchip Inc. Method and apparatus for MPEG artifacts reduction
EP1549054A3 (en) * 2003-12-23 2006-02-22 Genesis Microchip, Inc. Motion compensated frame rate conversion
US20050135482A1 (en) * 2003-12-23 2005-06-23 Genesis Microchip Inc. Motion vector computation for video sequences
US7499494B2 (en) 2003-12-23 2009-03-03 Genesis Microchip Inc. Vector selection decision for pixel interpolation
US20090086103A1 (en) * 2003-12-23 2009-04-02 Nair Hari N Robust camera pan vector estimation using iterative center of mass
US20090116557A1 (en) * 2003-12-23 2009-05-07 Nair Hari N Temporal motion vector filtering
US20090135913A1 (en) * 2003-12-23 2009-05-28 Nair Hari N Vector selection decision for pixel interpolation
CN1681291B (en) * 2003-12-23 2013-09-25 创世纪微芯片公司 Method for computing motion vector of digital video sequence
US7457438B2 (en) 2003-12-23 2008-11-25 Genesis Microchip Inc. Robust camera pan vector estimation using iterative center of mass
US20050195278A1 (en) * 2003-12-23 2005-09-08 Genesis Microchip Inc. Robust camera pan vector estimation using iterative center of mass
US8588306B2 (en) 2003-12-23 2013-11-19 Tamiras Per Pte. Ltd., Llc Temporal motion vector filtering
US8335257B2 (en) 2003-12-23 2012-12-18 Tamiras Per Pte. Ltd., Llc Vector selection decision for pixel interpolation
EP1549054A2 (en) * 2003-12-23 2005-06-29 Genesis Microchip, Inc. Motion compensated frame rate conversion
US8315436B2 (en) 2003-12-23 2012-11-20 Tamiras Per Pte. Ltd., Llc Robust camera pan vector estimation using iterative center of mass
US20050135483A1 (en) * 2003-12-23 2005-06-23 Genesis Microchip Inc. Temporal motion vector filtering
US20080043850A1 (en) * 2003-12-23 2008-02-21 Genesis Microchip Inc. Motion vector computation for video sequences
US20050135485A1 (en) * 2003-12-23 2005-06-23 Genesis Microchip Inc. Vector selection decision for pixel interpolation
US8019124B2 (en) 2003-12-23 2011-09-13 Tamiras Per Pte. Ltd., Llc Robust camera pan vector estimation using iterative center of mass
US7346109B2 (en) * 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7480334B2 (en) 2003-12-23 2009-01-20 Genesis Microchip Inc. Temporal motion vector filtering
US8494054B2 (en) 2003-12-23 2013-07-23 Genesis Microchip, Inc. Motion vector computation for video sequences
US8218627B2 (en) 2004-02-03 2012-07-10 Sony Corporation Scalable MPEG video/macro block rate control
US20100150228A1 (en) * 2004-02-03 2010-06-17 Sony Corporation Scalable mpeg video/macro block rate control
US20100150227A1 (en) * 2004-02-03 2010-06-17 Sony Corporation Scalable mpeg video/macro block rate control
US20050169369A1 (en) * 2004-02-03 2005-08-04 Sony Corporation Scalable MPEG video/macro block rate control
US20050169370A1 (en) * 2004-02-03 2005-08-04 Sony Electronics Inc. Scalable MPEG video/macro block rate control
US8027384B2 (en) 2004-02-03 2011-09-27 Sony Corporation Scalable MPEG video/macro block rate control
US7697608B2 (en) 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
US20050207496A1 (en) * 2004-03-17 2005-09-22 Daisaku Komiya Moving picture coding apparatus
US20050226323A1 (en) * 2004-03-31 2005-10-13 Mitsubishi Denki Kabushiki Kaisha Direction-adaptive scalable motion parameter coding for scalable video coding
US20060012610A1 (en) * 2004-07-15 2006-01-19 Karlov Donald D Using pixel homogeneity to improve the clarity of images
US7379076B2 (en) 2004-07-15 2008-05-27 Microsoft Corporation Using pixel homogeneity to improve the clarity of images
US20060133507A1 (en) * 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
WO2006108654A2 (en) * 2005-04-13 2006-10-19 Universität Hannover Method and apparatus for enhanced video coding
WO2006108654A3 (en) * 2005-04-13 2007-05-10 Univ Hannover Method and apparatus for enhanced video coding
US20060280252A1 (en) * 2005-06-14 2006-12-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding video signal with improved compression efficiency using model switching in motion estimation of sub-pixel
US8761258B2 (en) * 2005-06-17 2014-06-24 The Hong Kong University Of Science And Technology Enhanced block-based motion estimation algorithms for video compression
US20070154103A1 (en) * 2005-06-17 2007-07-05 Au Oscar C L Enhanced block-based motion estimation algorithms for video compression
US20070195879A1 (en) * 2005-10-05 2007-08-23 Byeong-Moon Jeon Method and apparatus for encoding a motion vection
US20070147493A1 (en) * 2005-10-05 2007-06-28 Byeong-Moon Jeon Methods and apparatuses for constructing a residual data stream and methods and apparatuses for reconstructing image blocks
US20070253486A1 (en) * 2005-10-05 2007-11-01 Byeong-Moon Jeon Method and apparatus for reconstructing an image block
US20110110434A1 (en) * 2005-10-05 2011-05-12 Seung Wook Park Method for decoding and encoding a video signal
US20070086518A1 (en) * 2005-10-05 2007-04-19 Byeong-Moon Jeon Method and apparatus for generating a motion vector
US8498337B2 (en) 2005-10-05 2013-07-30 Lg Electronics Inc. Method for decoding and encoding a video signal
US20070237239A1 (en) * 2006-03-24 2007-10-11 Byeong-Moon Jeon Methods and apparatuses for encoding and decoding a video data stream
US20070237226A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Switching distortion metrics during motion estimation
US8494052B2 (en) 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US20070237232A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
US8155195B2 (en) 2006-04-07 2012-04-10 Microsoft Corporation Switching distortion metrics during motion estimation
US20070268964A1 (en) * 2006-05-22 2007-11-22 Microsoft Corporation Unit co-location-based motion estimation
US10225568B2 (en) 2006-07-19 2019-03-05 Samsung Electronics Co., Ltd. Apparatus and method of restoring image
US20080019450A1 (en) * 2006-07-19 2008-01-24 Samsung Electronics Co., Ltd. Apparatus and method of restoring image
US9191678B2 (en) * 2006-07-19 2015-11-17 Samsung Electronics Co., Ltd. Apparatus and method of restoring image
US9094686B2 (en) * 2006-09-06 2015-07-28 Broadcom Corporation Systems and methods for faster throughput for compressed video data decoding
US20140307793A1 (en) * 2006-09-06 2014-10-16 Alexander MacInnis Systems and Methods for Faster Throughput for Compressed Video Data Decoding
US9313518B2 (en) 2007-01-03 2016-04-12 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US20080159401A1 (en) * 2007-01-03 2008-07-03 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US20130136186A1 (en) * 2007-01-03 2013-05-30 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US9369731B2 (en) 2007-01-03 2016-06-14 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US8831105B2 (en) * 2007-01-03 2014-09-09 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US8625674B2 (en) 2007-01-03 2014-01-07 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US8385420B2 (en) * 2007-01-03 2013-02-26 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US9113112B2 (en) 2007-01-03 2015-08-18 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US20130142265A1 (en) * 2007-01-03 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US9113110B2 (en) * 2007-01-03 2015-08-18 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US9113111B2 (en) 2007-01-03 2015-08-18 Samsung Electronics Co., Ltd. Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US20090168883A1 (en) * 2007-12-30 2009-07-02 Ning Lu Configurable performance motion estimation for video encoding
US9332264B2 (en) * 2007-12-30 2016-05-03 Intel Corporation Configurable performance motion estimation for video encoding
US20100296582A1 (en) * 2008-05-20 2010-11-25 Kenji Shimizu Image coding device and image coding method
US20090323807A1 (en) * 2008-06-30 2009-12-31 Nicholas Mastronarde Enabling selective use of fractional and bidirectional video motion estimation
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US20100111182A1 (en) * 2008-10-03 2010-05-06 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20120069906A1 (en) * 2009-06-09 2012-03-22 Kazushi Sato Image processing apparatus and method (as amended)
CN102804779A (en) * 2009-06-09 2012-11-28 索尼公司 Image processing device and method
US20110069763A1 (en) * 2009-09-21 2011-03-24 Electronics And Telecommunications Research Institute Scalable video encoding/decoding method and apparatus for increasing image quality of base layer
KR101255880B1 (en) 2009-09-21 2013-04-17 한국전자통신연구원 Scalable video encoding/decoding method and apparatus for increasing image quality of base layer
US20120201293A1 (en) * 2009-10-14 2012-08-09 Guo Liwei Methods and apparatus for adaptive coding of motion information
US20120183041A1 (en) * 2011-01-14 2012-07-19 Sony Corporation Interpolation filter for intra prediction of hevc
US20130294518A1 (en) * 2011-01-15 2013-11-07 Sk Telecom Co., Ltd. Method and device for encoding/decoding motion vector
US9648340B2 (en) * 2011-01-15 2017-05-09 Sk Telecom Co., Ltd. Method and device for encoding/decoding motion vector
US9313519B2 (en) 2011-03-11 2016-04-12 Google Technology Holdings LLC Interpolation filter selection using prediction unit (PU) size
US20130051463A1 (en) * 2011-06-24 2013-02-28 General Instrument Corporation Selection of phase offsets for interpolation filters for motion compensation
US9264725B2 (en) * 2011-06-24 2016-02-16 Google Inc. Selection of phase offsets for interpolation filters for motion compensation
US9319711B2 (en) * 2011-07-01 2016-04-19 Google Technology Holdings LLC Joint sub-pixel interpolation filter for temporal prediction
US20130003841A1 (en) * 2011-07-01 2013-01-03 General Instrument Corporation Joint sub-pixel interpolation filter for temporal prediction
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US10313680B2 (en) 2014-01-08 2019-06-04 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US10587891B2 (en) 2014-01-08 2020-03-10 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9900603B2 (en) 2014-01-08 2018-02-20 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9628793B1 (en) * 2014-09-26 2017-04-18 Polycom, Inc. Motion estimation
US10757438B2 (en) * 2014-09-26 2020-08-25 Polycom, Inc. Motion estimation
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
WO2019242528A1 (en) * 2018-06-20 2019-12-26 腾讯科技(深圳)有限公司 Video encoding and decoding method and device, storage medium, and computer device
US11128888B2 (en) 2018-06-20 2021-09-21 Tencent Technology (Shenzhen) Company Limited Method and apparatus for video decoding
US11563974B2 (en) 2018-06-20 2023-01-24 Tencent Technology (Shenzhen) Company Limited Method and apparatus for video decoding

Also Published As

Publication number Publication date
US7263232B2 (en) 2007-08-28
US20130301732A1 (en) 2013-11-14
US8908768B2 (en) 2014-12-09
US20030152146A1 (en) 2003-08-14
US7577305B2 (en) 2009-08-18
US20140334534A1 (en) 2014-11-13
US10531117B2 (en) 2020-01-07
US9456216B2 (en) 2016-09-27
US20190075317A1 (en) 2019-03-07
US20130301704A1 (en) 2013-11-14
CN101448162B (en) 2013-01-02
US7120197B2 (en) 2006-10-10
US7266149B2 (en) 2007-09-04
US20200169749A1 (en) 2020-05-28
US8817868B2 (en) 2014-08-26
US20030156648A1 (en) 2003-08-21
US10158879B2 (en) 2018-12-18
US10123038B2 (en) 2018-11-06
US20190327487A1 (en) 2019-10-24
US20140307776A1 (en) 2014-10-16
US10931967B2 (en) 2021-02-23
US20060215919A1 (en) 2006-09-28
US20160373780A1 (en) 2016-12-22
US20200120355A1 (en) 2020-04-16
US9432686B2 (en) 2016-08-30
US20190089978A1 (en) 2019-03-21
US10390037B2 (en) 2019-08-20
US20080049834A1 (en) 2008-02-28
US20160366443A1 (en) 2016-12-15
US20160227215A1 (en) 2016-08-04
US10687075B2 (en) 2020-06-16
US10075731B2 (en) 2018-09-11
US20150063459A1 (en) 2015-03-05
CN101448162A (en) 2009-06-03
US9258570B2 (en) 2016-02-09
US20060126955A1 (en) 2006-06-15
US8743949B2 (en) 2014-06-03
US7116830B2 (en) 2006-10-03
US10567791B2 (en) 2020-02-18
US20030138150A1 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
US10531117B2 (en) Sub-block transform coding of prediction residuals
US7426308B2 (en) Intraframe and interframe interlace coding and decoding
US7602851B2 (en) Intelligent differential quantization of video coding
US7620109B2 (en) Sub-pixel interpolation in motion estimation and compensation
US20060233258A1 (en) Scalable motion estimation
US7110459B2 (en) Approximate bicubic filter
US7305034B2 (en) Rounding control for multi-stage interpolation
US7499495B2 (en) Extended range motion vectors
US20070268964A1 (en) Unit co-location-based motion estimation
KR20050025567A (en) Predicting motion vectors for fields of forward-predicted interlaced video frames

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HSU, POHSIANG;LIN, CHIH-LUNG;LEE, MING-CHIEH;REEL/FRAME:013976/0638

Effective date: 20030407

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001

Effective date: 20141014