WO2011032852A1 - Weighted motion compensation of video - Google Patents
Weighted motion compensation of video Download PDFInfo
- Publication number
- WO2011032852A1 WO2011032852A1 PCT/EP2010/063024 EP2010063024W WO2011032852A1 WO 2011032852 A1 WO2011032852 A1 WO 2011032852A1 EP 2010063024 W EP2010063024 W EP 2010063024W WO 2011032852 A1 WO2011032852 A1 WO 2011032852A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- segment
- data
- motion
- weighting
- video data
- 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.)
- Ceased
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/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/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to 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/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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
Definitions
- the present invention relates to video encoding and decoding.
- Background Most modern video compression methods are based on spatio-temporal prediction of pictures, which essentially consists of encoding the difference between the prediction signal and the predicted picture. Generally, the closer in the appropriate metric the prediction signal is to the predicted picture, the better that picture can be compressed, i.e. it can be represented with fewer bits.
- the prediction is formed by taking decoded samples of previously encoded pictures, or previously encoded blocks of the current picture.
- Temporal prediction is the critical gain factor in the overall compression efficiency, since typical video signals exhibit significant temporal correlation. Besides compensating for spatial displacement between parts of different pictures by means of motion vectors, by using weighting prediction the changes in luminance levels can be also compensated for.
- RDO Rate Distortion Optimisation
- a video encoding mode will be decided for achieving the best possible coding efficiency gain.
- the RDO process is important for capturing the video coding efficiency gain if several coding modes are possible for given video data.
- H.264 / MPEG-4 AVC video coding standard has adopted weighted prediction, where arbitrary multiplicative weighting factors and additive offset factors can be applied to the reference picture predictions.
- a separate offset/weight pair can be assigned to each of the reference picture signals used to predict the current picture.
- H.264 / MPEG-4 AVC at most two pictures are used for temporal compensation for any given macroblock. In P pictures only a single prediction originating from a single picture is used, while in B pictures two prediction signals can be used.
- weight and offset are specified at the slice level and their derivation is not defined by the standard.
- the weights are computed according to the distance to the referenced pictures, where the relationship between the picture distances and the applied weights are defined by the standard.
- the standard leaves a provision for applying different explicit weighting parameters for different segments of a slice, down to the size of a macroblock, in a form of memory management control operations (MMCO). This is explained, for example, in US2006/0198440 Al . However, this comes with a considerable penalty in overhead information for weighted prediction parameter sets large enough to be of practi cal use.
- the derivation of the picture-level weighted prediction parameters normally entails some multipass scheme, where picture data has to be processed at least twice.
- One possibility is just to estimate the parameters, for which the whole picture statistics need to be captured before the actual compression, in order to compute the optimal weighting parameters using some criteria related to the expected compression performance.
- a scheme known as "Picture Level Rate-Distortion Optimisation” can be employed, in which the picture is compressed multiple times, each time with different weighted prediction parameters, including a mode where weighted prediction is disabled, and the best outcome in terms of Lagrangian cost is preserved. This has the disadvantage of very high computational complexity while providing only limited performance improvement.
- WO2007/092215 A2 Since the derivation of the explicit weighting parameters is not defined by the standard, various schemes exist. In WO2007/092215 A2 the following derivation methods are discussed: offset only by subtracting means of two pictures, weight only by dividing means of two pictures, histogram based and linear regression based methods, and also iterative variations of all previous methods, where the parameters are adjusted after motion compensation.
- the heuristic based methods in WO2007/092215 A2 compute several pairs of parameters, each by using a different derivation method, and then by using a particular metric decide which one would perform the best.
- the operation of weighted prediction in an embodiment of the present invention is defined at the local level, where for each picture segment a different set of weighting parameters is defined and sent in the part of the bit-stream that conveys parameters for the current block.
- the operation of weighted prediction can be defined with:
- Bc garbage is the n+l-st picture segment
- o is an additive offset weighting parameter
- w n is a multiplicative weight weighting parameter associated with the picture segment Bcrada.
- Reference picture Bp is the prediction signal used to predict the currently encoded picture segment.
- the picture segment Bc garbage may be associated with the «+l -st reference picture, but in a general case it can be any previously processed picture segment. Furthermore, it can be a resampled (e.g. by means of interpolation) picture segment.
- the aforementioned picture segments can be of arbitrary shape.
- the weighting parameters are adapted to local variations in content, thereby improving prediction.
- a video decoding method of decoding predictively-encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising: decoding the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate- constrained cost formulation taking into account both the representation distortion and coding cost; processing the motion data and previously decoded video data to generate motion- compensated video data for the segment; generating predicted video data for the segment by combining the motion-compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least one weighting parameter for the segment is different from a weighting parameter used for a different segment in the same picture; and combining the decoded difference data for the segment with the predicted video data for
- the encoded video data may be decoded to generate a respective weight weighting parameter for each of a plurality of segments; the motion data and previously decoded video data for a plurality of segments may be processed to generate respective motion-compensated video data for each of the plurality of segments; and the motion-compensated video data for each of the plurality of segments may be combined with a respective one of the weight weighting parameters to generate the predicted video data.
- the motion data and previously decoded video data for a plurality of segments in different respective pictures may be processed to generate the respective motion-compensated video data for each of the plurality of segments.
- the decoding process may decode the encoded video data to generate difference data for the weighting parameters; and the predicted video data for the segment may be generated by deriving weighting parameters for the segment using the decoded difference data for the weighting parameters and previously decoded weighting parameters derived for a previously decoded segment.
- the predicted video data for the segment may be generated by: predicting weighting parameters for the segment from weighting parameters of at least one neighbouring segment that has been previously decoded; combining the predicted weighting parameters with the weighting parameters obtained from the decoding process to generate resultant predicted weighting parameters; and combining the motion-compensated video data for the segment with the resultant predicted weighting parameters to generate the predicted video data for the segment.
- the weighting parameters for the segment may be predicted by calculating an average of the weighting parameters of at least two neighbouring segments that have been previously decoded.
- the process of generating predicted video data may comprise: comparing the motion data for the segment with the motion data for at least one previously decoded segment to determine a measure of the similarity therebetween; and if the determined measure indicates a high similarity, using weighting parameters for the at least one previously decoded segment to generate predicted weighting parameters for the segment and combining the motion-compensated video data with the predicted weighting parameters.
- the encoded video data may be decoded to generate the offset weighting parameter and the weight weighting parameter such that the value of the offset weighting parameter is represented with fewer bits the closer the value is to zero and the value of the weight weighting parameter is represented with fewer bits the closer the value is to one.
- the present invention also provides a video encoding method of predictively encoding video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising: processing video data for a segment to generate motion data for the segment and motion- compensated video-data; calculating weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate- constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture; combining the motion-compensated video data and the weighting parameters to generate weighted-motion-compensated-data for the segment; generating difference data defining the difference between the video data for the segment and the weighted-motion-compensated-data for the segment; and encoding data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameters for the segment.
- a respective weight weighting parameter may be calculated for each of a plurality of segments; the video data for a segment and a plurality of different segments may be processed to generate a plurality of respective motion-compensated video data segments; the weighted-motion-compensated-data may be generated by combining the plurality of motion-compensated video data segments and the plurality of weight weighting parameters such that each respective one of the plurality of motion-compensated video data segments is weighted by a respective one of the plurality of weight weighting parameters.
- the video data for the segment and a plurality of segments in different respective pictures may be processed to generate the plurality of respective motion-compensated video data segments.
- the video encoding method may further comprise calculating, for each weighting parameter for the segment, a weighting parameter difference value for the segment comprising a difference between the weighting parameter for the segment and the weighting parameter for a previous segment; and the encoding process may comprise encoding the difference data for the segment, the motion data for the segment, and the weighting parameter difference values for the segment.
- Each difference value for the segment may be generated by: predicting a predicted weighting parameter for the segment from a weighting parameter of at least one previous neighbouring segment; and calculating a difference between the weighting parameter calculated by the weighting parameter calculation process and the predicted weighting parameter.
- the offset (o) and a weight (w) may be calculated which minimise the cost function J(o,w):
- J(o,w) D(o,w) + XR(o,w)
- o is the offset
- w is the weight
- D is a distortion measure comprising a difference between the weighted-motion-compensated-data for the segment and the video data for the segment
- R is a measure of encoded data rate
- ⁇ is a Lagrangian multiplier by: a) calculating a line in offset-weight space defining pairs of offset-weight values which represent a minimum of the distortion measure D;
- Process f) above may be performed such that continuously increasing or continuously decreasing values of the first search parameter within the local search range are tested while:
- the present invention also provides a video decoder operable to decode predictively- encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the decoder comprising: a decoder operable to decode the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding cost; and a motion-compensated-data generator operable to process the motion data and previously decoded video data to generate motion-compensated video data for the segment; a predicted-data generator operable to generate predicted video data for the segment by combining the motion-compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least
- the present invention also provides a video encoder operable to predictively encode video data defining a sequence of pictures, each picture divided into a plurality of segments, the encoder comprising: a motion-compensated-data generator operable to process video data for a segment to generate motion data for the segment and motion-compensated video data; a weighting parameter calculator operable to calculate weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture; a weighted-motion-compensated-data generator operable to combine the motion- compensated video data and the weighting parameters to generate weighted-motion- compensated-data for the segment; a difference-data generator operable to generate difference data defining the difference between the video data for the segment and the weighted-motion-compensated-data for the segment; and an encode
- Figure 1 is a block diagram of a video decoder in an embodiment
- Figure 2 is a block diagram of a video encoder in an embodiment
- Figure 3 is an example for a block being matched and a candidate block in motion estimation
- Figure 4 is an example of the distortion function D(o,w) plotted for (o qi , w q i) in the range - 10, .. .,10, respectively;
- Figure 5 is an example plot of the rate part of the Lagrangian cost;
- Figure 6 is a plot of the overall Lagrangian cost (distortion and rate combined).
- Figure 7 shows two examples of local search for global minimum of the Lagrangian.
- Figure 8 is a flowchart showing the processing operations performed by the encoder in an embodiment to calculate weighting parameters.
- a picture segment on which the weighted prediction operates is the macroblock as defined in H.264 / MPEG-4 AVC.
- MBWP MicroBlock Weighted Prediction
- the approach described herein is referred to as MBWP (MacroBlock Weighted Prediction).
- MBWP is only presented here for the unidirectional prediction case (e.g. P pictures in H.264 / MPEG-4 AVC), with generalisation considerations to multi- reference pictures discussed where required.
- MBc' is a decoded macroblock, obtained by means of interpolation in the case of sub-pel precision motion vectors or directly from the previously decoded pictures
- o is an additive offset weighting parameter
- w is a multiplicative weight weighting parameter (referred to hereinafter merely as an offset and a weight, respectively, with the term "weighting parameter" covering both).
- MBp is the resulting prediction signal, used to predict the current macroblock.
- the process of weighting is adapted within the macroblock for smaller blocks (e.g. those specified by H.264 / MPEG-4 AVC standard) or for each pixel:
- MBp(«) / 0 ( 0 , «) + / w ( W ,») - MBc'( «) .. . (5)
- n is the index of the currently processed pixel
- functions 0 ( ) and / w ( ) determine the current offset and weight, respectively, and are dependent on the already processed data (already encoded in the encoder, or already decoded in the decoder). For instance, these can be the values of the previously processed predicted signal samples MBc'(0),. ..,MBc'( « - l) , previously obtained samples of the predicted signal MBp(0),...,MBp * ( « -l) , etc.
- this function can perform adaptive rounding of the result given by weighted prediction, as the application of multiplicative weight in general yields a non-integer value.
- the prediction signal is added to the decoded difference signal MBr' and the current macroblock MB' is then reconstructed as:
- FIG. 1 A diagram of a decoder incorporating MBWP is presented in Figure 1.
- the input stream of the current macroblock is entropy decoded by entropy decoder 10, resulting in the following data: quantised transformed samples of the current macroblock 12, motion vectors 14 and weighting parameters 16. All and any of these can be difference signals obtained by subtraction from the previously decoded data, and in that case prediction needs to be done, e.g. weighting parameters are predicted from the previously decoded ones, similarly as it is done for motion vectors, as shown in Figure 1.
- Motion compensation is then performed, using the decoded motion vectors and the previously decoded reference signal. Such motion compensated signal is then modified by applying weight and offset.
- the residual macroblock signal is obtained by inverse quantisation by inverse quantiser 20 and inverse spatial transform by inverse spatial transformer 30, after which the weighted prediction signal is added to obtain the decoded macroblock samples. Accordingly, it will be understood from the above that the entropy decoder 10, the inverse quantiser 20 and the inverse transformer 30 operate as a decoder which decodes the encoded video data for a segment of a picture to generate decoded difference data MBr' for the segment, motion data 14 for the segment and weighting parameters 16 for the segment.
- the motion vector predictor 40, adder 42 and the motion compensator 60 act as a motion- compensated-data generator which processes the motion data 14 together with previously decoded video data to generate motion-compensated video data MBc' for the segment.
- the weighting parameter predictor 50, adder 52, multiplier 70 and adder 80 act as a predicted-data generator which generates predicted video data MBp for the segment by combining the motion-compensated video data MBc' for the segment with weighting parameters for the segment.
- the weighting parameters for a segment may be different from the weighting parameters used for a different segment in the same picture.
- the adder 90 acts as a data combiner which combines the decoded difference data MBr' for the segment with the predicted video data MBp for the segment, thereby generating overall decoded video data MB' for the segment.
- weighting prediction is defined only for the luma component, while in the alternative embodiments weighting prediction can be applied also for the chroma components, either by using the same or a separate set of weighting parameters.
- the MBWP parameters can be conveyed as the difference in the weighting parameters for a particular macroblock from globally defined ones.
- the required signalling for MBWP is achieved with the additional information placed in the macroblock header portion of the video bit-stream instead of the slice (picture) header as in previous codecs.
- the required video bit-stream syntax elements are the following:
- MBWP_parameters_present_flag signals the presence of the MBWP parameters if equal to 1. If this flag is equal to 0, then weighted prediction is not performed, and both parameters MBWPo and MBWPw are set to default values. Default values are defined to be those that, if applied, are equivalent to not performing MBWP.
- multiple flags can be encoded jointly across macroblocks by using run-length or quadtree coding, in order to avoid redundancy when MBWP is not utilised in large areas of the picture.
- variable length codes are used for entropy coding of these difference signals, but alternatively any other entropy coding method can be used, for instance arithmetic coding.
- the values of the previously decoded syntax elements may also be used by an entropy coding method in order to improve its efficiency.
- Prediction operations predict MB WPo() and predictJMBWPw() entail a spatial prediction of weighting parameters from the neighbouring macroblocks.
- the averaging of the first neighbouring macroblock from the top (same column as current, previous row) and the first from the left (previously encoded) is employed:
- [ ⁇ ] denotes rounding to the nearest integer. It should be noted that this prediction can be modified in various ways - it can utilise more or fewer than two neighbouring macroblocks and/or use weighting in the prediction operator, or it can employ different operators, for instance median.
- the offset value for the current macroblock is used for prediction of the weight parameter for the same macroblock in addition to the previously decoded weighting parameters.
- the prediction of the weighted parameters uses other previously decoded syntax elements. In one example, the values of the motion vectors for current and previously decoded macroblocks are compared and the outcome of the comparison is used to guide the decision on the use of the previously decoded weighting parameters for the derivation of the weighting parameters for the current macroblock.
- the weighting parameters for the corresponding macroblock are excluded from being used for the prediction of the weighting parameters for the current macroblock.
- one option is to omit the prediction operation altogether and in that case the result of predict_MBWPo() and predi ctJVTB WPw() is 0.
- the row and column indices are omitted as the presented steps are understood to be working on the current macroblock.
- the parameters are quantised in order to send them efficiently in the bitstream.
- the uniform quantisation step of 128 is used, while other quantisation steps and schemes are also possible.
- the offset and weight parameters are quantised in the following way:
- the values o qi and w qi are directly represented with MBWPo and MBWPw in the syntax description above.
- the weighted prediction can be then written as: The obtained values are subsequently clipped to the defined range of the picture samples. It is worth noting that the process of weighted prediction can be easily implemented as division-free integer-safe operation, by replacing divisions by bit-shift operators.
- the motion estimator 210 and motion compensator 220 act as a motion-compensated-data generator which processes video data MB for a segment to generate motion data for the segment (this motion data comprising motion vectors in the present embodiment) and applies the motion data to the video data of the segment to generate motion-compensated video data for the segment.
- the weighting parameter calculator 200 acts as a weighting parameter calculator which calculates weighting parameters for the segment. As noted previously, the weighting parameters for a segment can be different from the weighting parameter used for a different segment in the same picture.
- the multiplier 230 and the adder 240 act as a weighted-motion-compensated-data generator which combines the motion-compensated video data and the weighting parameters to generate weighted-mofion-compensated-data MBp for the segment.
- the adder 250 acts as a difference-data generator which generates difference data MBr defining a difference between the input video data MB for the segment and the weighted-motion- compensated-data MBp.
- the transformer 260, quantiser 270 and entropy coder 320 act as an encoder which encodes data for the segment comprising the difference data MBr for the segment, the motion data for the segment, and the weighting parameters for the segment. This is the data which is transmitted to the decoder described previously for decoding.
- the procedure of fast derivation of the MBWP parameters is divided into three steps, which are described in the following.
- the description is based on a single reference picture MBWP, while the same idea can be applied to the case of multiple reference pictures as a straightforward extension of the presented relations and algorithmic steps.
- the selection of motion vectors for which the MBWP is tested for is not discussed here, as the described method applies for a single macroblock matching and is independent of the motion estimation process. /. Finding distortion-optimal weighting parameters
- Exp-Golomb entropy coding is used for coding the MBWP parameters, but other schemes are also possible, with the requirement that the exact or approximate code lengths are available to the cost estimator.
- CABAC Context- Adaptive Binary Arithmetic Coding
- R(o,w) is defined only in points (c ,w f/( ).
- An equivalent formulation is used in motion estimation for the purpose of regularising the motion vector field.
- MV information can be added to (29) and (30) to obtain a joint MV-MBWP cost, for example as: where mv is the motion vector, and the Lagrangian multipliers for motion vectors ⁇ ⁇ and weighting parameters WP generally can differ. This cost is used when comparing joint pairs of motion vectors and weighting parameters when selection is made prior to the macroblock mode selection.
- the formulation for the predictive coding of MBWP parameters is similar, with the correction consisting of redefining the o qi - w i space so that the predicted value is in its origin.
- the rate part of the Lagrangian cost function effectively moves the position of the global minimum from its position when only the distortion function is considered, and since the relation for the Lagrangian cost is non-analytical (expression for global minimum cannot be derived) some other way of locating it is needed.
- distortion component functions is conducted so that the distortion (26) needs to be computed only for a small subset of all possible.
- some other coding method apart from Exp-Golomb can be used having the same property of rate strictly increasing with the distance from the coordinates with the shortest code (e.g. (0,0)).
- the general form of the search algorithm then can be written as:
- J mm J(o,w)
- L J and ⁇ 1 are floor and ceiling functions, respectively.
- rounding down is performed when the variable w is larger than WQ meaning this corresponds to the part of the minimal distortion line that lies on the left of the w axis (all negative offsets).
- the direction of search is arbitrary.
- the condition for possibility of reduction of cost can be expressed with rate and distortion gradients fulfilling relation A
- This relation is constructed so that the local search visits the offset coordinates in such a way that AD(o,w) is strictly non-decreasing, while AR(o + ⁇ ,w) is either 0 or some fixed negative value (for instance, -2 bits for Exp-Golomb coding). Note that the roles of offset and weight could be reversed in this search, and in that case the search around the line of minimum distortion for the constant o would be used.
- Figure 8 is a flowchart summarizing the processing operations described above that are performed by the encoder in the preferred embodiment to calculate the offset and weight.
- the search range is extended to cover the potential location of this minimum.
- the constant distortion ellipse can be defined as:
- D c can be picked arbitrarily as long it encompassed at least one coordinate, but the closer it is to D min the better as the ellipse will be smaller
- D c is selected by computing the distortion at the point closest to the global minimum . Then the extreme o coordinates of
- weight values that correspond to o e1 and o e2 are used to modify w start and w end so that the range includes them.
- an embodiment of the present invention comprises a computer program product, in the form of a storage device or a signal, carrying computer program instructions to program a programmable processing apparatus to become operable to perform the processing operations described above.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A video decoder is disclosed that is operable to decode predictively encoded data wherein each encoded data segment has been encoded with a local weighting parameter. When encoding each segment of a picture, a weighting parameter is derived from a previously encoded segment of the picture. Advantageously, by allowing for different weighting parameters for each segment, the illumination changes within the picture are adapted to better than if a single global weighting parameter is used for all of the segments of a picture. Applications include MPEG video encoding and decoding. Accordingly, there is provided a video decoder operable to decode predictively-encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the decoder comprising a decoder operable to decode the encoded video data to generate decoded difference data (MBr') for a segment of a picture, motion data (14) for the segment and at least one weighting parameter for the segment; a motion-compensated-data generator operable to process the motion data and previously decoded video data to generate motion- compensated video data (MBc') for the segment; a predicted-data generator operable to generate predicted video data (MBp) for the segment by combining the motion- compensated video data (MBc') for the segment with at least one weighting parameter for the segment that is different from a weighting parameter used for a different segment in the same picture; and a data combiner operable to combine the decoded difference data (MBr') for the segment with the predicted video data (MBp) for the segment.
Description
Weighted Motion Compensation of Video
Claim to Priority This application claims priority from European Patent Application number EP 09 170 576.4 filed on 17 September 2009, the full contents of which are hereby incorporated by cross-reference.
Field of the Invention
The present invention relates to video encoding and decoding. Background Most modern video compression methods are based on spatio-temporal prediction of pictures, which essentially consists of encoding the difference between the prediction signal and the predicted picture. Generally, the closer in the appropriate metric the prediction signal is to the predicted picture, the better that picture can be compressed, i.e. it can be represented with fewer bits. The prediction is formed by taking decoded samples of previously encoded pictures, or previously encoded blocks of the current picture. Temporal prediction is the critical gain factor in the overall compression efficiency, since typical video signals exhibit significant temporal correlation. Besides compensating for spatial displacement between parts of different pictures by means of motion vectors, by using weighting prediction the changes in luminance levels can be also compensated for. Another prominent technique in encoding is the Rate Distortion Optimisation (RDO), which is widely used to assist in the video coding mode selection for achieving the best possible coding efficiency gain. This process can be described as follows: for a valid coding mode, the bits consumption is obtained and the distortion between the original video data and decoded video data is measured. A cost function J is constructed by using a Lagrange multiplier λΐο balance the rate R and the distortion D:
J = D + AR ... (1)
According to the smallest cost value a video encoding mode will be decided for achieving the best possible coding efficiency gain. The RDO process is important for capturing the video coding efficiency gain if several coding modes are possible for given video data.
H.264 / MPEG-4 AVC video coding standard has adopted weighted prediction, where arbitrary multiplicative weighting factors and additive offset factors can be applied to the reference picture predictions. Weighted prediction can generally be represented with the following relation:
Y = o + wX (2) where X is a reference picture signal, Y is the predicted image signal, o is an additive offset weighting parameter and w is a multiplicative weight weighting parameter. A separate offset/weight pair can be assigned to each of the reference picture signals used to predict the current picture. In H.264 / MPEG-4 AVC at most two pictures are used for temporal compensation for any given macroblock. In P pictures only a single prediction originating from a single picture is used, while in B pictures two prediction signals can be used. In the explicit mode, weight and offset are specified at the slice level and their derivation is not defined by the standard. In the implicit mode the weights are computed according to the distance to the referenced pictures, where the relationship between the picture distances and the applied weights are defined by the standard. The standard leaves a provision for applying different explicit weighting parameters for different segments of a slice, down to the size of a macroblock, in a form of memory management control operations (MMCO). This is explained, for example, in US2006/0198440 Al . However, this comes with a considerable penalty in overhead information for weighted prediction parameter sets large enough to be of practi cal use. Furthermore, the derivation of the picture-level weighted prediction parameters normally entails some multipass scheme, where picture data has to be processed at least twice. One possibility is just to estimate the parameters, for which the whole picture statistics need to be captured before the actual compression, in order to compute the optimal weighting parameters using some criteria related to the expected compression performance. Since in practice the compression performance utilising picture level weighted prediction cannot be estimated reliably without actually compressing the data, a scheme known as "Picture Level Rate-Distortion Optimisation" can be employed, in which the picture is compressed multiple times, each time with different weighted prediction parameters, including a mode where weighted prediction is disabled, and the best outcome in terms of Lagrangian cost is preserved. This has the disadvantage of very high computational complexity while providing only limited performance improvement.
Since the derivation of the explicit weighting parameters is not defined by the standard, various schemes exist. In WO2007/092215 A2 the following derivation methods are discussed: offset only by subtracting means of two pictures, weight only by dividing means of two pictures, histogram based and linear regression based methods, and also iterative variations of all previous methods, where the parameters are adjusted after motion compensation. The heuristic based methods in WO2007/092215 A2 compute several pairs
of parameters, each by using a different derivation method, and then by using a particular metric decide which one would perform the best.
A number of problems exist with the known techniques, however. In particular, due to the global nature of the weighting prediction parameters, the outcome of known weighted prediction techniques is generally unreliable in terms of the coding efficiency. If a multipass picture level optimisation approach is not used, the coding performance may even become worse. The multipass approach guarantees improvement, but in many cases it is still quite small and comes at the cost of very high computational complexity.
Summary of the Invention
In general, to adapt to the illumination changes within a picture, the operation of weighted prediction in an embodiment of the present invention is defined at the local level, where for each picture segment a different set of weighting parameters is defined and sent in the part of the bit-stream that conveys parameters for the current block. The operation of weighted prediction can be defined with:
where Bc„ is the n+l-st picture segment, o is an additive offset weighting parameter and wn is a multiplicative weight weighting parameter associated with the picture segment Bc„. Reference picture Bp is the prediction signal used to predict the currently encoded picture segment. The picture segment Bc„ may be associated with the «+l -st reference picture, but in a general case it can be any previously processed picture segment. Furthermore, it can be a resampled (e.g. by means of interpolation) picture segment. The aforementioned picture segments can be of arbitrary shape.
As a result of these features, the weighting parameters are adapted to local variations in content, thereby improving prediction.
More particularly, according to the present invention, there is provided a video decoding method of decoding predictively-encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising: decoding the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate-
constrained cost formulation taking into account both the representation distortion and coding cost; processing the motion data and previously decoded video data to generate motion- compensated video data for the segment; generating predicted video data for the segment by combining the motion-compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least one weighting parameter for the segment is different from a weighting parameter used for a different segment in the same picture; and combining the decoded difference data for the segment with the predicted video data for the segment.
In the video decoding method: the encoded video data may be decoded to generate a respective weight weighting parameter for each of a plurality of segments; the motion data and previously decoded video data for a plurality of segments may be processed to generate respective motion-compensated video data for each of the plurality of segments; and the motion-compensated video data for each of the plurality of segments may be combined with a respective one of the weight weighting parameters to generate the predicted video data.
The motion data and previously decoded video data for a plurality of segments in different respective pictures may be processed to generate the respective motion-compensated video data for each of the plurality of segments.
In the video decoding method: the decoding process may decode the encoded video data to generate difference data for the weighting parameters; and the predicted video data for the segment may be generated by deriving weighting parameters for the segment using the decoded difference data for the weighting parameters and previously decoded weighting parameters derived for a previously decoded segment.
The predicted video data for the segment may be generated by: predicting weighting parameters for the segment from weighting parameters of at least one neighbouring segment that has been previously decoded; combining the predicted weighting parameters with the weighting parameters obtained from the decoding process to generate resultant predicted weighting parameters; and combining the motion-compensated video data for the segment with the resultant predicted weighting parameters to generate the predicted video data for the segment.
The weighting parameters for the segment may be predicted by calculating an average of the weighting parameters of at least two neighbouring segments that have been previously decoded.
In the video decoding method, the process of generating predicted video data may comprise: comparing the motion data for the segment with the motion data for at least one previously decoded segment to determine a measure of the similarity therebetween; and if the determined measure indicates a high similarity, using weighting parameters for the at least one previously decoded segment to generate predicted weighting parameters for the segment and combining the motion-compensated video data with the predicted weighting parameters.
In the video decoding method, the encoded video data may be decoded to generate the offset weighting parameter and the weight weighting parameter such that the value of the offset weighting parameter is represented with fewer bits the closer the value is to zero and the value of the weight weighting parameter is represented with fewer bits the closer the value is to one.
The present invention also provides a video encoding method of predictively encoding video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising: processing video data for a segment to generate motion data for the segment and motion- compensated video-data; calculating weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate-
constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture; combining the motion-compensated video data and the weighting parameters to generate weighted-motion-compensated-data for the segment; generating difference data defining the difference between the video data for the segment and the weighted-motion-compensated-data for the segment; and encoding data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameters for the segment.
In the video encoding method: a respective weight weighting parameter may be calculated for each of a plurality of segments; the video data for a segment and a plurality of different segments may be processed to generate a plurality of respective motion-compensated video data segments; the weighted-motion-compensated-data may be generated by combining the plurality of motion-compensated video data segments and the plurality of weight weighting parameters such that each respective one of the plurality of motion-compensated video data segments is weighted by a respective one of the plurality of weight weighting parameters.
The video data for the segment and a plurality of segments in different respective pictures may be processed to generate the plurality of respective motion-compensated video data segments.
The video encoding method may further comprise calculating, for each weighting parameter for the segment, a weighting parameter difference value for the segment comprising a difference between the weighting parameter for the segment and the weighting parameter for a previous segment; and the encoding process may comprise encoding the difference data for the segment, the motion data for the segment, and the weighting parameter difference values for the segment.
Each difference value for the segment may be generated by: predicting a predicted weighting parameter for the segment from a weighting parameter of at least one previous neighbouring segment; and
calculating a difference between the weighting parameter calculated by the weighting parameter calculation process and the predicted weighting parameter. The offset (o) and a weight (w) may be calculated which minimise the cost function J(o,w):
J(o,w) = D(o,w) + XR(o,w) where o is the offset, w is the weight, D is a distortion measure comprising a difference between the weighted-motion-compensated-data for the segment and the video data for the segment, R is a measure of encoded data rate and λ is a Lagrangian multiplier by: a) calculating a line in offset-weight space defining pairs of offset-weight values which represent a minimum of the distortion measure D;
b) selecting one of the offset and the weight as a first search parameter and the other as a second search parameter;
c) selecting a global range of the first search parameter;
d) selecting a value of the first search parameter from the selected global range;
e) selecting a local search range for the second search parameter;
f) for the selected constant value of the first search parameter, searching in the vicinity of the line within the local search range to identify therein the value of the second search parameter which gives a minimum value of J(o,w);
g) repeating process d) to f) for different constant values of the first search parameter to find the combination of offset and weight values which give an overall minimum value of J(o,w).
Process f) above may be performed such that continuously increasing or continuously decreasing values of the first search parameter within the local search range are tested while:
where AD is the change in distortion measure and AR is the change in rate measure. The present invention also provides a video decoder operable to decode predictively- encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the decoder comprising:
a decoder operable to decode the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding cost; and a motion-compensated-data generator operable to process the motion data and previously decoded video data to generate motion-compensated video data for the segment; a predicted-data generator operable to generate predicted video data for the segment by combining the motion-compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least one weighting parameter for the segment is different from a weighting parameter used for a different segment in the same picture; and a data combiner operable to combine the decoded difference data for the segment with the predicted video data for the segment. The present invention also provides a video encoder operable to predictively encode video data defining a sequence of pictures, each picture divided into a plurality of segments, the encoder comprising: a motion-compensated-data generator operable to process video data for a segment to generate motion data for the segment and motion-compensated video data; a weighting parameter calculator operable to calculate weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture; a weighted-motion-compensated-data generator operable to combine the motion- compensated video data and the weighting parameters to generate weighted-motion- compensated-data for the segment; a difference-data generator operable to generate difference data defining the difference between the video data for the segment and the weighted-motion-compensated-data for the segment; and
an encoder operable to encode data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameters for the segment. The present invention further provides a computer program product, comprising a storage medium or a signal, carrying computer program instructions to program a programmable processing apparatus to become operable to perform the video decoding method or the video encoding method. Brief Description of the Drawings
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a block diagram of a video decoder in an embodiment;
Figure 2 is a block diagram of a video encoder in an embodiment;
Figure 3 is an example for a block being matched and a candidate block in motion estimation;
Figure 4 is an example of the distortion function D(o,w) plotted for (oqi, wqi) in the range - 10, .. .,10, respectively; Figure 5 is an example plot of the rate part of the Lagrangian cost;
Figure 6 is a plot of the overall Lagrangian cost (distortion and rate combined);
Figure 7 shows two examples of local search for global minimum of the Lagrangian; and
Figure 8 is a flowchart showing the processing operations performed by the encoder in an embodiment to calculate weighting parameters.
Embodiments of the Invention
In the preferred embodiment a picture segment on which the weighted prediction operates is the macroblock as defined in H.264 / MPEG-4 AVC. In that context the approach described herein is referred to as MBWP (MacroBlock Weighted Prediction). For the sake of simpler notation, MBWP is only presented here for the unidirectional prediction case (e.g. P pictures in H.264 / MPEG-4 AVC), with generalisation considerations to multi- reference pictures discussed where required. In that case MBWP can be defined with:
MBp = o + wMBc' (4) where MBc' is a decoded macroblock, obtained by means of interpolation in the case of sub-pel precision motion vectors or directly from the previously decoded pictures, o is an additive offset weighting parameter and w is a multiplicative weight weighting parameter (referred to hereinafter merely as an offset and a weight, respectively, with the term "weighting parameter" covering both). MBp is the resulting prediction signal, used to predict the current macroblock. In an alternative embodiment, the process of weighting is adapted within the macroblock for smaller blocks (e.g. those specified by H.264 / MPEG-4 AVC standard) or for each pixel:
MBp(«) = /0 (0,«) + /w(W,») - MBc'(«) .. . (5) where n is the index of the currently processed pixel, functions 0 ( ) and /w( ) determine the current offset and weight, respectively, and are dependent on the already processed data (already encoded in the encoder, or already decoded in the decoder). For instance, these can be the values of the previously processed predicted signal samples MBc'(0),. ..,MBc'(« - l) , previously obtained samples of the predicted signal MBp(0),...,MBp*(« -l) , etc. In one particular example, this function can perform adaptive rounding of the result given by weighted prediction, as the application of multiplicative weight in general yields a non-integer value. The prediction signal is added to the decoded difference signal MBr' and the current macroblock MB' is then reconstructed as:
MB' = MBp + MBr' .. . ( 6) Decoder
A diagram of a decoder incorporating MBWP is presented in Figure 1. The input stream of the current macroblock is entropy decoded by entropy decoder 10, resulting in the following data: quantised transformed samples of the current macroblock 12, motion vectors 14 and weighting parameters 16. All and any of these can be difference signals obtained by subtraction from the previously decoded data, and in that case prediction needs to be done, e.g. weighting parameters are predicted from the previously decoded ones, similarly as it is done for motion vectors, as shown in Figure 1. Motion compensation is then performed, using the decoded motion vectors and the previously decoded reference signal. Such motion compensated signal is then modified by applying weight and offset.
The residual macroblock signal is obtained by inverse quantisation by inverse quantiser 20 and inverse spatial transform by inverse spatial transformer 30, after which the weighted prediction signal is added to obtain the decoded macroblock samples. Accordingly, it will be understood from the above that the entropy decoder 10, the inverse quantiser 20 and the inverse transformer 30 operate as a decoder which decodes the encoded video data for a segment of a picture to generate decoded difference data MBr' for the segment, motion data 14 for the segment and weighting parameters 16 for the segment. The motion vector predictor 40, adder 42 and the motion compensator 60 act as a motion- compensated-data generator which processes the motion data 14 together with previously decoded video data to generate motion-compensated video data MBc' for the segment. The weighting parameter predictor 50, adder 52, multiplier 70 and adder 80 act as a predicted-data generator which generates predicted video data MBp for the segment by combining the motion-compensated video data MBc' for the segment with weighting parameters for the segment. As noted above, the weighting parameters for a segment may be different from the weighting parameters used for a different segment in the same picture. The adder 90 acts as a data combiner which combines the decoded difference data MBr' for the segment with the predicted video data MBp for the segment, thereby generating overall decoded video data MB' for the segment.
In the preferred embodiment the weighting prediction is defined only for the luma component, while in the alternative embodiments weighting prediction can be applied also for the chroma components, either by using the same or a separate set of weighting parameters.
In another alternative embodiment, the MBWP parameters can be conveyed as the difference in the weighting parameters for a particular macroblock from globally defined ones. When applied to a codec with the structure similar to that of MPEG-4 AVC/H.264, the required signalling for MBWP is achieved with the additional information placed in the macroblock header portion of the video bit-stream instead of the slice (picture) header as in previous codecs. In the first embodiment, the required video bit-stream syntax elements are the following:
MBWP_parameters_present_flag signals the presence of the MBWP parameters if equal to 1. If this flag is equal to 0, then weighted prediction is not performed, and both parameters MBWPo and MBWPw are set to default values. Default values are defined to be those that, if applied, are equivalent to not performing MBWP. In an alternative embodiment, multiple flags can be encoded jointly across macroblocks by using run-length or quadtree coding, in order to avoid redundancy when MBWP is not utilised in large areas of the picture. \ I B \Y Po d i if cr en cc and MBWPw_difference are the difference signals from the predicted offset and weight values, where the derivation of weighting parameters MBWPo and MBWPw is done as presented below. In a preferred embodiment, variable length codes are used for entropy coding of these difference signals, but alternatively any other entropy coding method can be used, for instance arithmetic coding. In an alternative embodiment, the values of the previously decoded syntax elements may also be used by an entropy coding method in order to improve its efficiency.
Prediction operations predict MB WPo() and predictJMBWPw() entail a spatial prediction of weighting parameters from the neighbouring macroblocks. In the preferred embodiment, for the prediction of the weighting parameters for the current macroblock, with position at row r and column c in the current picture, the averaging of the first neighbouring macroblock from the top (same column as current, previous row) and the first from the left (previously encoded) is employed:
where [■] denotes rounding to the nearest integer. It should be noted that this prediction can be modified in various ways - it can utilise more or fewer than two neighbouring macroblocks and/or use weighting in the prediction operator, or it can employ different operators, for instance median. In an alternative embodiment, the offset value for the current macroblock is used for prediction of the weight parameter for the same macroblock in addition to the previously decoded weighting parameters. In another alternative embodiment, the prediction of the weighted parameters uses other previously decoded syntax elements. In one example, the values of the motion vectors for current and previously decoded macroblocks are compared and the outcome of the comparison is used
to guide the decision on the use of the previously decoded weighting parameters for the derivation of the weighting parameters for the current macroblock. For example, if the difference between the pair of motion vectors is large, the weighting parameters for the corresponding macroblock are excluded from being used for the prediction of the weighting parameters for the current macroblock. Also note that one option is to omit the prediction operation altogether and in that case the result of predict_MBWPo() and predi ctJVTB WPw() is 0. In the following the row and column indices are omitted as the presented steps are understood to be working on the current macroblock.
The parameters are quantised in order to send them efficiently in the bitstream. Here the uniform quantisation step of 128 is used, while other quantisation steps and schemes are also possible. The offset and weight parameters are quantised in the following way:
The default non-weighted prediction values are o = 0 ( o · = 0 ) and w = 1 ( wqi = 0 ).
With the quantisation scheme as presented above the values oqi and wqi increase with the increasing absolute difference from (o,w) = (0,1) . Since the majority of weighting parameters in practice are close to (0,1) , this is used in the subsequent entropy coding by assigning shorter codes to oqi and wqi of smaller absolute values. Other quantisation schemes can, for instance, employ non-uniform step sizes for weights to achieve higher precision in the ranges of values where it brings compression performance benefit.
The values oqi and wqi are directly represented with MBWPo and MBWPw in the syntax description above. The weighted prediction can be then written as:
The obtained values are subsequently clipped to the defined range of the picture samples. It is worth noting that the process of weighted prediction can be easily implemented as division-free integer-safe operation, by replacing divisions by bit-shift operators.
Encoder
An embodiment will now be described of an encoder which performs a fast method for deriving optimal or near-optimal offset and weight parameters during the encoding process. The location of this procedure (MBWP parameter derivation) in the overall encoding process is illustrated in Figure 2.
Referring to Figure 2, the motion estimator 210 and motion compensator 220 act as a motion-compensated-data generator which processes video data MB for a segment to generate motion data for the segment (this motion data comprising motion vectors in the present embodiment) and applies the motion data to the video data of the segment to generate motion-compensated video data for the segment. The weighting parameter calculator 200 acts as a weighting parameter calculator which calculates weighting parameters for the segment. As noted previously, the weighting parameters for a segment can be different from the weighting parameter used for a different segment in the same picture. The multiplier 230 and the adder 240 act as a weighted-motion-compensated-data generator which combines the motion-compensated video data and the weighting parameters to generate weighted-mofion-compensated-data MBp for the segment. The adder 250 acts as a difference-data generator which generates difference data MBr defining a difference between the input video data MB for the segment and the weighted-motion- compensated-data MBp. The transformer 260, quantiser 270 and entropy coder 320 act as an encoder which encodes data for the segment comprising the difference data MBr for the segment, the motion data for the segment, and the weighting parameters for the segment. This is the data which is transmitted to the decoder described previously for decoding.
The procedure of fast derivation of the MBWP parameters is divided into three steps, which are described in the following. For the sake of simpler representation the description is based on a single reference picture MBWP, while the same idea can be applied to the case of multiple reference pictures as a straightforward extension of the presented relations and algorithmic steps. The selection of motion vectors for which the MBWP is tested for is not discussed here, as the described method applies for a single macroblock matching and is independent of the motion estimation process.
/. Finding distortion-optimal weighting parameters
In this step the optimal weighting prediction parameters are found with respect only to the distortion part of the encoding cost.
To minimise the distortion in the form of the L2 norm between two macroblocks the following expression needs to be optimised, with offset and weight as the optimisation variables:
where MB is the current block, and N is the number of pixels in a macroblock. The distortion expression then becomes:
This corresponding minimisation problem is modelled as a linear least squares optimisation problem, and represented with the following relation:
Partial derivative by o and w yields:
Solving these two for o and w gives:
However, since the problem at hand is somewhat different to the conventional least squares fitting because the parameters o, w and the operation of weighting are quantised, this problem can be generally classified as an integer least squares estimation. This problem is known to be NP-hard (i.e. impossible to determine the optimal parameters in practical amount of time), thus some fast approximation is required.
In the following an example is given, where two blocks depicted in Figure 3 are selected for which the above defined function is plotted in Figure 4.
Computation of the minimum distortion point leads to (with the introduction of shorthand varibles ^, B, C, D, E):
where the denominator in the relations above is equal to the variance of X, i.e.,
2 2
A - B = <Tx . The computed values correspond to the example blocks in Figure 3. In the case σχ = 0 (constant value X), it is defined wmm = 1 and omm = D - B . Using this notation, the relation for distortion can be written in a form of general bivariate quadratic curve:
Also, when (25) is plugged into (26):
In this step a complete relation for rate-constrained Lagrangian cost is derived, taking into account both the representation distortion and coding cost.
In the following the Exp-Golomb entropy coding is used for coding the MBWP parameters, but other schemes are also possible, with the requirement that the exact or approximate code lengths are available to the cost estimator. One example is the Context- Adaptive Binary Arithmetic Coding (CABAC). If the data to be encoded is denoted as x, the length of the associated Exp-Golomb code R(x) is defined as:
A rate constrained formulation of the MBWP encoding, for non-predictive MBWP parameters coding, then can be written in the Lagrangian multiplier form:
Here R(o,w) is defined only in points (c ,wf/(). An equivalent formulation is used in motion estimation for the purpose of regularising the motion vector field. Here the same principle is extended for MBWP of which the parameters can be understood as an extension to the MV information. More particularly, MV information can be added to (29) and (30) to obtain a joint MV-MBWP cost, for example as:
where mv is the motion vector, and the Lagrangian multipliers for motion vectors λΜν and weighting parameters WP generally can differ. This cost is used when comparing joint pairs of motion vectors and weighting parameters when selection is made prior to the macroblock mode selection.
The formulation for the predictive coding of MBWP parameters is similar, with the correction consisting of redefining the oqi - w i space so that the predicted value is in its origin.
In Figures 4 to 6, an example is given, where two blocks are selected for which the above defined functions are plotted.
3. Local search for a globally minimal cost
In this step a local search in the direction of the decreasing rate cost is perfonned, in order to find the global minimum of the Lagrangian on an integer grid.
From Figures 4 to 6, it is evident that the rate part of the Lagrangian cost can affect the location of the global minimum. Influence of the rate part strongly depends on the operational Lagrangian multiplier, and is higher for the lower bit-rates (larger WP ). Note that the effect of rounding operation in the weighting operation is not considered at this stage, only the quantisation of the MBWP parameters.
The rate part of the Lagrangian cost function effectively moves the position of the global minimum from its position when only the distortion function is considered, and since the relation for the Lagrangian cost is non-analytical (expression for global minimum cannot be derived) some other way of locating it is needed. To avoid computing J(o,w) for each Pau" > a local search in the oqi - wqi space that exploits the properties of the rate and
distortion component functions is conducted so that the distortion (26) needs to be computed only for a small subset of all possible
Also, note that some other coding method apart from Exp-Golomb can be used having the same property of rate strictly increasing with the distance from the coordinates with the shortest code (e.g. (0,0)).
The search computes the cost around the line of minimum distortion for the constant w, Figure 5. This line can be found by using (21) and is defined with: o + wB - D = 0 . .. (32)
The search loops over different w, where for each w the cost is computed for the certain range of the parameter o around the line (32), in the direction of axis w as that is the direction of decreasing rate cost. It can be seen that the line (32) crosses the w-axis (where o = 0) at point ¼¾ = Df B , and this point divides the search into two segments, one looping over increasing o (points w > vv0 ) and the other over decreasing o (points W < WQ ). The general form of the search algorithm then can be written as:
Find the weight parameter search window
If J(o,w) < Jmm then Jmm = J(o,w)
If reduction of cost is not expected then break in the above, L J and Γ 1 are floor and ceiling functions, respectively. In particular, rounding down is performed when the variable w is larger than WQ meaning this corresponds to the part of the minimal distortion line that lies on the left of the w axis (all negative offsets). Note that the direction of search is arbitrary. In the prefen'ed embodiment, the condition for possibility of reduction of cost can be expressed with rate and distortion gradients fulfilling relation A
This relation is constructed so that the local search visits the offset coordinates in such a way that AD(o,w) is strictly non-decreasing, while AR(o + \,w) is either 0 or some fixed negative value (for instance, -2 bits for Exp-Golomb coding). Note that the roles of offset and weight could be reversed in this search, and in that case the search around the line of minimum distortion for the constant o would be used.
Figure 8 is a flowchart summarizing the processing operations described above that are performed by the encoder in the preferred embodiment to calculate the offset and weight.
4. Weighting parameters quantisation consideration
To take into account the location ambiguity of the global distortion minimum for quantised MBWP parameters, the search range is extended to cover the potential location of this minimum. To this end, the constant distortion ellipse can be defined as:
D(o,w) - Dc = 0 , ... (33) where Dc is the selected distortion. That this an ellipse can be checked by plugging it into the necessary conditions, from which it follows that conditions
must be fulfilled. Here Dc can be picked arbitrarily as long it encompassed at least one coordinate, but the closer it is to Dmin the better as the ellipse will be smaller
and capture less potential integer minimums that would need to be visited in the search loop. Here, Dc is selected by computing the distortion at the point closest to the global minimum . Then the extreme o coordinates of
The weight values that correspond to oe1 and oe2 are used to modify wstart and wend so that the range includes them. The procedure of search for two distinct
exemplary cases is depicted in Figure 7.
Modifications and Variations
It will be appreciated that many modifications and variations can be made to the embodiment described above.
In particular, although the components of the decoder and the encoder described above comprise hardware components, the decoder and/or the encoder may be implemented using software and/or firmware. Similarly, the decoder and/or encoder may comprise a combination of hardware and software/firmware components. Accordingly, an embodiment of the present invention comprises a computer program product, in the form of a storage device or a signal, carrying computer program instructions to program a programmable processing apparatus to become operable to perform the processing operations described above.
Claims
1. A video decoder operable to decode predictively-encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the decoder comprising:
a decoder operable to decode the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding cost; and
a motion-compensated-data generator operable to process the motion data and previously decoded video data to generate motion-compensated video data for the segment;
a predicted-data generator operable to generate predicted video data for the segment by combining the motion-compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least one weighting parameter for the segment is different from a weighting parameter used for a different segment in the same picture; and
a data combiner operable to combine the decoded difference data for the segment with the predicted video data for the segment.
2. A video decoder according to Claim 1, wherein:
the decoder is operable to decode the encoded video data to generate a respective weight weighting parameter for each of a plurality of segments;
the motion-compensated-data generator is operable to process the motion data and previously decoded video data for a plurality of segments to generate respective motion- compensated video data for each of the plurality of segments; and
the predicted-data generator is operable to combine the motion-compensated video data for each of the plurality of segments with a respective one of the weight weighting parameters to generate the predicted video data.
3. A video decoder according to Claim 2, wherein the motion-compensated-data generator is operable to process the motion data and previously decoded video data for a plurality of segments in different respective pictures to generate the respective motion- compensated video data for each of the plurality of segments.
4. A video decoder according to any preceding claim, wherein: the decoder is operable to decode the encoded video data to generate difference data for the weighting parameters; and
the predicted-data generator is operable to generate the predicted video data for the segment by deriving weighting parameters for the segment using the difference data for the weighting parameters from the decoder and previously decoded weighting parameters derived for a previously decoded segment.
5. A video decoder according to Claim 4, wherein the predicted-data generator is operable to generate the predicted video data for the segment by:
predicting weighting parameters for the segment from weighting parameters of at least one neighbouring segment that has been previously decoded;
combining the predicted weighting parameters with the weighting parameters from the decoder to generate resultant predicted weighting parameters; and
combining the motion-compensated video data for the segment with the resultant predicted weighting parameters to generate the predicted video data for the segment.
6. A video decoder according to Claim 5, wherein the predicted-data generator is operable to predict the weighting parameters for the segment by calculating an average of the weighting parameters of at least two neighbouring segments that have been previously decoded.
7. A video decoder according to any preceding claim, wherein the predicted-data generator is operable to:
compare the motion data for the segment with the motion data for at least one previously decoded segment to determine a measure of the similarity therebetween; and if the determined measure indicates a high similarity, use weighting parameters for the at least one previously decoded segment to generate predicted weighting parameters for the segment and combine the motion-compensated video data with the predicted weighting parameters.
8. A video decoder according to any preceding claim, wherein the decoder is operable to decode the encoded video data to generate the offset weighting parameter and the weight weighting parameter such that the value of the offset weighting parameter is represented with fewer bits the closer the value is to zero and the value of the weight weighting parameter is represented with fewer bits the closer the value is to one.
9. A video encoder operable to predictively encode video data defining a sequence of pictures, each picture divided into a plurality of segments, the encoder comprising: a motion-compensated-data generator operable to process video data for a segment to generate motion data for the segment and motion-compensated video data;
a weighting parameter calculator operable to calculate weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture;
a weighted-motion-compensated-data generator operable to combine the motion- compensated video data and the weighting parameters to generate weighted-motion- compensated-data for the segment;
a difference-data generator operable to generate difference data defining the difference between the video data for the segment and the weighted-motion-compensated- data for the segment; and
an encoder operable to encode data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameters for the segment.
10. A video encoder according to Claim 9, wherein:
the weighting parameter calculator is operable to calculate a respective weight weighting parameter for each of a plurality of segments;
the motion-compensated-data-generator is operable to process the video data for a segment and a plurality of different segments to generate a plurality of respective motion- compensated video data segments;
the weighted-motion-compensated-data generator is operable to generate the weighted-motion-compensated-data by combining the plurality of motion-compensated video data segments and the plurality of weight weighting parameters such that each respective one of the plurality of motion-compensated video data segments is weighted by a respective one of the plurality of weight weighting parameters.
1 1 . A video encoder according to Claim 10, wherein the motion-compensated-data generator is operable to process the video data for the segment and a plurality of segments in different respective pictures to generate the plurality of respective motion-compensated video data segments.
12. A video encoder according to any of Claims 9 to 1 1, further comprising a weighting parameter difference calculator operable to calculate, for each weighting parameter for the segment, a weighting parameter difference value for the segment comprising a difference between the weighting parameter for the segment and the weighting parameter for a previous segment;
and wherein the encoder is arranged to encode data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameter difference values for the segment.
13. A video encoder according to Claim 12, wherein the weighting parameter difference calculator is operable to generate each difference value for the segment by: predicting a predicted weighting parameter for the segment from a weighting parameter of at least one previous neighbouring segment; and
calculating a difference between the weighting parameter calculated by the weighting parameter calculator and the predicted weighting parameter.
14. A video encoder according to any of Claims 9 to 13, wherein the weighting parameter calculator is arranged to calculate an offset weighting parameter and a weight weighting parameter which minimise the cost function J(o,w):
J(o,w) = D(o,w) + XR(o,w) where o is the offset, w is the weight, D is a distortion measure comprising a difference between the weighted-motion-compensated-data for the segment and the video data for the segment, R is a measure of encoded data rate and λ is a Lagrangian multiplier by:
a) calculating a line in offset-weight space defining pairs of offset-weight values which represent a minimum of the distortion measure D;
b) selecting one of the offset and the weight as a first search parameter and the other as a second search parameter;
c) selecting a global range of the first search parameter;
d) selecting a value of the first search parameter from the selected global range;
e) selecting a local search range for the second search parameter;
f) for the selected constant value of the first search parameter, searching in the vicinity of the line within the local search range to identify therein the value of the second search parameter which gives a minimum value of J(o,w);
g) repeating process d) to f) for different constant values of the first search parameter to find the combination of offset and weight values which give an overall minimum value of J(o,w).
15. A video encoder according to Claim 14, wherein the weighting parameter calculator is arranged to perform process f) such that continuously increasing or continuously decreasing values of the first search parameter within the local search range are tested while: where AD is the change in distortion measure and AR is the change in rate measure.
16. A video decoding method of decoding predictively-encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising:
decoding the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding cost;
processing the motion data and previously decoded video data to generate motion- compensated video data for the segment;
generating predicted video data for the segment by combining the motion- compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least one weighting parameter for the segment is different from a weighting parameter used for a different segment in the same picture; and
combining the decoded difference data for the segment with the predicted video data for the segment.
1 7. A video encoding method of predictively encoding video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising:
processing video data for a segment to generate motion data for the segment and motion-compensated video-data;
calculating weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture; combining the motion-compensated video data and the weighting parameters to generate weighted-motion-compensated-data for the segment;
generating difference data defining the difference between the video data for the segment and the weighted-motion-compensated-data for the segment; and
encoding data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameters for the segment.
18. A computer program product carrying computer program instructions to program a programmable processing apparatus to become operable to perform a video decoding method of decoding predictively-encoded video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising:
decoding the encoded video data to generate decoded difference data for a segment of a picture, motion data for the segment and weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter, wherein the weighting parameters are weighting parameters which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding cost;
processing the motion data and previously decoded video data to generate motion- compensated video data for the segment;
generating predicted video data for the segment by combining the motion- compensated video data for the segment with weighting parameters for the segment comprising an offset weighting parameter and a weight weighting parameter, wherein at least one weighting parameter for the segment is different from a weighting parameter used for a different segment in the same picture; and
combining the decoded difference data for the segment with the predicted video data for the segment.
19. A computer program product carrying computer program instructions to program a programmable processing apparatus to become operable to perform a video encoding method of predictively encoding video data defining a sequence of pictures, each picture divided into a plurality of segments, the method comprising:
processing video data for a segment to generate motion data for the segment and motion-compensated video-data;
calculating weighting parameters for weighted prediction of the segment comprising an offset weighting parameter and a weight weighting parameter which minimise a rate-constrained cost formulation taking into account both the representation distortion and coding costs, with at least one weighting parameter for the segment being different from a weighting parameter used for a different segment in the same picture; combining the motion-compensated video data and the weighting parameters to generate weighted-motion-compensated-data for the segment;
generating difference data defining the difference between the video data for the segment and the weighted-motion-compensated-data for the segment; and
encoding data for the segment comprising the difference data for the segment, the motion data for the segment, and the weighting parameters for the segment.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012529206A JP2013505615A (en) | 2009-09-17 | 2010-09-06 | Video weighted motion compensation |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP09170576A EP2302933A1 (en) | 2009-09-17 | 2009-09-17 | Weighted motion compensation of video |
| EP09170576.4 | 2009-09-17 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011032852A1 true WO2011032852A1 (en) | 2011-03-24 |
Family
ID=41138739
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2010/063024 Ceased WO2011032852A1 (en) | 2009-09-17 | 2010-09-06 | Weighted motion compensation of video |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP2302933A1 (en) |
| JP (1) | JP2013505615A (en) |
| WO (1) | WO2011032852A1 (en) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014131360A (en) * | 2014-04-07 | 2014-07-10 | Toshiba Corp | Encoding method, encoding device, and program |
| JP2015119499A (en) * | 2015-02-16 | 2015-06-25 | 株式会社東芝 | Decoding method, decoding device, and program |
| JP2016096567A (en) * | 2015-12-22 | 2016-05-26 | 株式会社東芝 | Decoding method, decoding device, and program |
| US20160277767A1 (en) * | 2015-03-16 | 2016-09-22 | Thomson Licensing | Methods, systems and apparatus for determining prediction adjustment factors |
| JP2017099016A (en) * | 2017-01-30 | 2017-06-01 | 株式会社東芝 | Electronic device, decoding method, and program |
| JP2017121070A (en) * | 2017-02-23 | 2017-07-06 | 株式会社東芝 | Electronic device, decoding method and program |
| US9826247B2 (en) | 2011-10-17 | 2017-11-21 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for efficient coding |
| JP2018042266A (en) * | 2017-10-20 | 2018-03-15 | 株式会社東芝 | Electronic apparatus, decoding method, and program |
| JP2019009792A (en) * | 2018-08-22 | 2019-01-17 | 株式会社東芝 | Encoding method, decoding method, and encoded data |
| US10257516B2 (en) | 2012-06-27 | 2019-04-09 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for coding efficiency |
| JP2020058073A (en) * | 2020-01-07 | 2020-04-09 | 株式会社東芝 | Encoding method, decoding method and encoded data |
| JP2020129848A (en) * | 2020-05-29 | 2020-08-27 | 株式会社東芝 | Data structure of encoded data, storage device, transmission device, and encoding method |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2505169B (en) * | 2012-08-13 | 2016-03-16 | Gurulogic Microsystems Oy | decoder and method |
| US10412410B2 (en) * | 2017-08-14 | 2019-09-10 | Google Llc | Compound motion-compensated prediction |
| CN115695812A (en) * | 2021-07-30 | 2023-02-03 | 中兴通讯股份有限公司 | Video encoding method, video decoding method, video encoding device, video decoding device, electronic equipment and storage medium |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060198440A1 (en) | 2003-06-25 | 2006-09-07 | Peng Yin | Method and apparatus for weighted prediction estimation using a displaced frame differential |
| WO2007092215A2 (en) | 2006-02-02 | 2007-08-16 | Thomson Licensing | Method and apparatus for adaptive weight selection for motion compensated prediction |
| WO2008004940A1 (en) * | 2006-07-07 | 2008-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Video data management |
| US20090034854A1 (en) * | 2007-07-31 | 2009-02-05 | Samsung Electronics Co., Ltd. | Video encoding and decoding method and apparatus using weighted prediction |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4485157B2 (en) * | 2002-08-08 | 2010-06-16 | パナソニック株式会社 | Image decoding method and image decoding apparatus |
| JP2004120138A (en) * | 2002-09-24 | 2004-04-15 | Matsushita Electric Ind Co Ltd | Video encoding method and video decoding method |
| US8457203B2 (en) * | 2005-05-26 | 2013-06-04 | Ntt Docomo, Inc. | Method and apparatus for coding motion and prediction weighting parameters |
| CN101288311B (en) * | 2005-10-12 | 2011-05-11 | 汤姆森特许公司 | Method and apparatus for weighted prediction in scalable video coding and decoding |
| US8115804B2 (en) * | 2006-01-12 | 2012-02-14 | Lg Electronics Inc. | Processing multiview video |
| JP2007221201A (en) * | 2006-02-14 | 2007-08-30 | Victor Co Of Japan Ltd | Moving image coding apparatus and program |
| US8023562B2 (en) * | 2007-09-07 | 2011-09-20 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
| CN101855910B (en) * | 2007-09-28 | 2014-10-29 | 杜比实验室特许公司 | Video compression and transmission techniques |
| JP5529040B2 (en) * | 2008-01-10 | 2014-06-25 | トムソン ライセンシング | Intra-predicted video illumination compensation method and apparatus |
-
2009
- 2009-09-17 EP EP09170576A patent/EP2302933A1/en not_active Withdrawn
-
2010
- 2010-09-06 JP JP2012529206A patent/JP2013505615A/en active Pending
- 2010-09-06 WO PCT/EP2010/063024 patent/WO2011032852A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060198440A1 (en) | 2003-06-25 | 2006-09-07 | Peng Yin | Method and apparatus for weighted prediction estimation using a displaced frame differential |
| WO2007092215A2 (en) | 2006-02-02 | 2007-08-16 | Thomson Licensing | Method and apparatus for adaptive weight selection for motion compensated prediction |
| WO2008004940A1 (en) * | 2006-07-07 | 2008-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Video data management |
| US20090034854A1 (en) * | 2007-07-31 | 2009-02-05 | Samsung Electronics Co., Ltd. | Video encoding and decoding method and apparatus using weighted prediction |
Non-Patent Citations (3)
| Title |
|---|
| BOYCE J M: "Weighted prediction in the H.264/MPEG AVC video coding standard", CIRCUITS AND SYSTEMS, 2004. ISCAS '04. PROCEEDINGS OF THE 2004 INTERNA TIONAL SYMPOSIUM ON VANCOUVER, BC, CANADA 23-26 MAY 2004, PISCATAWAY, NJ, USA,IEEE, US, 23 May 2004 (2004-05-23), pages III - 789, XP010719383, ISBN: 978-0-7803-8251-0 * |
| ELLINAS J N ET AL: "Stereo video coding based on quad-tree decomposition of B-P frames by motion and disparity interpolation", IEE PROCEEDINGS: VISION, IMAGE AND SIGNAL PROCESSING, INSTITUTION OF ELECTRICAL ENGINEERS, GB, vol. 152, no. 5, 7 October 2005 (2005-10-07), pages 639 - 647, XP006024995, ISSN: 1350-245X * |
| SULLIVAN G J ET AL: "Video Compression-From Concepts to the H.264/AVC Standard", PROCEEDINGS OF THE IEEE, IEEE. NEW YORK, US, vol. 93, no. 1, 1 January 2005 (2005-01-01), pages 18 - 31, XP011123850, ISSN: 0018-9219 * |
Cited By (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10602173B2 (en) | 2011-10-17 | 2020-03-24 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for efficient coding |
| US10271061B2 (en) | 2011-10-17 | 2019-04-23 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for efficient coding |
| US11153593B2 (en) | 2011-10-17 | 2021-10-19 | Kabushiki Kaisha Toshiba | Decoding method, encoding method, and electronic apparatus for decoding/coding |
| US11140405B2 (en) | 2011-10-17 | 2021-10-05 | Kabushiki Kaisha Toshiba | Decoding method, encoding method, and transmission apparatus for efficient coding |
| US9826247B2 (en) | 2011-10-17 | 2017-11-21 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for efficient coding |
| US10277900B2 (en) | 2012-06-27 | 2019-04-30 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for coding efficiency |
| US12506872B2 (en) | 2012-06-27 | 2025-12-23 | Kabushiki Kaisha Toshiba | Encoding method that encodes a first denominator for a luma weighting factor, transfer device, and decoding method |
| US12088810B2 (en) | 2012-06-27 | 2024-09-10 | Kabushiki Kaisha Toshiba | Encoding method that encodes a first denominator for a luma weighting factor, transfer device, and decoding method |
| US10257516B2 (en) | 2012-06-27 | 2019-04-09 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for coding efficiency |
| US11800111B2 (en) | 2012-06-27 | 2023-10-24 | Kabushiki Kaisha Toshiba | Encoding method that encodes a first denominator for a luma weighting factor, transfer device, and decoding method |
| US11363270B2 (en) | 2012-06-27 | 2022-06-14 | Kabushiki Kaisha Toshiba | Decoding method, encoding method, and transfer device for coding efficiency |
| US11202075B2 (en) | 2012-06-27 | 2021-12-14 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for coding efficiency |
| US10609376B2 (en) | 2012-06-27 | 2020-03-31 | Kabushiki Kaisha Toshiba | Encoding device, decoding device, encoding method, and decoding method for coding efficiency |
| JP2014131360A (en) * | 2014-04-07 | 2014-07-10 | Toshiba Corp | Encoding method, encoding device, and program |
| JP2015119499A (en) * | 2015-02-16 | 2015-06-25 | 株式会社東芝 | Decoding method, decoding device, and program |
| US20160277767A1 (en) * | 2015-03-16 | 2016-09-22 | Thomson Licensing | Methods, systems and apparatus for determining prediction adjustment factors |
| JP2016096567A (en) * | 2015-12-22 | 2016-05-26 | 株式会社東芝 | Decoding method, decoding device, and program |
| JP2017099016A (en) * | 2017-01-30 | 2017-06-01 | 株式会社東芝 | Electronic device, decoding method, and program |
| JP2017121070A (en) * | 2017-02-23 | 2017-07-06 | 株式会社東芝 | Electronic device, decoding method and program |
| JP2018042266A (en) * | 2017-10-20 | 2018-03-15 | 株式会社東芝 | Electronic apparatus, decoding method, and program |
| JP2019009792A (en) * | 2018-08-22 | 2019-01-17 | 株式会社東芝 | Encoding method, decoding method, and encoded data |
| JP2020058073A (en) * | 2020-01-07 | 2020-04-09 | 株式会社東芝 | Encoding method, decoding method and encoded data |
| JP2020129848A (en) * | 2020-05-29 | 2020-08-27 | 株式会社東芝 | Data structure of encoded data, storage device, transmission device, and encoding method |
| JP7000498B2 (en) | 2020-05-29 | 2022-01-19 | 株式会社東芝 | Storage device, transmitter and coding method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2013505615A (en) | 2013-02-14 |
| EP2302933A1 (en) | 2011-03-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2011032852A1 (en) | Weighted motion compensation of video | |
| US10764599B2 (en) | Moving picture decoding method and moving picture encoding method | |
| Yang et al. | An effective variable block-size early termination algorithm for H. 264 video coding | |
| US7177360B2 (en) | Video encoding method and video decoding method | |
| US9900611B2 (en) | Moving image encoding device, moving image decoding device, moving image coding method, and moving image decoding method | |
| US6711211B1 (en) | Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder | |
| US20120230405A1 (en) | Video coding methods and video encoders and decoders with localized weighted prediction | |
| EP2375754A1 (en) | Weighted motion compensation of video | |
| CN116233463A (en) | Motion vector correction for multi-reference prediction | |
| WO2005022923A2 (en) | Method and apparatus for minimizing number of reference pictures used for inter-coding | |
| EP2664152A1 (en) | Video encoding and decoding with improved error resilience | |
| US7809063B2 (en) | Method and system for adaptive motion estimation | |
| KR20050089838A (en) | Video encoding with skipping motion estimation for selected macroblocks | |
| US20060188018A1 (en) | Method and system for motion estimation using chrominance information | |
| US8194740B2 (en) | Apparatus and method for compression-encoding moving picture | |
| JP5649296B2 (en) | Image encoding device | |
| EP1593271A2 (en) | Device for encoding a video data stream | |
| JP2009284058A (en) | Moving image encoding device | |
| KR100939280B1 (en) | Video encoding method using multiple reference frames and computer-readable recording medium recording the method | |
| JP2009194474A (en) | Video encoding device | |
| US20250247526A1 (en) | Combined intra and inter prediction mode | |
| KR20160041387A (en) | Method and apparatus for encoding video |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10749656 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2012529206 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10749656 Country of ref document: EP Kind code of ref document: A1 |














