WO2009148076A1 - 映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
WO2009148076A1
WO2009148076A1 PCT/JP2009/060139 JP2009060139W WO2009148076A1 WO 2009148076 A1 WO2009148076 A1 WO 2009148076A1 JP 2009060139 W JP2009060139 W JP 2009060139W WO 2009148076 A1 WO2009148076 A1 WO 2009148076A1
Authority
WO
WIPO (PCT)
Prior art keywords
code amount
picture
assigned
video
variable
Prior art date
Application number
PCT/JP2009/060139
Other languages
English (en)
French (fr)
Inventor
隆一 谷田
清水 淳
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to BRPI0911762A priority Critical patent/BRPI0911762A2/pt
Priority to EP09758343.9A priority patent/EP2265025B1/en
Priority to US12/994,339 priority patent/US8548042B2/en
Priority to JP2010515888A priority patent/JP4999991B2/ja
Priority to ES09758343.9T priority patent/ES2694713T3/es
Priority to CA 2722051 priority patent/CA2722051C/en
Priority to CN2009801193776A priority patent/CN102047661B/zh
Priority to RU2010144530/07A priority patent/RU2485711C2/ru
Publication of WO2009148076A1 publication Critical patent/WO2009148076A1/ja

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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model

Definitions

  • the present invention relates to a video code amount control method and apparatus used in a video coding method for performing a process of determining a quantization width of a picture to be encoded or a parameter similar thereto based on a pre-assigned code amount
  • the present invention relates to a video code amount control program used for realizing the video code amount control method and a computer-readable recording medium on which the program is recorded.
  • encoding is performed once to calculate the video feature amount, and the assigned code amount of each picture is obtained based on the calculated feature amount, and then the encoding is performed again.
  • Non-Patent Document 1 When performing CBR (constant bit rate) coding in a single pass, as described in Non-Patent Document 1 below, a fixed code amount R is assigned to a plurality of pictures, and the error code amount is set to the fixed code. A method of reflecting the quantity R is widely used.
  • this CBR coding method is applied to multi-pass coding in which the assigned code amount of each picture is determined in advance, since the assigned code amount of each picture is determined in advance, a certain code amount is set to a plurality of codes. There is no need to allocate to pictures. Therefore, when this CBR encoding method is applied to multi-pass encoding, the error code amount generated in the encoding of each picture is added to the allocated code amount of the next picture for correction.
  • step S501 the error code amount and the picture number n are initialized with 0 as an initialization process.
  • step S502 the nth picture is encoded with an assigned code amount given in advance.
  • a quantization width is calculated from the allocated code amount of the nth picture and the feature amount of the nth picture (step S601), a prediction residual is calculated (step S602), and DCT (discrete cosine transform) is performed (step S601). S603), the DCT coefficient is quantized (step S604). Thereafter, an encoded stream is generated by variable length encoding (step S605).
  • the quantized DCT coefficients are subjected to inverse quantization (step S606) and IDCT (inverse discrete cosine transform) (step S607) to create a decoded image of the prediction residual, and the decoded image is added to the predicted image. Generate (step S608).
  • step S503 it is determined whether or not all frames (all pictures) have been encoded. If all frames have been encoded, the process ends and all frames are encoded. If is not completed, the following processing is executed.
  • the error code amount is calculated from the difference between the allocated code amount and the actual code amount generated at the time of encoding.
  • the allocation code amount of the next picture is updated by adding the error code amount to the allocation code amount of the next picture.
  • the processing target is shifted to the next picture, and the process returns to the process in step S502 to repeat the above procedure.
  • an encoded stream close to the target file size can be obtained while successively correcting an error between the allocated code amount and the generated code amount.
  • FIG. 14 illustrates a device configuration of a conventional video encoding device that executes the processing of the flowcharts illustrated in FIGS. 12 and 13.
  • the conventional video encoding apparatus that executes the processes of the flowcharts shown in FIGS. 12 and 13 includes an allocated code amount storage unit 101, two adders 102 and 111, and two subtractors 103. , 106, feature amount storage unit 104, quantization width calculation unit 105, DCT unit 107, quantization unit 108, inverse quantization unit 109, IDCT unit 110, decoded image storage buffer 112, prediction An image generation unit 113 and a variable length encoding unit 114 are provided.
  • the allocation code amount storage unit 101 stores the initial value of the allocation code amount of each picture and outputs it to the adder 102 for each picture.
  • the adder 102 adds the initial value of the assigned code amount output from the assigned code amount storage unit 101 and the error code amount output from the subtractor 103, thereby calculating and outputting the assigned code amount of the picture to be encoded.
  • the subtractor 103 calculates the error code amount of the picture that has been encoded by calculating the difference between the allocated code amount output from the adder 102 and the generated code amount output from the variable length encoding unit 114. Output.
  • the feature amount storage unit 104 stores the feature amount of each picture obtained at the time of the first pass encoding, and outputs it to the quantization width calculation unit 105 for each picture.
  • the quantization width calculation unit 105 calculates and outputs the quantization width of the picture to be encoded from the feature amount output from the feature amount storage unit 104 and the assigned code amount output from the adder 102.
  • the subtractor 106 generates and outputs a prediction residual by calculating a difference between the input image and the predicted image output from the predicted image generation unit 113.
  • the DCT unit 107 performs DCT on the prediction residual output from the subtractor 106.
  • the quantization unit 108 quantizes each DCT coefficient output from the DCT unit 107 using the quantization width output from the quantization width calculation unit 105.
  • the inverse quantization unit 109 performs inverse quantization on the quantization value output from the quantization unit 108 using the quantization width output from the quantization width calculation unit 105.
  • the IDCT unit 110 performs IDCT on the coefficient after inverse quantization output from the inverse quantization unit 109.
  • the adder 111 generates a decoded image by adding the prediction residual decoded signal output from the IDCT unit 110 and the predicted image output from the predicted image generation unit 113, and outputs the decoded image to the decoded image storage buffer 112.
  • the decoded image storage buffer 112 stores the decoded image output from the adder 111.
  • the predicted image generation unit 113 generates and outputs a predicted image based on the decoded image stored in the decoded image storage buffer 112.
  • the variable length coding unit 114 performs variable length coding on the quantized DCT coefficient output from the quantization unit 108 and outputs the result as an encoded stream.
  • the conventional video encoding apparatus uses the configuration shown in FIG. 14 to execute the processing of the flowcharts shown in FIGS.
  • Patent Document 1 the CBR rate technology, which is the basis of the method described in Non-Patent Document 1, is given by referring to the document name (ISO / IEC JTC / SC29 / WG11: “Test Model5”, 1993) 1993.
  • the invention described in this document is only a technique within the framework of CBR, although the response to the code amount variation is higher than the method described in Non-Patent Document 1. Therefore, when the invention described in this document is applied to multi-pass encoding, the error code amount generated in the encoding of each picture is reduced as in the case of applying the method described in Non-Patent Document 1. Correction is performed by adding to the allocated picture amount of the next picture.
  • the allocated code amount for each picture is largely different from the original. For this reason, if the error code amount generated in the previous picture is added to the allocation code amount of the next picture, the variation from the original allocation code amount becomes large, and there is a high risk that the picture quality will fluctuate greatly between pictures.
  • VBR variable bit rate
  • the present invention has been made in view of such circumstances, and it is possible to improve subjective image quality by reducing image quality fluctuation for each picture when realizing encoding of a video with a target code amount.
  • the purpose is to provide a new video code amount control technology to be realized.
  • the present invention is a video code amount control method for controlling a generated code amount of a picture to be encoded based on an initial value of an assigned code amount given to each picture in advance. , The process of obtaining the difference between the assigned code amount of the picture that has been encoded and the actually generated code amount as an error code amount, and the next and subsequent pictures based on the sign of the error code amount Selecting either the maximum value or the minimum value of the assigned code amount calculated from the initial value and a constant given in advance as a correction allowable width, and the correction allowable width and the assigned code amount for the plurality of pictures.
  • the step of obtaining the maximum value and the minimum value of the assigned code amount based on the initial value and the constant of the assigned code amount in advance is provided. Is preferred.
  • the allocated code amount in the process of selecting, when the error code amount shows a positive value because the allocated code amount is larger than the actually generated code amount, the allocated code amount When the maximum value is selected as the correction allowable width, and the error code amount indicates a negative value because the assigned code amount is smaller than the actually generated code amount, the minimum value of the assigned code amount is It is preferable to select the correction allowable width.
  • the step of clipping the update ratio within a range the step of obtaining the difference between the error code amount and the sum of the variable code amount as the carry-over code amount, and the carry-over code amount And adding to the error code amount obtained when the next picture is encoded.
  • the update ratio is common to the plurality of pictures.
  • the present invention is a video code amount control device that controls the generated code amount of a picture to be encoded based on an initial value of an assigned code amount given to each picture in advance, and has finished encoding Means for obtaining a difference between an assigned code amount of a picture and an actually generated code amount as an error code amount, and for the next and subsequent pictures, the initial value of the assigned code amount is given in advance based on the sign of the error code amount
  • Means for obtaining a code amount means for obtaining a ratio of a sum of the variable code amount and the error code amount as an update ratio; and for the plurality of pictures, the variable code Said based on the update rate to calculate the variation amount of codes for assignment code amount, based on the variation amount of code, and means for updating the assigned code amount of each picture of the plurality pictures with.
  • the video code amount control apparatus further comprises means for obtaining the maximum value and the minimum value of the assigned code amount based on the initial value and the constant of the assigned code amount for each picture in advance. Is preferred.
  • the means for selecting when the allocated code amount is larger than the actually generated code amount and the error code amount shows a positive value, When the maximum value is selected as the correction allowable width, and the error code amount indicates a negative value because the assigned code amount is smaller than the actually generated code amount, the minimum value of the assigned code amount is It is preferable to select the correction allowable width.
  • means for clipping the update ratio within a range means for obtaining a difference between the error code amount and the sum of the variable code amounts as a carry-over code amount, and the carry-over code amount It is preferable to include means for adding to the error code amount obtained when the next picture is encoded.
  • the update ratio is common to the plurality of pictures.
  • the present invention is also a video code amount control program for causing a computer to execute the video code amount control method of the present invention.
  • the present invention is also a computer-readable recording medium on which a video code amount control program for causing a computer to execute the video code amount control method of the present invention is recorded.
  • the variable code amount of a plurality of predetermined pictures is obtained,
  • the update ratio is obtained from the ratio between the total of the variable code amount and the error code amount, and the variable code amount allocated to each picture is obtained based on the variable code amount and the update ratio of each picture.
  • the error code amount is assigned to the assigned code amounts of the next and subsequent pictures.
  • the VBR As described above, even when the code amount allocated to each picture varies greatly between pictures, the fluctuation of the quantization width due to the correction of the error code amount falls within a certain range.
  • the distribution amount (variable code amount) is obtained based on a common update ratio with respect to the variable code amount of each picture, the quantization width of each picture changes in the same way. Fluctuations in image quality during this period can be kept small.
  • the conventional method can continue the control without failing even when the control fails.
  • clip processing for realizing this mechanism is performed only for the update ratio, processing can be performed with only one conditional branch.
  • This video code quantity control device controls the generated code quantity of a picture to be encoded based on an initial value of an assigned code quantity given to each picture in advance.
  • first calculation means for obtaining a difference between an assigned code amount of a picture that has been encoded and an actually generated code amount as an error code amount; and (2) for a plurality of pictures subsequent to the first, Based on the sign of the error code amount obtained by one calculation means, either the maximum value or the minimum value of the assigned code amount calculated from the initial value of the assigned code amount and a predetermined constant is used as the allowable correction width.
  • Second calculating means for determining, as a variable code quantity, a difference between the correction allowable width selected by the selection means and the allocated code quantity for a plurality of subsequent pictures;
  • Calculation A third calculating unit that calculates a sum of the variable code amounts obtained by the means and obtains a ratio between the calculated total of the variable code amounts and the error code amount obtained by the first calculating unit as an update ratio;
  • For a plurality of subsequent pictures calculate a variable code amount for the assigned code amount based on the variable code amount obtained by the second calculation unit and the update ratio obtained by the third calculation unit.
  • Updating means for updating the allocated code amount of each picture of the plurality of pictures based on the calculated variable code amount.
  • the selection means includes a fourth calculation means for obtaining a maximum value and a minimum value of the assigned code quantity based on an assigned code quantity initial value and a constant given in advance. You may make it read the applicable thing from what was calculated
  • This fourth calculation means assigns the assigned code amount initial value multiplied by a constant to the assigned code amount maximum value, and assigns the assigned code amount initial value multiplied by a constant to the assigned code amount minimum value, In some cases, a value obtained by adding a constant to an assigned code amount initial value is used as the assigned code amount maximum value, and a value obtained by subtracting a constant from the assigned code amount initial value is used as the assigned code amount minimum value.
  • the selection unit selects the maximum assigned code amount as the correction allowable width, and the error code amount is When a negative value is indicated (when the assigned code amount is smaller than the actual generated code amount), the assigned code amount minimum value is selected as the correction allowable width.
  • the error code amount is 0, it may be handled in the same way as when the error code amount shows a positive value, or may be handled in the same way as when the error code amount shows a negative value.
  • the video code amount control method realized by the operation of each processing means described above can also be realized by a computer program.
  • the computer program is provided by being recorded on an appropriate computer-readable recording medium or provided via a network, and is installed when the video code amount control method is executed and is installed in a CPU (Central Processing Unit).
  • the video code amount control method is realized by operating on the control means such as).
  • an initial allocation code amount is set for each picture to be encoded. Determine the value. Then, for example, a value obtained by multiplying the initial value of the assigned code amount by a constant is used as the assigned code amount maximum value, and a value obtained by multiplying the constant by one constant is used as the assigned code amount minimum value. Thereby, as shown in FIG. 1B, the fluctuation range (maximum value to minimum value) of the allocated code amount is determined for each picture to be encoded.
  • variable range of the assigned code amount determined at this time is determined from the initial value of the assigned code amount, and thus remains unchanged in the encoding process.
  • the difference between the allocated code amount of the picture that has been encoded and the actually generated code amount is obtained as the error code amount.
  • the error code amount obtained at this time is added to the assigned code amount of the next picture.
  • the fluctuation from the assigned code amount obtained in advance increases. End up.
  • the video code amount control apparatus adopts a configuration in which the error code amount obtained at this time is distributed to the N pictures beyond that to be encoded.
  • this video code amount control apparatus a margin from the allocation limit is obtained for each of the N pictures beyond, and a code amount obtained by multiplying the margin by an update ratio that is a fixed ratio is obtained.
  • the code amount thus determined is distributed to the N pictures.
  • the update ratio is determined based on the fact that the sum of the code amounts distributed to the N pictures beyond is equal to the error code amount.
  • the difference between the assigned code amount of the picture that has been encoded and the actually generated code amount is obtained as the error code amount.
  • the video code amount control device adds the error code amount to the assigned code amount of the next and subsequent pictures when the error code amount shows a positive value based on the sign of the error code amount.
  • the maximum value of the allocated code amount obtained before entering the encoding is selected as the correction allowable width.
  • the video code amount control apparatus before the coding starts to allocate the error code amount by subtracting the error code amount from the allocated code amounts of the next and subsequent pictures.
  • the minimum value of the assigned code amount obtained in (5) is selected as the correction allowable width.
  • the fourth calculating means when the error code amount shows a positive value at the time of selecting the correction allowable width, the initial value of the assigned code amount is set for the next and subsequent pictures.
  • the maximum value of the allocated code amount is obtained by calculating a constant multiple, and is selected as the correction allowable width.
  • the minimum value of the assigned code amount is obtained by calculating, for example, one time of a constant of the assigned code amount initial value for the next and subsequent pictures. Is selected as the correction allowable width.
  • the difference between the correction allowable width and the assigned code amount is obtained as a variable code amount, and the ratio of the sum of the variable code amount thus determined and the error code amount is updated. Calculate as a ratio.
  • variable code amount for the assigned code amount of each picture constituting the next and subsequent pictures is calculated, and based on this, the assigned code amount of each picture is calculated. Update.
  • the initial value of the assigned code amount of a certain picture after the next is 50
  • a value obtained by doubling the initial value of the assigned code amount is set to the maximum value of the assigned code amount, and the assigned code amount is multiplied by 1/2
  • the maximum value of the assigned code amount is 100
  • the minimum value of the assigned code amount is 25.
  • variable code amount of picture j is expressed as Tm [j]
  • the error code amount is expressed as D
  • the update ratio is expressed as K
  • the update ratio K is set based on the fact that the sum of the variable code amounts Td [j] distributed to the N pictures beyond is equal to the error code amount D. I try to decide.
  • this error code amount control device when the error code amount is obtained based on the difference between the assigned code amount of the picture that has been encoded and the actually generated code amount, this error code amount is used as it is for the next picture. Instead of adding up to the allocated code amount, the number of pictures to be encoded is distributed and settled according to the degree of necessity of the pictures.
  • the video code amount control apparatus when the video is encoded with the target code amount, the image quality fluctuation for each picture can be reduced, and the subjective image quality can be improved. Will be able to.
  • the update ratio is clipped within the range so that a difference can be made between the error code amount and the total of the variable code amount, and the difference thus made is carried over as the carry-over code amount. Then, it is added to the error code amount obtained at the time of encoding the next picture.
  • the amount that cannot be stacked (the amount that cannot be drawn) is distributed when the next picture is processed.
  • FIG. 4 illustrates an example of a device configuration of a video encoding device including a video code amount control device to which the present invention is applied.
  • this video encoding apparatus has an allocated code amount storage unit 101, a subtractor 103, a feature amount storage unit 104, a quantization width calculation unit 105, a subtraction, which perform the same functions as those shown in FIG. 14.
  • Unit 106 DCT unit 107, quantization unit 108, inverse quantization unit 109, IDCT unit 110, adder 111, decoded image storage buffer 112, predicted image generation unit 113, and variable length encoding unit 114.
  • the video encoding device includes an allocated code amount calculation unit 200 that executes processing characteristic of the present embodiment.
  • the video code amount control apparatus includes an allocated code amount calculation unit 200 and a subtracter 103.
  • FIG. 5 shows an example of a flowchart of processing executed by the allocated code amount calculation unit 200 characteristic of the present embodiment.
  • a portion surrounded by a dotted line is an application area of the present invention.
  • the video encoding apparatus When starting the process, the video encoding apparatus first initializes the error code amount and the picture number n with 0 as an initialization process in step S101.
  • step S102 the nth picture is encoded with an assigned code amount given in advance.
  • the initial value of the assigned code amount of each picture is set in advance based on the first encoding result.
  • step S103 it is determined whether or not encoding of all frames (all pictures) has been completed. If encoding of all frames has been completed, the process ends and encoding of all frames is completed. If is not completed, the following processing is executed.
  • step S104 the error code amount is calculated from the difference between the assigned code amount and the generated code amount for the nth picture, and in the subsequent step S105, the sign of the calculated error code amount is positive or negative. Judge whether or not.
  • step S104 When it is determined that the error code amount calculated in step S104 is positive in accordance with the determination process in step S105, the process proceeds to step S106, from n + 1 to n + Nth sheet (N is a predetermined constant exceeding 1).
  • the maximum code amount of each picture (maximum value of the assigned code amount described above) is calculated from the initial value of the assigned code amount of each picture and a constant.
  • step S107 the variable code amount of each picture is calculated from the difference between the maximum code amount and the assigned code amount of each picture from n + 1 to n + N.
  • step S104 when it is determined that the error code amount calculated in step S104 is negative according to the determination process in step S105, the process proceeds to step S108, where n + 1 to n + Nth sheets (N is a constant exceeding 1 which is determined in advance).
  • the minimum code amount of each picture up to (the above-mentioned minimum value of the assigned code amount) is calculated from the assigned code amount initial value of each picture and a constant.
  • step S109 the variable code amount of each picture is calculated from the difference between the minimum code amount and the assigned code amount of each picture from n + 1 to n + N.
  • step S110 when the variable code amount of each picture from the (n + 1) th to the (n + N) th picture is calculated in steps S107 and 109, the total (total value) of the calculated variable code amounts is obtained in step S110.
  • the update ratio is obtained from the ratio between the total of the variable code amount and the error code amount.
  • step S111 the variable code amount of each picture is obtained by the product of the variable code amount of each picture from n + 1 to n + Nth picture and the obtained update ratio.
  • step S112 the allocated code amount of each picture is updated by adding the obtained variable code amount to the allocated code amount of each picture from n + 1 to n + N. Note that the initial value of the assigned code amount of each picture is set in advance based on the first encoding result and is not updated.
  • step S113 the processing target is moved to the next picture, and the above processing is repeated by returning to the processing in step S102.
  • the error code amount generated in the encoded picture is distributed not only to the next picture but also to a plurality of pictures, so that fluctuations in the assigned code amount of the next picture can be suppressed. It becomes like this.
  • the distribution amount is determined like VBR. Even when the allocated code amount varies greatly between pictures, the fluctuation of the quantization width due to the correction of the error code amount can be kept within a certain range.
  • the distribution amount is obtained by multiplying the variable code amount of each picture by a common update ratio, the quantization width of each picture changes in the same way, and the image quality between pictures by this processing is changed. Fluctuations can be minimized.
  • the maximum code amount is calculated in step S106, and the minimum code amount is calculated in step S108.
  • the maximum code amount and the minimum code amount are calculated from the assigned code amount initial value and constant of each picture, they can be calculated before entering the processing of step S101. From this, the maximum code amount and the minimum code amount may be calculated before entering the process of step S101, and in step S106 and step S108, the corresponding one may be selected from the calculated ones. In this way, it is not necessary to repeatedly calculate the maximum code amount and the minimum code amount showing the same value.
  • FIG. 6 illustrates an example of a device configuration of the allocated code amount calculation unit 200 that executes the flowchart of FIG.
  • the allocation code amount calculation unit 200 that executes processing characteristic of the present embodiment includes an allocation control unit 2001, an allowable correction width calculation unit 2002, a maximum code amount holding memory 2003, and a minimum code.
  • the allocation control unit 2001 sends memory read control signals to the three memories 2003, 2004, and 2005 to control the outputs of the memories 2003, 2004, and 2005, and controls ON / OFF of the switch B2013 and switching of the switch C2014. To do.
  • the allowable correction width calculation unit 2002 calculates the maximum code amount and the minimum code amount of each picture from the assigned code amount initial value of each picture, and outputs them to the maximum code amount holding memory 2003 and the minimum code amount holding memory 2004.
  • the maximum code amount holding memory 2003 holds the maximum code amount of each picture output from the allowable correction width calculation unit 2002, and when receiving the memory read control signal from the allocation control unit 2001, the maximum code amount of the designated picture number Is output to the switch A2012.
  • the minimum code amount holding memory 2004 holds the minimum code amount of each picture output from the allowable correction width calculation unit 2002, and upon receiving a memory read control signal from the assignment control unit 2001, the minimum code amount of the designated picture number Is output to the switch A2012.
  • the allocation code amount holding memory 2005 holds the allocation code amount of each picture output from the switch C2014, and adds the allocation code amount of the designated picture number to the subtractor 2007 and adds according to the memory read control signal from the allocation control unit 2001. To the device 2011.
  • the positive / negative determination unit 2006 determines whether the error code amount is positive or negative for a picture that has been encoded, and outputs a switching control signal corresponding to the determination result to the switch A2012, so that the determination result is positive. Controls the switch A2012 to select and output the maximum code amount output from the maximum code amount holding memory 2003, and when the determination result is negative, the switch A2012 outputs from the minimum code amount holding memory 2004. Control to select and output the minimum code amount.
  • the subtractor 2007 calculates a variable code amount of each picture by calculating a difference between the maximum code amount or the minimum code amount output from the switch A2012 and the allocated code amount output from the allocated code amount holding memory 2005, The total value calculation unit 2008 and the multiplier 2010 are output.
  • the total value calculation unit 2008 calculates the total value of the variable code amount output from the subtracter 2007 to calculate the total value of the variable code amount of each picture, and outputs the total value to the ratio calculation unit 2009.
  • the ratio calculation unit 2009 calculates the update ratio by calculating the ratio between the total value of the variable code amount output from the total value calculation unit 2008 and the error code amount for the picture that has been encoded, and the multiplier 2010. Output to.
  • the multiplier 2010 calculates the variable code amount of each picture by multiplying the variable code amount output from the subtractor 2007 and the update ratio output from the ratio calculation unit 2009, and outputs it to the adder 2011.
  • the adder 2011 obtains an update value of the assigned code amount of each picture by adding the assigned code amount output from the assigned code amount holding memory 2005 and the variable code amount output from the multiplier 2010, and the switch B2013 and the switch Output to C2014.
  • the switch A 2012 selects the terminal a when selecting the maximum code amount, and selects the terminal b when selecting the minimum code amount. Either the maximum code amount output from the holding memory 2003 or the minimum code amount output from the minimum code amount holding memory 2004 is selected and output to the subtracter 2007.
  • Switch B 2013 outputs the update value of the assigned code amount output from adder 2011 to quantization width calculator 105 and subtracter 103 shown in FIG. 4 in accordance with the switching control signal from assignment controller 2001.
  • the switch C2014 selects the terminal a when selecting the initial value of the allocation code amount according to the switching control signal from the allocation control unit 2001, and selects the updated allocation code amount output from the adder 2011. By selecting the terminal b, either the initial value of the assigned code amount or the updated value of the assigned code amount is selected and output to the assigned code amount holding memory 2005.
  • the allocation code amount calculation unit 200 inputs an allocation code amount initial value to the allowable correction width calculation unit 2002, obtains the maximum code amount and the minimum code amount of the first to Nth pictures, The data is sent to the maximum code amount holding memory 2003 and the minimum code amount holding memory 2004, respectively. Then, a switching control signal is sent from the allocation control unit 2001 to the switch C2014 to switch the switch C2014 to the terminal a side, and the allocated code amount initial value of the first to Nth pictures is assigned to the allocated code amount holding memory 2005. input.
  • the positive / negative determining unit 2006 determines whether the input error code amount is positive or negative, and sends a switching control signal to the switch A 2012. If it is positive, the positive / negative determining unit 2006 switches to the terminal a side. Subsequently, a memory read control signal is sent from the allocation control unit 2001 to the maximum code amount holding memory 2003, the minimum code amount holding memory 2004, and the allocated code amount holding memory 2005, and the first to Nth sheets held in each memory are sent. Each value of the picture up to is output.
  • the subtracter 2007 obtains a difference between the outputs to obtain a variable code amount, and the total value is calculated by the total value calculation unit 2008.
  • the ratio calculation unit 2009 obtains an update ratio from the ratio between the obtained total value of the variable code amount obtained and the error code amount.
  • a memory read control signal is sent again from the allocation control unit 2001 to the maximum code amount holding memory 2003, the minimum code amount holding memory 2004, and the allocated code amount holding memory 2005, and the first sheet held in each memory To the Nth picture.
  • the subtracter 2007 obtains the variable code amount of each picture from the difference between the output values, and the multiplier 2010 calculates the variable code amount of each picture by the product with the update ratio obtained earlier. Then, the adder 2011 adds the obtained variable code amount of each picture to the assigned code amount of each picture, thereby calculating an update value of the assigned code amount of each picture.
  • the switch C2014 is switched to the terminal b side by a switching control signal from the allocation control unit 2001, and the update value of the allocated code amount of each picture obtained is output to the allocated code amount holding memory 2005, so that Update the allocated code amount.
  • the switch B2013 is turned on, and the updated allocation code amount of the next picture is output to the quantization width calculation unit 105 and the subtracter 103 illustrated in FIG.
  • the sign of the error code amount is determined by the positive / negative determination unit 2006, and a switching control signal is sent to the switch A2012, and when it is positive, it switches to the terminal a side, and when negative, it switches to the terminal b side.
  • the maximum code amount of each picture from the (n + 1) th to (n + N) th pictures is calculated by the allowable correction amount calculation unit 2002 based on the assigned code amount initial value and the constant. Store in the holding memory 2003. Subsequently, the subtracter 2007 calculates the variable code amount of each picture from the (n + 1) th to the (n + N) th picture. In this calculation process, the maximum code amount of each picture is sequentially output from the maximum code amount holding memory 2003 to the subtracter 2007 in accordance with the memory read control signal from the assignment control unit 2001, and the assigned code amount of each picture at that time is calculated. Calculation is performed by sequentially outputting the allocated code amount holding memory 2005 to the subtracter 2007.
  • the minimum code amount of each picture from the (n + 1) th to the (n + N) th picture is calculated by the allowable correction amount calculation unit 2002 based on the assigned code amount initial value and the constant. It is stored in the code amount holding memory 2004. Subsequently, the subtracter 2007 calculates the variable code amount of each picture from the (n + 1) th to the (n + N) th picture. In this calculation process, the minimum code amount of each picture is sequentially output from the minimum code amount holding memory 2004 to the subtracter 2007 in accordance with the memory read control signal from the assignment control unit 2001, and the assigned code amount of each picture at that time is calculated. Calculation is performed by sequentially outputting the allocated code amount holding memory 2005 to the subtracter 2007.
  • the update ratio is calculated from the ratio between the total of the variable code amount and the error code amount.
  • the total of the variable code amount is obtained by calculating the sum from the output from the subtracter 2007 by the total value calculation unit 2008.
  • An update ratio is obtained by the ratio calculation unit 2009 from the sum and the error code amount.
  • variable code amount of each picture is obtained by the multiplier 2010. This is because after the update ratio is calculated, a memory read control signal is sent from the allocation control unit 2001 to the allocated code amount holding memory 2005, the maximum code amount holding memory 2003, and the minimum code amount holding memory 2004, and the subtracter 2007 performs the same as described above. The variable code amount is calculated. Then, the multiplier 2010 multiplies this value and the update ratio to obtain the variable code amount of each picture from n + 1 to n + N.
  • variable code amount and the assigned code amount of each picture output from the assigned code amount holding memory 2005 are added by an adder 2011 to obtain an updated value of the assigned code amount of each picture.
  • the switch C2014 is switched to the terminal b side by the switching control signal from the allocation control unit 2001, and the allocation code amount of each picture held in the allocation code amount holding memory 2005 is overwritten and updated with the updated allocation code amount.
  • the maximum value and the minimum value of the assigned code amount for each picture are respectively obtained by a constant multiple of the assigned code amount initial value of each picture given in advance and a constant fraction.
  • the update ratio is clipped to the maximum value or less (in the range). Accordingly, a portion of the error code amount that is not allocated to each picture is assumed to have a function of adding to the error code amount of the next picture as a carry-over code amount (which may indicate a negative value).
  • FIG. 7 shows an example of a flowchart executed by the allocated code amount calculation unit 200 to realize the present embodiment.
  • step S201 when processing is started, first, in step S201, error code amount D, carry-over code amount C, and picture number n are initialized to 0 as initialization processing.
  • step S202 the nth picture is encoded with an assigned code amount given in advance.
  • the encoding performed here is the same as the encoding performed in step S102 of the flowchart of FIG.
  • step S203 it is determined whether or not encoding of all frames (all pictures) has been completed. If encoding of all frames has been completed, the process ends and encoding of all frames is completed. If is not completed, the following processing is executed.
  • the error code amount D is calculated from the difference between the allocated code amount Tt and the actually generated actual code amount Tg. D ⁇ Tt -Tg Is calculated.
  • step S205 an error code amount D obtained by adding the carry-over code amount C by adding the carry-over code amount C to the error code amount D.
  • step S206 it is determined whether or not the error code amount D is 0 or more, and when it is determined that the error code amount D is 0 or more, the process proceeds to step S207, and the flowchart of FIG. The process shown is executed.
  • step S301 the code amount given in advance for each picture from the (n + 1) th sheet to the (n + N) th sheet (N is a predetermined constant exceeding 1).
  • the maximum code amount Tmax [j] is obtained by a constant multiple of Torg [j] (n + 1 ⁇ j ⁇ n + N). If a constant of a constant multiple is expressed by ⁇ , Tmax [j] ⁇ Torg [j] ⁇ ⁇ Is demanded.
  • Torg [j] is specifically an initial value of the allocated code amount of the j-th picture set based on the first encoding result.
  • step S302 a variable code amount Tm [j] and a sum Tm_sum thereof are obtained for each picture from the (n + 1) th picture to the (n + N) th picture. That is, based on the maximum code amount Tmax [j] and the assigned code amount Tt [j], the variable code amount Tm [j] Tm [j] ⁇ Tmax [j] ⁇ Tt [j] And the sum Tm_sum Tm_sum ⁇ ⁇ Tm [j] However, ⁇ calculates the sum for n + 1 ⁇ j ⁇ n + N.
  • step S303 the update ratio K is calculated from the ratio between the error code amount D ( ⁇ 0) and the total Tm_sum ( ⁇ 0) of the variable code amount. K ⁇ D / Tm_sum Ask for.
  • step S304 the obtained update ratio K is clipped with a maximum value Kmax (a fixed value given in advance). That is, based on the obtained update ratio K and a preset maximum value Kmax, K ⁇ Max [K, Kmax] Is demanded.
  • step S305 the variable code amount Td [j] is obtained for each picture from the (n + 1) th picture to the (n + N) th picture using the update ratio K thus obtained. That is, based on the update ratio K and the variable code amount Tm [j], the variable code amount Td [j] Td [j] ⁇ K ⁇ Tm [j] Is calculated.
  • step S306 the allocated code amount Td [j] obtained in this way is added to the assigned code amount Tt [j], so that the assigned code amount for each picture from the (n + 1) th picture to the (n + N) th picture is obtained.
  • Tt [j] is updated, and the process of step S207 in the flowchart of FIG. 7 ends. That is, based on the variable code amount Td [j] and the assigned code amount Tt [j], Tt [j] ⁇ Tt [j] + Td [j] Thus, the allocated code amount Tt [j] is updated, and the process of step S207 in the flowchart of FIG. 7 ends.
  • step S206 when it is determined in step S206 in the flowchart of FIG. 7 that the error code amount D is not 0 or more, the process proceeds to step S208 to execute the processing shown in the flowchart of FIG.
  • step S401 a code amount given in advance for each picture from the (n + 1) th sheet to the (n + N) th sheet (N is a predetermined constant exceeding 1).
  • the minimum code amount Tmin [j] is obtained by a constant fraction of Torg [j] (n + 1 ⁇ j ⁇ n + N). That is, if a constant of a constant is expressed by ⁇ , Tmin [j] ⁇ Torg [j] / ⁇ Is demanded.
  • Torg [j] is specifically an initial value of the allocated code amount of the j-th picture set based on the first encoding result.
  • the constant of one constant is preferably the same value ( ⁇ ) as the constant multiplied by the above constant, but it is not essential that these two constants are the same.
  • step S402 a variable code amount Tm [j] and a sum Tm_sum thereof are obtained for each picture from the (n + 1) th picture to the (n + N) th picture. That is, based on the minimum code amount Tmin [j] and the assigned code amount Tt [j], the variable code amount Tm [j] Tm [j] ⁇ Tmin [j] ⁇ Tt [j] And the sum Tm_sum Tm_sum ⁇ ⁇ Tm [j] However, ⁇ calculates the sum for n + 1 ⁇ j ⁇ n + N.
  • step S403 the update ratio K is calculated from the ratio between the error code amount D ( ⁇ 0) and the total Tm_sum ( ⁇ 0) of the variable code amount. K ⁇ D / Tm_sum Ask for.
  • step S404 the obtained update ratio K is clipped with a maximum value Kmax (a fixed value given in advance). That is, based on the obtained update ratio K and a preset maximum value Kmax, K ⁇ Max [K, Kmax] Is demanded.
  • step S405 the code amount Td [j] is obtained for each picture from the (n + 1) th to the (n + N) th picture using the update ratio K thus obtained. That is, based on the update ratio K and the variable code amount Tm [j], the variable code amount Td [j] Td [j] ⁇ K ⁇ Tm [j] Is calculated.
  • step S406 the allocated code amount Td [j] thus obtained is added to the assigned code amount Tt [j], thereby assigning the assigned code amount for each picture from the (n + 1) th picture to the (n + N) th picture.
  • Tt [j] is updated, and the process of step S208 in the flowchart of FIG. 7 ends. That is, based on the variable code amount Td [j] and the assigned code amount Tt [j], Tt [j] ⁇ Tt [j] + Td [j] In this way, the allocated code amount Tt [j] is updated, and the process of step S208 in the flowchart of FIG. 7 ends.
  • step S207 and step S208 the sum Td_sum of the variable code amount Td [j] is obtained in step S209. That is, Td_sum ⁇ ⁇ Td [j] However, ⁇ calculates the sum for n + 1 ⁇ j ⁇ n + N.
  • step S210 the carry-over code amount C is calculated based on the difference between the error code amount D and the calculated total Td_sum of the variable code amounts.
  • the carry-over code amount C calculated in this way is added to the error code amount D in step S205.
  • step S211 the processing target is moved to the next picture, and the processing of returning to step S202 is repeated to encode the next picture with the assigned code amount Tt.
  • the basic configuration of the video encoding apparatus for realizing the processing of the present embodiment is the same as that shown in FIG. 4, and the allocated code amount calculation unit 200 is different from that shown in FIG. A new configuration will be added to the configuration shown.
  • FIG. 10 illustrates an example of the configuration of the allocated code amount calculation unit 200 for realizing the processing of the present embodiment.
  • the allocation code amount calculation unit 200 includes the processing units 2001 to 2008 and 2010 to 2014 shown in FIG.
  • the update ratio calculated in 2009 is clipped to the maximum value or less, and a second total value calculation unit 2015, a subtracter 2016, a carry-over amount holding unit 2017, and an adder 2018 are newly added. Prepare.
  • the second total value calculating unit 2015 receives the variable code amount Td [j] output from the multiplier 2010 as an input, calculates the total value, thereby calculating the total Td_sum of the variable code amount, and the subtracter 2016. Output to.
  • the subtractor 2016 calculates the carry-over code amount C by calculating the difference between the error code amount D and the sum of the variable code amounts Td_sum output from the second total value calculation unit 2015, and sends it to the carry-over amount holding unit 2017. Output.
  • the carryover amount holding unit 2017 holds the carryover code amount C output from the subtracter 2016, and outputs the held carryover code amount C to the adder 2018 when the next picture is encoded.
  • the adder 2018 corrects the error code amount D by adding the carry code amount C output from the carry amount holding unit 2017 and the error code amount D obtained by the current encoding when the next picture is encoded. The result is output to the positive / negative determining unit 2006, the ratio calculating unit 2009, and the subtracter 2016.
  • the experimental image used was an ITE standard image “seq07” “European“ Market ”” (1440 ⁇ 1080, 450 mm frame from the head of the image, containing “telop”).
  • the encoding method uses a two-pass encoding method, the first encoding is performed with a fixed quantization width, and half of the generated code amount of each picture is set as the target code amount for the second encoding. went.
  • the quantization parameter at the first encoding (quantization width expressed in log scale) was 24 for I picture, 27 for P picture, and 30 for B picture.
  • the experiment of the conventional method was performed by adding the error generated for each picture to the next picture and encoding.
  • the addition is performed on the next same type picture, for example, the error of the I picture is corrected in the next I picture.
  • the experiment of the present invention was performed by encoding according to the method described in the examples.
  • the maximum code amount is twice the initial value of the assigned code amount
  • the minimum code amount is 1 ⁇ 2 of the assigned code amount initial value
  • FIG. 11A and FIG. 11B show the results of this experiment in comparison with the conventional method and the present invention.
  • the horizontal axis indicates the frame number
  • the vertical axis indicates the quantization parameter.
  • the program for realizing each processing step described above is recorded on a computer-readable recording medium, and the program recorded on the recording medium is read into a computer system and executed, whereby video encoding is performed. You may perform the various process which concerns on the apparatus mentioned above.
  • the computer system may include an OS (operating system) and hardware such as peripheral devices.
  • the computer system also includes a homepage providing environment (or display environment) if a WWW (World Wide Web) system is used.
  • Computer-readable recording media include flexible disks, magneto-optical disks, ROM (Read Only Memory), writable non-volatile memory such as flash memory, portable media such as CD (compact disk) -ROM, and computer systems.
  • a built-in storage device such as a hard disk.
  • the computer-readable recording medium is a volatile memory (for example, DRAM (Dynamic Random Random) inside a computer system serving as a server or client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. (Access Memory)), etc., which hold a program for a certain period of time.
  • DRAM Dynamic Random Random
  • the program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium.
  • the transmission medium for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
  • the program may be for realizing a part of the functions described above. Furthermore, what can implement
  • the present invention can be applied to video coding, and by applying the present invention, image quality fluctuation for each picture can be reduced when the video is encoded with a target code amount. As a result, the subjective image quality can be improved.

