US9210435B2 - Video encoding method and apparatus for estimating a code amount based on bit string length and symbol occurrence frequency - Google Patents

Video encoding method and apparatus for estimating a code amount based on bit string length and symbol occurrence frequency Download PDF

Info

Publication number
US9210435B2
US9210435B2 US13/400,907 US201213400907A US9210435B2 US 9210435 B2 US9210435 B2 US 9210435B2 US 201213400907 A US201213400907 A US 201213400907A US 9210435 B2 US9210435 B2 US 9210435B2
Authority
US
United States
Prior art keywords
code amount
rate
variable
length
bit string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US13/400,907
Other versions
US20120219057A1 (en
Inventor
Masashi Takahashi
Nobuhiro Chihara
Muneaki Yamaguchi
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.)
Hitachi Kokusai Electric Inc
Original Assignee
Hitachi Kokusai Electric Inc
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 Hitachi Kokusai Electric Inc filed Critical Hitachi Kokusai Electric Inc
Assigned to HITACHI KOKUSAI ELECTRIC INC. reassignment HITACHI KOKUSAI ELECTRIC INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHIHARA, NOBUHIRO, TAKAHASHI, MASASHI, YAMAGUCHI, MUNEAKI
Publication of US20120219057A1 publication Critical patent/US20120219057A1/en
Application granted granted Critical
Publication of US9210435B2 publication Critical patent/US9210435B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • H04N19/194Methods 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 involving only two passes
    • 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
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to a video encoding apparatus; and, more particularly, to a video encoding apparatus, capable of executing a rate control by estimating the amount of code bits to be generated.
  • MPEG moving picture experts group
  • a target image to be encoded is predicted on a block basis by using a reconstructed encoded image (decoded image), and a difference (prediction difference) between the predicted image and the target image is encoded to exclude redundancy in the video signal and reduce an amount of code bits (referred to as code amount hereinafter).
  • code amount an amount of code bits
  • a DCT discrete cosine transform
  • the trade-off can be adjusted by controlling a value of parameter employed in quantization (referred to as quantization parameter hereinafter).
  • a coding rate control function needs to be used to adaptively determine the quantization parameter value based on the relationship between a required bit rate and a generated code amount.
  • CABAC context-based adaptive binary arithmetic coding
  • CAVLC context-based adaptive variable length coding
  • the use of the CABAC allows the code amount to be reduced by about 10 ⁇ 20% as compared with the use of the CAVLC, but drastically increases computational burden. Accordingly, to realize a real-time processing, there is a need to design an arithmetic coding processing with high computational burden to be performed independently in a separate process. (see, e.g., Japanese Patent Applications Publication Nos. 2010-219842, 2009-021775 and 2008-011204)
  • the present invention provides a video encoding apparatus which is capable of executing a proper rate control even when results of arithmetic coding processing can not be used in determining a quantization parameter.
  • the video encoding apparatus in accordance with an embodiment of the present invention estimates a code amount to be generated after the arithmetic encoding and executes a rate control based on a relationship between a required bit rate and, an estimated code amount. Especially, the estimation of the code amount to be generated is executed, prior to the arithmetic encoding, based on a bit string length and a symbol occurrence ratio in the bit string, by using an approximation function designed based on statistical data, for example.
  • the video encoding apparatus includes a frequency transform unit for executing an orthogonal transform on a prediction difference or an original image; a quantizing unit for quantizing transform coefficients outputted by the frequency transform unit; a variable-length coder for executing variable-length encoding on a bit string generated from the quantized transform coefficients; a rate controller for performing a rate control to control a code bit stream outputted by the variable-length coder to be maintained at a bit rate; and a code amount estimating unit for estimating a code amount to be generated by the variable-length coder based on a length of the bit string and an occurrence frequency of symbol in the bit string.
  • the rate control unit executes the rate control based on the estimated code amount.
  • a unit of the symbol may be one bit, and the occurrence frequency of symbol may be obtained by counting the number of 0 or 1 included in the bit string.
  • the rate controller may execute the rate control in unit of picture, slice or block, and the variable-length coder may execute an arithmetic coding on the rate-controlled unit of picture, slice or block.
  • a code amount of the rate-controlled unit may be calculated by using an actual code amount generated from a variable-length coding completed region in the rate-controlled unit and said estimated code amount obtained from a variable-length coding non-completed region of the rate-controlled unit.
  • FIG. 1 is a block diagram of a video encoding apparatus in accordance with an embodiment of the present invention
  • FIG. 2 is another block diagram of the video encoding apparatus
  • FIG. 3 is a schematic view illustrating an encoding processing carried out on a macroblock basis
  • FIG. 4 is a conceptual explanatory diagram of an inter-picture prediction processing
  • FIG. 5 is a conceptual explanatory diagram of an intra-screen prediction processing
  • FIG. 6 is a conceptual explanatory diagram of a block size decision upon prediction
  • FIG. 7 is a conceptual explanatory diagram of an encoding mode
  • FIG. 8 is a conceptual explanatory diagram of CABAC
  • FIG. 9 is a conceptual explanatory diagram of a rate control
  • FIG. 10 is a conceptual explanatory diagram of an estimation method for a code amount to be generated
  • FIG. 11 is a simulation result showing a relationship between a bin string length on macroblock basis and a generated code amount
  • FIGS. 12A to 12F are simulation results showing a relationship between a bin string length and a generated code amount (symbol occurrence ratio: 0 to 0.6);
  • FIGS. 13A to 13D are simulation results showing a relationship between a bin string length and a generated code amount (symbol occurrence ratio: 0.6 to 1);
  • FIG. 14 is a conceptual explanatory diagram of a method for estimating a generated code amount of a preceding slice
  • FIG. 15 is a flow chart of an encoding processing by one slice in accordance with the present embodiment.
  • FIG. 16 is a flow chart of a rate control processing carried out on a slice basis in accordance with the present embodiment
  • FIG. 17 is a flow chart of a rate control processing carried out on an MB basis in accordance with the present embodiment.
  • FIG. 18 is a simulation result (average of each symbol occurrence ratio) showing a relationship between a bin string length and a generated code amount.
  • the video encoding apparatus of the present embodiment executes encoding based on, e.g., H.264/AVC.
  • H.264/AVC encoding will be briefly described.
  • FIG. 3 is a schematic view illustrating an encoding processing carried out on a macroblock basis.
  • H.264/AVC predicts an encoding target image by using information on an image, which has been encoding and reconstructed by decoding, and encodes the prediction difference between the predicted image and the original target image.
  • the DCT is executed on the prediction difference on a DCT block—by DCT block basis which are obtained by finely dividing an image, and thus-obtained DCT coefficients are quantized and then variable-length coded.
  • Each DCT block is obtained by dividing a macroblock of a fixed size (16 ⁇ 16 pixels).
  • the encoding is executed on the target image on, e.g., the macroblock basis in accordance with a raster scanning sequence indicated by an arrow 31 .
  • FIG. 4 is a conceptual explanatory diagram of an operation of an inter-picture prediction by H.264/AVC.
  • Reference numeral 41 denotes a video (groups of sequential pictures) inputted to the video encoding apparatus, and each of a reference picture 42 and an encoding target picture 43 is, e.g., a frame included in a same group of picture 41 .
  • a block (predicted image) 45 having high similarity to a target block 44 of the encoding target picture 43 is searched from a reconstructed image of an encoded image of the reference picture 42 .
  • a motion vector 46 representing the difference between coordinates of the blocks 44 and 45 is encoded as header information required for the reconstruction of the target block 44 .
  • decoding may preferably be executed in the reverse sequence of the aforementioned order, and a decoded prediction difference is added to the block 45 of the reconstructed image of the reference picture 42 , thereby obtaining a decoded image.
  • FIG. 5 is a conceptual explanatory diagram of an operation of an intra-picture prediction by H.264/AVC.
  • the intra-picture prediction prediction is executed by using decoded images of encoded blocks, which are adjacent to the left, left/upper, upper, and right/upper sides of an encoding target block. Specifically, the prediction is executed by using, as reference pixels 51 , 13 decoded pixels included in the above-described 4 adjacent blocks, and pixels located on the same line having a prediction direction vector 52 are all predicted from a same reference pixel.
  • an appropriate one may be selected on a block basis from 8 prediction directions, such as a vertical direction, a horizontal direction, a diagonal direction, and the like. Further, in addition to the 8 prediction modes based on such directionality, DC prediction predicting all pixels included in an encoding target block based on the average value of reference pixels is prepared, and information indicating which one is selected from these 9 prediction modes is encoded as header information together with the prediction difference.
  • FIG. 6 is a conceptual explanatory diagram of a block size decision upon prediction.
  • a macroblock is hierarchically divided into smaller blocks to execute prediction.
  • FIG. 6 shows division patterns of a macroblock that are allowable for execution of the inter-picture prediction. That is, all the macroblocks (which include a macroblock 62 ) of a target picture 61 may be predicted by selecting an appropriate one of 4 types of predefined division patterns in the range from 16 ⁇ 16 pixel size to 8 ⁇ 8 pixel size. When a division pattern 63 with 8 ⁇ 8 pixel size has been selected, it may be divided further into smaller sub-blocks. Accordingly, it is possible to select one appropriate pattern selected from 8 ⁇ 8 pixel size to 4 ⁇ 4 pixel size for each block.
  • the selected division pattern of the macroblock and an identifier of a prediction method are combined as an encoding mode, which is then encoded as header information.
  • FIG. 7 is a conceptual explanatory diagram of the encoding mode.
  • the encoding mode may be classified at least into the unidirectional inter-picture prediction 71 and the intra-picture prediction 72 .
  • An identifier of the unidirectional inter-picture prediction 71 is “P” (predictive), and an identifier of the intra-picture prediction 72 is “I” (intra).
  • FIG. 8 is a conceptual explanatory diagram of CABAC, which shows a sequence of performing the variable-length encoding on the foregoing header information, prediction difference and the like.
  • H.264/AVC defines two types of variable-length coding schemes, i.e., a content-based adaptive variable length coding (CAVLC) with low computational burden, and a context-based adaptive binary arithmetic coding (CABAC), which exhibits a high computational burden but is able to achieve a high encoding efficiency.
  • the CABAC executes a binarization processing 82 on syntax elements 81 such as header information, prediction difference and the like to transform same into a bit stream (bin string) 83 composed of a binary value of 0 and 1. Thereafter, an arithmetic coding 84 is executed for the bin string 83 to achieve compression, thus generating a code bit stream 85 .
  • FIG. 9 is a conceptual explanatory diagram of a rate control.
  • a rate control 92 is executed first on a slice basis. That is, a quantization parameter (QP) is determined as a reference QP 93 for a target slice. Thereafter, QP 95 for each macroblock (MB) is finally determined based on the reference 93 QP by a rate control 94 on the MB basis within the target slice.
  • QP quantization parameter
  • MB macroblock
  • a rate control 94 on the MB basis within the target slice.
  • an allowable code amount (code amount budget) to be generated in the target slice is calculated from a set 91 of a required bit rate and a code amount generated in a preceding slice, and the reference QP 93 is determined based on the calculated code amount budget.
  • the rate control 94 on the MB basis feedbacks a code amount, which has been actually generated in each MB, to detect a change in the code amount, and compensates for the predicted code amount so as to determine the QP for each of the remaining MBs.
  • the arithmetic encoding is executed separately from other processings as mentioned above, it may be difficult in the rate control carried out on the MB basis to detect the generated code amount of each MB. Also, the preceding slice may have an MB for which the arithmetic encoding has not been completed yet, and the rate control on the slice basis may not be properly performed. Therefore, it is necessary to estimate a code amount for an MB for which the arithmetic encoding has not been completed.
  • FIG. 10 is a conceptual explanatory diagram of an estimation method for a code amount to be generated.
  • a length of 0/1 symbol i.e., a length of the bin string 83
  • a symbol occurrence probability (or ratio) 86 of, e.g., “0” in the bin string 83 are calculated first by symbol analysis 88 .
  • the bin string 83 is provided by binarization of a syntax element, and an estimated code amount 87 is calculated based on the calculated bin string length and symbol occurrence probability 86 by code amount estimation 89 .
  • FIG. 11 shows a simulation result of the relationship between a bin string length and a generated code amount on the macroblock basis.
  • a horizontal axis is the bin string length and a vertical axis is the generated code amount.
  • FIGS. 12A to 13D show simulation results of the relationship between the bin string length and the generated code amount as a function of the symbol occurrence ratio of “0” in the bin string.
  • 26 evaluation videos of “The Institute of Image Information and Television Engineers (ITE)” were employed. Specifically, a video obtained by connecting 30 initial frames of each of the 26 evaluation videos were employed.
  • the relationship between the bin string length and the generated code amount has been categorized by the occurrence ratio (or frequency) of “0” in a bin string of quantized transform coefficients (Coeff) of a target MB into 10 categories with 0.1 pitch of the occurrence ratio.
  • a horizontal and a vertical axis are the bin string length and the generated code amount, respectively.
  • each MB group (category) having a similar occurrence ratio of the same symbol
  • data points are relatively locally concentrated and estimation accuracy of a code amount to be generated can be improved.
  • an occurrence ratio of the symbol “0” with respect to Coeff is equal to or greater than 0.6 and less than 0.7
  • the relationship between the bin string length and the generated code amount is concentrated in a region 131 .
  • it is exhibited that a variance value is dramatically decreased. Modeling of the relationship between the bin string length and the generated code amount for each category makes it possible to estimate the code amount to be generated from the bin string length and the symbol occurrence ratio and to achieve remarkably enhanced estimation accuracy.
  • the modeling may be realized by any scheme, but an approximation function using, e.g., a least square method or the like may be employed in modeling to effectively remove randomness of the generated code amount.
  • FIG. 18 is a graph showing an average value of generated code amounts for each bin string length per each category under the same condition as in FIGS. 12A to 13D .
  • a category where the occurrence ratio of “0” is low there exist a small number of data samples, and so asperity may be generated in the average code amount.
  • the approximation function a divisional linear approximation (a graph of broken line) may be used.
  • a predetermined approximation function may be used in encoding, or the approximation function may be dynamically updated upon execution of encoding.
  • the degree of the localization of the relationship between the bin string length and the generated code amount may vary depending on the encoding mode (whether it is the intra-picture prediction or the inter-picture prediction, for example), QP or the like, multiple models may be prepared depending on the encoding mode, QP or the like.
  • various schemes may be employed in calculating a symbol occurrence ratio.
  • the present embodiment executes the calculation of the occurrence ratio only from a prediction difference of a target MB, and it was confirmed that satisfactory accuracy can be obtained thereby.
  • the object from which the occurrence ratio is obtained may include other syntax elements such as motion vector, encoding mode or the like.
  • a weighted sum of occurrence ratios for the respective syntax elements may be treated as the occurrence ratio of the MB.
  • symbols of a previously encoded neighboring MB e.g., MB right before the target MB, may be included in calculating the occurrence ratio of the target MB.
  • the present embodiment executes a code amount estimation on the MB basis, it may be possible to execute the code amount estimation on a different processing basis, e.g., picture basis, slice basis, block (other than MB) basis, or the like.
  • FIG. 14 is a conceptual explanatory diagram of a method of estimating a code amount of the preceding slice.
  • a reference QP of a target slice 141 is determined based on a required bit rate and a code amount of, e.g., the preceding slice 142 preceding in an encoding order. Since, however, a computation amount of the arithmetic coding is extremely high, the arithmetic encoding of the preceding slice 142 is most likely not completed when starting the rate control of the target slice 141 .
  • the preceding slice 142 is divided into a complete region 143 , in which the arithmetic encoding is completed, and an incomplete region 144 in which the arithmetic encoding is not completed.
  • the code amount actually generated after the arithmetic encoding is calculated with respect to the region 143 where the arithmetic encoding has been already completed, while the code amount estimation may be executed for the region 144 where the arithmetic encoding has not been completed yet by using the estimated result of a code amount of each MB as mentioned above.
  • the code amount of the preceding slice 142 is estimated by summing the actual code amount of the complete region 143 and the estimated result for the incomplete region 144 .
  • the rate control may be executed in unit of a picture or a block other than a slice.
  • FIG. 1 is a block diagram of a video encoding apparatus in accordance with the present embodiment.
  • the video encoding apparatus in accordance with the present embodiment includes an input picture memory 102 for storing input original pictures 101 , a block division unit 103 for dividing an input picture into small blocks; an intra-picture prediction unit 105 for executing the intra-picture prediction on a block basis; an inter-picture prediction unit 106 for executing the inter-picture prediction on a block basis based on a motion amount detected by a motion estimation unit 104 ; a mode selection unit 107 for determining a prediction mode (prediction method and block size) suitable for characteristics of a picture; a subtraction unit 108 for generating a prediction difference; and a frequency transform unit 109 and a quantization processing unit 110 for processing the prediction difference into quantized transform coefficients.
  • an input picture memory 102 for storing input original pictures 101 , a block division unit 103 for dividing an input picture into small blocks; an intra-picture prediction unit 105 for
  • the video encoding apparatus further includes a variable-length coding unit 111 for encoding a syntax element such as the quantized transform coefficients or the like; a rate control unit 112 for controlling a quantization parameter such that an encoded bit stream is dealt with at a desired bit rate; an inverse quantization processing unit 113 and an inverse frequency transform unit 114 for reconstructing (decoding) the prediction difference from the quantized transform coefficients; an addition unit 115 for generating a decoded image by using the reconstructed prediction difference; and a reference picture memory 116 for storing the decoded pictures for use in a later prediction.
  • a variable-length coding unit 111 for encoding a syntax element such as the quantized transform coefficients or the like
  • a rate control unit 112 for controlling a quantization parameter such that an encoded bit stream is dealt with at a desired bit rate
  • an inverse quantization processing unit 113 and an inverse frequency transform unit 114 for reconstructing (decoding) the prediction difference from the quantized transform coefficients
  • the input picture memory 102 maintains one of the original pictures 101 (having the same meaning as the video 41 described in FIG. 4 ) as an encoding target picture.
  • the block division unit 103 divides the encoding target picture into small blocks to deliver same to the motion estimation unit 104 , the intra-picture prediction unit 105 , the inter-picture prediction unit 106 , and the subtraction unit 108 .
  • the motion estimation unit 104 calculates a motion amount between a target block and its most similar block by using one or more decoded pictures stored in the reference picture memory 116 , and transfers a motion vector to the inter-picture prediction unit 106 .
  • the intra-picture prediction unit 105 and the inter-picture prediction unit 106 respectively execute the intra-picture prediction based on a decoded image of neighboring blocks in the same picture and the inter-picture prediction based on decoded different pictures by using multiple block sizes.
  • the mode selection unit 107 selects a suitable prediction mode including one of the multiple block sizes processed by both of the prediction units 105 and 106 , and provides the predicted image to the subtraction unit 108 and the addition unit 115 .
  • the subtraction unit 108 generates the prediction difference between the original image of the target block and a predicted image selected by the mode selection unit 107 , and transfers same to the frequency transform unit 109 .
  • the frequency transform unit 109 executes, e.g., the DCT-based orthogonal transform on the prediction difference on a block basis of a preset size.
  • the quantization processing unit executes the quantization on the transform coefficients by using a quantization matrix and transfers the thus-obtained quantized orthogonal transform coefficients to the variable-length coding unit 111 and the inverse quantizing unit 113 .
  • variable-length coding unit 111 encodes the quantized orthogonal transform coefficients and the header information based on a symbol occurrence probability to generate an encoded bit stream, and calculates, prior to completing encoding, information (estimated code amount) required for a coding rate control of a target slice to transfer it to the rate control unit 112 .
  • the rate control unit 112 determines an appropriate QP value based on the transferred information from the variable-length coding unit 111 and provides the QP to the quantization processing unit 110 . A detailed description thereof will be given later with reference to FIGS. 16 and 17 .
  • the inverse quantization processing unit 113 executes an inverse quantization on the quantized orthogonal transform coefficients and the inverse frequency transform unit 114 executes an inverse orthogonal transform such as inverse DCT on the inverse-quantized transform coefficients to thereby reconstruct the prediction difference and provide same to the addition unit 115 .
  • the addition unit 115 then adds the predicted image and the decoded prediction difference so as to generate a decoded image, which is then stored in the reference picture memory 116 .
  • FIG. 2 shows a detailed example of the variable-length coding unit 111 in accordance with the present embodiment.
  • the variable-length encoding unit 111 includes a binarization processor 201 for executing a binarization processing for each syntax element; a bin string storage memory 202 for storing bin strings obtained through the binarization processing; a first code amount estimator 203 for estimating a code amount to be generated on an MB basis in the foregoing method described in FIGS.
  • an arithmetic coder 204 for executing in a separate process an arithmetic coding on binary value information stored in the bin string storage memory 202 ; and a second code amount estimator 205 for estimating a code amount of a preceding slice in accordance with the method described in FIG. 14 .
  • the estimated code amount of the preceding slice obtained from the second code estimator 205 is provided to the rate control unit 112 , which then determinates the reference QP for the target slice.
  • the estimation of the code amount of the preceding slice may be carried out by the rate control unit 112 instead of the second code amount estimator 205 .
  • the second code amount estimator 205 may be provided separately from the rate control unit 112 and the variable-length coding unit 111 .
  • the first code amount estimator 203 may also be provided in the rate control unit 112 or separately from the rate control unit 112 and the variable-length coding unit 111 .
  • the binarization processor 201 executes a processing corresponding to the binarization processing 82 of the related art described in FIG. 8 , and transforms the syntax element, which is inputted by the mode selection unit 107 and the quantization processing unit 110 , into a bin string composed of binary values of 0/1 to transfer same to the bin string storage memory 202 and the code amount estimator 203 .
  • the code amount estimator 203 estimates a code amount on the MB basis based on a bin string length and an occurrence ratio of 0/1 symbol.
  • the estimated code amount for the target slice and that for the preceding slice are sent to the rate control unit 112 and the second code amount estimator 205 , respectively.
  • the arithmetic coder 204 executes a processing corresponding to the arithmetic coding 84 of the related art described in FIG. 8 , and executes in the separate process the arithmetic coding on the binary value information stored in the bin string storage memory 202 .
  • FIG. 15 is a flow chart showing an encoding processing of one slice in accordance with the present embodiment.
  • step S 151 the rate control unit 112 executes the rate control on the slice basis (as will be described in detail with reference to FIG. 16 ) to thereby determine a reference QP of the target slice.
  • step S 153 of prediction/encoding mode selection/DCT processing is executed by the motion detection unit 104 , the intra-picture prediction unit 105 , the inter-picture prediction unit 106 , the mode selection unit 107 , the subtraction unit 108 and the frequency transform unit 109 .
  • step S 154 of rate control on the MB basis (to be explained in detail with reference to FIG. 17 ) is executed by the rate control unit 112 .
  • Step S 155 of quantization/binarization processing is executed by the quantization processing unit 110 and the binarization processor 201 .
  • Step S 157 is to perform the arithmetic coding on a bin string in a separate process, and is executed by the arithmetic encoder 204 .
  • FIG. 16 is a flow chart of the slice-based rate control 151 for one slice carried out by the rate control unit 112 in accordance with the present embodiment.
  • step S 161 when the target slice is an initial slice (“Yes” in step S 161 ), a reference QP preset based on a target bit rate is obtained (S 162 ).
  • a code amount of the preceding slice is estimated as illustrated in FIG. 14 in step S 163 and an allowable code amount (code amount budget) of the target slice is calculated in step S 164 based on the relationship between a required bit rate and the estimated code amount of the preceding slice.
  • the target bit rate is, e.g., a bit rate determined by a code amount assigned to a corresponding picture containing the target slice and the required bit rate is, e.g., a bit rate adjusted from the target bit rate considering actually generated and estimated code amount of preceding slices of the target slice.
  • the actually generated code amount is used as the code amount of the preceding slice.
  • the reference QP of the target slice is determined based on a size of the code amount budget (S 165 ), and then the slice-based rate control for one slice is terminated (S 166 ).
  • FIG. 17 is a flow chart of the MB-based rate control 154 shown in FIG. 15 , in a processing for one slice.
  • the first code amount estimator 203 calculates a bin string length and a 0/1 symbol occurrence ratio with respect to syntax elements in a preceding MB (S 174 ), thereby estimating a code amount of the preceding MB by the method described with reference to FIGS. 12A to 13D (S 175 ).
  • the rate control unit 112 updates a value of the code amount budget by using the estimated code amount of the preceding MB ( 176 ) to thereby determine QP of the target MB based on the code amount budget after the update (S 177 ).
  • the MB-based rate control for one slice is terminated (S 178 ).
  • the first embodiment of the present invention has been described that the prediction and frequency transform are executed on a block basis. However, without limitation thereto, such operations may be executed, for example, in unit of object separated from a background of an image.
  • DCT discrete sine transform
  • DWT discrete wavelet transform
  • DFT discrete Fourier transform
  • KLT Karhune n-Loeve transform
  • a frequency transform may be performed directly on an original image, as done in an intra encoding of MPEG-1 or MPEG-2, or encoding schemes for a still image such as JPEG and JPEG2000.
  • variable-length coding method may not be limited to the CABAL, but other method may be employed so long as it uses the arithmetic coding.
  • other encoding schemes may be used if they execute compression using a variation of a symbol occurrence frequency.
  • the present invention may be applicable not only to the video encoding method H.264/AVC but also any image encoding method enabling a rate control (change in a coding rate), such as JPEG2000 as a still image encoding method, a next-generation standard defined from now, and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A video encoding apparatus includes a frequency transform unit for executing an orthogonal transform on a prediction difference or an original image; a quantizing unit for quantizing transform coefficients outputted by the frequency transform unit; a variable-length coder for executing variable-length encoding on a bit string generated from the quantized transform coefficients; a rate controller for performing a rate control to control a code bit stream outputted by the variable-length coder to be maintained at a bit rate; and a code amount estimating unit for estimating a code amount to be generated by the variable-length coder based on a length of the bit string and an occurrence frequency of symbol in the bit string. The rate controller executes the rate control based on the estimated code amount.

