EP2213006A1 - Method and apparatus for performing motion estimation - Google Patents
Method and apparatus for performing motion estimationInfo
- Publication number
- EP2213006A1 EP2213006A1 EP08848745A EP08848745A EP2213006A1 EP 2213006 A1 EP2213006 A1 EP 2213006A1 EP 08848745 A EP08848745 A EP 08848745A EP 08848745 A EP08848745 A EP 08848745A EP 2213006 A1 EP2213006 A1 EP 2213006A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- current block
- block
- motion vector
- vector
- search area
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/19—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/533—Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/567—Motion estimation based on rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/57—Motion estimation characterised by a search window with variable size or shape
Definitions
- Embodiments of the present invention generally relate to an encoding system. More specifically, the present invention relates to a motion estimation method that is employed in a motion compensated encoder.
- MPEG Moving Picture Experts Group
- H.264 / MPEG-4 AVC is a new video coding standard that achieves data compression by utilizing various coding tools, such as spatial and temporal prediction, transform and quantization, entropy coding, and etc. Unlike other existing video coding standards, H.264 supports frame coding, field coding and picture adaptive frame and field coding. Although H.264 is a powerful video compression standard, use of a H.264-like video encoder can be very challenging in certain applications, e.g., in real-time applications.
- the present invention discloses a system and method for performing motion estimation associated with an encoder, e.g., a H.264/MPEG-4 AVC compliant encoder. For example, the method selects a motion vector centering for a current block in a search area of at least one reference picture. The method calculates a matching cost for each of a plurality of candidate motion vectors derived from the search area, and outputs at least one of the plurality of candidate motion vectors based on the matching cost associated with each of the plurality of candidate motion vectors to a main coding loop.
- FIG. 1 illustrates an overview of an illustrative motion compensated encoder of the present invention
- FIG. 2 illustrates an illustrative search area
- FIG. 3 illustrates another illustrative search area
- FIG. 4 illustrates one illustrative embodiment of the location of neighboring blocks relative to a current block
- FIG. 5 illustrates another illustrative embodiment of the location of neighboring blocks relative to a current block pair
- FIG. 6 illustrates one illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation
- FIG. 7 illustrates another illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation
- FIG. 8 illustrates another illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation
- FIG. 9 illustrates another illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation
- FIG. 10 illustrates a method for performing motion estimation in one embodiment of the present invention.
- FIG. 1 1 illustrates the present invention implemented using a general purpose computer.
- identical reference numerals have been used, wherever possible, to designate identical elements that are common to the figures.
- the present motion compensated encoder can be an H.264 / MPEG-4 AVC compliant encoder or an encoder that is compliant to any other compression standards that are capable of exploiting the present motion estimation scheme.
- FIG. 1 depicts a block diagram of an exemplary motion compensated encoder 100 of the present invention.
- the apparatus 100 is an encoder or a portion of a more complex motion compensation coding system.
- the apparatus 100 may comprise a temporal or spatial prediction module 140 (e.g., comprising a variable block motion estimation module and a motion compensation module), a rate control module 130, a transform module 160, e.g., a discrete cosine transform (DCT) based module, a quantization (Q) module 170, a context adaptive variable length coding (CAVLC) module or context-adaptive binary arithmetic coding module (CABAC)180, a buffer (BUF) 190, an inverse quantization (Q "1 ) module 175, an inverse DCT (DCT "1 ) transform module 165, a subtractor 1 15, a summer 155, a deblocking module 151 , and a reference buffer 150.
- a temporal or spatial prediction module 140 e.g., compris
- the apparatus 100 comprises a plurality of modules, those skilled in the art will realize that the functions performed by the various modules are not required to be isolated into separate modules as shown in FIG. 1 .
- the set of modules comprising the temporal or spatial prediction module 140, inverse quantization module 175 and inverse DCT module 165 is generally known as an "embedded decoder".
- FIG. 1 illustrates an input video image (image sequence) on path 1 10 which is digitized and represented as a luminance and two color difference signals (Y, C r , Cb) in accordance with the MPEG standards.
- These signals can be further divided into a plurality of layers (sequence, group of pictures, picture, slice and blocks) such that each picture (frame) is represented by a plurality of blocks having different sizes.
- the division of a picture into block units improves the ability to discern changes between two successive pictures and improves image compression through the elimination of low amplitude transformed coefficients.
- the digitized signal may optionally undergo preprocessing such as format conversion for selecting an appropriate window, resolution and input format.
- the input video image on path 1 10 is received into temporal or spatial prediction module 140 for performing spatial prediction and for estimating motion vectors for temporal prediction.
- the temporal or spatial prediction module 140 comprises a variable block motion estimation module and a motion compensation module.
- the motion vectors from the variable block motion estimation module are received by the motion compensation module for improving the efficiency of the prediction of sample values.
- Motion compensation involves a prediction that uses motion vectors to provide offsets into the past and/or future reference frames containing previously decoded sample values that are used to form the prediction error. Namely, the temporal or spatial prediction module 140 uses the previously decoded frame and the motion vectors to construct an estimate of the current frame.
- the temporal or spatial prediction module 140 may also perform spatial prediction processing, e.g., directional spatial prediction (DSP).
- DSP directional spatial prediction
- Directional spatial prediction can be implemented for intra coding, for extrapolating the edges of the previously-decoded parts of the current picture and applying it in regions of pictures that are intra coded. This improves the quality of the prediction signal and aiso allows prediction from neighboring areas that were not coded using intra coding.
- a coding mode Prior to performing motion compensation prediction for a given block, a coding mode must be selected.
- MPEG provides a plurality of different coding modes. Generally, these coding modes are grouped into two broad classifications, inter mode coding and intra mode coding. Intra mode coding involves the coding of a block or picture that uses information only from that block or picture. Conversely, inter mode coding involves the coding of a block or picture that uses information both from itself and from blocks and pictures occurring at different times.
- temporal or spatial prediction module 140 generates a motion compensated prediction (predicted image) on path
- This motion compensated prediction on path 152 is subtracted via subtractor 1 15 from the video image on path 1 10 in the current block to form an error signal or predictive residual signal on path 153.
- the formation of the predictive residual signal effectively removes redundant information in the input video image. Namely, instead of transmitting the actual video image via a transmission channel, only the information necessary to generate the predictions of the video image and the errors of these predictions are transmitted, thereby significantly reducing the amount of data needed to be transmitted. To further reduce the bit rate, predictive residual signal on path
- the transform module 160 then applies a transform, e.g., a DCT-based transform.
- a transform e.g., a DCT-based transform.
- transform is an integer transform, that is, all operations are carried out with integer arithmetic.
- the inverse transform is fully specified. Hence, there is no mismatch between the encoder and the decoder.
- transform is multiplication free, requiring only the addition and shift operations.
- a scaling multiplication that is part of the complete transform is integrated into the quantizer, reducing the total number of multiplications.
- the transformation is applied to 4x4 blocks, where a separable integer transform is applied.
- An additional 2x2 transform is applied to the four DC coefficients of each chroma component.
- the resulting transformed coefficients are received by quantization module 170 where the transform coefficients are quantized.
- H.264/MPEG-4 AVC uses scalar quantization.
- One of 52 quantizers or quantization parameters (QP)s is selected for each macroblock.
- the resulting quantized transformed coefficients are then decoded in inverse quantization module 175 and inverse DCT module 165 to recover the reference frame(s) or picture(s) that will be stored in reference buffer 150.
- inverse quantization module 175 and inverse DCT module 165 to recover the reference frame(s) or picture(s) that will be stored in reference buffer 150.
- inverse DCT module 165 an in-loop deblocking filter 151 is also employed to minimize blockiness.
- the resulting quantized transformed coefficients from the quantization module 170 are also received by context-adaptive variable length coding module (CAVLC) module or context-adaptive binary arithmetic coding module (CABAC)180 via signal connection 171 , where the two-dimensional block of quantized coefficients is scanned using a particular scanning mode, e.g., a "zig-zag" order, to convert it into a one-dimensional string of quantized transformed coefficients.
- CAVLC context-adaptive variable length coding module
- CABAC context-adaptive binary arithmetic coding module
- CABAC can be employed.
- CABAC achieves good compression by a) selecting probability models for each syntax element according to the element's context, b) adapting probability estimates based on local statistics and c) using arithmetic coding.
- the data stream is received into a "First In-First Out” (FIFO) buffer 190.
- FIFO First In-First Out
- a consequence of using different picture types and variable length coding is that the overall bit rate into the FIFO is variable. Namely, the number of bits used to code each frame can be different.
- a FIFO buffer is used to match the encoder output to the channel for smoothing the bit rate.
- the output signal of FIFO buffer 190 is a compressed representation of the input video image 1 10, where it is sent to a storage medium or telecommunication channel on path 195.
- the rate control module 130 serves to monitor and adjust the bit rate of the data stream entering the FIFO buffer 190 for preventing overflow and underflow on the decoder side (within a receiver or target storage device, not shown) after transmission of the data stream.
- a fixed-rate channel is assumed to put bits at a constant rate into an input buffer within the decoder.
- the decoder instantaneously removes all the bits for the next picture from its input buffer. If there are too few bits in the input buffer, i.e., all the bits for the next picture have not been received, then the input buffer underflows resulting in an error.
- Rate control module 130 monitors the status of buffer 190 to control the number of bits generated by the encoder, thereby preventing the overflow and underflow conditions. Rate control algorithms play an important role in affecting image quality and compression efficiency.
- the above described encoder can be referred to as encompassing the main coding loop.
- the various modules in the main coding loop collectively will be able to encode input pixels into encoded bits.
- numerous variations of the main coding loop can be adapted to the present invention and the present invention is limited to a particular implementation of the main coding loop.
- the present invention discloses a preprocessing module 135, e.g., a full-pel motion estimation (FPME) module 135.
- FPME full-pel motion estimation
- the motion estimation process requires a substantial amount of computational cycles in an encoder due to its complexity. As such, for certain applications, e.g., real time applications, the motion estimation process may become a bottleneck.
- the present invention optimizes the motion estimation process by dividing the motion estimation process into two parts, e.g., full-pel motion estimation and refinement motion estimation.
- a full-pel motion estimation process in the preprocessing module 135 is implemented in a preprocessing module that operates independent of the main coding loop.
- the full-pel motion estimation process is performed without receiving inputs from the main coding loop pertaining to a current picture that is being encoded.
- the full-pel motion estimation process determines one or more candidate motion vectors for each current block of a picture from a priori information, e.g., from the original video sequence at half horizontal resolution without any feedback from the main coding loop.
- the actual coding information pertaining to neighboring blocks relative to a current block of a current picture that is being encoded is not received by the full-pel motion estimation process.
- the full-pel motion estimation process may use coding information of previously encoded pictures.
- the temporal or spatial prediction module 140 of the main coding loop employs a refinement motion estimation process.
- the one or more candidate motion vectors for each current block e.g., a current macroblock
- the refinement motion estimation process refines the best candidate motion vector(s) from the full-pel motion estimation process, e.g., using reconstructed video output at full resolution to minimize drift. It should be noted that any type of refinement motion estimation process can be employed.
- One aspect of the present invention is that the external full-pel motion estimation process operating outside of the main coding loop is able to quickly provide one or more candidate motion vectors for a current block to be coded.
- the refinement motion estimation process can expend computational cycles to better determine a final motion vector for the current block, i.e., the one or more candidate motion vectors are used as the starting points by the refinement motion estimation process.
- an encoder encodes a motion vector for a current block by computing DMV cost which relates to a difference between the motion vector and a predicted motion vector (PMV). Since the difference between the motion vector and the PMV is often smaller in magnitude than the motion vector itself, it is this difference that is encoded and transmitted to improve coding efficiency. This difference is referred to as a difference motion vector (DMV).
- DMV difference motion vector
- an encoder may use a block matching technique in the motion estimation process. For example, a block matching process may compare a candidate block with a current block and compute a matching cost based on a cost metric. It should be noted that the cost metric is non-normative in view of the H.264 standard, which means that an H.264 like encoder is allowed to adjust the cost metric in any manner.
- a H.264 like encoder may utilize a Lagrangian based cost metric accounting for both matching quality and estimated bit cost as follows:
- J is the cost metric
- SAD is a sum of absolute difference between a current block and a predicted block
- ⁇ is a constant, e.g., a Lagrangian multiplier
- is a norm function
- MV is a motion vector
- J FPME is the cost metric for full-pel motion estimation, e.g., as employed by motion estimation module 135,
- SAD HHR is a sum of absolute difference between a current block and a predicted block at HHR level
- ⁇ ' is a constant, e.g., a Lagrangian multiplier, where selen, a DMV cost calculation function, is a function that outputs the length of a motion vector component in bits as represented in the encoded H.264 bitstream
- MV x and MV' y are horizontal and vertical component, respectively, of a motion vector candidate
- PMV x and PMVy are horizontal and vertical component, respectively, of an estimate predicted motion vector.
- HHR stands for half horizontal resolution, e.g., for each block, only half of the horizontal pixels are used.
- SAD HHR is multiplied by a constant of 2.
- selen(MV'-PMV') represents an estimated number of bits based on the magnitude of the difference between a MV candidate and a PMV estimate.
- the cost metric J of equation 2 is employed by the motion estimation module 135. Since the parameters such as ⁇ and PMV are all estimates and not actual parameters deduced from the main coding loop, the cost metric J of equation 2 can be computed for a candidate motion vector, MV. As such, given a search area, the motion estimation module 135 can quickly apply any block matching technique and compute one or more candidate motion vectors by using equation 2 by minimizing J over all candidate motion vectors, MV.
- the FPME of the present invention may employ a plurality of different methods of MV centering.
- Search area sets working boundary for motion estimation and is defined by a size and a center position for a reference picture.
- the FPME employs the same search area configuration (e.g., same center position) for all partition types (i.e., 16x16, two 16x8, two 8x16, four 8x8 inside one MB) so that search operations, e.g., cost calculations, can be performed simultaneously for all partition type.
- the FPME may employ different search area configurations for different partition types.
- MV centering will affect the FPME performance. Namely, a poor MV centering approach will need to be compensated by using a larger search area to maintain the same search quality.
- the MV centering method for the FPME collocates the center of the search area in the reference picture with a top left position of the current macroblock (MB) in the current picture as shown in FIG. 2.
- FIG. 2 illustrates a search area 200 where the center of the search area is shown to be collocated with the top left position of the current macroblock 210.
- the MV centering method for the FPME collocates the center in the reference picture of the search area at a distance SACV (Search Area Center Vector) displaced from a top left position of the current macroblock in the current picture (MB) as shown in FIG. 3.
- SACV Search Area Center Vector
- FIG. 3 illustrates a search area 300 where the center of the search area is shown to be displaced from a top left position of the current macroblock (MB) 310.
- the SACV 305 is a vector that is computed as a median of motion vectors (e.g., the middle value in the lowest to highest amplitude ranking of 16 x 16 MVs) from neighboring blocks of the current block 310.
- FIG. 1 median of motion vectors
- the SACV is determined as a median of the 16 x 16 MVs from the neighboring blocks A, B and C.
- the neighboring block D can replace neighboring C if the neighboring block C is not available. It should be noted that to make FPME independent of the main coding loop, the MVs of the neighboring macroblocks are the MVs that are determined by the FPME and not the final MVs that are generated by the refinement motion estimation process from the main coding loop.
- the MV centering method for the FPME collocates the center of the search area in the reference picture at a distance of a common vector displaced from the center of a current macroblock pair 510 having a top MB 510a and a bottom MB 510b in the current picture.
- the SACV Search Area Center Vector
- the SACV is displaced from a center position of a current macroblock (MB) pair 510 in the current picture as shown in FIG. 5.
- the SACV is a vector that is computed from a common vector that refers to a right 8 x 16 MV from a neighboring block A 520 of the top MB 510a of the current MB pair 510 in the current picture.
- the MVs of the neighboring macroblocks are the MVs that are determined by the FPME and not the final MVs that are generated by the refinement motion estimation process from the main coding loop.
- the difference motion vector (DMV) cost calculation is performed based on a difference between a final MV for a current block and a PMV.
- the DMV is required because a H.264 like encoder encodes the MV for a current block by encoding the difference of the MV with respect to the PMV in bits.
- the motion estimation process must then wait for the encoder to finish mode decision of all the neighboring blocks. This approach creates a substantial amount of delay and may not be practical for some applications, e.g., real-time applications.
- the present invention employs the FPME in module 135 that is external to the main coding loop.
- the FPME does not have any information about the true MVs of the neighboring blocks.
- the FPME employs an approximated PMV.
- the DMV cost calculation performed by the FPME is only an estimate of the number of bits associated with encoding a MV for a current block. Therefore, improving the accuracy of the estimates of the DMV cost calculation will also translate into an improvement of the processing speed and encoding efficiency of the encoder.
- the PMV can be approximated or set in a number of different ways. Broadly, the PMV is set for DMV cost calculation in three different methods, as follows:
- Left neighbor (PMVL) - PMVs used in DMV cost calculation come from the left neighbor (e.g., macroblock A in FIG. 4) of the current macroblock.
- Top neighbor (PMVT) - PMVs used in DMV cost calculation come from the top neighbor (e.g., macroblock B in FIG. 4) of the current macroblock.
- PMV3 Three neighbors used in DMV cost calculation is the median of the MVs from the left neighbor (e.g., macroblock A in FIG. 4), the top neighbor (e.g., macroblock B in FIG. 4) and the top right neighbor (e.g., macroblock c in FIG. 4) or the top left neighbor (e.g., macroblock D in FIG. 4) of the current macroblock.
- macroblock D can be used if macroblock C is not available.
- the PMVs used in the DMV cost calculation are derived from 8 x 8 MVs of the neighboring blocks.
- the present invention allows the current block to be of any partition. Various types of partitions are illustrated in FIGs. 6-9.
- FIG. 6 illustrates one illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation for a 16 x 16 partition of a current block 610.
- the PMV will be derived from the MV of subblock A1 622 of neighboring block A 620.
- the PMV will be derived from the MV of subblock B1 632 of neighboring block B 630.
- the PMV will be derived from the median of three MVs: the MV of subblock A1 622 of neighboring block A 620, the MV of subblock B1 632 of neighboring block B 630, and the MV of subblock C 642 of neighboring block C 640 (or the MV of subblock D 652 of neighboring block D 650 if neighboring block C 640 is not available).
- FIG. 7 illustrates one illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation for a 16 x 8 partition of a current block 710 having a top block 712 and a bottom block 714.
- the PMV will be derived from the MV of subblock A1 722 of neighboring block A 720.
- the PMV will be derived from the MV of subblock A2 724 of neighboring block A 720.
- the PMV will be derived from the MV of subblock B1 732 of neighboring block B 730.
- the PMV will be derived from the MV of subblock B1 732 of neighboring block B 730.
- the PMV will be derived from the median of three MVs: the MV of subblock A1 722 of neighboring block A 720, the MV of subblock B1 732 of neighboring block B 730, and the MV of subblock C 742 of neighboring block C 740 (or the MV of subblock D 752 of neighboring block D 750 if neighboring block C 740 is not available).
- the PMV will be derived from the median of three MVs: the MV of subblock A1 722 of neighboring block A 720, the MV of subblock A2 724 of neighboring block A 720, and the MV of subblock B1 732 of neighboring block B 730.
- FIG. 8 illustrates one illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation for a 8 x 16 partition of a current block 810 having a left block 812 and a right block 814.
- the PMV will be derived from the MV of subblock A1 822 of neighboring block A 820.
- the PMVL approach for the right block 814 the PMV will be derived from the MV of subblock A1 822 of neighboring block A 820.
- the PMV Under the PMVT approach for the left block 812, the PMV will be derived from the MV of subblock B1 832 of neighboring block B 830. Under the PMVT approach for the right block 814, the PMV will be derived from the MV of subblock B2 834 of neighboring block B 830.
- the PMV will be derived from the median of three MVs: the MV of subblock A1 822 of neighboring block A 820, the MV of subblock B1 832 of neighboring block B 830, and the MV of subblock C 842 of neighboring block C 840 (or the MV of subblock D 852 of neighboring block D 850 if neighboring block C 840 is not available).
- the PMV will be derived from the median of three MVs: the MV of subblock B1 832 of neighboring block B 830, the MV of subblock B2 834 of neighboring block B 830, and the MV of subblock C 842 of neighboring block C 840.
- FIG. 9 illustrates one illustrative embodiment of the location of predicted motion vectors used in a difference motion vector calculation for a 8 x 8 partition of a current block 910 having a top left block 912, a top right block 914, a bottom left block 916 and a bottom right block 918.
- the PMV will be derived from the MV of subblock A1 922 of neighboring block A 920.
- the PMV will be derived from the MV of subblock A1 922 of neighboring block A 920.
- the PMV will be derived from the MV of subblock A2 924 of neighboring block A 920.
- the PMV will be derived from the MV of subblock A2 924 of neighboring block A 920.
- the PMV Under the PMVT approach for the top left block 912, the PMV will be derived from the MV of subblock B1 932 of neighboring block B 930. Under the PMVT approach for the top right block 914, the PMV will be derived from the MV of subblock B2 934 of neighboring block B 930. Under the PMVT approach for the bottom left block 916, the PMV will be derived from the MV of subblock B1 932 of neighboring block B 930. Under the PMVT approach for the bottom right block 914, the PMV will be derived from the MV of subblock B2 934 of neighboring block B 930.
- the PMV will be derived from the median of three MVs: the MV of subblock A1 922 of neighboring block A 920, the MV of subblock B1 932 of neighboring block B 930, and the MV of subblock C 942 of neighboring block C 940 (or the MV of subblock D 952 of neighboring block D 950 if neighboring block C 940 is not available).
- the PMV will be derived from the median of three MVs: the MV of subblock B1 932 of neighboring block B 930, the MV of subblock B2 934 of neighboring block B 930, and the MV of subblock C 942 of neighboring block C 940.
- the PMV will be derived from the median of three MVs: the MV of subblock A1 922 of neighboring block A 920, the MV of subblock A2 924 of neighboring block A 920, and the MV of subblock B1 932 of neighboring block B 930.
- the PMV will be derived from the median of three MVs: the MV of subblock A1 922 of neighboring block A 920, the MV of subblock A2 924 of neighboring block A 920, and the MV of subblock C 942 of neighboring block C 940.
- the method may set the MV of that non-existing neighbor to be zero. It should be noted that all information required in the PMV approximation is derived from local information in the FPME process without receiving any information from the main coding loop.
- lambda ⁇ is a Lagrangian multiplier in the cost metric
- lambda ⁇ can be defined as follows:
- the quantization parameter (QP) information is not available to the FPME process since QP is determined in a rate control process which is part of the main coding loop.
- the present invention uses an approximate QP' value in its cost metric.
- the present invention relies on the past QP information to approximate the current QP. For example, an average value of QPs from all MBs in the most recently coded picture of the same type can be made more accurate by either increasing the update frequency (e.g., every MB, every slice, etc.) or increasing the amount of information used in the QP approximation.
- the QP approximation may use weight average values of QPs from N pictures which are M pictures away in coding order. FPME process assigns a larger weight to an average value of QP from the picture that is closer in temporal distance to the coding picture.
- FIG. 10 illustrates a method 1000 for performing motion estimation in one embodiment of the present invention.
- method 1000 can be performed by the motion estimation module 135.
- Method 1000 starts in step 1005 and proceeds to step 1010.
- step 1010 method 1000 selects a search area and a motion vector centering for a current block. For example, one of the three motion vector centering methods as discussed above can be employed.
- step 1020 method 1000 performs block matching for a current block in the search area and calculates a matching cost (e.g., a cost metric) for each candidate motion vector.
- a matching cost e.g., a cost metric
- method 1000 outputs at least one candidate vector based on the computed matching cost for each candidate motion vector.
- a candidate motion vector associated with a matched block in the search area having a lowest matching cost can be output by method 1000.
- the FPME can forward the candidate motion vector to the main coding loop's temporal or spatial prediction module 140.
- the present invention is not limited to providing only a single candidate motion vector for each current block.
- one or more candidate motion vectors can be provided, e.g., the two candidate motion vectors with the lowest matching cost and so on.
- step 1040 method 1000 queries whether there is a next current block to be encoded. If the query is positively answered, method 1000 returns to step 1010 and repeats the process again for the next current block. If the query is negatively answered, method 1000 ends in step 1045.
- one or more steps of method 1000 may include a storing, displaying and/or outputting step as required for a particular application.
- any data, records, fields, and/or intermediate results discussed in the method can be stored, displayed and/or outputted to another device as required for a particular application.
- steps or blocks in FIG. 10 that recite a determining operation or involve a decision do not necessarily require that both branches of the determining operation be practiced. In other words, one of the branches of the determining operation can be deemed as an optional step.
- FIG. 1 1 is a block diagram of the present encoding system being implemented with a general purpose computer.
- the encoding system 1 100 is implemented using a general purpose computer or any other hardware equivalents. More specifically, the encoding system 1 100 comprises a processor (CPU) 1 1 10, a memory 1 120, e.g., random access memory (RAM) and/or read only memory (ROM), an encoder 1 122 employing the present method of an external FPME, and various input/output devices 1 130 (e.g., storage devices, including but not limited to, a tape drive, a floppy drive, a hard disk drive or a compact disk drive, a receiver, a transmitter, a speaker, a display, an output port, a user input device (such as a keyboard, a keypad, a mouse, and the like), or a microphone for capturing speech commands).
- CPU central processing unit
- memory 1 120 e.g., random access memory (RAM) and/or read only memory (ROM)
- the encoder 1 122 can be implemented as physical devices or subsystems that are coupled to the CPU 1 1 10 through a communication channel.
- the encoder 1 122 can be represented by one or more software applications (or even a combination of software and hardware, e.g., using application specific integrated circuits (ASIC)), where the software is loaded from a storage medium (e.g., a magnetic or optical drive or diskette) and operated by the CPU in the memory 1 120 of the computer.
- ASIC application specific integrated circuits
- the encoder 1 122 (including associated data structures and methods employed within the encoder) of the present invention can be stored on a computer readable medium or carrier, e.g., RAM memory, magnetic or optical drive or diskette and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/940,761 US8908765B2 (en) | 2007-11-15 | 2007-11-15 | Method and apparatus for performing motion estimation |
PCT/US2008/081512 WO2009064615A1 (en) | 2007-11-15 | 2008-10-29 | Method and apparatus for performing motion estimation |
Publications (3)
Publication Number | Publication Date |
---|---|
EP2213006A1 true EP2213006A1 (en) | 2010-08-04 |
EP2213006A4 EP2213006A4 (en) | 2011-03-02 |
EP2213006B1 EP2213006B1 (en) | 2016-05-04 |
Family
ID=40639076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP08848745.9A Not-in-force EP2213006B1 (en) | 2007-11-15 | 2008-10-29 | Method and apparatus for performing motion estimation |
Country Status (5)
Country | Link |
---|---|
US (1) | US8908765B2 (en) |
EP (1) | EP2213006B1 (en) |
KR (1) | KR101228651B1 (en) |
CN (1) | CN101889405B (en) |
WO (1) | WO2009064615A1 (en) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5324594B2 (en) * | 2007-11-28 | 2013-10-23 | フランス・テレコム | Motion encoding and decoding |
JP5422168B2 (en) * | 2008-09-29 | 2014-02-19 | 株式会社日立製作所 | Video encoding method and video decoding method |
US9100656B2 (en) * | 2009-05-21 | 2015-08-04 | Ecole De Technologie Superieure | Method and system for efficient video transcoding using coding modes, motion vectors and residual information |
TR200906020A2 (en) | 2009-08-04 | 2011-02-21 | Vestel Elektroni̇k Sanayi̇ Ve Ti̇caret Anoni̇m Şi̇rketi̇@ | Method and apparatus for effectively setting motion areas to square interpolation frames with memory access |
KR101452859B1 (en) * | 2009-08-13 | 2014-10-23 | 삼성전자주식회사 | Method and apparatus for encoding and decoding motion vector |
JP5441803B2 (en) * | 2010-04-12 | 2014-03-12 | キヤノン株式会社 | Motion vector determination device, motion vector determination method, and computer program |
US9118939B2 (en) | 2010-12-20 | 2015-08-25 | Arris Technology, Inc. | SVC-to-AVC rewriter with open-loop statistical multiplexer |
AU2015217509B2 (en) * | 2011-01-07 | 2017-01-19 | Ntt Docomo, Inc. | Predictive encoding method, predictive encoding device, and predictive encoding program of motion vector, and, predictive decoding method, predictive decoding device, and predictive decoding program of motion vector |
FI4120686T3 (en) * | 2011-01-07 | 2023-09-12 | Ntt Docomo Inc | Predictive encoding method, predictive encoding device, and predictive encoding program of motion vector, and, predictive decoding method, predictive decoding device, and predictive decoding program of motion vector |
JP5698541B2 (en) * | 2011-01-12 | 2015-04-08 | 株式会社Nttドコモ | Image predictive encoding device, image predictive encoding method, image predictive encoding program, image predictive decoding device, image predictive decoding method, and image predictive decoding program |
KR20120088488A (en) | 2011-01-31 | 2012-08-08 | 한국전자통신연구원 | method for storing temporal motion vector and apparatus using the same |
US10171813B2 (en) | 2011-02-24 | 2019-01-01 | Qualcomm Incorporated | Hierarchy of motion prediction video blocks |
PL2690870T3 (en) | 2011-03-21 | 2020-07-27 | Lg Electronics Inc. | Method for selecting motion vector predictor and device using same |
US9313494B2 (en) | 2011-06-20 | 2016-04-12 | Qualcomm Incorporated | Parallelization friendly merge candidates for video coding |
US11582479B2 (en) * | 2011-07-05 | 2023-02-14 | Texas Instruments Incorporated | Method and apparatus for reference area transfer with pre-analysis |
GB2493755B (en) * | 2011-08-17 | 2016-10-19 | Canon Kk | Method and device for encoding a sequence of images and method and device for decoding a sequence of images |
ES2487993B1 (en) | 2011-09-09 | 2015-09-29 | Kt Corporation | Procedure for obtaining a temporary motion predictor vector, and apparatus using the procedure |
US9300975B2 (en) * | 2011-09-11 | 2016-03-29 | Texas Instruments Incorporated | Concurrent access shared buffer in a video encoder |
KR20130050406A (en) * | 2011-11-07 | 2013-05-16 | 오수미 | Method for generating prediction block in inter prediction mode |
TWI523497B (en) * | 2011-11-10 | 2016-02-21 | Sony Corp | Image processing apparatus and method |
CN103108178B (en) * | 2011-11-11 | 2016-03-30 | 华为技术有限公司 | The method of video image encoding and decoding and device |
US9392235B2 (en) | 2011-11-18 | 2016-07-12 | Google Technology Holdings LLC | Explicit way for signaling a collocated reference picture for video coding |
CN103959774B (en) * | 2011-11-18 | 2017-11-24 | 谷歌技术控股有限责任公司 | Effective storage for the movable information of efficient video coding |
EP2781098B1 (en) | 2011-11-18 | 2019-02-06 | Google Technology Holdings LLC | An explicit way for signaling a collocated picture for high efficiency video coding (hevc) |
WO2013078248A1 (en) | 2011-11-21 | 2013-05-30 | General Instrument Corporation | Implicit determination and combined implicit and explicit determination of collocated picture for temporal prediction |
EP2772058A1 (en) | 2011-12-26 | 2014-09-03 | General Instrument Corporation | Implicit determination of collocated picture for temporal prediction |
WO2013154674A1 (en) | 2012-04-11 | 2013-10-17 | Motorola Mobility Llc | Evaluation of signaling of collocated reference picture for temporal prediction |
CN104937939B (en) | 2012-04-11 | 2018-10-23 | 谷歌技术控股有限责任公司 | Encoder and decoder and its method for motion vector prediction symbol mark |
US9319681B2 (en) | 2012-07-18 | 2016-04-19 | Google Technology Holdings LLC | Signaling of temporal motion vector predictor (MVP) enable flag |
JP5726220B2 (en) * | 2013-02-01 | 2015-05-27 | 株式会社半導体理工学研究センター | Motion estimation apparatus and motion estimation program |
KR101454664B1 (en) | 2013-04-30 | 2014-10-28 | 삼성전자주식회사 | Method for decoding motion vector |
US10003792B2 (en) | 2013-05-27 | 2018-06-19 | Microsoft Technology Licensing, Llc | Video encoder for images |
US20150036747A1 (en) * | 2013-07-30 | 2015-02-05 | Electronics And Telecommunications Research Institute | Encoding and decoding apparatus for concealing error in video frame and method using same |
CN104811584B (en) * | 2014-01-29 | 2018-03-27 | 晨星半导体股份有限公司 | Image processing circuit and method |
CN105359531B (en) * | 2014-03-17 | 2019-08-06 | 微软技术许可有限责任公司 | Method and system for determining for the coder side of screen content coding |
WO2016123792A1 (en) | 2015-02-06 | 2016-08-11 | Microsoft Technology Licensing, Llc | Skipping evaluation stages during media encoding |
US10136132B2 (en) | 2015-07-21 | 2018-11-20 | Microsoft Technology Licensing, Llc | Adaptive skip or zero block detection combined with transform size decision |
US20180367812A1 (en) * | 2016-01-14 | 2018-12-20 | Mitsubishi Electric Corporation | Encoding performance evaluation support apparatus, encoding performance evaluation support method, and computer readable medium |
AU2018334351B2 (en) | 2017-09-15 | 2022-09-15 | Sony Corporation | Image processing device and method |
CN108592931B (en) * | 2018-04-27 | 2022-03-18 | 福州大学 | Method for providing navigation path according to human comfort level |
US11503367B2 (en) * | 2019-03-20 | 2022-11-15 | Tencent America LLC | Techniques and apparatus for weighted-median prediction for point-cloud attribute coding |
CN117561711A (en) * | 2021-06-18 | 2024-02-13 | 抖音视界有限公司 | Method, apparatus and medium for video processing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037859A2 (en) * | 2000-11-03 | 2002-05-10 | Compression Science | Video data compression system |
EP1513350A1 (en) * | 2003-09-03 | 2005-03-09 | Thomson Licensing S.A. | Process and arrangement for encoding video pictures |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0897247A3 (en) * | 1997-08-14 | 2001-02-07 | Philips Patentverwaltung GmbH | Method for computing motion vectors |
US6711211B1 (en) | 2000-05-08 | 2004-03-23 | Nokia Mobile Phones Ltd. | Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder |
EP1639801B1 (en) * | 2003-06-26 | 2018-05-09 | Thomson Licensing DTV | Multipass video rate control to match sliding window channel constraints |
JP5052891B2 (en) * | 2003-08-26 | 2012-10-17 | トムソン ライセンシング | Method and apparatus for encoding hybrid intra-inter coded blocks |
US7295612B2 (en) * | 2003-09-09 | 2007-11-13 | Apple Inc. | Determining the number of unidirectional and bidirectional motion compensated frames to be encoded for a video sequence and detecting scene cuts in the video sequence |
JP4470431B2 (en) * | 2003-10-01 | 2010-06-02 | ソニー株式会社 | Data processing apparatus and method |
KR100597397B1 (en) | 2003-11-06 | 2006-07-07 | 삼성전자주식회사 | Video coding method and apparatus with fast motion estimation algorithm |
US7953152B1 (en) * | 2004-06-28 | 2011-05-31 | Google Inc. | Video compression and encoding method |
JP4064973B2 (en) * | 2005-03-23 | 2008-03-19 | 株式会社東芝 | Video encoder and portable wireless terminal device using the same |
US7804900B2 (en) * | 2006-02-23 | 2010-09-28 | Industrial Technology Research Institute | Method for fast SATD estimation |
US8326075B2 (en) * | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video encoding using adaptive loop filter |
US8325796B2 (en) * | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
-
2007
- 2007-11-15 US US11/940,761 patent/US8908765B2/en active Active
-
2008
- 2008-10-29 CN CN200880116385.0A patent/CN101889405B/en not_active Expired - Fee Related
- 2008-10-29 EP EP08848745.9A patent/EP2213006B1/en not_active Not-in-force
- 2008-10-29 WO PCT/US2008/081512 patent/WO2009064615A1/en active Application Filing
- 2008-10-29 KR KR1020107010669A patent/KR101228651B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037859A2 (en) * | 2000-11-03 | 2002-05-10 | Compression Science | Video data compression system |
EP1513350A1 (en) * | 2003-09-03 | 2005-03-09 | Thomson Licensing S.A. | Process and arrangement for encoding video pictures |
Non-Patent Citations (4)
Title |
---|
ATES H F ET AL: "SAD Reuse In Hierarchical Motion Estimation For the H.264 Encoder", 2005 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING (IEEE CAT. NO.05CH37625) IEEE PISCATAWAY, NJ, USA, IEEE, PISCATAWAY, NJ, vol. 2, 18 March 2005 (2005-03-18), pages 905-908, XP010790787, DOI: 10.1109/ICASSP.2005.1415552 ISBN: 978-0-7803-8874-1 * |
KAI LAM TANG, KING N. NGAN: "Enhanced SAD Reuse Fast Motion Estimation", SPIE, PO BOX 10 BELLINGHAM WA 98227-0010 USA, vol. 6508, 29 January 2007 (2007-01-29), XP040236897, * |
QI H ET AL: "A study on the motion vector prediction schemes for AVS", VISUAL COMMUNICATIONS AND IMAGE PROCESSING; 12-7-2005 - 15-7-2005; BEIJING,, 12 July 2005 (2005-07-12), XP030081057, * |
See also references of WO2009064615A1 * |
Also Published As
Publication number | Publication date |
---|---|
KR101228651B1 (en) | 2013-01-31 |
CN101889405B (en) | 2015-07-01 |
EP2213006B1 (en) | 2016-05-04 |
EP2213006A4 (en) | 2011-03-02 |
CN101889405A (en) | 2010-11-17 |
US8908765B2 (en) | 2014-12-09 |
WO2009064615A1 (en) | 2009-05-22 |
KR20100082013A (en) | 2010-07-15 |
US20090129472A1 (en) | 2009-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8908765B2 (en) | Method and apparatus for performing motion estimation | |
CA2703775C (en) | Method and apparatus for selecting a coding mode | |
US20200120355A1 (en) | Sub-block transform coding of prediction residuals | |
US9172973B2 (en) | Method and system for motion estimation in a video encoder | |
WO2011101454A2 (en) | Data compression for video | |
WO2011101452A2 (en) | Data compression for video | |
US20060222074A1 (en) | Method and system for motion estimation in a video encoder | |
KR20100079037A (en) | Method and apparatus for intra encoding by fast intra mode searching | |
KR100961760B1 (en) | Motion estimation method and apparatus referencing discrete cosine transform coefficients | |
US7822116B2 (en) | Method and system for rate estimation in a video encoder | |
US7746928B2 (en) | Method and apparatus for providing rate control | |
WO2006101650A1 (en) | Method and apparatus for providing a rate control for interlace coding | |
US20060146932A1 (en) | Method and apparatus for providing motion estimation with weight prediction | |
KR101691380B1 (en) | Dct based subpixel accuracy motion estimation utilizing shifting matrix | |
US20130170565A1 (en) | Motion Estimation Complexity Reduction | |
US20130195180A1 (en) | Encoding an image using embedded zero block coding along with a discrete cosine transformation | |
JP2011077721A (en) | Image encoding device, image decoding device, image encoding method, and image decoding method | |
Yusuf et al. | An efficient inter mode decision algorithm for H. 264/AVC encoding optimization | |
Sharma et al. | Pre-decision strategy for coded/non-coded MBs in MPEG4 | |
Wu et al. | A real-time H. 264 video streaming system on DSP/PC platform | |
Yusuf et al. | Fast and Efficient Inter Mode Decision Algorithm for H. 264/AVC Encoding Optimization | |
Sun et al. | Efficient Bit-Rate Estimation for Mode Decision of H. 264/AVC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20100615 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA MK RS |
|
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20110201 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04N 7/36 20060101ALI20110126BHEP Ipc: H04N 7/26 20060101AFI20110126BHEP |
|
17Q | First examination report despatched |
Effective date: 20131126 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: ARRIS TECHNOLOGY, INC. |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 602008044095 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: H04B0001660000 Ipc: H04N0019560000 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04N 19/567 20140101ALI20151028BHEP Ipc: H04N 19/56 20140101AFI20151028BHEP Ipc: H04N 19/51 20140101ALI20151028BHEP Ipc: H04N 19/196 20140101ALI20151028BHEP Ipc: H04N 19/176 20140101ALI20151028BHEP Ipc: H04N 19/157 20140101ALI20151028BHEP Ipc: H04N 19/53 20140101ALI20151028BHEP Ipc: H04N 19/57 20140101ALI20151028BHEP Ipc: H04N 19/533 20140101ALI20151028BHEP Ipc: H04N 19/105 20140101ALI20151028BHEP Ipc: H04N 19/19 20140101ALI20151028BHEP |
|
INTG | Intention to grant announced |
Effective date: 20151123 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: ARRIS ENTERPRISES, INC. |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 797802 Country of ref document: AT Kind code of ref document: T Effective date: 20160515 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602008044095 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20160504 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160804 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 797802 Country of ref document: AT Kind code of ref document: T Effective date: 20160504 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160905 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160805 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602008044095 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: BE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20170207 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20170630 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20161102 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20161031 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20161031 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20161029 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20161029 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20081029 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 Ref country code: MT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20161031 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20160504 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20191029 Year of fee payment: 12 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20191028 Year of fee payment: 12 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 602008044095 Country of ref document: DE |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20201029 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210501 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20201029 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230526 |