Abstract

 予め各ピクチャに与えられた割り当て符号量の初期値に基づいて、符号化対象となるピクチャの発生符号量を制御する映像符号量制御方法および装置であって、符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求め、次以降の複数ピクチャについて、前記誤差符号量の正負に基づいて、前記割り当て符号量の前記初期値と予め与えられた定数とにより算出される割り当て符号量の最大値か最小値のいずれか一方を修正許容幅として選択し、前記複数ピクチャについて、前記修正許容幅と割り当て符号量との差を変動可能符号量として求め、前記変動可能符号量の総和と前記誤差符号量との比を更新比率として求め、前記複数ピクチャについて、前記変動可能符号量と前記更新比率とに基づいて割り当て符号量についての変動符号量を算出して、前記変動符号量に基づいて、前記複数ピクチャの各ピクチャの割り当て符号量を更新する。

Description

映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
 本発明は、予め与えられた割り当て符号量に基づいて符号化対象ピクチャの量子化幅もしくはそれに類するパラメータを決定するという処理を行う映像符号化方式で用いられる映像符号量制御方法およびその装置と、その映像符号量制御方法の実現に用いられる映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体とに関する。
 本願は、2008年6月5日に、日本に出願された特願2008-147534号に基づき優先権を主張し、その内容をここに援用する。
 映像情報を目的の符号量で符号化する方法のひとつとして、一度符号化を実行して映像の特徴量を算出し、それを元に各ピクチャの割り当て符号量を求めてから再度符号化を行う2パスエンコード方式、もしくはそれを複数回繰り返すマルチパスエンコード方式がある。これらの方式は、一度符号化した結果をもとに各ピクチャへ適切な符号量配分ができるため、効率的な符号化が可能となる。
 各ピクチャの割り当て符号量を一度目の符号化結果を元に全て割り当てた場合でも、実際の発生符号量と割り当て符号量との間には誤差が発生する。従って、ストリームを目標サイズに収めるためには、その誤差符号量を次ピクチャの割り当て符号量に反映させ、誤差を逐次修正する必要がある。
 シングルパスでCBR(コンスタントビットレート)符号化を行う際には、下記の非特許文献1に挙げられているように、複数枚ピクチャに一定符号量Rを割り当てて、誤差符号量をその一定符号量Rに反映させる方法が広く使われている。
 一方、このCBR符号化の方法を予め各ピクチャの割り当て符号量が定められているマルチパス符号化について適用する場合、各ピクチャの割り当て符号量が予め定められているため、一定符号量を複数枚ピクチャに割り振るという処理が必要ない。従って、このCBR符号化の方法をマルチパス符号化について適用する場合には、各ピクチャの符号化で発生した誤差符号量を次ピクチャの割り当て符号量に加算して補正することになる。
 図12に、一回目の符号化結果を元に各ピクチャの割り当て符号量と特徴量を算出した後、上記の方法(各ピクチャの符号化で発生した誤差符号量を次ピクチャの割り当て符号量に加算して補正する方法)を用いる場合の背景技術のフローチャートを一例として示す。
 このフローチャートに示すように、背景技術では、まずステップS501で、初期化処理として、誤差符号量およびピクチャ番号nを0で初期化する。
 続いて、ステップS502で、n番目のピクチャを予め与えられた割り当て符号量で符号化する。
 すなわち、図13のフローチャートに示す符号化処理を実行する。n番目のピクチャの割り当て符号量とn番目のピクチャの特徴量から量子化幅を算出して(ステップS601)、予測残差を算出し(ステップS602)、DCT(離散コサイン変換)を施し(ステップS603)、DCT係数を量子化する(ステップS604)。その後、可変長符号化によって符号化ストリームを生成する(ステップS605)。一方、量子化後のDCT係数に逆量子化(ステップS606)とIDCT(逆離散コサイン変換)(ステップS607)を施して予測残差の復号画像を作成し、予測画像と加算して復号画像を生成する(ステップS608)。
 続いて、ステップS503で、全フレーム(全ピクチャ)の符号化が完了したのか否かを判断して、全フレームの符号化が完了している場合には処理を終了し、全フレームの符号化が完了していない場合には以下の処理を実行する。
 すなわち、続くステップS504で、割り当て符号量と符号化時に発生した実符号量との差から誤差符号量を算出する。続くステップS505で、次ピクチャの割り当て符号量に誤差符号量を加算することで、次ピクチャの割り当て符号量を更新する。続くステップS506で、処理対象を次のピクチャに移行してステップS502の処理に戻り上記の手順を繰り返す。
 以上の処理を行うことで、割り当て符号量と発生符号量との誤差を逐次補正しながら目的のファイルサイズに近い符号化ストリームが得られる。
 図14に、図12および図13に示すフローチャートの処理を実行する従来の映像符号化装置の装置構成を図示する。
 図14に示すように、図12および図13に示すフローチャートの処理を実行する従来の映像符号化装置は、割り当て符号量保存部101と、2つの加算器102,111と、2つの減算器103,106と、特徴量保存部104と、量子化幅算出部105と、DCT部107と、量子化部108と、逆量子化部109と、IDCT部110と、復号画像保存バッファ112と、予測画像生成部113と、可変長符号化部114とを備える。
 割り当て符号量保存部101は、各ピクチャの割り当て符号量の初期値を保存し、1ピクチャ分ずつ加算器102に出力する。加算器102は、割り当て符号量保存部101の出力する割り当て符号量初期値と減算器103の出力する誤差符号量とを加算することで、これから符号化するピクチャの割り当て符号量を算出して出力する。減算器103は、加算器102の出力する割り当て符号量と可変長符号化部114の出力する発生符号量との差分を算出することで、符号化を終えたピクチャの誤差符号量を算出して出力する。特徴量保存部104は、1パス目の符号化時に求めた各ピクチャの特徴量を保存し、1ピクチャ分ずつ量子化幅算出部105に出力する。量子化幅算出部105は、特徴量保存部104の出力する特徴量と加算器102の出力する割り当て符号量とから、これから符号化するピクチャの量子化幅を算出して出力する。
 減算器106は、入力画像と予測画像生成部113の出力する予測画像との差分を算出することで予測残差を生成して出力する。DCT部107は、減算器106の出力する予測残差にDCTを施す。量子化部108は、量子化幅算出部105の出力する量子化幅を使って、DCT部107の出力する各DCT係数に量子化を施す。逆量子化部109は、量子化幅算出部105の出力する量子化幅を使って、量子化部108の出力する量子化値に逆量子化を施す。IDCT部110は、逆量子化部109の出力する逆量子化後の係数にIDCTを施す。加算器111は、IDCT部110の出力する予測残差復号信号と予測画像生成部113の出力する予測画像とを加算することで復号画像を生成して復号画像保存バッファ112に出力する。復号画像保存バッファ112は、加算器111の出力する復号画像を保存する。予測画像生成部113は、復号画像保存バッファ112の保存する復号画像に基づいて予測画像を生成して出力する。可変長符号化部114は、量子化部108の出力する量子化後のDCT係数に可変長符号化を施し、符号化ストリームとして出力する。
 従来の映像符号化装置は図14に示すような構成を用いることで、図12および図13に示すフローチャートの処理を実行することになる。
 なお、下記の特許文献1では、文献名(ISO/IEC JTC/SC29/WG11:"Test Model5",1993) を挙げて、非特許文献1に記載されている方法のベースとなるCBRレート技術について説明している。しかし、この文献に記載された発明は、非特許文献1に記載された方法と比較して符号量変動に対する応答は高くなるものの、CBRの枠内の技術に過ぎない。従って、この文献に記載された発明をマルチパス符号化について適用する場合には、非特許文献1に記載された方法を適用する場合と同様に、各ピクチャの符号化で発生した誤差符号量を次ピクチャの割り当て符号量に加算して補正することになる。