Description

FIELD OF THE INVENTION
The present invention relates to a video encoding apparatus; and, more particularly, to a video encoding apparatus, capable of executing a rate control by estimating the amount of code bits to be generated.
BACKGROUND OF THE INVENTION
As a technique for recording and transmitting a large volume of video information in the form of digital data, a moving picture experts group (MPEG) encoding method or the like has been adopted and established as an international standard encoding method, e.g., MPEG-1 standard, MPEG-2 standard, MPEG-4 standard, H.264/advanced video coding (AVC) standard.
With these standards, a target image to be encoded is predicted on a block basis by using a reconstructed encoded image (decoded image), and a difference (prediction difference) between the predicted image and the target image is encoded to exclude redundancy in the video signal and reduce an amount of code bits (referred to as code amount hereinafter). Specifically, a DCT (discrete cosine transform) or the like as a type of frequency transform method is executed on the prediction difference, and the generated DCT coefficients are quantized. In general, there is a trade-off between the image quality and the code amount, but the trade-off can be adjusted by controlling a value of parameter employed in quantization (referred to as quantization parameter hereinafter). Hence, when it is necessary to restrict a code amount at a desired bit rate due to limitation in the capacity of a transmission path, an input/output buffer or the like, a coding rate control function needs to be used to adaptively determine the quantization parameter value based on the relationship between a required bit rate and a generated code amount.
Meanwhile, the H.264/AVC standard has adopted, as a variable-length coding method for each syntax element after quantization, a context-based adaptive binary arithmetic coding (CABAC) using an arithmetic coding with high computational burden, in addition to a context-based adaptive variable length coding (CAVLC) enabling high-speed processing based on a look-up table. The use of the CABAC allows the code amount to be reduced by about 10˜20% as compared with the use of the CAVLC, but drastically increases computational burden. Accordingly, to realize a real-time processing, there is a need to design an arithmetic coding processing with high computational burden to be performed independently in a separate process. (see, e.g., Japanese Patent Applications Publication Nos. 2010-219842, 2009-021775 and 2008-011204)
However, when the arithmetic coding processing is performed independently, it is difficult to obtain results of the arithmetic coding process on a macroblock basis sequentially to calculate a generated code amount. Consequently, there is a problem of improper execution of a rate control determining a value of a quantization parameter based on the relationship between a required bit rate and a generated code amount.
SUMMARY OF THE INVENTION
In view of the above, the present invention provides a video encoding apparatus which is capable of executing a proper rate control even when results of arithmetic coding processing can not be used in determining a quantization parameter.
The video encoding apparatus in accordance with an embodiment of the present invention estimates a code amount to be generated after the arithmetic encoding and executes a rate control based on a relationship between a required bit rate and, an estimated code amount. Especially, the estimation of the code amount to be generated is executed, prior to the arithmetic encoding, based on a bit string length and a symbol occurrence ratio in the bit string, by using an approximation function designed based on statistical data, for example.
Specifically, the video encoding apparatus includes a frequency transform unit for executing an orthogonal transform on a prediction difference or an original image; a quantizing unit for quantizing transform coefficients outputted by the frequency transform unit; a variable-length coder for executing variable-length encoding on a bit string generated from the quantized transform coefficients; a rate controller for performing a rate control to control a code bit stream outputted by the variable-length coder to be maintained at a bit rate; and a code amount estimating unit for estimating a code amount to be generated by the variable-length coder based on a length of the bit string and an occurrence frequency of symbol in the bit string. The rate control unit executes the rate control based on the estimated code amount.
In the video encoding apparatus, a unit of the symbol may be one bit, and the occurrence frequency of symbol may be obtained by counting the number of 0 or 1 included in the bit string. The rate controller may execute the rate control in unit of picture, slice or block, and the variable-length coder may execute an arithmetic coding on the rate-controlled unit of picture, slice or block. A code amount of the rate-controlled unit may be calculated by using an actual code amount generated from a variable-length coding completed region in the rate-controlled unit and said estimated code amount obtained from a variable-length coding non-completed region of the rate-controlled unit.
In accordance with the embodiment of the present invention, it is possible to execute a proper rate control and effectively encode a video at a desired bit rate even when results of arithmetic coding processing cannot be used in determining a quantization parameter.
BRIEF DESCRIPTION OF THE DRAWINGS
The objects and features of the present invention will become apparent from the following description of embodiments, given in conjunction with the accompanying drawings, in which:
FIG. 1 is a block diagram of a video encoding apparatus in accordance with an embodiment of the present invention;
FIG. 2 is another block diagram of the video encoding apparatus;
FIG. 3 is a schematic view illustrating an encoding processing carried out on a macroblock basis;
FIG. 4 is a conceptual explanatory diagram of an inter-picture prediction processing;
FIG. 5 is a conceptual explanatory diagram of an intra-screen prediction processing;
FIG. 6 is a conceptual explanatory diagram of a block size decision upon prediction;
FIG. 7 is a conceptual explanatory diagram of an encoding mode;
FIG. 8 is a conceptual explanatory diagram of CABAC;
FIG. 9 is a conceptual explanatory diagram of a rate control;
FIG. 10 is a conceptual explanatory diagram of an estimation method for a code amount to be generated;
FIG. 11 is a simulation result showing a relationship between a bin string length on macroblock basis and a generated code amount;
FIGS. 12A to 12F are simulation results showing a relationship between a bin string length and a generated code amount (symbol occurrence ratio: 0 to 0.6);
FIGS. 13A to 13D are simulation results showing a relationship between a bin string length and a generated code amount (symbol occurrence ratio: 0.6 to 1);
FIG. 14 is a conceptual explanatory diagram of a method for estimating a generated code amount of a preceding slice;
FIG. 15 is a flow chart of an encoding processing by one slice in accordance with the present embodiment;
FIG. 16 is a flow chart of a rate control processing carried out on a slice basis in accordance with the present embodiment;
FIG. 17 is a flow chart of a rate control processing carried out on an MB basis in accordance with the present embodiment; and
FIG. 18 is a simulation result (average of each symbol occurrence ratio) showing a relationship between a bin string length and a generated code amount.
DETAILED DESCRIPTION OF THE EMBODIMENTS
Hereinafter, a video encoding apparatus in accordance with an embodiment of the present invention will be described with reference to the accompanying drawings, which form a part hereof. The video encoding apparatus of the present embodiment executes encoding based on, e.g., H.264/AVC. First, H.264/AVC encoding will be briefly described.
FIG. 3 is a schematic view illustrating an encoding processing carried out on a macroblock basis. H.264/AVC predicts an encoding target image by using information on an image, which has been encoding and reconstructed by decoding, and encodes the prediction difference between the predicted image and the original target image. Here, the DCT is executed on the prediction difference on a DCT block—by DCT block basis which are obtained by finely dividing an image, and thus-obtained DCT coefficients are quantized and then variable-length coded. Each DCT block is obtained by dividing a macroblock of a fixed size (16×16 pixels).
As shown in FIG. 3, the encoding is executed on the target image on, e.g., the macroblock basis in accordance with a raster scanning sequence indicated by an arrow 31.
FIG. 4 is a conceptual explanatory diagram of an operation of an inter-picture prediction by H.264/AVC. Reference numeral 41 denotes a video (groups of sequential pictures) inputted to the video encoding apparatus, and each of a reference picture 42 and an encoding target picture 43 is, e.g., a frame included in a same group of picture 41.
When executing the inter-picture prediction, a block (predicted image) 45 having high similarity to a target block 44 of the encoding target picture 43 is searched from a reconstructed image of an encoded image of the reference picture 42.
Here, in addition to a prediction difference calculated as a difference between the blocks 44 and 45, a motion vector 46 representing the difference between coordinates of the blocks 44 and 45 is encoded as header information required for the reconstruction of the target block 44. Meanwhile, decoding may preferably be executed in the reverse sequence of the aforementioned order, and a decoded prediction difference is added to the block 45 of the reconstructed image of the reference picture 42, thereby obtaining a decoded image.
FIG. 5 is a conceptual explanatory diagram of an operation of an intra-picture prediction by H.264/AVC. In the intra-picture prediction, prediction is executed by using decoded images of encoded blocks, which are adjacent to the left, left/upper, upper, and right/upper sides of an encoding target block. Specifically, the prediction is executed by using, as reference pixels 51, 13 decoded pixels included in the above-described 4 adjacent blocks, and pixels located on the same line having a prediction direction vector 52 are all predicted from a same reference pixel.
As the prediction direction vector 52, an appropriate one may be selected on a block basis from 8 prediction directions, such as a vertical direction, a horizontal direction, a diagonal direction, and the like. Further, in addition to the 8 prediction modes based on such directionality, DC prediction predicting all pixels included in an encoding target block based on the average value of reference pixels is prepared, and information indicating which one is selected from these 9 prediction modes is encoded as header information together with the prediction difference.
FIG. 6 is a conceptual explanatory diagram of a block size decision upon prediction. In H.264/AVC, a macroblock is hierarchically divided into smaller blocks to execute prediction. FIG. 6 shows division patterns of a macroblock that are allowable for execution of the inter-picture prediction. That is, all the macroblocks (which include a macroblock 62) of a target picture 61 may be predicted by selecting an appropriate one of 4 types of predefined division patterns in the range from 16×16 pixel size to 8×8 pixel size. When a division pattern 63 with 8×8 pixel size has been selected, it may be divided further into smaller sub-blocks. Accordingly, it is possible to select one appropriate pattern selected from 8×8 pixel size to 4×4 pixel size for each block. The selected division pattern of the macroblock and an identifier of a prediction method are combined as an encoding mode, which is then encoded as header information.
FIG. 7 is a conceptual explanatory diagram of the encoding mode. The encoding mode may be classified at least into the unidirectional inter-picture prediction 71 and the intra-picture prediction 72. An identifier of the unidirectional inter-picture prediction 71 is “P” (predictive), and an identifier of the intra-picture prediction 72 is “I” (intra).
FIG. 8 is a conceptual explanatory diagram of CABAC, which shows a sequence of performing the variable-length encoding on the foregoing header information, prediction difference and the like. H.264/AVC defines two types of variable-length coding schemes, i.e., a content-based adaptive variable length coding (CAVLC) with low computational burden, and a context-based adaptive binary arithmetic coding (CABAC), which exhibits a high computational burden but is able to achieve a high encoding efficiency. The CABAC executes a binarization processing 82 on syntax elements 81 such as header information, prediction difference and the like to transform same into a bit stream (bin string) 83 composed of a binary value of 0 and 1. Thereafter, an arithmetic coding 84 is executed for the bin string 83 to achieve compression, thus generating a code bit stream 85.
FIG. 9 is a conceptual explanatory diagram of a rate control. In FIG. 9, a rate control 92 is executed first on a slice basis. That is, a quantization parameter (QP) is determined as a reference QP 93 for a target slice. Thereafter, QP 95 for each macroblock (MB) is finally determined based on the reference 93 QP by a rate control 94 on the MB basis within the target slice. Specifically, in the rate control 92 on the slice basis, an allowable code amount (code amount budget) to be generated in the target slice is calculated from a set 91 of a required bit rate and a code amount generated in a preceding slice, and the reference QP 93 is determined based on the calculated code amount budget. Subsequently, the rate control 94 on the MB basis feedbacks a code amount, which has been actually generated in each MB, to detect a change in the code amount, and compensates for the predicted code amount so as to determine the QP for each of the remaining MBs.
However, when the arithmetic encoding is executed separately from other processings as mentioned above, it may be difficult in the rate control carried out on the MB basis to detect the generated code amount of each MB. Also, the preceding slice may have an MB for which the arithmetic encoding has not been completed yet, and the rate control on the slice basis may not be properly performed. Therefore, it is necessary to estimate a code amount for an MB for which the arithmetic encoding has not been completed.
A feature of an embodiment of the prevent invention will be described in conjunction with FIG. 10, which is a conceptual explanatory diagram of an estimation method for a code amount to be generated. In the estimation method in accordance with the present embodiment, a length of 0/1 symbol (i.e., a length of the bin string 83) and a symbol occurrence probability (or ratio) 86 of, e.g., “0” in the bin string 83 are calculated first by symbol analysis 88. As described above, the bin string 83 is provided by binarization of a syntax element, and an estimated code amount 87 is calculated based on the calculated bin string length and symbol occurrence probability 86 by code amount estimation 89.
FIG. 11 shows a simulation result of the relationship between a bin string length and a generated code amount on the macroblock basis. In FIG. 11, a horizontal axis is the bin string length and a vertical axis is the generated code amount. These two data exhibit some correlation but with a relatively great variance. Thus, it can be noted that estimation accuracy may not be high when the code amount to be generated on the MB basis is estimated only based on the bin string length.
FIGS. 12A to 13D show simulation results of the relationship between the bin string length and the generated code amount as a function of the symbol occurrence ratio of “0” in the bin string. In the simulation, 26 evaluation videos of “The Institute of Image Information and Television Engineers (ITE)” were employed. Specifically, a video obtained by connecting 30 initial frames of each of the 26 evaluation videos were employed. The relationship between the bin string length and the generated code amount has been categorized by the occurrence ratio (or frequency) of “0” in a bin string of quantized transform coefficients (Coeff) of a target MB into 10 categories with 0.1 pitch of the occurrence ratio. In FIGS. 12A to 13D, a horizontal and a vertical axis are the bin string length and the generated code amount, respectively.
In each MB group (category) having a similar occurrence ratio of the same symbol, data points are relatively locally concentrated and estimation accuracy of a code amount to be generated can be improved. For example, for an MB belonging to a category that an occurrence ratio of the symbol “0” with respect to Coeff is equal to or greater than 0.6 and less than 0.7, the relationship between the bin string length and the generated code amount is concentrated in a region 131. In other categories, it is exhibited that a variance value is dramatically decreased. Modeling of the relationship between the bin string length and the generated code amount for each category makes it possible to estimate the code amount to be generated from the bin string length and the symbol occurrence ratio and to achieve remarkably enhanced estimation accuracy.
The modeling may be realized by any scheme, but an approximation function using, e.g., a least square method or the like may be employed in modeling to effectively remove randomness of the generated code amount.
FIG. 18 is a graph showing an average value of generated code amounts for each bin string length per each category under the same condition as in FIGS. 12A to 13D. Here, for a category where the occurrence ratio of “0” is low, there exist a small number of data samples, and so asperity may be generated in the average code amount. Thus, it may be preferable smoothing the data by using an approximation function. As for the approximation function, a divisional linear approximation (a graph of broken line) may be used. A predetermined approximation function may be used in encoding, or the approximation function may be dynamically updated upon execution of encoding.
Since the degree of the localization of the relationship between the bin string length and the generated code amount may vary depending on the encoding mode (whether it is the intra-picture prediction or the inter-picture prediction, for example), QP or the like, multiple models may be prepared depending on the encoding mode, QP or the like.
Also, various schemes may be employed in calculating a symbol occurrence ratio. The present embodiment executes the calculation of the occurrence ratio only from a prediction difference of a target MB, and it was confirmed that satisfactory accuracy can be obtained thereby. However, the object from which the occurrence ratio is obtained may include other syntax elements such as motion vector, encoding mode or the like. Further, a weighted sum of occurrence ratios for the respective syntax elements may be treated as the occurrence ratio of the MB. Also, in addition to the target MB, symbols of a previously encoded neighboring MB, e.g., MB right before the target MB, may be included in calculating the occurrence ratio of the target MB. In addition, though the present embodiment executes a code amount estimation on the MB basis, it may be possible to execute the code amount estimation on a different processing basis, e.g., picture basis, slice basis, block (other than MB) basis, or the like.
FIG. 14 is a conceptual explanatory diagram of a method of estimating a code amount of the preceding slice. In the rate control on the slice basis, a reference QP of a target slice 141 is determined based on a required bit rate and a code amount of, e.g., the preceding slice 142 preceding in an encoding order. Since, however, a computation amount of the arithmetic coding is extremely high, the arithmetic encoding of the preceding slice 142 is most likely not completed when starting the rate control of the target slice 141. In this case, the preceding slice 142 is divided into a complete region 143, in which the arithmetic encoding is completed, and an incomplete region 144 in which the arithmetic encoding is not completed. Here, the code amount actually generated after the arithmetic encoding is calculated with respect to the region 143 where the arithmetic encoding has been already completed, while the code amount estimation may be executed for the region 144 where the arithmetic encoding has not been completed yet by using the estimated result of a code amount of each MB as mentioned above. The code amount of the preceding slice 142 is estimated by summing the actual code amount of the complete region 143 and the estimated result for the incomplete region 144. The rate control may be executed in unit of a picture or a block other than a slice.
FIG. 1 is a block diagram of a video encoding apparatus in accordance with the present embodiment. The video encoding apparatus in accordance with the present embodiment includes an input picture memory 102 for storing input original pictures 101, a block division unit 103 for dividing an input picture into small blocks; an intra-picture prediction unit 105 for executing the intra-picture prediction on a block basis; an inter-picture prediction unit 106 for executing the inter-picture prediction on a block basis based on a motion amount detected by a motion estimation unit 104; a mode selection unit 107 for determining a prediction mode (prediction method and block size) suitable for characteristics of a picture; a subtraction unit 108 for generating a prediction difference; and a frequency transform unit 109 and a quantization processing unit 110 for processing the prediction difference into quantized transform coefficients.
The video encoding apparatus further includes a variable-length coding unit 111 for encoding a syntax element such as the quantized transform coefficients or the like; a rate control unit 112 for controlling a quantization parameter such that an encoded bit stream is dealt with at a desired bit rate; an inverse quantization processing unit 113 and an inverse frequency transform unit 114 for reconstructing (decoding) the prediction difference from the quantized transform coefficients; an addition unit 115 for generating a decoded image by using the reconstructed prediction difference; and a reference picture memory 116 for storing the decoded pictures for use in a later prediction. As such, within the range shown in FIG. 1, the configuration of the video encoding apparatus in accordance with the present embodiment is the same as in the related art.
The input picture memory 102 maintains one of the original pictures 101 (having the same meaning as the video 41 described in FIG. 4) as an encoding target picture. The block division unit 103 divides the encoding target picture into small blocks to deliver same to the motion estimation unit 104, the intra-picture prediction unit 105, the inter-picture prediction unit 106, and the subtraction unit 108.
The motion estimation unit 104 calculates a motion amount between a target block and its most similar block by using one or more decoded pictures stored in the reference picture memory 116, and transfers a motion vector to the inter-picture prediction unit 106.
The intra-picture prediction unit 105 and the inter-picture prediction unit 106 respectively execute the intra-picture prediction based on a decoded image of neighboring blocks in the same picture and the inter-picture prediction based on decoded different pictures by using multiple block sizes.
The mode selection unit 107 selects a suitable prediction mode including one of the multiple block sizes processed by both of the prediction units 105 and 106, and provides the predicted image to the subtraction unit 108 and the addition unit 115.
The subtraction unit 108 generates the prediction difference between the original image of the target block and a predicted image selected by the mode selection unit 107, and transfers same to the frequency transform unit 109.
The frequency transform unit 109 executes, e.g., the DCT-based orthogonal transform on the prediction difference on a block basis of a preset size. The quantization processing unit executes the quantization on the transform coefficients by using a quantization matrix and transfers the thus-obtained quantized orthogonal transform coefficients to the variable-length coding unit 111 and the inverse quantizing unit 113.
The variable-length coding unit 111 encodes the quantized orthogonal transform coefficients and the header information based on a symbol occurrence probability to generate an encoded bit stream, and calculates, prior to completing encoding, information (estimated code amount) required for a coding rate control of a target slice to transfer it to the rate control unit 112.
The rate control unit 112 determines an appropriate QP value based on the transferred information from the variable-length coding unit 111 and provides the QP to the quantization processing unit 110. A detailed description thereof will be given later with reference to FIGS. 16 and 17.
The inverse quantization processing unit 113 executes an inverse quantization on the quantized orthogonal transform coefficients and the inverse frequency transform unit 114 executes an inverse orthogonal transform such as inverse DCT on the inverse-quantized transform coefficients to thereby reconstruct the prediction difference and provide same to the addition unit 115. The addition unit 115 then adds the predicted image and the decoded prediction difference so as to generate a decoded image, which is then stored in the reference picture memory 116.
FIG. 2 shows a detailed example of the variable-length coding unit 111 in accordance with the present embodiment. The variable-length encoding unit 111 includes a binarization processor 201 for executing a binarization processing for each syntax element; a bin string storage memory 202 for storing bin strings obtained through the binarization processing; a first code amount estimator 203 for estimating a code amount to be generated on an MB basis in the foregoing method described in FIGS. 12A to 13D and 18; an arithmetic coder 204 for executing in a separate process an arithmetic coding on binary value information stored in the bin string storage memory 202; and a second code amount estimator 205 for estimating a code amount of a preceding slice in accordance with the method described in FIG. 14.
The estimated code amount of the preceding slice obtained from the second code estimator 205 is provided to the rate control unit 112, which then determinates the reference QP for the target slice. The estimation of the code amount of the preceding slice may be carried out by the rate control unit 112 instead of the second code amount estimator 205. Further, the second code amount estimator 205 may be provided separately from the rate control unit 112 and the variable-length coding unit 111. The first code amount estimator 203 may also be provided in the rate control unit 112 or separately from the rate control unit 112 and the variable-length coding unit 111.
The binarization processor 201 executes a processing corresponding to the binarization processing 82 of the related art described in FIG. 8, and transforms the syntax element, which is inputted by the mode selection unit 107 and the quantization processing unit 110, into a bin string composed of binary values of 0/1 to transfer same to the bin string storage memory 202 and the code amount estimator 203.
The code amount estimator 203 estimates a code amount on the MB basis based on a bin string length and an occurrence ratio of 0/1 symbol. The estimated code amount for the target slice and that for the preceding slice are sent to the rate control unit 112 and the second code amount estimator 205, respectively.
The arithmetic coder 204 executes a processing corresponding to the arithmetic coding 84 of the related art described in FIG. 8, and executes in the separate process the arithmetic coding on the binary value information stored in the bin string storage memory 202.
FIG. 15 is a flow chart showing an encoding processing of one slice in accordance with the present embodiment.
First, in step S151, the rate control unit 112 executes the rate control on the slice basis (as will be described in detail with reference to FIG. 16) to thereby determine a reference QP of the target slice.
Next, in loop L152, until processing of steps S153 to S155 within a first loop is completed for all the MBs within the target slice, the first loop is repeated. Further, step S153 of prediction/encoding mode selection/DCT processing is executed by the motion detection unit 104, the intra-picture prediction unit 105, the inter-picture prediction unit 106, the mode selection unit 107, the subtraction unit 108 and the frequency transform unit 109. Step S154 of rate control on the MB basis (to be explained in detail with reference to FIG. 17) is executed by the rate control unit 112. Step S155 of quantization/binarization processing is executed by the quantization processing unit 110 and the binarization processor 201.
After completion of the first loop, until processing of step S157 within a second loop is completed for all the MBs in the target slice, the second loop is repeated in loop L156. Step S157 is to perform the arithmetic coding on a bin string in a separate process, and is executed by the arithmetic encoder 204.
After completion of the second loop, the rate control of one slice is ended (S158).
FIG. 16 is a flow chart of the slice-based rate control 151 for one slice carried out by the rate control unit 112 in accordance with the present embodiment.
First, when the target slice is an initial slice (“Yes” in step S161), a reference QP preset based on a target bit rate is obtained (S162).
On the contrary, when the target slice is not the initial slice (“No” in step S161), a code amount of the preceding slice is estimated as illustrated in FIG. 14 in step S163 and an allowable code amount (code amount budget) of the target slice is calculated in step S164 based on the relationship between a required bit rate and the estimated code amount of the preceding slice. The target bit rate is, e.g., a bit rate determined by a code amount assigned to a corresponding picture containing the target slice and the required bit rate is, e.g., a bit rate adjusted from the target bit rate considering actually generated and estimated code amount of preceding slices of the target slice. Also, in step 163, when the arithmetic coding has been completed in every region in the preceding slice, the actually generated code amount is used as the code amount of the preceding slice.
Thereafter, the reference QP of the target slice is determined based on a size of the code amount budget (S165), and then the slice-based rate control for one slice is terminated (S166).
FIG. 17 is a flow chart of the MB-based rate control 154 shown in FIG. 15, in a processing for one slice.
In loop L171, until processing of steps S172 to S177 within the loop is completed with respect to all the MBs within the target slice, the loop is repeated. That is, when the target MB is an initial MB within the target slice (“Yes” in step S172), the reference QP determined by the slice-based rate control is applied to the target MB (S173).
On the contrary, when the target MB is not the initial MB (“No” step in S172), the first code amount estimator 203 calculates a bin string length and a 0/1 symbol occurrence ratio with respect to syntax elements in a preceding MB (S174), thereby estimating a code amount of the preceding MB by the method described with reference to FIGS. 12A to 13D (S175). Subsequently, the rate control unit 112 updates a value of the code amount budget by using the estimated code amount of the preceding MB (176) to thereby determine QP of the target MB based on the code amount budget after the update (S177).
Upon completion of the foregoing process for all the MBs, the MB-based rate control for one slice is terminated (S178).
The first embodiment of the present invention has been described that the prediction and frequency transform are executed on a block basis. However, without limitation thereto, such operations may be executed, for example, in unit of object separated from a background of an image. Further, as one example of the frequency transform, DCT has been described, but the present invention may employ any transform scheme, such as discrete sine transform (DST), discrete wavelet transform (DWT), discrete Fourier transform (DFT), Karhune n-Loeve transform (KLT) or the like, so long as it is an orthogonal transform used for an inter-pixel redundancy removal.
Also, in the intra mode, without executing an intra-picture prediction, a frequency transform may be performed directly on an original image, as done in an intra encoding of MPEG-1 or MPEG-2, or encoding schemes for a still image such as JPEG and JPEG2000.
In addition, the variable-length coding method may not be limited to the CABAL, but other method may be employed so long as it uses the arithmetic coding. Further, instead of the arithmetic encoding, other encoding schemes may be used if they execute compression using a variation of a symbol occurrence frequency.
The present invention may be applicable not only to the video encoding method H.264/AVC but also any image encoding method enabling a rate control (change in a coding rate), such as JPEG2000 as a still image encoding method, a next-generation standard defined from now, and the like.
While the invention has been shown and described with respect to the particular embodiments, it will be understood by those skilled in the art that various changes and modification may be made.

