EP2420061A1 - Method and apparatus for rate distortion optimisation - Google Patents

Method and apparatus for rate distortion optimisation

Info

Publication number
EP2420061A1
EP2420061A1 EP09779309A EP09779309A EP2420061A1 EP 2420061 A1 EP2420061 A1 EP 2420061A1 EP 09779309 A EP09779309 A EP 09779309A EP 09779309 A EP09779309 A EP 09779309A EP 2420061 A1 EP2420061 A1 EP 2420061A1
Authority
EP
European Patent Office
Prior art keywords
mbo
candidate
macroblock
mse
bit cost
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.)
Withdrawn
Application number
EP09779309A
Other languages
German (de)
French (fr)
Inventor
Ryan Spicer
Alois Martin Bock
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of EP2420061A1 publication Critical patent/EP2420061A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Definitions

  • the invention is related to video coding in general, and in particular to a method and apparatus for deciding a macroblock video mode during video coding.
  • macroblock (MB) encoding mode decisions are carried out by comparing the level of distortion of each macroblock mode (e.g. intra coding versus predicted coding) and choosing the mode with the lowest distortion.
  • level of distortion of each macroblock mode e.g. intra coding versus predicted coding
  • choosing the mode with the lowest distortion could require a disproportional number of bits, thus reducing the number of bits available to allocate to coding other macroblocks.
  • choosing a macroblock encoding mode which used the lowest number of bits would generate excessive artefacts. Therefore, a compromise between distortion and bit rate would provide a better picture quality.
  • Rate-distortion optimisation is a process in which video quality (the distortion of a macroblock) is compared against the bit rate required to encode the video signal (which controls the number of bits used to encode a macroblock).
  • RDO is implemented by using the 'lowest MSE method' which calculates a metric that combines distortion with bit cost to determine the best macroblock encoding mode to use. This is done by multiplying the macroblock bit cost by a constant and adding it to the macroblock distortion as shown in equation (1 ) below:
  • MSE is the Mean Square Error of a particular macroblock mode (see equation (2) below); ⁇ is the Lagrangian multiplier; and bit cost is the number of bits required to code this macroblock mode.
  • MSE is defined as shown in equation (2):
  • DIST x y refers to the video coded pixels of a particular macroblock mode.
  • the macroblock mode with the lowest metric J is chosen.
  • equation (1 ) does not always produce an optimum macroblock coding mode decision in compression encoders.
  • the Lagrangian multiplier varies considerably in different macroblock modes.
  • a method of Rate Distortion Optimisation in digital video coding comprising determining a mean square error and bit cost for a plurality of Quantization Parameter (QP) points for each macroblock coding mode option under consideration, and selecting a best macroblock coding mode option dependent upon an interpolation of the plurality of QP points for each macroblock coding mode option under consideration.
  • QP Quantization Parameter
  • the interpolation of the plurality of QP points for each macroblock coding mode option under consideration comprises piecewise linear approximation of the plurality of QP points for each macroblock coding mode option under consideration.
  • the piecewise linear approximation of the plurality of QP points for each macroblock coding mode option under consideration comprises iteratively carrying out processing of a plurality of candidates to derive a final best macroblock coding option, starting from a seed current best macroblock coding option.
  • the processing involves comparing a candidate macroblock coding option against a current best macroblock coding option to provide a score for the candidate macroblock coding option, and then selecting one out of the candidate macroblock coding option and the current best macroblock coding option to become a new current best macroblock coding option for a subsequent iterative comparison calculation.
  • the selection is dependent on the candidate macroblock coding option score.
  • the candidate score is determined by the following scoring process: if the candidate macroblock coding option distortion is lower than the current best macroblock coding option distortion at the number of bits required by the current best macroblock coding option, then the candidate score is increased by one, and if the current macroblock coding option distortion is larger than the candidate macroblock coding option distortion at the number of bits required by the candidate macroblock coding option, then the candidate score is increased by one.
  • the score is assessed by the following process: if the candidate score is two, then the candidate macroblock coding option becomes a new current best macroblock coding option but if the candidate score is zero, then the current best macroblock coding options remains for a next iteration.
  • the method further comprises carrying out the following pseudocode or equivalent: lf( Macroblock_activity ⁇ Thresholdi )
  • ThresholcM (T1) can be in the range of 22... 42; Scale can be in the range 0.9 ... 1.9; Threshold2 (T2) can be in the range 4 ... 19;
  • QP is the quantisation parameter (for example, in MPEG-2, QP may have a value between 1... 31 (inclusive));
  • Estimated Avg MSE is the average of several macroblock mode MSE, for example the intra macroblock and the first available inter frame predicted macroblock; and LUT is a look-up table (LUT).
  • Best MBO bit cost > Candidate MBO bit cost + thresholds AND Candidate MBO MSE ⁇ 1.2 * best MBO MSE)
  • Threshold3 is in the range of 40 ... 50; Threshold4 is in the range of 60 ... 70; and Threshold ⁇ is in the range of 20 ... 40.
  • the seed current best macroblock option is a intra coded macroblock.
  • the plurality of QP points used comprises 3.
  • a rate distortion optimisation apparatus comprising at least one Mean Square Error calculation unit, at least one bit cost calculation unit, at least one gradient calculation unit, and a selection unit, wherein the selection circuit is adapted to carry out any of the described method.
  • the proposed RDO method and apparatus provides an improved picture quality in digitally coded video, both in terms of Peak Signal to Noise Ratio (PSNR) and perceived/subjective visual quality.
  • PSNR Peak Signal to Noise Ratio
  • Embodiments of the present invention are particularly beneficial when used to upgrade coding performance of digital video encoders that encode under older compression standards. This is because such an upgrade improves encoding performance without affecting the ability of existing decoders to decode the video data stream produced.
  • quality of the overall system is improved without having to wholly replace the existing video decoding hardware at the receiver end. When dealing with an installed user base, this is an important consideration.
  • Fig. 1 shows a first exemplary graph of MSE vs bit cost for two different macroblock encoding modes A and B
  • Fig.2 shows a second exemplary graph of MSE vs bit cost for two different macroblock encoding modes A and B;
  • Fig. 3 shows an overview flow chart of the Rate Distortion Optimisation method according to an embodiment of the invention
  • Fig. 4 shows a more specific portion of the Rate Distortion Optimisation method according to an embodiment of the invention when the gradient is zero;
  • Fig. 5 shows a more specific portion of the Rate Distortion Optimisation method according to an embodiment of the invention when the score is one;
  • Fig. 6 shows a block schematic diagram of a general hardware encoder incorporating RDO decision circuitry
  • Fig. 7 shows a schematic block diagram of the Rate Distortion Optimisation apparatus according to an embodiment of the invention.
  • the gradient of MSE vs bit cost is used, derived from a graph based on more than a single QP point.
  • Fig. 1 shows such a graph, using a first exemplary set of data for MSE vs bit cost at two different macroblock encoding modes A and B.
  • the ⁇ QP distance is typically set between 1 and 5 QP points away from the actual coded QP, for example 3 QPs away.
  • the proposed modified RDO engine calculates the MSE and bit cost of each macroblock encoding mode option at each of the three QP points. These three QP points are effectively used to calculate the Lagrangian multiplier ⁇ , i.e. the gradient of MSE/bit cost. Using a piece wise linear approximation between the three QP points, the lowest rate-distortion point can be determined and therefore the optimum macroblock mode can be chosen.
  • QP2 is the actual coded QP
  • QP1 and QP3 are support points used to calculate the gradient for each macroblock mode.
  • the final choice of macroblock coding mode is only coded at the centre QP point, e.g. QP2., with QP1 and QP3 only being helper points to decide the macroblock coding mode to use.
  • QP1 and QP3 are never used for the actual coding.
  • Fig. 1 it can be seen that the interpolation of macroblock Mode B between QP2 101 and QP3 102 is lower than the macroblock Mode A at QP2 103. Furthermore, the interpolation of macroblock Mode A between QP1 104 and QP2 103 is higher than macroblock Mode B at QP2 101. As a result, macroblock Mode B is chosen as the better macroblock mode. This choice of encoding mode provides a marginally lower quality result, but at 25% less bit cost, which is a worthwhile compromise since the bits saved here can be used to encode more challenging macroblocks elsewhere.
  • the herein described method selects the macroblock mode which is closest to the graph origin (zero point in the bottom left hand corner), i.e. having a low MSE as well as a low bit cost, is chosen.
  • Distortion Optimisation method and apparatus chooses a better optimum macroblock encoding mode decision.
  • the macroblock mode decision is not quite as obvious.
  • Fig. 2 shows a second example where the decision for the best macroblock mode is somewhat more complicated.
  • the line connecting Mode B QP2 201 and QP3 202 is above Mode A QP2 203.
  • Mode B QP2 201 is below the line connecting Mode A QP1 204 and QP2 203. Therefore, it is not clear which QP point of which mode is now the best.
  • a more complex portion of the herein described method is used for the macroblock mode decision, as explained in more detail below and with reference to Fig. 3.
  • the method starts by selecting the intra macroblock as the seed 301 , and estimates the average distortion of candidate alternative macroblock modes by averaging the distortion of the intra macroblock and the first available inter frame predicted macroblock. The method then iterates through candidates. In each iteration, the current "best" macroblock option (MBO) is compared to a candidate and in the case where the candidate proves better, the candidate then becomes the new "best” MBO 309. This iterative process continues until all candidates have been evaluated 313, and a macroblock mode is chosen 314. In most video compression methods there are many macroblock modes to consider. For example, macroblock mode candidates could include: intra coded, forward predicted, backward predicted, bi-directional predicted and any further legal combinations thereof. The number of macroblock modes may reach 20 or more. The more macroblock modes available to chose from, the more important it is to choose the best one.
  • the first step is to compare the candidate's distortion to the "best" MBO distortion at the number of bits required by the "best” MBO 302. If the interpolated candidate has a lower distortion, then its score is incremented by one 303. 2)
  • the second step compares the distortion of the "best” MBO to the candidate's at the number of bits required by the candidate 304. If the interpolated "best" MBO distortion is bigger than the candidate distortion, then the candidate's score is incremented by one again 305.
  • a zero gradient assessment portion 400 utilising macroblock activity is used here, where the emphasis is changed so that low activity macroblocks that minimize distortion are favoured over a "best" MBO that offers bit savings.
  • ThresholcM (T1) can be in the range of 22... 42;
  • Scale can be in the range 0.9 ... 1.9;
  • Threshold2 (T2) can be in the range 4 ... 19;
  • QP is the quantisation parameter (for example, in MPEG-2, QP may have a value between 1... 31 (inclusive));
  • Estimated Avg MSE is the average of several macroblock mode MSE, for example the intra macroblock and the first available inter frame predicted macroblock;
  • LUT is a look-up table (LUT) that can be derived empirically.
  • An example LUT is:
  • Best MBO factor (best MBO bit cost - Candidate MBO bit cost) * (Estimated avg MSE - best MBO MSE)/(best MBO bit cost);
  • Candidate MBO factor Candidate MBO MSE + (Candidate MBO bit cost - best MBO bit cost) * (Estimated Avg MSE - best MBO MSE)/(best MBO bit cost)
  • the process 400 uses a number of evaluations 402 to 409 of the candidate MBO against the current best MBO to decide whether the candidate MBO 410 or current "best" MBO 41 1 becomes the "best" MBO for the next iteration.
  • Macroblock activity should be calculated depending on the type of transformation. For example, in MPEG-2 and MPEG-4 Part 2 (Visual), an 8x8 DCT transformation is used. In these cases the minimum of four DCT luma block activities should be calculated as shown in equation (3):
  • Y x , y is the 8 bit luma pixel
  • Yaverage is the average value of all the pixels in the macroblock.
  • the process uses a number of evaluations of the calculated candidate macroblock activity against the "best" MBO metrics (step 502), defined thresholds (steps 503) or combinations of the two using ratios (steps 504-506), to decide whether the candidate mode 507 or current "best” MBO 508 becomes the "best” MBO for the next iteration.
  • Best MBO bit cost > Candidate MBO bit cost + thresholds AND Candidate MBO MSE ⁇ 1.2 * best MBO MSE)
  • threshold3 (T3 in Fig. 5) may be any suitable value, however values are typically in the range of 40 ... 50.
  • Threshold4 (T4 in Fig. 5) may be any suitable value, however values are typically in the range of 60 ... 70.
  • Threshold ⁇ (T5 in Fig. 5) may be any suitable value, however values are typically in the range of 20 ... 40.
  • Fig. 6 shows a schematic block diagram of a generic hardware encoder using a rate- distortion mode decision block 610.
  • the Rate Distortion Mode decision block 610 takes inputs from the multiple inverse transform block 620 (i.e. the distorted video signals of several macroblock modes at more than one QP point, 702-705 of Fig. 7), and from the multiple entropy coding block 630 (i.e. the bit costs of several macroblock modes at more than one QP point, 730-733 of Fig. 7) and the source video signal 701.
  • the Rate Distortion Mode decision block 610 uses these inputs in its calculations, and it outputs the final mode decision 640 back into the multiple entropy coding block 630.
  • An output of the Rate Distortion Mode decision block 610 also provides the chosen macroblock signal 650 into the other functional blocks of the hardware encoder.
  • Figure 7 shows a schematic block diagram of the proposed macroblock mode decision hardware.
  • An embodiment of the hardware includes a set of MSE calculation units 710-713 and gradient calculation units 720 - 723, one instance of each for each macroblock mode being considered (A to D in example given, but up to 20 may be typically used).
  • the MSE calculation units 710-713 take as inputs the source video 701 and the coded video (i.e. including any coding distortion) for the multiple QP points in use for each macroblock encoding mode (three in the example shown - 702 to 705), and outputs the MSE into the gradient units 720-723.
  • the gradient calculation units then use the bit costs for each mode (730-733) at each QP point, and the MSE metrics to calculate the piece wise interpolated gradient on the graph of MSE vs bit rate (i.e.
  • a comparison multiplexing unit 740 which carries out the above described RDO method then outputs the chosen final mode decision 640 to the multiple entropy encoding block and the chosen Macroblock signal 650 to the other functional blocks of the hardware encoder.
  • the above described method maybe carried out by any suitably adapted or designed hardware. Portions of the method may also be embodied in a set of instructions, stored on a computer readable medium, which when loaded into a computer, Digital Signal Processor (DSP) or similar, causes the computer to carry out the hereinbefore described method.
  • DSP Digital Signal Processor
  • the method may be embodied as a specially programmed, or hardware designed, integrated circuit which operates to carry out the described RDO method when loaded into said integrated circuit.
  • the integrated circuit may be formed as part of a general purpose computing device, such as a PC, and the like, or it may be formed as part of a more specialised device, such as a hardware video encoder, or the like.
  • One exemplary hardware embodiment is that of a Field Programmable Gate Array (FPGA) programmed to carry out the described RDO method and /or provide the described apparatus, the FPGA being located on a daughterboard of a rack mounted video encoder held in a video production suite, location video support van/uplink van or the like, for use in, for example, television broadcasting or video production.
  • FPGA Field Programmable Gate Array
  • ASICs Application Specific Integrated Circuits

Abstract

There is provided a method of Rate Distortion Optimisation in digital video coding, comprising determining a mean square error and bit cost for a plurality of QP points for each macroblock coding mode option under consideration, and selecting a best macroblock coding mode option dependent upon an interpolation of the plurality of QP points for each macroblock coding mode option under consideration. There is also provided a Rate Distortion Optimisation apparatus for carrying out the method, and a computer readable medium carrying instructions to carry out the method.

Description

Method and apparatus for Rate Distortion Optimisation
Technical Field
The invention is related to video coding in general, and in particular to a method and apparatus for deciding a macroblock video mode during video coding.
Background
In conventional video compression encoders, macroblock (MB) encoding mode decisions are carried out by comparing the level of distortion of each macroblock mode (e.g. intra coding versus predicted coding) and choosing the mode with the lowest distortion. However, to code the lowest distortion mode could require a disproportional number of bits, thus reducing the number of bits available to allocate to coding other macroblocks. On the other hand, choosing a macroblock encoding mode which used the lowest number of bits would generate excessive artefacts. Therefore, a compromise between distortion and bit rate would provide a better picture quality.
Rate-distortion optimisation (RDO) is a process in which video quality (the distortion of a macroblock) is compared against the bit rate required to encode the video signal (which controls the number of bits used to encode a macroblock). In most video compression methods, RDO is implemented by using the 'lowest MSE method' which calculates a metric that combines distortion with bit cost to determine the best macroblock encoding mode to use. This is done by multiplying the macroblock bit cost by a constant and adding it to the macroblock distortion as shown in equation (1 ) below:
J = MSE + λ x bit cost (1 )
Where:
MSE is the Mean Square Error of a particular macroblock mode (see equation (2) below); λ is the Lagrangian multiplier; and bit cost is the number of bits required to code this macroblock mode.
MSE is defined as shown in equation (2):
(2)
MSE = -jjiΣ∑( ^SΛR^Cx*..yy ~- UDlislτ X*,,yy ) x=0 v=0 y
Where SRCx y refers to the video source pixels; and
DIST x y refers to the video coded pixels of a particular macroblock mode.
Using this method, the macroblock mode with the lowest metric J is chosen.
However, due to the strong non-linearity of some compression methods, equation (1 ) does not always produce an optimum macroblock coding mode decision in compression encoders. Furthermore, the Lagrangian multiplier varies considerably in different macroblock modes.
Summary
Accordingly, there is provided a method of Rate Distortion Optimisation in digital video coding, comprising determining a mean square error and bit cost for a plurality of Quantization Parameter (QP) points for each macroblock coding mode option under consideration, and selecting a best macroblock coding mode option dependent upon an interpolation of the plurality of QP points for each macroblock coding mode option under consideration.
The use of interpolated QP points in the assessment of which macroblock encoding mode to use provides a better quality output coded video than the previously used simplistic "lowest MSE cost" method.
Optionally, the interpolation of the plurality of QP points for each macroblock coding mode option under consideration comprises piecewise linear approximation of the plurality of QP points for each macroblock coding mode option under consideration. Optionally, the piecewise linear approximation of the plurality of QP points for each macroblock coding mode option under consideration comprises iteratively carrying out processing of a plurality of candidates to derive a final best macroblock coding option, starting from a seed current best macroblock coding option. The processing involves comparing a candidate macroblock coding option against a current best macroblock coding option to provide a score for the candidate macroblock coding option, and then selecting one out of the candidate macroblock coding option and the current best macroblock coding option to become a new current best macroblock coding option for a subsequent iterative comparison calculation. The selection is dependent on the candidate macroblock coding option score. The candidate score is determined by the following scoring process: if the candidate macroblock coding option distortion is lower than the current best macroblock coding option distortion at the number of bits required by the current best macroblock coding option, then the candidate score is increased by one, and if the current macroblock coding option distortion is larger than the candidate macroblock coding option distortion at the number of bits required by the candidate macroblock coding option, then the candidate score is increased by one. After each iteration, the score is assessed by the following process: if the candidate score is two, then the candidate macroblock coding option becomes a new current best macroblock coding option but if the candidate score is zero, then the current best macroblock coding options remains for a next iteration.
Optionally, for the case where the mean square error does not change between two QP points under assessment, such that the gradient is zero, then the method further comprises carrying out the following pseudocode or equivalent: lf( Macroblock_activity < Thresholdi )
{ lf( Candidate MBO MSE < Estimated Avg MSE)
{ lf( Candidate MBO bit cost <= best MBO bit cost )
{ lf( Candidate MBO MSE <= (best MBO bit cost - Candidate MBO bit cost) *( Estimated Avg MSE - best MBO MSE)/( best MBO bit cost) ) {
Candidate MBO becomes new 'best' MBO } } Else
{ lf( (Candidate MBO MSE + (Candidate MBO bit cost - best MBO bit cost)*( Estimated Avg MSE - best MBO MSE)/( best MBO bit cost) ) < MBO MSE ) {
Candidate MBO becomes new 'best' MBO } } } ; Else
{ lf( Candidate MBO MSE < best MBO MSE)
{ lf( (Candidate MBO bit cost - Best MBO bit cost) < LUT[QP] )
{
Candidate MBO becomes new 'best' MBO
} } Else
{ lf( (Candidate MBO MSE <= Scale*best MBO MSE) AND (Best MBO bit cost >= Threshold∑) )
{ Candidate MBO becomes new 'best' MBO
} } } Where: ThresholcM (T1) can be in the range of 22... 42; Scale can be in the range 0.9 ... 1.9; Threshold2 (T2) can be in the range 4 ... 19;
QP is the quantisation parameter (for example, in MPEG-2, QP may have a value between 1... 31 (inclusive));
Estimated Avg MSE is the average of several macroblock mode MSE, for example the intra macroblock and the first available inter frame predicted macroblock; and LUT is a look-up table (LUT).
Optionally, where the candidate score is one, and so neither the candidate macroblock coding option or the current best macroblock coding option is clearly the better option on face value, then the method further comprises carrying out the following pseudocode or equivalent: lf( Candidate MBO bit cost >= best MBO bit cost ) { lf( Macroblock_activity < threshold3 )
{ lf( Candidate MBO bit cost - best MBO bit cost <= threshold4 AND
Candidate MBO MSE < 0.9 x best MBO MSE ) {
Candidate MBO becomes new 'best' MBO }
}
Else { lf( Candidate MBO bit cost - best MBO bit cost <= threshold4 AND Candidate MBO MSE < 0.8 x best MBO MSE )
{
Candidate MBO becomes new 'best' MBO ;
; ;
Else { lf( Macroblock_activity >= threshold3 AND
Best MBO bit cost >= Candidate MBO bit cost + thresholds AND Candidate MBO MSE < 1.2 * best MBO MSE)
{ Candidate MBO becomes new 'best' MBO
} }
Where:
Threshold3 is in the range of 40 ... 50; Threshold4 is in the range of 60 ... 70; and Thresholdδ is in the range of 20 ... 40.
Optionally, the seed current best macroblock option is a intra coded macroblock.
Optionally, the plurality of QP points used comprises 3.
There is also provided a rate distortion optimisation apparatus comprising at least one Mean Square Error calculation unit, at least one bit cost calculation unit, at least one gradient calculation unit, and a selection unit, wherein the selection circuit is adapted to carry out any of the described method.
Optionally, there is one Mean Square Error calculation unit, bit cost calculation unit and gradient calculation unit per macroblock encoding mode under consideration. However, a single set of calculation units that are used repeatedly on different video data sets maybe used, where appropriate.
There is also provided a computer-readable medium, carrying instructions, which, when executed, causes computer logic to carry out any of the described method.
The proposed RDO method and apparatus provides an improved picture quality in digitally coded video, both in terms of Peak Signal to Noise Ratio (PSNR) and perceived/subjective visual quality. The ability of existing decoding hardware is not affected by the use of the described method and apparatus. Embodiments of the present invention are particularly beneficial when used to upgrade coding performance of digital video encoders that encode under older compression standards. This is because such an upgrade improves encoding performance without affecting the ability of existing decoders to decode the video data stream produced. Hence, quality of the overall system is improved without having to wholly replace the existing video decoding hardware at the receiver end. When dealing with an installed user base, this is an important consideration.
Brief description of the drawings A method and apparatus for Rate Distortion Optimisation will now be described, by way of example only, and with reference to the accompanying drawings in which:
Fig. 1 shows a first exemplary graph of MSE vs bit cost for two different macroblock encoding modes A and B; Fig.2 shows a second exemplary graph of MSE vs bit cost for two different macroblock encoding modes A and B;
Fig. 3 shows an overview flow chart of the Rate Distortion Optimisation method according to an embodiment of the invention;
Fig. 4 shows a more specific portion of the Rate Distortion Optimisation method according to an embodiment of the invention when the gradient is zero;
Fig. 5 shows a more specific portion of the Rate Distortion Optimisation method according to an embodiment of the invention when the score is one;
Fig. 6 shows a block schematic diagram of a general hardware encoder incorporating RDO decision circuitry; Fig. 7 shows a schematic block diagram of the Rate Distortion Optimisation apparatus according to an embodiment of the invention.
Detailed description
An embodiment of the invention will now be described with reference to the accompanying drawings in which the same or similar parts or steps have been given the same or similar reference numerals. The prior art method of choosing a macroblock encoding mode utilising equation (1 ) as described above is carried out based on a single quantisation parameter (QP).
According to embodiments of the present invention, in order to calculate the most appropriate macroblock encoding mode, the gradient of MSE vs bit cost is used, derived from a graph based on more than a single QP point. Fig. 1 shows such a graph, using a first exemplary set of data for MSE vs bit cost at two different macroblock encoding modes A and B.
Whilst the number of extra QP points to use might vary according the specific implementation requirements, in the example shown below three QP points are used for each macroblock option: the currently used macroblock QP, as well as QP-ΔQP and QP+ΔQP. The ΔQP distance is typically set between 1 and 5 QP points away from the actual coded QP, for example 3 QPs away.
The proposed modified RDO engine calculates the MSE and bit cost of each macroblock encoding mode option at each of the three QP points. These three QP points are effectively used to calculate the Lagrangian multiplier λ, i.e. the gradient of MSE/bit cost. Using a piece wise linear approximation between the three QP points, the lowest rate-distortion point can be determined and therefore the optimum macroblock mode can be chosen.
In each macroblock mode, QP2 is the actual coded QP, whereas QP1 and QP3 are support points used to calculate the gradient for each macroblock mode. This is to say, the final choice of macroblock coding mode is only coded at the centre QP point, e.g. QP2., with QP1 and QP3 only being helper points to decide the macroblock coding mode to use. QP1 and QP3 are never used for the actual coding.
Returning to Fig. 1 , it can be seen that the interpolation of macroblock Mode B between QP2 101 and QP3 102 is lower than the macroblock Mode A at QP2 103. Furthermore, the interpolation of macroblock Mode A between QP1 104 and QP2 103 is higher than macroblock Mode B at QP2 101. As a result, macroblock Mode B is chosen as the better macroblock mode. This choice of encoding mode provides a marginally lower quality result, but at 25% less bit cost, which is a worthwhile compromise since the bits saved here can be used to encode more challenging macroblocks elsewhere.
In effect, the herein described method selects the macroblock mode which is closest to the graph origin (zero point in the bottom left hand corner), i.e. having a low MSE as well as a low bit cost, is chosen.
By comparison, using the simple 'lowest MSE method' would choose macroblock Mode A because it has a lower MSE than macroblock Mode B.
Whilst the above in isolation is a somewhat arbitrary choice of bit cost savings over picture quality, the method acting as a whole provides significant improvement in picture quality for a given bit rate.
The example shown in Figure 1 is a clear-cut case where the described Rate
Distortion Optimisation method and apparatus chooses a better optimum macroblock encoding mode decision. However, there are many cases in which the macroblock mode decision is not quite as obvious. Fig. 2 shows a second example where the decision for the best macroblock mode is somewhat more complicated. In this example, the line connecting Mode B QP2 201 and QP3 202 is above Mode A QP2 203. On the other hand, Mode B QP2 201 is below the line connecting Mode A QP1 204 and QP2 203. Therefore, it is not clear which QP point of which mode is now the best. In such a case, a more complex portion of the herein described method is used for the macroblock mode decision, as explained in more detail below and with reference to Fig. 3.
The method starts by selecting the intra macroblock as the seed 301 , and estimates the average distortion of candidate alternative macroblock modes by averaging the distortion of the intra macroblock and the first available inter frame predicted macroblock. The method then iterates through candidates. In each iteration, the current "best" macroblock option (MBO) is compared to a candidate and in the case where the candidate proves better, the candidate then becomes the new "best" MBO 309. This iterative process continues until all candidates have been evaluated 313, and a macroblock mode is chosen 314. In most video compression methods there are many macroblock modes to consider. For example, macroblock mode candidates could include: intra coded, forward predicted, backward predicted, bi-directional predicted and any further legal combinations thereof. The number of macroblock modes may reach 20 or more. The more macroblock modes available to chose from, the more important it is to choose the best one.
The comparison of a candidate to the "best" MBO uses piecewise linear approximation of the RDO curves and a scoring system. The process is twofold:
1 ) The first step is to compare the candidate's distortion to the "best" MBO distortion at the number of bits required by the "best" MBO 302. If the interpolated candidate has a lower distortion, then its score is incremented by one 303. 2) The second step compares the distortion of the "best" MBO to the candidate's at the number of bits required by the candidate 304. If the interpolated "best" MBO distortion is bigger than the candidate distortion, then the candidate's score is incremented by one again 305.
At this point, if the score is equal to two 308, then the candidate becomes the new "best" MBO 309, whereas if the score is equal to zero 310, then the current "best" MBO remains the "best" MBO for the next iteration 31 1.
If during the evaluation steps either the candidate or "best" MBO had a zero gradient (i.e. same MSE value for both QP points, which may happen due to the integer based calculations being used) 306, then a zero gradient assessment portion 400 utilising macroblock activity is used here, where the emphasis is changed so that low activity macroblocks that minimize distortion are favoured over a "best" MBO that offers bit savings.
In particular, the following pseudocode is executed to carry out the zero gradient assessment portion 400:
lf( Macroblock_activity < Thresholdi ) { lf( Candidate MBO MSE < Estimated Avg MSE )
{ lf( Candidate MBO bit cost <= best MBO bit cost ) { lf( Candidate MBO MSE <= (best MBO bit cost - Candidate MBO bit cost) *( Estimated Avg MSE - best MBO MSE)/( best MBO bit cost) )
{ Candidate MBO becomes new 'best' MBO
} } Else
{ lf( (Candidate MBO MSE + (Candidate MBO bit cost - best MBO bit cost) *( Estimated Avg MSE - best MBO MSE)/( best MBO bit cost) ) < MBO MSE )
{
Candidate MBO becomes new 'best' MBO ;
; ; ;
Else { lf( Candidate MBO MSE < best MBO MSE)
{ lf( (Candidate MBO bit cost - Best MBO bit cost) < LUT[QP])
{ Candidate MBO becomes new 'best' MBO
} } Else
{ lf( (Candidate MBO MSE <= Scale*best MBO MSE) AND (Best MBO bit cost >= Threshold∑) )
{
Candidate MBO becomes new 'best' MBO ;
; ;
Where: ThresholcM (T1) can be in the range of 22... 42;
Scale can be in the range 0.9 ... 1.9;
Threshold2 (T2) can be in the range 4 ... 19;
QP is the quantisation parameter (for example, in MPEG-2, QP may have a value between 1... 31 (inclusive)); Estimated Avg MSE is the average of several macroblock mode MSE, for example the intra macroblock and the first available inter frame predicted macroblock; and
LUT is a look-up table (LUT) that can be derived empirically. An example LUT is:
8 bit look-up table LUT[J = {
52, 34, 33, 29, 28, 23, 21, 20, //[QP] = [0...7]
20, 18, 16, 14, 12, 10, 8, 7, // [QP] = [8...15]
7, 6, 6, 5, 5, 4, 4, 4, // [QP] = [16..23]
2 , 2, 2, 2, 2, 1, 1, 1 //[QP] = [24..31] ;
The above pseudocode is represented as a flowchart in Fig. 4. For clarity, the following shorthand notations are used:
Best MBO factor = (best MBO bit cost - Candidate MBO bit cost) * (Estimated avg MSE - best MBO MSE)/(best MBO bit cost); and
Candidate MBO factor = Candidate MBO MSE + (Candidate MBO bit cost - best MBO bit cost)*(Estimated Avg MSE - best MBO MSE)/(best MBO bit cost) The process 400 uses a number of evaluations 402 to 409 of the candidate MBO against the current best MBO to decide whether the candidate MBO 410 or current "best" MBO 41 1 becomes the "best" MBO for the next iteration.
Macroblock activity should be calculated depending on the type of transformation. For example, in MPEG-2 and MPEG-4 Part 2 (Visual), an 8x8 DCT transformation is used. In these cases the minimum of four DCT luma block activities should be calculated as shown in equation (3):
(3) macroblock _ activity =
Where:
Yx,y is the 8 bit luma pixel; and
Yaverage is the average value of all the pixels in the macroblock.
Returning to Fig. 3, if the score equals one 312, this means that the candidate proved better than the current "best" MBO in one of the above steps, but worse in the other. In this case, a further specific score=1 assessment process involving the macroblock activity as defined in Equation (3) above is used. This process 500 is shown in Fig. 5, and described in more detail below.
The process uses a number of evaluations of the calculated candidate macroblock activity against the "best" MBO metrics (step 502), defined thresholds (steps 503) or combinations of the two using ratios (steps 504-506), to decide whether the candidate mode 507 or current "best" MBO 508 becomes the "best" MBO for the next iteration.
The above decision process may be implemented by executing the following pseudo code:
lf( Candidate MBO bit cost >= best MBO bit cost ) { lf( Macroblock_activity < threshold3 )
{ lf( Candidate MBO bit cost - best MBO bit cost <= threshold4 AND Candidate MBO MSE < 0.9 x best MBO MSE ) {
Candidate MBO becomes new 'best' MBO
}
}
Else { lf( Candidate MBO bit cost - best MBO bit cost <= threshold4 AND Candidate MBO MSE < 0.8 x best MBO MSE )
{
Candidate MBO becomes new 'best' MBO ;
; ;
Else
{ lf( Macroblock_activity >= threshold3 AND
Best MBO bit cost >= Candidate MBO bit cost + thresholds AND Candidate MBO MSE < 1.2 * best MBO MSE)
{
Candidate MBO becomes new 'best' MBO ;
;
Based on equation (3), threshold3 (T3 in Fig. 5) may be any suitable value, however values are typically in the range of 40 ... 50.
Threshold4 (T4 in Fig. 5) may be any suitable value, however values are typically in the range of 60 ... 70. Thresholdδ (T5 in Fig. 5) may be any suitable value, however values are typically in the range of 20 ... 40.
Fig. 6 shows a schematic block diagram of a generic hardware encoder using a rate- distortion mode decision block 610. The Rate Distortion Mode decision block 610 takes inputs from the multiple inverse transform block 620 (i.e. the distorted video signals of several macroblock modes at more than one QP point, 702-705 of Fig. 7), and from the multiple entropy coding block 630 (i.e. the bit costs of several macroblock modes at more than one QP point, 730-733 of Fig. 7) and the source video signal 701. The Rate Distortion Mode decision block 610 uses these inputs in its calculations, and it outputs the final mode decision 640 back into the multiple entropy coding block 630. An output of the Rate Distortion Mode decision block 610 also provides the chosen macroblock signal 650 into the other functional blocks of the hardware encoder.
Figure 7 shows a schematic block diagram of the proposed macroblock mode decision hardware.
An embodiment of the hardware includes a set of MSE calculation units 710-713 and gradient calculation units 720 - 723, one instance of each for each macroblock mode being considered (A to D in example given, but up to 20 may be typically used). The MSE calculation units 710-713 take as inputs the source video 701 and the coded video (i.e. including any coding distortion) for the multiple QP points in use for each macroblock encoding mode (three in the example shown - 702 to 705), and outputs the MSE into the gradient units 720-723. The gradient calculation units then use the bit costs for each mode (730-733) at each QP point, and the MSE metrics to calculate the piece wise interpolated gradient on the graph of MSE vs bit rate (i.e. a point to point gradient calculation, as shown in Figs. 1 and 2). A comparison multiplexing unit 740, which carries out the above described RDO method then outputs the chosen final mode decision 640 to the multiple entropy encoding block and the chosen Macroblock signal 650 to the other functional blocks of the hardware encoder. The above described method maybe carried out by any suitably adapted or designed hardware. Portions of the method may also be embodied in a set of instructions, stored on a computer readable medium, which when loaded into a computer, Digital Signal Processor (DSP) or similar, causes the computer to carry out the hereinbefore described method.
Equally, the method may be embodied as a specially programmed, or hardware designed, integrated circuit which operates to carry out the described RDO method when loaded into said integrated circuit. The integrated circuit may be formed as part of a general purpose computing device, such as a PC, and the like, or it may be formed as part of a more specialised device, such as a hardware video encoder, or the like.
One exemplary hardware embodiment is that of a Field Programmable Gate Array (FPGA) programmed to carry out the described RDO method and /or provide the described apparatus, the FPGA being located on a daughterboard of a rack mounted video encoder held in a video production suite, location video support van/uplink van or the like, for use in, for example, television broadcasting or video production.
Another exemplary hardware embodiment of the present invention is that of hardware video encoder device embodied as one or more Application Specific Integrated Circuits (ASICs).
It will be apparent to the skilled person that the exact order and content of the steps carried out in the method described herein may be altered according to the requirements of a particular set of execution parameters, such as speed, quality or output bit rate of the video, and the like. Furthermore, it will be apparent that different embodiments of the disclosed apparatus may selectively implement certain features of the present invention in different combinations, according to the requirements of a particular implementation of the invention as a whole. Accordingly, the claim numbering is not to be construed as a strict limitation on the ability to move features between claims, and as such portions of dependent claims maybe utilised freely.

Claims

Claims:
1. A method of Rate Distortion Optimisation in digital video coding, comprising: determining a mean square error and bit cost for a plurality of QP points for each macroblock coding mode option under consideration; and selecting a best macroblock coding mode option dependent upon an interpolation of the plurality of QP points for each macroblock coding mode option under consideration.
2. The method of claim 1 , wherein the interpolation of the plurality of QP points for each macroblock coding mode option under consideration comprises piecewise linear approximation of the plurality of QP points for each macroblock coding mode option under consideration.
3. The method of claim 2, wherein the piecewise linear approximation of the plurality of QP points for each macroblock coding mode option under consideration comprises: iteratively carrying out the following on a plurality of candidates to derive a final best macroblock coding option, starting from a seed current best macroblock coding option: comparing a candidate macroblock coding option against a current best macroblock coding option to provide a score for the candidate macroblock coding option; selecting a one of the candidate macroblock coding option or the current best macroblock coding option to become a new current best macroblock coding option for a subsequent iterative comparison calculation dependent on the candidate macroblock coding option score; wherein providing a candidate score comprises:
If the candidate macroblock coding option distortion is lower than the current best macroblock coding option distortion at the number of bits required by the current best macroblock coding option, then the candidate score is increased by one; and
If the current macroblock coding option distortion is larger than the candidate macroblock coding option distortion at the number of bits required by the candidate macroblock coding option, then the candidate score is increased by one; wherein if the candidate score is two, then the candidate macroblock coding option becomes a new current best macroblock coding option and wherein if the candidate score is zero, then the current best macroblock coding options remains for a next iteration.
4. The method of claim 3, wherein if the mean square error does not change between two QP points under assessment, such that the gradient is zero, then the method further comprises carrying out the following pseudocode or equivalent: lf( Macroblock_activity < Thresholdi ) { lf( Candidate MBO MSE < Estimated Avg MSE)
{ lf( Candidate MBO bit cost <= best MBO bit cost )
{ lf( Candidate MBO MSE <= (best MBO bit cost - Candidate MBO bit cost) *( Estimated Avg MSE - best MBO MSE)/( best MBO bit cost) )
{
Candidate MBO becomes new 'best' MBO ;
;
Else
{ lf( (Candidate MBO MSE + (Candidate MBO bit cost - best MBO bit cost) *( Estimated Avg MSE - best MBO MSE)/( best MBO bit cost) ) < MBO MSE )
{
Candidate MBO becomes new 'best' MBO
} ;
; ;
Else { lf( Candidate MBO MSE < best MBO MSE )
{ lf( (Candidate MBO bit cost - Best MBO bit cost) < LUT[QP])
{ Candidate MBO becomes new 'best' MBO
} } Else
{ lf( (Candidate MBO MSE <= Scale*best MBO MSE) AND (Best MBO bit cost >= Threshold2) )
{
Candidate MBO becomes new 'best' MBO
} ;
;
Where:
ThresholcM (T1) can be in the range of 22... 42;
Scale can be in the range 0.9 ... 1.9; Threshold2 (T2) can be in the range 4 ... 19;
QP is the quantisation parameter (for example, in MPEG-2, QP may have a value between 1... 31 (inclusive));
Estimated Avg MSE is the average of several macroblock mode MSE, for example the intra macroblock and the first available inter frame predicted macroblock; and LUT is a look-up table (LUT).
5. The method of claim 3 or 4, wherein if the candidate score is one, the method further comprises carrying out the following pseudocode or equivalent: lf( Candidate MBO bit cost >= best MBO bit cost ) { lf( Macroblock_activity < thresholdβ )
{ lf( Candidate MBO bit cost - best MBO bit cost <= threshold4 AND
Candidate MBO MSE < 0.9 x best MBO MSE ) {
Candidate MBO becomes new 'best' MBO }
} Else
{ lf( Candidate MBO bit cost - best MBO bit cost <= threshold4 AND Candidate MBO MSE < 0.8 x best MBO MSE )
{ Candidate MBO becomes new 'best' MBO
} } } Else { lf( Macroblock_activity >= threshold3 AND
Best MBO bit cost >= Candidate MBO bit cost + thresholds AND Candidate MBO MSE < 1.2 * best MBO MSE)
{ Candidate MBO becomes new 'best' MBO
} }
Where:
Threshold3 is in the range of 40 ... 50; Threshold4 is in the range of 60 ... 70; and Thresholdδ is in the range of 20 ... 40.
6. The method of any of claims 3 to 5, wherein the seed current best macroblock option is a intra coded macroblock.
7. The method of any preceding claim, wherein the plurality of QP points used comprises 3.
8. A rate distortion optimisation apparatus comprising: at least one Mean Square Error calculation unit; at least one bit cost calculation unit; at least one gradient calculation unit; and a selection unit, wherein the selection circuit is adapted to carry out any of method claims 1 to 7.
9. The rate distortion optimisation apparatus of claim 14, wherein there is one Mean Square Error calculation unit, bit cost calculation unit and gradient calculation unit per macroblock encoding mode under consideration.
10. A computer-readable medium, carrying instructions, which, when executed, causes computer logic to carry out any of method claims 1 to 7.
EP09779309A 2009-04-17 2009-04-17 Method and apparatus for rate distortion optimisation Withdrawn EP2420061A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/054596 WO2010118780A1 (en) 2009-04-17 2009-04-17 Method and apparatus for rate distortion optimisation

Publications (1)

Publication Number Publication Date
EP2420061A1 true EP2420061A1 (en) 2012-02-22

Family

ID=40941745

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09779309A Withdrawn EP2420061A1 (en) 2009-04-17 2009-04-17 Method and apparatus for rate distortion optimisation

Country Status (2)

Country Link
EP (1) EP2420061A1 (en)
WO (1) WO2010118780A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016178880A1 (en) * 2015-05-06 2016-11-10 NGCodec Inc. Intra prediction processor with reduced cost block partitioning and refined intra mode selection

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
KONG H ET AL: "Coding mode optimization for MPEG-2 transcoding with spatial resolution reduction", VISUAL COMMUNICATIONS AND IMAGE PROCESSING; 8-7-2003 - 11-7-2003; LUGANO,, 8 July 2003 (2003-07-08), XP030080671 *
MA W GAO PEKING UNIV (CHINA) S ET AL: "Rate distortion cost modeling of skip mode and early skip mode selection for H.264 MPEG-4 AVC", VISUAL COMMUNICATIONS AND IMAGE PROCESSING; 20-1-2009 - 22-1-2009; SAN JOSE,, 20 January 2009 (2009-01-20), XP030081734 *
SCHUSTER G M ET AL: "FAST AND EFFICIENT MODE AND QUANTIZER SELECTION IN THE RATE DISTORTION SENSE FOR H.263", PROCEEDINGS OF SPIE - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, S P I E - INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, US, vol. 2727, no. PART 02, 17 March 1996 (1996-03-17), pages 784 - 795, XP000617893, ISSN: 0277-786X, DOI: 10.1117/12.233293 *
See also references of WO2010118780A1 *

Also Published As

Publication number Publication date
WO2010118780A1 (en) 2010-10-21

Similar Documents

Publication Publication Date Title
Zhang et al. Just-noticeable difference-based perceptual optimization for JPEG compression
KR101670116B1 (en) deblocking filtering
US8699563B2 (en) Image coding apparatus and image coding method
KR100932879B1 (en) Macroblock Level Rate Control
US7873224B2 (en) Enhanced image/video quality through artifact evaluation
US8462846B2 (en) Video encoder and method for performing intra-prediction and video data compression
KR102323427B1 (en) Method and Apparatus for image encoding
EP1675402A1 (en) Optimisation of a quantisation matrix for image and video coding
KR101621854B1 (en) Tsm rate-distortion optimizing method, encoding method and device using the same, and apparatus for processing picture
US8374451B2 (en) Image processing device and image processing method for reducing the circuit scale
KR20120061930A (en) Distortion estimation for quantized data
JP2021528877A (en) Boundary filtering of PLANAR mode and DC mode in intra prediction
Prangnell et al. Adaptive quantization by soft thresholding in HEVC
Sun et al. Rate distortion modeling and adaptive rate control scheme for high efficiency video coding (HEVC)
Yan et al. Adaptive distortion-based intra-rate estimation for H. 264/AVC rate control
KR20180005185A (en) Image coding method and apparatus for compensating sample values, image decoding method and apparatus for compensating sample values
EP2420061A1 (en) Method and apparatus for rate distortion optimisation
Slowack et al. Accounting for quantization noise in online correlation noise estimation for distributed video coding
JP5363302B2 (en) Image coding apparatus and image conversion apparatus
Huang et al. Quality improvement of video codec by rate-distortion optimized quantization
Pan et al. A fast inter-mode decision scheme based on luminance difference for H. 264/AVC
US8711927B2 (en) System and method for video encoding
KR20080017136A (en) Fast mode decision method for h.264 encoding
JP2024000443A (en) Video image coding device and program
Gang et al. Error resilient motion estimation in multiple reference frame video coding

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20111010

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20121128

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20140607