特開2000-358247号公報
安田浩、渡辺裕著,「ディジタル画像圧縮の基礎」,日経BP出版センター, pp.189-193, 1999
 このように、CBR符号化の方法を予め各ピクチャの割り当て符号量が定められているマルチパス符号化について適用する場合には、図12および図13に示すフローチャートで説明したように、各ピクチャの符号化で発生した誤差符号量を次ピクチャの割り当て符号量に加算して補正することになる。
 しかしながら、このような方法に従っていると、前ピクチャの誤差符号量を次ピクチャで清算することから、予め求めた割り当て符号量からの変動が大きくなるという問題がある。
 特に、シーケンス内で割り当て符号量が大きく変動するVBR(可変ビットレート)での動作を前提とした場合、ピクチャ毎の割り当て符号量が元々大きく異なる。そのため、前ピクチャで発生した誤差符号量を次ピクチャの割り当て符号量に加算すると元々の割り当て符号量からの変動が大きくなり、ピクチャ間で画質が大きく揺らぐ危険性が高い。
 本発明はかかる事情に鑑みてなされたものであって、映像を目的の符号量で符号化することを実現する場合に、ピクチャ毎の画質変動を小さくできるようにすることで主観画質の向上を実現する新たな映像符号量制御技術の提供を目的とする。
 この目的を達成するために、本発明は、予め各ピクチャに与えられた割り当て符号量の初期値に基づいて、符号化対象となるピクチャの発生符号量を制御する映像符号量制御方法であって、符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める過程と、次以降の複数ピクチャについて、前記誤差符号量の正負に基づいて、前記割り当て符号量の前記初期値と予め与えられた定数とにより算出される割り当て符号量の最大値か最小値のいずれか一方を修正許容幅として選択する過程と、前記複数ピクチャについて、前記修正許容幅と割り当て符号量との差を変動可能符号量として求める過程と、前記変動可能符号量の総和と前記誤差符号量との比を更新比率として求める過程と、前記複数ピクチャについて、前記変動可能符号量と前記更新比率とに基づいて割り当て符号量についての変動符号量を算出して、前記変動符号量に基づいて、前記複数ピクチャの各ピクチャの割り当て符号量を更新する過程とを備えている。
 本発明の映像符号量制御方法において、前もって、各ピクチャについて、前記割り当て符号量の前記初期値と前記定数とに基づいて、前記割り当て符号量の前記最大値および前記最小値を求める過程を備えることが好ましい。
 本発明の映像符号量制御方法において、前記選択する過程では、前記割り当て符号量が前記実発生符号量よりも大きいことで前記誤差符号量が正の値を示す場合には、前記割り当て符号量の前記最大値を前記修正許容幅として選択し、前記割り当て符号量が前記実発生符号量よりも小さいことで前記誤差符号量が負の値を示す場合には、前記割り当て符号量の前記最小値を前記修正許容幅として選択することが好ましい。
 本発明の映像符号量制御方法において、前記更新比率を値域内でクリップする過程と、前記誤差符号量と前記変動符号量の総和との差を持ち越し符号量として求める過程と、前記持ち越し符号量を次ピクチャの符号化の際に求められる前記誤差符号量に加算する過程とを備えることが好ましい。
 本発明の映像符号量制御方法において、前記更新比率は前記複数ピクチャに共通であることが好ましい。
 また、本発明は、予め各ピクチャに与えられた割り当て符号量の初期値に基づいて、符号化対象となるピクチャの発生符号量を制御する映像符号量制御装置であって、符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める手段と、次以降の複数ピクチャについて、前記誤差符号量の正負に基づいて、前記割り当て符号量の前記初期値と予め与えられた定数とにより算出される割り当て符号量の最大値か最小値のいずれか一方を修正許容幅として選択する手段と、前記複数ピクチャについて、前記修正許容幅と割り当て符号量との差を変動可能符号量として求める手段と、前記変動可能符号量の総和と前記誤差符号量との比を更新比率として求める手段と、前記複数ピクチャについて、前記変動可能符号量と前記更新比率とに基づいて割り当て符号量についての変動符号量を算出して、前記変動符号量に基づいて、前記複数ピクチャの各ピクチャの割り当て符号量を更新する手段とを備えている。
 本発明の映像符号量制御装置において、前もって、各ピクチャについて、前記割り当て符号量の前記初期値と前記定数とに基づいて、前記割り当て符号量の前記最大値および前記最小値を求める手段を備えることが好ましい。
 本発明の映像符号量制御装置において、前記選択する手段は、前記割り当て符号量が前記実発生符号量よりも大きいことで前記誤差符号量が正の値を示す場合には、前記割り当て符号量の前記最大値を前記修正許容幅として選択し、前記割り当て符号量が前記実発生符号量よりも小さいことで前記誤差符号量が負の値を示す場合には、前記割り当て符号量の前記最小値を前記修正許容幅として選択することが好ましい。
 本発明の映像符号量制御装置において、前記更新比率を値域内でクリップする手段と、前記誤差符号量と前記変動符号量の総和との差を持ち越し符号量として求める手段と、前記持ち越し符号量を次ピクチャの符号化の際に求められる前記誤差符号量に加算する手段とを備えることが好ましい。
 本発明の映像符号量制御装置において、前記更新比率は前記複数ピクチャに共通であることが好ましい。
 また、本発明は、本発明の映像符号量制御方法をコンピュータに実行させるための映像符号量制御プログラムである。
 また、本発明は、本発明の映像符号量制御方法をコンピュータに実行させるための映像符号量制御プログラムを記録したコンピュータ読み取り可能な記録媒体である。
 本発明によれば、各ピクチャの割り当て符号量の初期値の大きさから決定される割り当て符号量の修正許容幅をもとに、予め定められた複数のピクチャの変動可能符号量を求めて、その変動可能符号量の総和と誤差符号量との比から更新比率を求め、各ピクチャの変動可能符号量と更新比率に基づいて各ピクチャに割り振る変動符号量を求めて、変動符号量に応じて誤差符号量を次以降の複数のピクチャの割り当て符号量に割り振るようにする。
 これにより、符号化したピクチャで発生した誤差符号量を次ピクチャばかりでなく複数のピクチャに分配することで、次ピクチャの割り当て符号量の変動を抑えることができ、従ってピクチャ毎の画質変動を小さくできる。
 また、割り当て符号量の最大値と最小値を、固定値ではなくて予め与えられた割り当て符号量の初期値から決定して、それに基づいて分配量(変動符号量)を決定するため、VBRのように各ピクチャの割り当て符号量のピクチャ間の変動が大きい場合でも、誤差符号量の補正による量子化幅の揺らぎが一定の範囲内に入るようになる。
 また、分配量(変動符号量)は各ピクチャの変動可能符号量に対して共通の更新比率に基づいて求めるため、各ピクチャの量子化幅は同じように変化することになり、本処理によるピクチャ間の画質の揺らぎは小さく抑えられる。
 また、分配し切れなかった誤差符号量を持ち越す機構があるため、従来方法では制御が破綻するような場合でも破綻することなく制御を続行できるようになる。加えて、この機構を実現するためのクリップ処理は更新比率に対してのみ行うため、1回の条件分岐だけで処理できる。