Claims (3)

What is claimed is:
1. A video encoding apparatus, comprising:
a frequency transform unit for executing an orthogonal transform on a prediction difference or an original image;
a quantizing unit for quantizing transform coefficients outputted by the frequency transform unit;
a variable-length coder for executing variable-length encoding on the quantized transform coefficients; and
a rate controller for performing a rate control of an encoded bit stream outputted from the variable-length coder to maintain a desired bit rate for a rate controlled unit, the rate controlled unit being one of a picture, a slice or a block,
wherein the variable-length coder executes an arithmetic coding on the rate-controlled unit,
wherein the variable-length coder calculates a code amount of the rate-controlled unit by using an actual code amount generated from a variable-length coding completed region in the rate-controlled unit, and an estimated code amount obtained based on a length of a bit string in a variable-length coding non-completed region in the rate-controlled unit and an occurrence frequency of a one-bit symbol in the bit string, the occurrence frequency of the one-bit symbol being obtained by counting either the number of zeros included in the bit string or the number of ones included in the bit string,
wherein the estimated code amount is obtained by using a broken line approximation function, which is prepared for each category in accordance with the occurrence frequency and represents a relationship between the length of the bit string and a code amount to be generated, and
wherein the rate controller executes the rate control based on the calculated code amount.
2. A video encoding method comprising:
executing an orthogonal transform on a prediction difference or an original image to provide transform coefficients;
executing quantization on the transform coefficients;
executing variable-length coding on the quantized transform coefficients;
executing a rate control of an encoded bit stream to maintain a desired bit rate for a rate controlled unit, the rate controlled unit being one of a picture, a slice or a block; and
calculating a code amount of the rate-controlled unit by using an actual code amount generated from a variable-length coding completed region in the rate-controlled unit, and an estimated code amount obtained based on a length of a bit string in a variable-length coding non-completed region in the rate-controlled unit and an occurrence frequency of a one-bit symbol in the bit string, the occurrence frequency of the one-bit symbol being obtained by counting either the number of zeroes included in the bit string or the number of ones included in the bit string,
wherein the estimated code amount is obtained by using a broken line approximation function, which is prepared for each category in accordance with the occurrence frequency and represents a relationship between the length of the bit string and a code amount to be generated,
wherein the variable-length coding includes an arithmetic coding on the rate-controlled unit, and
wherein the rate control is executed based on the calculated code amount.
3. A non-transitory computer-readable storage medium for storing a computer program executable on a computer, the computer program controlling a video encoding apparatus to perform a video encoding method, the method comprising:
executing an orthogonal transform on a prediction difference or an original image to provide transform coefficients;
executing quantization on the transform coefficients;
executing variable-length coding on the quantized transform coefficients;
executing a rate control of a encoded bit stream to maintain at a desired bit rate for a rate controlled unit, the rate controlled unit being one of a picture, a slice or a block; and
calculating a code amount of the rate-controlled unit by using an actual code amount generated from a variable-length coding completed region in the rate-controlled unit, and an estimated code amount obtained based on a length of a bit string in a variable-length coding non-completed region in the rate-controlled unit and an occurrence frequency of a one-bit symbol in the bit string, the occurrence frequency of the one-bit symbol being obtained by counting either the number of zeroes included in the bit string or the number of ones included in the bit string,
wherein the estimated code amount is obtained by using a broken line approximation function, which is prepared for each category in accordance with the occurrence frequency and represents a relationship between the length of the bit string and a code amount to be generated, and
wherein the variable-length coding includes an arithmetic coding on the rate-controlled unit, and
wherein the rate control is executed based on the calculated code amount.
US13/400,907 2011-02-25 2012-02-21 Video encoding method and apparatus for estimating a code amount based on bit string length and symbol occurrence frequency Expired - Fee Related US9210435B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-039699 2011-02-25
JP2011039699A JP5717465B2 (en) 2011-02-25 2011-02-25 Moving picture coding apparatus and moving picture coding method

Publications (2)

Publication Number Publication Date
US20120219057A1 US20120219057A1 (en) 2012-08-30
US9210435B2 true US9210435B2 (en) 2015-12-08

Family

ID=46718982

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/400,907 Expired - Fee Related US9210435B2 (en) 2011-02-25 2012-02-21 Video encoding method and apparatus for estimating a code amount based on bit string length and symbol occurrence frequency

Country Status (2)

Country Link
US (1) US9210435B2 (en)
JP (1) JP5717465B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170150150A1 (en) * 2015-11-19 2017-05-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (dsc)
US9686556B2 (en) * 2015-09-30 2017-06-20 Apple Inc. Rate-estimation for encoding rate control

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5396302B2 (en) * 2010-02-08 2014-01-22 パナソニック株式会社 Video signal encoding apparatus and video signal encoding method
US9491475B2 (en) * 2012-03-29 2016-11-08 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
CN103841418B (en) * 2012-11-22 2016-12-21 中国科学院声学研究所 The optimization method of video monitor Rate Control and system in a kind of 3G network
US9392286B2 (en) 2013-03-15 2016-07-12 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
US9298420B2 (en) 2013-07-26 2016-03-29 International Business Machines Corporation Identification of the bit position of a selected instance of a particular bit value in a binary bit string
US9794575B2 (en) 2013-12-18 2017-10-17 Magnum Semiconductor, Inc. Apparatuses and methods for optimizing rate-distortion costs in video encoding
EP3211887B1 (en) * 2014-11-13 2020-07-01 Samsung Electronics Co., Ltd. Method and device for generating metadata including frequency characteristic information of image
KR102401851B1 (en) * 2017-06-14 2022-05-26 삼성디스플레이 주식회사 Method of compressing image and display apparatus for performing the same
US11212531B2 (en) * 2019-06-07 2021-12-28 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for decoding video using rate sorted entropy coding

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243930A1 (en) 2004-04-28 2005-11-03 Wataru Asano Video encoding method and apparatus
US20060104527A1 (en) * 2004-11-12 2006-05-18 Kabushiki Kaisha Toshiba Video image encoding method, video image encoder, and video image encoding program
JP2008011431A (en) 2006-06-30 2008-01-17 Toshiba Corp Image coding apparatus
US20080025396A1 (en) * 2006-07-27 2008-01-31 Kei Tasaka Picture coding apparatus
JP2009038746A (en) 2007-08-03 2009-02-19 Panasonic Corp Image information encoding device
JP2009055384A (en) 2007-08-28 2009-03-12 Sony Corp Device and method for encoding, program for the encoding method, and recording medium recorded with the program
US20100238056A1 (en) * 2009-03-17 2010-09-23 Yukinaga Seki Code amount estimating device, image coding apparatus including the code amount estimating device, and code amount estimating method

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243930A1 (en) 2004-04-28 2005-11-03 Wataru Asano Video encoding method and apparatus
JP2005318296A (en) 2004-04-28 2005-11-10 Toshiba Corp Method, device, and program for encoding dynamic image
US20060104527A1 (en) * 2004-11-12 2006-05-18 Kabushiki Kaisha Toshiba Video image encoding method, video image encoder, and video image encoding program
JP2008011431A (en) 2006-06-30 2008-01-17 Toshiba Corp Image coding apparatus
US20080025396A1 (en) * 2006-07-27 2008-01-31 Kei Tasaka Picture coding apparatus
JP2009038746A (en) 2007-08-03 2009-02-19 Panasonic Corp Image information encoding device
JP2009055384A (en) 2007-08-28 2009-03-12 Sony Corp Device and method for encoding, program for the encoding method, and recording medium recorded with the program
US7688234B2 (en) 2007-08-28 2010-03-30 Sony Corporation Coding apparatus, coding method, program for executing the method, and recording medium storing the program
US20100238056A1 (en) * 2009-03-17 2010-09-23 Yukinaga Seki Code amount estimating device, image coding apparatus including the code amount estimating device, and code amount estimating method
JP2010219842A (en) 2009-03-17 2010-09-30 Panasonic Corp Code amount estimating apparatus, code amount estimating method, code amount estimate program, and code amount estimate integrated circuit
US7978103B2 (en) 2009-03-17 2011-07-12 Panasonic Corporation Code amount estimating device, image coding apparatus including the code amount estimating device, and code amount estimating method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Japanese Office Action dated Nov. 13, 2014 issued in corresponding Japanese application No. 2011-039699 and English translation thereof.
Koutsoyiannis ("Broken line smoothing: a simple method for interpolation and smoothing data series", Environmental Modelling & Software, vol. 15 issue 2, pub. Mar. 8, 2000). *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9686556B2 (en) * 2015-09-30 2017-06-20 Apple Inc. Rate-estimation for encoding rate control
US20170150150A1 (en) * 2015-11-19 2017-05-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (dsc)
US10574988B2 (en) * 2015-11-19 2020-02-25 Qualcomm Incorporated System and methods for reducing slice boundary visual artifacts in display stream compression (DSC)