本発明が適用される映像符号量制御装置の処理の説明図である。 本発明が適用される映像符号量制御装置の処理の説明図である。 本発明が適用される映像符号量制御装置の処理の説明図である。 本発明が適用される映像符号量制御装置の処理の説明図である。 本発明が適用される映像符号量制御装置を具備する映像符号化装置の装置構成の一例を示す図である。 割り当て符号量算出部の実行するフローチャートである。 割り当て符号量算出部の装置構成の一例を示す図である。 割り当て符号量算出部の実行するフローチャートである。 割り当て符号量算出部の実行するフローチャートである。 割り当て符号量算出部の実行するフローチャートである。 割り当て符号量算出部の装置構成の一例を示す図である。 本発明の有効性を検証するために行った従来方法に基づく実験結果の説明図である。 本発明の有効性を検証するために行った本発明に基づく実験結果の説明図である。 背景技術のフローチャートである。 ピクチャ符号化処理のフローチャートである。 背景技術の装置構成図である。
 以下、実施形態に従って本発明を詳細に説明する。
 まず、本発明の実施形態を説明するのに先立って、本発明が適用される映像符号量制御装置の基本原理について説明しておく。
 〔1〕映像符号量制御装置の構成
 この映像符号量制御装置は、予め各ピクチャに与えられた割り当て符号量の初期値に基づいて、符号化対象となるピクチャの発生符号量を制御するという構成を採るときに、(1)符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める第1の算出手段と、(2)次以降の複数ピクチャについて、第1の算出手段の求めた誤差符号量の正負に基づいて、割り当て符号量初期値と予め与えられた定数とにより算出される割り当て符号量の最大値か最小値のいずれか一方を修正許容幅として選択する選択手段と、(3)次以降の複数ピクチャについて、選択手段の選択した修正許容幅と割り当て符号量との差を変動可能符号量として求める第2の算出手段と、(4)第2の算出手段の求めた変動可能符号量の総和を算出して、算出された変動可能符号量の総和と第1の算出手段の求めた誤差符号量との比を更新比率として求める第3の算出手段と、(5)次以降の複数ピクチャについて、第2の算出手段の求めた変動可能符号量と第3の算出手段の求めた更新比率とに基づいて割り当て符号量についての変動符号量を算出して、算出された変動符号量に基づいて、複数ピクチャの各ピクチャの割り当て符号量を更新する更新手段とを備える。
 ここで、選択手段の選択対象となる割り当て符号量の最大値および最小値については、第1の算出手段により誤差符号量が求められたときにその都度求めるのではなくて、『前もって、各ピクチャについて、割り当て符号量初期値と予め与えられた定数とに基づいて、割り当て符号量の最大値および最小値を求める第4の算出手段』を備えるようにして、選択手段がその第4の算出手段の求めたものの中から該当するものを読み出すようにしてもよい。
 この第4の算出手段は、例えば、割り当て符号量初期値を定数倍したものを割り当て符号量最大値にし、割り当て符号量初期値を定数分の1倍したものを割り当て符号量最小値にしたり、割り当て符号量初期値に定数を加算したものを割り当て符号量最大値にし、割り当て符号量初期値から定数を引いたものを割り当て符号量最小値にしたりすることがある。
 この構成を採るときに、さらに、(6)第3の算出手段の求めた更新比率を値域内でクリップするクリップ手段と、(7)更新手段の算出した変動符号量の総和を算出して、第1の算出手段の求めた誤差符号量とその総和との差を持ち越し符号量として求める第5の算出手段と、(8)第5の算出手段の求めた持ち越し符号量(負の値を示すこともある)を次ピクチャの符号化の際に求められる誤差符号量に加算する加算手段とを備えることがある。
 また、選択手段は、誤差符号量が正の値を示す場合(割り当て符号量が実発生符号量よりも大きい場合)には、割り当て符号量最大値を修正許容幅として選択し、誤差符号量が負の値を示す(割り当て符号量が実発生符号量よりも小さい場合)場合には、割り当て符号量最小値を修正許容幅として選択する。なお、誤差符号量が0の場合には、誤差符号量が正の値を示すときと同様に扱っても、あるいは、誤差符号量が負の値を示すときと同様に扱っても良い。
 以上の各処理手段が動作することで実現される映像符号量制御方法はコンピュータプログラムでも実現できるものである。このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供されたりして、この映像符号量制御方法を実施する際にインストールされてCPU(中央処理装置)などの制御手段上で動作することによりこの映像符号量制御方法を実現することになる。
 〔2〕映像符号量制御装置の処理の一例
 以下に、第4の算出手段を備える場合に実行する処理を具体例にして、この映像符号量制御装置の処理の一例について説明する。
 このように構成される映像符号量制御装置では、一回目の符号化を行うといったような何らかの事前解析に基づいて、図1Aに示すように、符号化対象となる各ピクチャについて割り当て符号量の初期値を決定する。そして、例えば、その割り当て符号量初期値を定数倍したものを割り当て符号量最大値にし、定数分の1倍したものを割り当て符号量最小値にする。これにより、図1Bに示すように、符号化対象となる各ピクチャについて割り当て符号量の変動範囲(最大値~最小値)を決定する。
 このとき決定される割り当て符号量の変動範囲は割り当て符号量初期値から決定されるものであることから、符号化処理において不変なものとなる。
 この後、符号化処理に入ると、符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める。
 背景技術では、このとき求めた誤差符号量を次ピクチャの割り当て符号量に加算することで清算するようにしているが、この方法に従っていたのでは、予め求めた割り当て符号量からの変動が大きくなってしまう。
 そこで、この映像符号量制御装置では、図2に示すように、このとき求めた誤差符号量を、これから符号化する向こうN枚のピクチャに分配するという構成を採る。
 このとき、誤差符号量をN等分して均等に分配するという方法を用いることは好ましくない。割り当て符号量の大きなピクチャは本来大きな符号量を必要とし、割り当て符号量の小さなピクチャは本来それほどの符号量を必要としていないことから、誤差符号量をN等分して均等に分配するという方法を用いることは好ましくない。
 そこで、この映像符号量制御装置では、向こうN枚の各ピクチャのそれぞれについて、割り当て限度からの余裕分を求めるようにして、その余裕分に一定の割合である更新比率を乗じた符号量を求めて、それらN枚の各ピクチャに対して、そのようにして求めた符号量を分配するようにする。このとき、向こうN枚の各ピクチャに分配する符号量の総和が誤差符号量に等しいということに基づいて、更新比率を決定する。
 すなわち、この映像符号量制御装置では、符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める。そして、この映像符号量制御装置は、その誤差符号量の正負に基づいて、その誤差符号量が正の値を示す場合には、その誤差符号量を次以降の複数ピクチャの割り当て符号量に加える形で割り振るべく、符号化に入る前に求めた割り当て符号量の最大値を修正許容幅として選択する。一方、その誤差符号量が負の値を示す場合には、この映像符号量制御装置は、その誤差符号量を次以降の複数ピクチャの割り当て符号量から差し引く形で割り振るべく、符号化に入る前に求めた割り当て符号量の最小値を修正許容幅として選択する。
 なお、第4の算出手段を備えない場合には、この修正許容幅を選択する時点で、誤差符号量が正の値を示す場合には、次以降の複数ピクチャについて、割り当て符号量初期値の定数倍を算出することなどにより割り当て符号量の最大値を求めて、それを修正許容幅として選択する。一方、誤差符号量が負の値を示す場合には、次以降の複数ピクチャについて、割り当て符号量初期値の定数分の1倍を算出することなどにより割り当て符号量の最小値を求めて、それを修正許容幅として選択することになる。
 続いて、次以降の複数ピクチャについて、修正許容幅と割り当て符号量との差を変動可能符号量として求めて、そのようにして求めた変動可能符号量の総和と誤差符号量との比を更新比率として求める。
 そして、変動可能符号量と更新比率とに基づいて、次以降の複数ピクチャを構成する各ピクチャの割り当て符号量についての変動符号量を算出して、それに基づいて、それらの各ピクチャの割り当て符号量を更新する。
 例えば、次以降のあるピクチャの割り当て符号量初期値が50である場合に、その割り当て符号量初期値の2倍したものを割り当て符号量の最大値にし、1/2倍したものを割り当て符号量の最小値にするならば、割り当て符号量の最大値は100となり、割り当て符号量の最小値は25となる。
 このときに、そのピクチャの現在の割り当て符号量が70で、更新比率が20%である場合に、誤差符号量が正のときには、変動可能符号量は上方向に30(=100-70)となり、誤差符号量が負のときには、変動可能符号量は下方向に45(=70-25)となる。そこで、誤差符号量が正のときには、そのピクチャの割り当て符号量を“70+30×0.2=76”と更新し、誤差符号量が負のときには、そのピクチャの割り当て符号量を“70-45×0.2=61”と更新するのである。
 ここで、ピクチャjの変動可能符号量をTm[j]と表し、誤差符号量をDと表し、更新比率をKと表すならば、更新比率Kは、向こうN枚のピクチャの変動可能符号量の総和ΣTm[j]と誤差符号量Dとの比に従って、
   K=D/ΣTm[j]