Also Published As

Publication number Publication date
JP2012178660A (en) 2012-09-13
US20120219057A1 (en) 2012-08-30
JP5717465B2 (en) 2015-05-13

Similar Documents

Publication Publication Date Title
US9210435B2 (en) Video encoding method and apparatus for estimating a code amount based on bit string length and symbol occurrence frequency
JP4937741B2 (en) VIDEO ENCODING METHOD AND DEVICE, VIDEO DECODING METHOD AND DEVICE, ITS PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM
CN101409840B (en) Image encoding apparatus, image encoding method, image decoding apparatus, and image decoding method
CN101584215B (en) Integrated spatial-temporal prediction
US8149918B2 (en) Method of estimating coded block pattern and method of determining block mode using the same for moving picture encoder
WO2011101453A2 (en) Data compression for video
KR20170026536A (en) Method for encoding a digital image, and associated decoding method, devices and computer programmes
EP2520094A2 (en) Data compression for video
GB2488830A (en) Encoding and decoding image data
US20200252609A1 (en) Methods and apparatuses for signaling partioning information for picture encoding and decoding
CN110324639B (en) Techniques for efficient entropy encoding of video data
JP2023542029A (en) Methods, apparatus, and computer programs for cross-component prediction based on low-bit precision neural networks (NN)
CN115118976A (en) Image coding method, readable medium and electronic device thereof
JP6708211B2 (en) Moving picture coding apparatus, moving picture coding method, and recording medium storing moving picture coding program
JP2015211386A (en) Dynamic image encoding device, dynamic image encoding method, and computer program for dynamic image encoding
KR102532484B1 (en) Method and apparatus for encoding and decoding a data stream representing at least one image
CN103959788A (en) Estimation of motion at the level of the decoder by matching of models
JP5832263B2 (en) Image coding apparatus and image coding method
JP2009049969A (en) Device and method of coding moving image and device and method of decoding moving image
JP2009021786A (en) Image encoding device and method
Udupa Taylor Rate-Distortion trade-off and Adaptive block search for HEVC Encoding
Kumari et al. Taylor rate-distortion trade-off and adaptive block search for HEVC encoding
KR20110069482A (en) Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same
JP2007243859A (en) Image encoding apparatus and image encoding program

Legal Events

Date Code Title Description
AS Assignment

Owner name: HITACHI KOKUSAI ELECTRIC INC., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TAKAHASHI, MASASHI;CHIHARA, NOBUHIRO;YAMAGUCHI, MUNEAKI;REEL/FRAME:027735/0035

Effective date: 20120116

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20231208