と求められる。この更新比率Kに従って、ピクチャjの変動符号量Td[j]は、
   Td[j]=K×Tm[j]
と求められる。従って、この変動符号量Td[j]の向こうN枚のピクチャの総和は、
   ΣTd[j]=ΣK×Tm[j]=K×ΣTm[j]=(D/ΣTm[j])×ΣTm[j]=D
となる。
 このことから分かるように、この映像符号量制御装置では、向こうN枚の各ピクチャに分配する変動符号量Td[j]の総和が誤差符号量Dに等しいということに基づいて、更新比率Kを決定するようにしている。
 このようにして、この映像符号量制御装置では、符号化を終えたピクチャの割り当て符号量と実発生符号量との差に基づいて誤差符号量を求めると、この誤差符号量をそのまま次ピクチャの割り当て符号量に加算することで清算するのではなくて、これから符号化する複数のピクチャに対して、それらのピクチャの必要度に応じた形で分配して清算するようにする。
 この構成に従って、この映像符号量制御装置によれば、映像を目的の符号量で符号化することを実現する場合に、ピクチャ毎の画質変動を小さくできるようになって主観画質の向上を実現することができるようになる。
 この構成を採る場合、割り当て限度一杯まで割り当て符号量が積まれてしまう(引かれてしまう)と、それ以上積めなくなる(引けなくなる)ことから、誤差符号量を分配できなくなる。
 そこで、この映像符号量制御装置では、更新比率を値域内でクリップすることで、誤差符号量と変動符号量の総和とに差ができるようにして、そのようにしてできる差を持ち越し符号量として、次ピクチャの符号化の際に求められる誤差符号量に加算するようにする。
 すなわち、図3に示すように、積めなくなった分(引けなくなった分)については,次のピクチャの処理のときに分配するようにしている。
 次に、上述した基本原理に基づいた本発明の一実施形態について説明する。
 図4に、本発明が適応される映像符号量制御装置を具備する映像符号化装置の装置構成の一例を図示する。
 図4に示すように、この映像符号化装置は、図14に示すものと同じ機能を発揮する割り当て符号量保存部101、減算器103、特徴量保存部104、量子化幅算出部105、減算器106、DCT部107、量子化部108、逆量子化部109、IDCT部110、加算器111、復号画像保存バッファ112、予測画像生成部113および可変長符号化部114を備える。これに加えて、この映像符号化装置は、本実施形態に特徴的な処理を実行する割り当て符号量算出部200を備える。映像符号量制御装置は、割り当て符号量算出部200と減算器103を含んで構成されている。
 図5に、本実施形態に特徴的な割り当て符号量算出部200の実行する処理のフローチャートの一例を示す。ここで、図12に示す従来方法のフローチャートと比較して、点線で囲まれた部分が本発明の適用領域となる。
 映像符号化装置は、処理を開始すると、まず最初に、ステップS101で、初期化処理として、誤差符号量およびピクチャ番号nを0で初期化する。
 続いて、ステップS102で、n番目のピクチャを予め与えられた割り当て符号量で符号化する。ここで、各ピクチャの割り当て符号量の初期値については、一回目の符号化結果に基づいて予め設定されているものとする。
 続いて、ステップS103で、全フレーム(全ピクチャ)の符号化が完了したのか否かを判断して、全フレームの符号化が完了している場合には処理を終了し、全フレームの符号化が完了していない場合には以下の処理を実行する。
 すなわち、ステップS104で、n番目のピクチャについて、割り当て符号量と発生符号量との差から誤差符号量を算出し、続くステップS105で、算出した誤差符号量の符号が正であるのか負であるのかを判断する。
 このステップS105の判断処理に従って、ステップS104で算出した誤差符号量が正であることを判断するときには、ステップS106に進んで、n+1からn+N枚目(Nは予め定められた1を越える定数)までの各ピクチャの最大符号量(上述した割り当て符号量の最大値)を各ピクチャの割り当て符号量初期値と定数から算出する。
 続いて、ステップS107で、n+1からn+N枚目までの各ピクチャの最大符号量と割り当て符号量との差分から、それらの各ピクチャの変動可能符号量を算出する。
 一方、ステップS105の判断処理に従って、ステップS104で算出した誤差符号量が負であることを判断するときには、ステップS108に進んで、n+1からn+N枚目(Nは予め定められた1を越える定数)までの各ピクチャの最小符号量(上述した割り当て符号量の最小値)を各ピクチャの割り当て符号量初期値と定数から算出する。
 続いて、ステップS109で、n+1からn+N枚目までの各ピクチャの最小符号量と割り当て符号量との差分から、それらの各ピクチャの変動可能符号量を算出する。
 このようにして、ステップS107,109で、n+1からn+N枚目までの各ピクチャの変動可能符号量を算出すると、続いて、ステップS110で、算出した変動可能符号量の総和(合計値)を求めて、その変動可能符号量の総和と誤差符号量との比によって更新比率を求める。
 続いて、ステップS111で、n+1からn+N枚目までの各ピクチャの変動可能符号量と求めた更新比率との積によって、それらの各ピクチャの変動符号量を求める。
 続いて、ステップS112で、n+1からn+N枚目までの各ピクチャの割り当て符号量に求めた変動符号量を加算することで、それらの各ピクチャの割り当て符号量を更新する。なお、各ピクチャの割り当て符号量の初期値については、一回目の符号化結果に基づいて予め設定されるものであり、更新されることはない。
 続いて、ステップS113で、処理対象を次のピクチャに移し、ステップS102の処理に戻ることで上記の処理を繰り返す。
 以上の処理に従って、本実施形態によれば、符号化したピクチャで発生した誤差符号量を次ピクチャばかりでなく複数のピクチャに分配することで、次ピクチャの割り当て符号量の変動を抑えることができるようになる。
 そして、割り当て符号量の最大値と最小値を、固定値ではなくて予め与えられた割り当て符号量の初期値から決定して、それに基づいて分配量を決定するため、VBRのように各ピクチャの割り当て符号量のピクチャ間の変動が大きい場合でも、誤差符号量の補正による量子化幅の揺らぎを一定の範囲内に収めることができるようになる。
 そして、分配量は各ピクチャの変動可能符号量に対して共通の更新比率をかけることで求めるため、各ピクチャの量子化幅は同じように変化することになり、本処理によるピクチャ間の画質の揺らぎは小さく抑えることができるようになる。
 ここで、図5のフローチャートでは、ステップS106で最大符号量を算出し、ステップS108で最小符号量を算出するようにしている。しかし、最大符号量および最小符号量については各ピクチャの割り当て符号量初期値と定数から算出することになるので、ステップS101の処理に入る前に算出することができる。これから、ステップS101の処理に入る前に最大符号量および最小符号量を算出するようにして、ステップS106,ステップS108では、その算出したものの中から該当するものを選択するようにしてもよい。このようにすれば、同じ値を示す最大符号量や最小符号量を何度も算出しなくて済むようになる。
 図6に、図5のフローチャートを実行する割り当て符号量算出部200の装置構成の一例を図示する。
 図6に示すように、本実施形態に特徴的な処理を実行する割り当て符号量算出部200は、割り当て制御部2001と、許容修正幅算出部2002と、最大符号量保持メモリ2003と、最小符号量保持メモリ2004と、割り当て符号量保持メモリ2005と、正負判定部2006と、減算器2007と、合計値算出部2008と、比率算出部2009と、乗算器2010と、加算器2011と、スイッチA2012と、スイッチB2013と、スイッチC2014とを備える。
 この割り当て制御部2001は、3つのメモリ2003,2004,2005にメモリ読み出し制御信号を送って各メモリ2003,2004,2005の出力を制御するとともに、スイッチB2013のON/OFFとスイッチC2014の切り替えを制御する。
 許容修正幅算出部2002は、各ピクチャの割り当て符号量初期値から各ピクチャの最大符号量と最小符号量をそれぞれ算出して、最大符号量保持メモリ2003と最小符号量保持メモリ2004に出力する。
 最大符号量保持メモリ2003は、許容修正幅算出部2002の出力する各ピクチャの最大符号量を保持し、割り当て制御部2001からのメモリ読み出し制御信号を受け取ると、指定されたピクチャ番号の最大符号量をスイッチA2012に出力する。
 最小符号量保持メモリ2004は、許容修正幅算出部2002の出力する各ピクチャの最小符号量を保持し、割り当て制御部2001からのメモリ読み出し制御信号を受け取ると、指定されたピクチャ番号の最小符号量をスイッチA2012に出力する。
 割り当て符号量保持メモリ2005は、スイッチC2014の出力する各ピクチャの割り当て符号量を保持し、割り当て制御部2001からのメモリ読み出し制御信号に従って、指定されたピクチャ番号の割り当て符号量を減算器2007および加算器2011に出力する。
 正負判定部2006は、符号化を終えたピクチャについての誤差符号量の正負を判定して、その判定結果に応じた切り替え制御信号をスイッチA2012に出力することで、判定結果が正である場合には、スイッチA2012が最大符号量保持メモリ2003の出力する最大符号量を選択して出力するように制御し、判定結果が負である場合には、スイッチA2012が最小符号量保持メモリ2004の出力する最小符号量を選択して出力するように制御する。
 減算器2007は、スイッチA2012の出力する最大符号量または最小符号量と割り当て符号量保持メモリ2005の出力する割り当て符号量との差分を算出することで各ピクチャの変動可能符号量を算出して、合計値算出部2008および乗算器2010に出力する。
 合計値算出部2008は、減算器2007の出力する変動可能符号量の合計値を算出することで各ピクチャの変動可能符号量の合計値を算出して、比率算出部2009に出力する。
 比率算出部2009は、合計値算出部2008の出力する変動可能符号量の合計値と符号化を終えたピクチャについての誤差符号量との比を求めることで更新比率を算出して、乗算器2010に出力する。
 乗算器2010は、減算器2007の出力する変動可能符号量と比率算出部2009の出力する更新比率とを乗算することで各ピクチャの変動符号量を算出して、加算器2011に出力する。
 加算器2011は、割り当て符号量保持メモリ2005の出力する割り当て符号量と乗算器2010の出力する変動符号量とを加算することで各ピクチャの割り当て符号量の更新値を求めて、スイッチB2013およびスイッチC2014に出力する。
 スイッチA2012は、正負判定部2006からの切り替え制御信号に従って、最大符号量を選択する場合には端子aを選択し、最小符号量を選択する場合には端子bを選択することで、最大符号量保持メモリ2003の出力する最大符号量か最小符号量保持メモリ2004の出力する最小符号量のいずれかを選択して、減算器2007に出力する。
 スイッチB2013は、割り当て制御部2001からの切り替え制御信号に従って、加算器2011の出力する割り当て符号量の更新値を、図4に示した量子化幅算出部105および減算器103に出力する。
 スイッチC2014は、割り当て制御部2001からの切り替え制御信号に従って、割り当て符号量の初期値を選択する場合には端子aを選択し、加算器2011の出力する更新された割り当て符号量を選択する場合には端子bを選択することで、割り当て符号量初期値か割り当て符号量の更新値のいずれかを選択して、割り当て符号量保持メモリ2005に出力する。
 次に、このように構成される割り当て符号量算出部200の実行する処理について詳細に説明する。
 割り当て符号量算出部200は、処理が始まると、割り当て符号量初期値を許容修正幅算出部2002に入力し、1枚目からN枚目のピクチャの最大符号量、最小符号量を求めて、それぞれ最大符号量保持メモリ2003、最小符号量保持メモリ2004に送る。そして、割り当て制御部2001からスイッチC2014に切り替え制御信号を送ってスイッチC2014を端子a側に切り替え、割り当て符号量保持メモリ2005に対して1枚目からN枚目のピクチャの割り当て符号量初期値を入力する。
 一方、正負判定部2006は、入力された誤差符号量の正負を判定してスイッチA2012に切り替え制御信号を送り、正ならば端子a側に、負ならば端子b側に切り替える。続いて、割り当て制御部2001から最大符号量保持メモリ2003、最小符号量保持メモリ2004、割り当て符号量保持メモリ2005にメモリ読み出し制御信号を送り、各メモリに保持されている1枚目からN枚目までのピクチャの各値を出力する。
 続いて、減算器2007によって、各出力の差分を求めて変動可能符号量とし、その合計値を合計値算出部2008によって算出する。その後、比率算出部2009によって、その求めた変動可能符号量の合計値と誤差符号量との比から更新比率を求める。
 更新比率算出後、再び、割り当て制御部2001から最大符号量保持メモリ2003、最小符号量保持メモリ2004、割り当て符号量保持メモリ2005にメモリ読み出し制御信号を送り、各メモリに保持されている1枚目からN枚目までのピクチャの各値を出力する。
 続いて、減算器2007によって、出力された各値の差分から各ピクチャの変動可能符号量を求め、乗算器2010によって、先ほど求めた更新比率との積により各ピクチャの変動符号量を算出する。そして、加算器2011によって、求めた各ピクチャの変動符号量を各ピクチャの割り当て符号量に加算することで、各ピクチャの割り当て符号量の更新値を算出する。
 続いて、割り当て制御部2001からの切り替え制御信号によって、スイッチC2014を端子b側に切り替え、求めた各ピクチャの割り当て符号量の更新値を割り当て符号量保持メモリ2005に出力することで、各ピクチャの割り当て符号量を更新する。
 最後に、割り当て制御部2001からの切り替え制御信号によって、スイッチB2013をONにし、更新した次ピクチャの割り当て符号量を図4に示した量子化幅算出部105および減算器103に出力する。
 次のピクチャの処理では、スイッチC2014を端子a側に切り替えたときに、N+1枚目のピクチャの割り当て符号量初期値のみ割り当て符号量保持メモリ2005に送り、2枚目からN枚目までのピクチャの割り当て符号量は保持したままとする。
 次に、図5に点線枠で示した本実施形態に特徴的な処理について、図6のブロック図と対応させて説明する。
 n枚目のピクチャの符号化が終わり、その誤差符号量が求まった時点とする。このとき、スイッチC2014は端子a側に切り換わっているものとする。
 誤差符号量の正負を正負判定部2006で判定して、スイッチA2012に切り替え制御信号を送り、正の場合には端子a側に、負の場合には端子b側に切り替える。
 誤差符号量が正の場合には、n+1からn+N枚目までの各ピクチャの最大符号量を、割り当て符号量初期値および定数をもとに許容修正幅算出部2002で算出して、最大符号量保持メモリ2003に格納する。続いて、減算器2007により、n+1からn+N枚目までの各ピクチャの変動可能符号量を算出する。この算出処理は、割り当て制御部2001からのメモリ読み出し制御信号に従い、各ピクチャの最大符号量を最大符号量保持メモリ2003から順次減算器2007に出力するとともに、その時点における各ピクチャの割り当て符号量を割り当て符号量保持メモリ2005から順次減算器2007に出力することで算出される。
 一方、誤差符号量が負の場合には、n+1からn+N枚目までの各ピクチャの最小符号量を、割り当て符号量初期値および定数をもとに許容修正幅算出部2002で算出して、最小符号量保持メモリ2004に格納する。続いて、減算器2007により、n+1からn+N枚目までの各ピクチャの変動可能符号量を算出する。この算出処理は、割り当て制御部2001からのメモリ読み出し制御信号に従い、各ピクチャの最小符号量を最小符号量保持メモリ2004から順次減算器2007に出力するとともに、その時点における各ピクチャの割り当て符号量を割り当て符号量保持メモリ2005から順次減算器2007に出力することで算出される。
 続いて、変動可能符号量の総和と誤差符号量との比から更新比率を算出する。変動可能符号量の総和は、減算器2007からの出力を合計値算出部2008で和を取ることで行う。この和と誤差符号量とから比率算出部2009によって更新比率を求める。
 続いて、各ピクチャの変動符号量を乗算器2010により求める。これは、更新比率の算出後に、割り当て制御部2001からメモリ読み出し制御信号を割り当て符号量保持メモリ2005、最大符号量保持メモリ2003、最小符号量保持メモリ2004に送り、減算器2007で上記と同様に変動可能符号量を算出する。そして、この値と更新比率とを乗算器2010で乗算して、n+1からn+N枚目までの各ピクチャの変動符号量を求める。
 一方、この変動符号量と割り当て符号量保持メモリ2005から出力される各ピクチャの割り当て符号量とを加算器2011で加算し、各ピクチャの割り当て符号量の更新値を求める。そして、割り当て制御部2001からの切り替え制御信号によりスイッチC2014を端子b側に切り替えて、更新された割り当て符号量によって、割り当て符号量保持メモリ2005に保持されている各ピクチャの割り当て符号量を上書き更新する。
 以上に説明した図4および図6の構成に従って、図5に示すフローチャートの処理を実現できるようになる。
  次に、実施例に従って、本発明について詳細に説明する。
 以下に説明する実施例では、ピクチャ毎の割り当て符号量の最大値と最小値を、予め与えられた各ピクチャの割り当て符号量初期値の定数倍、定数分の一でそれぞれ求めるものとする。また、更新比率を最大値以下(値域内)にクリップする機能を有するものとする。それに伴い、誤差符号量のうち各ピクチャに割り当てられなかった分については持ち越し符号量(負の値を示すこともある)として、次のピクチャの誤差符号量に加算する機能を有するものとする。
 図7に、割り当て符号量算出部200が本実施例を実現するために実行するフローチャートの一例を示す。
 本実施例では、処理を開始すると、まず最初に、ステップS201で、初期化処理として、誤差符号量D、持ち越し符号量Cおよびピクチャ番号nを0で初期化する。
 続いて、ステップS202で、n番目のピクチャを予め与えられた割り当て符号量で符号化する。ここで行う符号化は、図5のフローチャートのステップS102で行う符号化と同じものである。
 続いて、ステップS203で、全フレーム(全ピクチャ)の符号化が完了したのか否かを判断して、全フレームの符号化が完了している場合には処理を終了し、全フレームの符号化が完了していない場合には以下の処理を実行する。
 すなわち、ステップS204で、n番目のピクチャについて、割り当て符号量Tt と実際に発生した実符号量Tg との差から誤差符号量D
     D←Tt -Tg 
を算出する。
 続いて、ステップS205で、誤差符号量Dに持ち越し符号量Cを加算することで、持ち越し符号量Cを加算した誤差符号量D
     D←D+C
を算出する。
 続いて、ステップS206で、誤差符号量Dが0以上であるのか否かを判断して、誤差符号量Dが0以上であることを判断するときには、ステップS207に進んで、図8のフローチャートに示す処理を実行する。
 すなわち、図8のフローチャートに示すように、先ず最初に、ステップS301で、n+1枚目からn+N枚目(Nは予め定められた1を越える定数)までの各ピクチャについて、予め与えられた符号量Torg[j]の定数倍によって最大符号量Tmax[j]を求める(n+1≦j≦n+N)。定数倍の定数をαで表すならば、
     Tmax[j]←Torg[j]×α
を求めるのである。ここで、Torg[j]は、具体的には、一回目の符号化結果に基づいて設定されたj番目のピクチャの割り当て符号量の初期値である。
 続いて、ステップS302で、n+1枚目からn+N枚目までの各ピクチャについて、変動可能符号量Tm[j]とその総和Tm_sumを求める。すなわち、最大符号量Tmax[j]と割り当て符号量Tt[j]とに基づいて、変動可能符号量Tm[j]
       Tm[j]←Tmax[j]-Tt[j]
を算出するとともに、その総和Tm_sum
     Tm_sum←ΣTm[j]
            ただし、Σはn+1≦j≦n+Nについての総和
を算出するのである。
 続いて、ステップS303で、誤差符号量D(≧0)と変動可能符号量の総和Tm_sum(≧0)との比から、更新比率K
     K←D/Tm_sum
を求める。
 続いて、ステップS304で、求めた更新比率Kを最大値Kmax(予め与えられた固定値)でクリップする。すなわち、求めた更新比率Kと予め設定された最大値Kmax とに基づいて、
     K←Max〔K,Kmax 〕
を求めるのである。
 続いて、ステップS305で、このようして求めた更新比率Kを使って、n+1枚目からn+N枚目までの各ピクチャについて、変動符号量Td[j]を求める。すなわち、更新比率Kと変動可能符号量Tm[j]とに基づいて、変動符号量Td[j]
       Td[j]←K×Tm[j]
を算出するのである。
 続いて、ステップS306で、このようにして求めた変動符号量Td[j]を割り当て符号量Tt[j]に加算することで、n+1枚目からn+N枚目までの各ピクチャについて、割り当て符号量Tt[j]を更新して、図7のフローチャートのステップS207の処理を終了する。すなわち、変動符号量Td[j]と割り当て符号量Tt[j]とに基づいて、
     Tt[j]←Tt[j]+Td[j]
というように割り当て符号量Tt[j]を更新して、図7のフローチャートのステップS207の処理を終了するのである。
 一方、図7のフローチャートのステップS206で、誤差符号量Dが0以上でないことを判断するときには、ステップS208に進んで、図9のフローチャートに示す処理を実行する。
 すなわち、図9のフローチャートに示すように、先ず最初に、ステップS401で、n+1枚目からn+N枚目(Nは予め定められた1を越える定数)までの各ピクチャについて、予め与えられた符号量Torg[j]の定数分の一によって最小符号量Tmin[j]を求める(n+1≦j≦n+N)。すなわち、定数分の一の定数をαで表すならば、
     Tmin[j]←Torg[j]/α
を求めるのである。ここで、Torg[j]は、具体的には、一回目の符号化結果に基づいて設定されたj番目のピクチャの割り当て符号量の初期値である。なお、定数分の一の定数は、上述した定数倍の定数と同じ値(α)であることが好ましいが、これら2つの定数が同一であることは必須ではない。
 続いて、ステップS402で、n+1枚目からn+N枚目までの各ピクチャについて、変動可能符号量Tm[j]とその総和Tm_sumを求める。すなわち、最小符号量Tmin[j]と割り当て符号量Tt[j]とに基づいて、変動可能符号量Tm[j]
       Tm[j]←Tmin[j]-Tt[j]
を算出するとともに、その総和Tm_sum
     Tm_sum←ΣTm[j]
            ただし、Σはn+1≦j≦n+Nについての総和
を算出するのである。
 続いて、ステップS403で、誤差符号量D(<0)と変動可能符号量の総和Tm_sum(<0)との比から、更新比率K
     K←D/Tm_sum
を求める。
 続いて、ステップS404で、求めた更新比率Kを最大値Kmax(予め与えられた固定値)でクリップする。すなわち、求めた更新比率Kと予め設定された最大値Kmax とに基づいて、
     K←Max〔K,Kmax 〕
を求めるのである。
 続いて、ステップS405で、このようして求めた更新比率Kを使って、n+1枚目からn+N枚目までの各ピクチャについて、変動符号量Td[j]を求める。すなわち、更新比率Kと変動可能符号量Tm[j]とに基づいて、変動符号量Td[j]
       Td[j]←K×Tm[j]
を算出するのである。
 続いて、ステップS406で、このようにして求めた変動符号量Td[j]を割り当て符号量Tt[j]に加算することで、n+1枚目からn+N枚目までの各ピクチャについて、割り当て符号量Tt[j]を更新して、図7のフローチャートのステップS208の処理を終了する。すなわち、変動符号量Td[j]と割り当て符号量Tt[j]とに基づいて、
     Tt[j]←Tt[j]+Td[j]
というように割り当て符号量Tt[j]を更新して、図7のフローチャートのステップS208の処理を終了するのである。
 図7のフローチャートにおいて、ステップS207,ステップS208の処理を終了すると、続いて、ステップS209で、変動符号量Td[j]の総和Td_sumを求める。すなわち、
     Td_sum←ΣTd[j]
            ただし、Σはn+1≦j≦n+Nについての総和
を算出するのである。
 続いて、ステップS210で、誤差符号量Dと算出した変動符号量の総和Td_sumとの差分により持ち越し符号量C
     C←D-Td_sum
を算出する。上述したように、このようにして算出した持ち越し符号量Cについては、ステップS205で誤差符号量Dに加算されることになる。
 続いて、ステップS211で、処理対象を次のピクチャに移し、ステップS202の処理に戻ることで、次のピクチャを割り当て符号量Ttで符号化する、という処理を繰り返す。
 本実施例の処理を実現するための映像符号化装置の基本的な構成は図4に示したものと同じ構成となり、割り当て符号量算出部200が図6に示すものと異なって、図6に示す構成に新たな構成が追加されることになる。
 図10に、本実施例の処理を実現するための割り当て符号量算出部200の構成の一例を図示する。
 図10に示すように、本実施例の処理を実現する場合、割り当て符号量算出部200は、図6に示した各処理手段2001~2008,2010~2014を備えることに加えて、比率算出部2009が算出した更新比率を最大値以下にクリップする機能を有し、さらに、新たに、第2の合計値算出部2015と、減算器2016と、持ち越し量保持部2017と、加算器2018とを備える。
 この第2の合計値算出部2015は、乗算器2010の出力する変動符号量Td[j]を入力として、その合計値を算出することで変動符号量の総和Td_sumを算出して、減算器2016に出力する。
 減算器2016は、誤差符号量Dと第2の合計値算出部2015の出力する変動符号量の総和Td_sumとの差分を算出することで持ち越し符号量Cを算出して、持ち越し量保持部2017に出力する。
 持ち越し量保持部2017は、減算器2016の出力する持ち越し符号量Cを保持して、次ピクチャの符号化時に、保持している持ち越し符号量Cを加算器2018に出力する。
 加算器2018は、次ピクチャの符号化時に、持ち越し量保持部2017の出力する持ち越し符号量Cと今回の符号化で得た誤差符号量Dとを加算することで誤差符号量Dを修正して、正負判定部2006、比率算出部2009および減算器2016に出力する。
 以上に説明した図10の構成に従って、図7~図9に示す本実施例のフローチャートの処理を実現できるようになる。
 次に、本発明の有効性を検証するために行った実験について説明する。
 この実験は映像符号化標準規格H.264の参照ソフトウェアJM12.1を使い、従来方法と本発明とを比較することで行った。実験画像にはITE標準画像 seq07 "European Market" (1440×1080, 先頭より450 フレーム, テロップ入り)を使用した。また、符号化方法は2パスエンコード方式を使用し、1回目の符号化を量子化幅固定で行い、各ピクチャの発生符号量の半分を2回目の符号化時の目標符号量とすることで行った。1回目の符号化時の量子化パラメータ(量子化幅をlogスケールで表したもの)は、Iピクチャが24、Pピクチャが27、Bピクチャが30で行った。
 従来方法の実験については、1ピクチャ毎に発生した誤差を次ピクチャに加算して符号化することで行った。なお、実用性を考えて、加算は、例えばIピクチャの誤差は次のIピクチャで補正するというように、次の同一タイプピクチャに対して行うようにした。
 一方、本発明の実験については、実施例に記載した方法に従って符号化することで行った。ここで、最大符号量は割り当て符号量初期値の2倍、最小符号量は割り当て符号量初期値の1/2とし、15フレーム(N=15)に渡って修正することで行った。
 図11Aおよび図11Bに、従来方法と本発明とを比較する形で本実験の結果をそれぞれ示す。ここで、横軸はフレーム番号を示し、縦軸は量子化パラメータを示す。
 この実験結果から、本発明の方が量子化幅の振動が少なく、画質が安定していることが分かる。この実験結果により、本発明の有効性を検証することができた。
 なお、上記で説明した各処理ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、映像符号化装置に係る上述した種々の処理を行ってもよい。
 ここでいうコンピュータシステムとは、OS(オペレーティングシステム)や周辺機器等のハードウェアを含むものであってもよい。また、コンピュータシステムは、WWW(ワールドワイドウェブ)システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
 コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD(コンパクトディスク)-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、コンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
 上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介してあるいは伝送媒体中の伝送波により、他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する伝送媒体は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
 以上、本発明の実施形態および実施例を説明したが、本発明は上述した実施形態や実施例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で構成の付加,省略,置換,およびその他の変更が可能である。本発明は前述した説明によって限定されることはなく、添付の請求の範囲によってのみ限定される。
 本発明は映像の符号化に適用できるものであり、本発明を適用することで、映像を目的の符号量で符号化することを実現する場合に、ピクチャ毎の画質変動を小さくできるようになって主観画質の向上を実現することができるようになる。
 101  割り当て符号量保存部
 103  減算器
 104  特徴量保存部
 105  量子化幅算出部
 106  減算器
 107  DCT部
 108  量子化部
 109  逆量子化部
 110  IDCT部
 111  加算器
 112  復号画像保存バッファ
 113  予測画像生成部
 114  可変長符号化部
 200  割り当て符号量算出部
 2001 割り当て制御部
 2002 許容修正幅算出部
 2003 最大符号量保持メモリ
 2004 最小符号量保持メモリ
 2005 割り当て符号量保持メモリ
 2006 正負判定部
 2007 減算器
 2008 合計値算出部
 2009 比率算出部
 2010 乗算器
 2011 加算器
 2012 スイッチA
 2013 スイッチB
 2014 スイッチC

Claims (12)

  1.  予め各ピクチャに与えられた割り当て符号量の初期値に基づいて、符号化対象となるピクチャの発生符号量を制御する映像符号量制御方法であって、
     符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める過程と、
     次以降の複数ピクチャについて、前記誤差符号量の正負に基づいて、前記割り当て符号量の前記初期値と予め与えられた定数とにより算出される割り当て符号量の最大値か最小値のいずれか一方を修正許容幅として選択する過程と、
     前記複数ピクチャについて、前記修正許容幅と割り当て符号量との差を変動可能符号量として求める過程と、
     前記変動可能符号量の総和と前記誤差符号量との比を更新比率として求める過程と、
     前記複数ピクチャについて、前記変動可能符号量と前記更新比率とに基づいて割り当て符号量についての変動符号量を算出して、前記変動符号量に基づいて、前記複数ピクチャの各ピクチャの割り当て符号量を更新する過程とを備える映像符号量制御方法。
  2.  請求項1に記載の映像符号量制御方法において、
     前もって、各ピクチャについて、前記割り当て符号量の前記初期値と前記定数とに基づいて、前記割り当て符号量の前記最大値および前記最小値を求める過程を備える映像符号量制御方法。
  3.  請求項1又は2に記載の映像符号量制御方法において、
     前記選択する過程では、前記割り当て符号量が前記実発生符号量よりも大きいことで前記誤差符号量が正の値を示す場合には、前記割り当て符号量の前記最大値を前記修正許容幅として選択し、前記割り当て符号量が前記実発生符号量よりも小さいことで前記誤差符号量が負の値を示す場合には、前記割り当て符号量の前記最小値を前記修正許容幅として選択する映像符号量制御方法。
  4.  請求項1ないし3のいずれか1項に記載の映像符号量制御方法において、
     前記更新比率を値域内でクリップする過程と、
     前記誤差符号量と前記変動符号量の総和との差を持ち越し符号量として求める過程と、
     前記持ち越し符号量を次ピクチャの符号化の際に求められる前記誤差符号量に加算する過程とを備える映像符号量制御方法。
  5.  請求項1ないし4のいずれか1項に記載の映像符号量制御方法において、前記更新比率は前記複数ピクチャに共通である映像符号量制御方法。
  6.  予め各ピクチャに与えられた割り当て符号量の初期値に基づいて、符号化対象となるピクチャの発生符号量を制御する映像符号量制御装置であって、
     符号化を終えたピクチャの割り当て符号量と実発生符号量との差を誤差符号量として求める手段と、
     次以降の複数ピクチャについて、前記誤差符号量の正負に基づいて、前記割り当て符号量の前記初期値と予め与えられた定数とにより算出される割り当て符号量の最大値か最小値のいずれか一方を修正許容幅として選択する手段と、
     前記複数ピクチャについて、前記修正許容幅と割り当て符号量との差を変動可能符号量として求める手段と、
     前記変動可能符号量の総和と前記誤差符号量との比を更新比率として求める手段と、
     前記複数ピクチャについて、前記変動可能符号量と前記更新比率とに基づいて割り当て符号量についての変動符号量を算出して、前記変動符号量に基づいて、前記複数ピクチャの各ピクチャの割り当て符号量を更新する手段とを備える映像符号量制御装置。
  7.  請求項6に記載の映像符号量制御装置において、
     前もって、各ピクチャについて、前記割り当て符号量の前記初期値と前記定数とに基づいて、前記割り当て符号量の前記最大値および前記最小値を求める手段を備える映像符号量制御装置。
  8.  請求項6又は7に記載の映像符号量制御装置において、
     前記選択する手段は、前記割り当て符号量が前記実発生符号量よりも大きいことで前記誤差符号量が正の値を示す場合には、前記割り当て符号量の前記最大値を前記修正許容幅として選択し、前記割り当て符号量が前記実発生符号量よりも小さいことで前記誤差符号量が負の値を示す場合には、前記割り当て符号量の前記最小値を前記修正許容幅として選択する映像符号量制御装置。
  9.  請求項6ないし8のいずれか1項に記載の映像符号量制御装置において、
     前記更新比率を値域内でクリップする手段と、
     前記誤差符号量と前記変動符号量の総和との差を持ち越し符号量として求める手段と、
     前記持ち越し符号量を次ピクチャの符号化の際に求められる前記誤差符号量に加算する手段とを備える映像符号量制御装置。
  10.  請求項6ないし9のいずれか1項に記載の映像符号量制御装置において、前記更新比率は前記複数ピクチャに共通である映像符号量制御装置。
  11.  請求項1ないし5のいずれか1項に記載の映像符号量制御方法をコンピュータに実行させるための映像符号量制御プログラム。
  12.  請求項1ないし5のいずれか1項に記載の映像符号量制御方法をコンピュータに実行させるための映像符号量制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
PCT/JP2009/060139 2008-06-05 2009-06-03 映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体 WO2009148076A1 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
BRPI0911762A BRPI0911762A2 (pt) 2008-06-05 2009-06-03 método de controle de taxa de bits de vídeo, aparelho de controle de taxa de bits de vídeo, programa de controle de taxa de bits de vídeo, e meio de gravação legível por computador que tem o programa gravado no mesmo
EP09758343.9A EP2265025B1 (en) 2008-06-05 2009-06-03 Video encoding amount control method, video encoding amount control device, video encoding amount control program, and computer readable recording medium on which said program is recorded
US12/994,339 US8548042B2 (en) 2008-06-05 2009-06-03 Video bitrate control method, video bitrate control apparatus, video bitrate control program, and computer-readable recording medium having the program recorded thereon
JP2010515888A JP4999991B2 (ja) 2008-06-05 2009-06-03 映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
ES09758343.9T ES2694713T3 (es) 2008-06-05 2009-06-03 Método de control de la cantidad de codificación de vídeo, aparato de control de la cantidad de codificación de vídeo, programa de control de la cantidad de codificación de vídeo y medio de grabación legible por ordenador que tiene el programa grabado en el mismo
CA 2722051 CA2722051C (en) 2008-06-05 2009-06-03 Method and apparatus for variable video bitrate control in which picture bitrate correction is limited to be within a calculated range
CN2009801193776A CN102047661B (zh) 2008-06-05 2009-06-03 视频码量控制方法和视频码量控制装置
RU2010144530/07A RU2485711C2 (ru) 2008-06-05 2009-06-03 Способ управления скоростью передачи битов видео, устройство управления скоростью передачи битов видео, машиночитаемый носитель записи, на котором записана программа управления скоростью передачи битов видео

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-147534 2008-06-05
JP2008147534 2008-06-05

Publications (1)

Publication Number Publication Date
WO2009148076A1 true WO2009148076A1 (ja) 2009-12-10

Family

ID=41398149

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/060139 WO2009148076A1 (ja) 2008-06-05 2009-06-03 映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (11)

Country Link
US (1) US8548042B2 (ja)
EP (1) EP2265025B1 (ja)
JP (1) JP4999991B2 (ja)
KR (1) KR101213243B1 (ja)
CN (1) CN102047661B (ja)
BR (1) BRPI0911762A2 (ja)
CA (1) CA2722051C (ja)
ES (1) ES2694713T3 (ja)
RU (1) RU2485711C2 (ja)
TW (1) TWI436648B (ja)
WO (1) WO2009148076A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011155474A (ja) * 2010-01-27 2011-08-11 Renesas Electronics Corp 符号化装置およびそれを用いたシステム
US20130077671A1 (en) * 2010-06-09 2013-03-28 Sony Corporation Encoding apparatus and encoding method
JP2013255208A (ja) * 2012-02-01 2013-12-19 Nippon Telegr & Teleph Corp <Ntt> 映像符号化装置、映像符号化方法及び映像符号化プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8160156B2 (en) * 2006-02-01 2012-04-17 Verint Systems, Inc. System and method for controlling the long term generation rate of compressed data
CN107682700B (zh) * 2017-09-30 2022-10-21 江西欧菲炬能物联科技有限公司 编码适配方法、装置、移动终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000358247A (ja) 1999-01-19 2000-12-26 Matsushita Electric Ind Co Ltd レート制御装置、レート制御方法及び符号化装置
JP2006310912A (ja) * 2005-04-26 2006-11-09 Matsushita Electric Ind Co Ltd 動画像ビットレート変換方法、動画像ビットレート変換装置、動画像ビットレート変換回路及びプログラム記録媒体
JP2008147534A (ja) 2006-12-13 2008-06-26 Denso Corp 内燃機関用点火装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3864461B2 (ja) * 1996-08-30 2006-12-27 ソニー株式会社 映像データ圧縮装置およびその方法
JP4034380B2 (ja) 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
US6222875B1 (en) 1997-07-11 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Low-delay rate detection for variable rate communication systems
EP1051853B1 (en) * 1998-01-26 2003-06-18 STMicroelectronics Asia Pacific Pte Ltd. One-pass variable bit rate moving pictures encoding
JPH11252572A (ja) 1998-03-03 1999-09-17 Nippon Hoso Kyokai <Nhk> 符号量配分装置
JP2000023162A (ja) 1998-06-29 2000-01-21 Sony Corp 符号化装置及び符号化方法
DE19922968B4 (de) 1998-10-06 2016-06-02 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Datenratenanpassung
US6661840B1 (en) 1999-04-23 2003-12-09 Sony Corporation Image encoder and method of the same
CN1159916C (zh) * 1999-06-22 2004-07-28 日本胜利株式会社 活动图象编码装置及其方法
KR100341063B1 (ko) * 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
JP4256574B2 (ja) * 2000-08-04 2009-04-22 富士通株式会社 画像信号符号化方法および画像信号符号化装置
US7082163B2 (en) 2000-11-20 2006-07-25 Matsushita Electric Industrial Co., Ltd. Picture coding method, picture coding apparatus and image relaying apparatus
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
US6895050B2 (en) * 2001-04-19 2005-05-17 Jungwoo Lee Apparatus and method for allocating bits temporaly between frames in a coding system
US6810083B2 (en) * 2001-11-16 2004-10-26 Koninklijke Philips Electronics N.V. Method and system for estimating objective quality of compressed video data
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
DE60206738D1 (de) * 2002-06-11 2005-11-24 St Microelectronics Srl Videokodierungsverfahren und -Vorrichtung mit variabler Bitrate
US6980695B2 (en) * 2002-06-28 2005-12-27 Microsoft Corporation Rate allocation for mixed content video
CN1190969C (zh) * 2003-03-08 2005-02-23 华中科技大学 一种视频编码比特率控制方法
US7095784B2 (en) * 2003-04-14 2006-08-22 Silicon Intergrated Systems Corp. Method and apparatus for moving picture compression rate control using bit allocation with initial quantization step size estimation at picture level
GB0321093D0 (en) 2003-09-09 2003-10-08 Nokia Corp Multi-rate coding
US20050089092A1 (en) * 2003-10-22 2005-04-28 Yasuhiro Hashimoto Moving picture encoding apparatus
JP4543971B2 (ja) 2005-03-07 2010-09-15 ソニー株式会社 符号化方法、符号化装置、符号化処理のプログラム及び符号化処理のプログラムを記録した記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000358247A (ja) 1999-01-19 2000-12-26 Matsushita Electric Ind Co Ltd レート制御装置、レート制御方法及び符号化装置
JP2006310912A (ja) * 2005-04-26 2006-11-09 Matsushita Electric Ind Co Ltd 動画像ビットレート変換方法、動画像ビットレート変換装置、動画像ビットレート変換回路及びプログラム記録媒体
JP2008147534A (ja) 2006-12-13 2008-06-26 Denso Corp 内燃機関用点火装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIROSHI YASUDAHIROSHI WATANABE: "Basis of Digital Image Compression", 1999, NIKKEI BP PUBLISHING CENTER, pages: 189 - 193

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011155474A (ja) * 2010-01-27 2011-08-11 Renesas Electronics Corp 符号化装置およびそれを用いたシステム
US20130077671A1 (en) * 2010-06-09 2013-03-28 Sony Corporation Encoding apparatus and encoding method
US9826227B2 (en) * 2010-06-09 2017-11-21 Sony Corporation Motion picture encoding apparatus and motion picture encoding method based on bit rate
JP2013255208A (ja) * 2012-02-01 2013-12-19 Nippon Telegr & Teleph Corp <Ntt> 映像符号化装置、映像符号化方法及び映像符号化プログラム

Also Published As

Publication number Publication date
CA2722051A1 (en) 2009-12-10
BRPI0911762A2 (pt) 2016-08-02
KR20100137008A (ko) 2010-12-29
US8548042B2 (en) 2013-10-01
TWI436648B (zh) 2014-05-01
RU2485711C2 (ru) 2013-06-20
CN102047661B (zh) 2013-06-12
EP2265025A4 (en) 2013-01-30
TW201010443A (en) 2010-03-01
JP4999991B2 (ja) 2012-08-15
KR101213243B1 (ko) 2012-12-18
CA2722051C (en) 2014-01-21
CN102047661A (zh) 2011-05-04
RU2010144530A (ru) 2012-07-20
EP2265025A1 (en) 2010-12-22
ES2694713T3 (es) 2018-12-26
US20110075728A1 (en) 2011-03-31
JPWO2009148076A1 (ja) 2011-11-04
EP2265025B1 (en) 2018-08-29

Similar Documents

Publication Publication Date Title
US6850564B1 (en) Apparatus and method for dynamically controlling the frame rate of video streams
US8311106B2 (en) Method of encoding and decoding motion picture frames
US7925108B2 (en) Encoding device and dynamic image recording system having the encoding device
JP4999991B2 (ja) 映像符号量制御方法、映像符号量制御装置、映像符号量制御プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
EP1057342A1 (en) Adaptive quantizer in a motion analysis based buffer regulation scheme for video compression
JP2003018603A (ja) 動画像符号化方法及び装置
JP4632049B2 (ja) 動画像符号化方法及び装置
US6775325B1 (en) Method and apparatus for converting the bitrate of an encoded bitstream without full re-encoding
JP2010161582A (ja) 符号化装置、目標符号量調整方法及び記録媒体
US8355589B2 (en) Method and apparatus for field picture coding and decoding
US20100027617A1 (en) Method and apparatus for compressing a reference frame in encoding/decoding moving images
JP2004514352A (ja) Mpeg−2スケーラブル復号器内の複雑さの動的な適応
EP1381239A1 (en) Method and apparatus for controlling amount of DCT computation performed to encode motion image
US20090279610A1 (en) Method and apparatus for encoding/decoding with interlace scanning based motion vector transformation
JP2002185966A (ja) 映像符号化装置
KR20030005222A (ko) 코딩
JP3646849B2 (ja) ステレオ動画像用符号化装置
JP7001159B2 (ja) 動画像符号化装置、動画像符号化方法、プログラム
JP2005045736A (ja) 画像信号符号化方法及び装置、符号化制御装置並びにプログラム
KR100677128B1 (ko) 동영상 부호화기의 비트율 제어장치 및 방법
US8948528B2 (en) Method and apparatus for restoring image by copying memory
JPH10336649A (ja) 動画像符号化方法および装置
JP3521794B2 (ja) データ符号化方法及び装置
KR20190083018A (ko) 이미지 처리 방법 및 그 시스템
JP2019092075A (ja) 画像符号化装置及びその制御方法並びにプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980119377.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09758343

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010515888

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 6438/CHENP/2010

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2722051

Country of ref document: CA

Ref document number: 2009758343

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20107026166

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 12994339

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010144530

Country of ref document: RU

ENP Entry into the national phase

Ref document number: PI0911762

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20101029