WO2010097946A1 - 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム - Google Patents

動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム Download PDF

Info

Publication number
WO2010097946A1
WO2010097946A1 PCT/JP2009/053739 JP2009053739W WO2010097946A1 WO 2010097946 A1 WO2010097946 A1 WO 2010097946A1 JP 2009053739 W JP2009053739 W JP 2009053739W WO 2010097946 A1 WO2010097946 A1 WO 2010097946A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
sub
picture
encoding
buffer
Prior art date
Application number
PCT/JP2009/053739
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 JP2011501428A priority Critical patent/JP5152402B2/ja
Priority to PCT/JP2009/053739 priority patent/WO2010097946A1/ja
Priority to CN200980156661.0A priority patent/CN102318345B/zh
Priority to KR1020117019839A priority patent/KR101280700B1/ko
Priority to EP09840799.2A priority patent/EP2403248B1/en
Publication of WO2010097946A1 publication Critical patent/WO2010097946A1/ja
Priority to US13/206,023 priority patent/US9025664B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's

Definitions

  • the embodiment disclosed herein is a moving image coding that generates a plurality of pieces of data obtained by dividing moving image data in parallel and generates bitstream data with a smaller amount of data than the moving image data at high speed.
  • the present invention relates to an apparatus, a moving image encoding method, and a moving image encoding computer program.
  • Video data generally has a very large amount of data. Therefore, when a device that handles moving image data is to transmit moving image data to another device or to store moving image data in a storage device, by encoding the moving image data, Compress the amount of data.
  • the moving image data is divided into a plurality of sub-data, and each sub-data is encoded in parallel using a plurality of encoders, and then each encoded data
  • the decoding device when the encoded moving image data is transmitted to the decoding device, the decoding device must be able to decode the encoded moving image data. Therefore, it is assumed that the decoding apparatus has a buffer having a predetermined capacity for temporarily storing the encoded moving image data.
  • the moving image data encoding device is required to encode moving image data so that the amount of data stored in the buffer always falls within the predetermined capacity range.
  • a virtual buffer included in the decoding device is referred to as a standard decoder buffer.
  • MPEG Moving Picture Experts Group
  • the concept regarding the transition of the occupied amount of encoded moving image data in the standard decoder buffer is defined as Video Buffering Verifier (VBV).
  • VBV In VBV, after encoded moving image data is accumulated in the standard decoder buffer by an initial delay amount at the maximum transmission bit rate, data for one picture is instantaneously extracted from the standard decoder buffer at a constant time interval.
  • the model is adopted.
  • the occupied amount of the encoded moving image data transmitted to the standard decoder buffer in the standard decoder buffer is the maximum allowable value and the minimum value of the standard decoder buffer. Must be within tolerance.
  • bitstream data may not meet standard decoder buffer specifications. This problem occurs for the following reason. That is, it is defined that the bit stream data is always stored in the standard decoder buffer at the maximum transmission bit rate until the transmission of the bit stream data is completed.
  • the recovery amount of the buffer before the encoded moving image data combined on the back side is combined and the dividing point is divided. In some cases, the motion may not be consistent between the recovery amounts of the buffer when treated as continuous video data that has not been processed.
  • the occupied amount of the encoded image data on the rear side in the standard decoder buffer is This is because it does not match the occupation amount of the bit stream data.
  • the initial decoder amount at each divided point is calculated based on the simulation result of the transition of the standard decoder buffer occupancy so as to satisfy the standard decoder buffer specification.
  • a technique for encoding moving image data has been proposed.
  • the standard decoder buffer occupancy is included in the combined section so that it falls within the maximum allowable value and the minimum allowable value of the buffer.
  • the technology for simulating the transition of the buffer occupancy when the simulation result indicates that the standard decoder buffer specification is violated, performs the simulation while adjusting the parameter for determining the allocated amount of coded bits for each picture. Need to repeat. For this reason, a moving image encoding apparatus using the technology may take a long time for encoding processing of moving image data.
  • the technique of re-encoding the decoded data after once decoding the data included in the combined section requires extra time for executing the re-encoding process. Further, this technique does not adjust the buffer amount at the time when the divided moving image data are combined. For this reason, if the setting at the time of combining is inappropriate, the amount of encoded bits allocated to a specific picture is extremely small, and as a result, there is a risk that image quality will be rapidly deteriorated.
  • the present specification provides a moving image encoding apparatus, a moving image encoding method, and a moving image encoding program that can encode moving image data in a short time while satisfying the standard decoder buffer. Objective.
  • a video encoding device includes a storage unit that stores moving image data including at least first and second sub data each including a plurality of pictures, and the moving image data by encoding the moving image data.
  • a processing unit that generates bit stream data having a data amount smaller than the data amount of the image data; and an output unit that outputs the bit stream data.
  • the processing unit transmits the bit stream data to the virtual decoder at a predetermined transmission rate, accumulates the bit stream data in the buffer of the decoder, and stores each bit included in the bit stream data at a predetermined time interval.
  • the data corresponding to the last picture included in the first sub-bitstream data in which the first sub-data is encoded is The first occupancy amount of the bit stream data in the decoder buffer at the first time point extracted from the buffer is the second sub bit stream in which the second sub data is encoded at the first time point.
  • a target value for the first occupancy is determined so that the data is equal to or greater than the second occupancy in the decoder buffer.
  • a bundle target derivation function and an allocation amount of coded bits for each picture included in the first sub data are determined so that the first occupation amount becomes a target value, and the first sub data is determined according to the allocation amount.
  • the first encoding function for generating the first sub bitstream data by encoding the second subbitstream data by encoding the second subdata, and the second encoding for generating the second subbitstream data An encoding function and a combining function for generating bit stream data by combining the first sub bit stream data and the second sub bit stream data are realized.
  • data that is less than the data amount of the moving image data is encoded by encoding moving image data that includes at least first and second sub data each including a plurality of pictures.
  • a video encoding method for generating bitstream data having a quantity is provided.
  • bit stream data is transmitted to a virtual decoder at a predetermined transmission rate and stored in a buffer of the decoder, and is included in the bit stream data at predetermined time intervals.
  • the data corresponding to the picture of the first sub-bitstream data encoded with the first sub-data is sequentially extracted from the decoder buffer
  • the data corresponding to the last picture included in the first sub-bitstream data encoded with the first sub-data is The first occupancy of the bitstream data in the decoder buffer at the first time retrieved from the decoder buffer is the second occupancy of the second sub-data encoded at the first time.
  • the target value of the first occupation amount so that the sub bit stream data is equal to or greater than the second occupation amount occupied in the decoder buffer.
  • the first sub bitstream data is generated, the second subdata is encoded, the second subbitstream data is generated, and the first subbitstream data and the second subbitstream data are generated. Generating the bitstream data by combining the bitstream data.
  • data that is smaller than the data amount of the moving image data is encoded by encoding moving image data that includes at least first and second sub data each including a plurality of pictures.
  • a moving picture encoding computer program for causing a computer to generate bitstream data having a quantity.
  • This computer program transmits bitstream data to a virtual decoder at a predetermined transmission rate and stores it in a buffer of the decoder, and also stores each picture included in the bitstream data at a predetermined time interval.
  • the data corresponding to the last picture included in the first sub-bitstream data in which the first sub-data is encoded is The first occupancy amount of the bit stream data in the decoder buffer at the first time point extracted from the buffer is the second sub bit stream in which the second sub data is encoded at the first time point.
  • the first occupancy is such that the data is greater than or equal to the second occupancy in the decoder buffer.
  • a standard value is determined, an allocation amount of coded bits for each picture included in the first sub-data is determined so that the first occupation amount becomes a target value, and the first sub-data is determined according to the allocation amount.
  • the moving picture coding apparatus, the moving picture coding method, and the moving picture coding program disclosed in this specification are capable of coding moving picture data in a short time while satisfying the standard decoder buffer. Play.
  • FIG. 1 is a schematic configuration diagram of a moving image encoding apparatus according to an embodiment.
  • FIG. 2 is a functional block diagram of the processing unit of the video encoding device showing functions implemented for executing the process of encoding the video data.
  • FIG. 3A is a diagram showing an example of transition of the occupation amount occupied by one sub bitstream data in the standard decoder buffer.
  • FIG. 3B is a diagram illustrating an example of the transition of the occupation amount that each of the two sub-bitstream data to be combined occupies in the standard decoder buffer.
  • FIG. 3C is a diagram illustrating an example of transition of the occupation amount occupied by the bit stream data in which the two sub bit stream data are combined into one standard decoder buffer.
  • FIG. 3A is a diagram showing an example of transition of the occupation amount occupied by one sub bitstream data in the standard decoder buffer.
  • FIG. 3B is a diagram illustrating an example of the transition of the occupation amount that each of the two sub-bitstream data to be combined
  • FIG. 4 is a diagram illustrating an example of the transition of the occupation amount occupied by the sub-bitstream data on the rear side of the two sub-bitstream data to be combined in the standard decoder buffer near the transition time.
  • FIG. 5 is a functional block diagram of the encoding unit.
  • FIG. 6A is a graph showing an example of transition of the lower limit value of the occupation amount of the standard decoder buffer.
  • FIG. 6B is a graph showing an example of transition of the upper limit value of the occupation amount of the standard decoder buffer.
  • FIG. 7 is a diagram illustrating a correspondence relationship between the transition of the occupation amount occupied by the bit stream data in the standard decoder buffer at the transition time and the combined two sub bit stream data included in the bit stream data.
  • FIG. 6A is a graph showing an example of transition of the lower limit value of the occupation amount of the standard decoder buffer.
  • FIG. 6B is a graph showing an example of transition of the upper limit value of the occupation amount of the standard decoder buffer
  • FIG. 8 is a diagram showing an operation flowchart of a moving image data encoding process controlled by a computer program executed on the processing unit of the moving image encoding device.
  • FIG. 9 is a diagram illustrating an operation flowchart of sub-data encoding processing by each encoding unit, which is controlled by a computer program executed on the processing unit of the moving image encoding device.
  • This video encoding device combines video data generated by dividing video data into a plurality of sub-data and encoding each sub-data using different encoders into a single bit-stream data. To do.
  • this moving image encoding apparatus controls the encoding bit allocation amount for the front sub-bitstream data of the two sub-bitstream data to be combined. Further, this moving picture encoding apparatus inserts an invalid bit string that is extracted when the last picture is decoded, between the front sub-bitstream data and the rear sub-bitstream data.
  • the moving picture encoding apparatus can occupy the occupation amount occupied by the bit stream data in the standard decoder buffer at the time when the last picture included in the front side sub bit stream data is decoded, and the rear side sub bit stream data. Eliminates the difference from the occupation of the standard decoder buffer.
  • the picture included in the moving image data to be encoded may be either a field acquired by the interlace method or a frame acquired by the progressive method.
  • FIG. 1 is a schematic configuration diagram of a moving image encoding apparatus 1 according to an embodiment. As illustrated in FIG. 1, the moving image encoding apparatus 1 includes a storage unit 11, a processing unit 12, and an input / output unit 13.
  • the storage unit 11 includes, for example, at least one of a semiconductor memory, a magnetic disk device, and an optical disk device. And the memory
  • the storage unit 11 stores moving image data to be encoded.
  • the storage unit 11 may store bit stream data generated by encoding moving image data by the processing unit 12.
  • the input / output unit 13 includes, for example, a communication interface for connecting the moving image encoding apparatus 1 to a communication network (not shown) and its control circuit. Then, the input / output unit 13 outputs the bit stream data generated by the processing unit 12 encoding the moving image data to another device via the communication network. Further, the input / output unit 13 may acquire moving image data to be encoded from another device via a communication network, and pass the moving image data to the processing unit 12.
  • the processing unit 12 includes one or a plurality of processors, a memory, and its peripheral circuits. Then, the processing unit 12 encodes the moving image data read from the storage unit 11 or the moving image data acquired via the input / output unit 13.
  • FIG. 2 is a functional block diagram of the processing unit 12 showing functions realized for encoding moving image data.
  • the processing unit 12 includes a control unit 21, a dividing unit 22, and n encoding units 23-1, 23-2,. . . 23-n and (n-1) convergence target derivation units 24-1, 24-2,. . . , 24- (n-1) and (n-1) coupling portions 25-1, 25-2,. . . , 25- (n-1).
  • n is an integer of 2 or more.
  • Each of these units included in the processing unit 12 is a functional module implemented by a computer program executed on a processor included in the processing unit 12.
  • Each of these units included in the processing unit 12 may be mounted on the moving image coding apparatus 1 as a separate arithmetic circuit or a single integrated circuit in which these arithmetic circuits are integrated.
  • control unit 21 reads the moving image data to be encoded from the storage unit 11 or acquires the moving image data via the input / output unit 13 and passes the moving image data to the dividing unit 22. At this time, when information regarding the content of the moving image data is also acquired together with the moving image data, the information may also be passed to the dividing unit 22.
  • the control unit 21 may read a plurality of moving image data from the storage unit 11 or obtain the moving image data via the input / output unit 13 and pass the plurality of moving image data to the dividing unit 22.
  • the processing unit 12 encodes a plurality of pieces of moving image data divided in advance by a separate encoding unit 23-m, and combines the sub bit stream data in which each moving image data is encoded, thereby One bit stream data may be generated.
  • the dividing unit 22 may be omitted.
  • the control unit 21 inputs the plurality of moving image data directly to each encoding unit 23-m.
  • the dividing unit 22 generates sub-data by dividing the moving image data received from the control unit 21 according to the number n of the encoding units 23-m included in the processing unit 12. For example, the dividing unit 22 generates n sub-data by dividing the moving image data equally into n pieces with respect to time. In addition, when the division unit 22 receives information on the content of moving image data from the control unit 21, the division unit 22 may vary the time length of each sub-data based on the information. For example, the dividing unit 22 may divide the moving image data so that the time required for the encoding process for each sub-data becomes equal.
  • the division unit 22 refers to the information related to the content of the moving image data so as to increase the time length of sub-data including many pictures that require relatively short time for encoding processing such as a still scene.
  • the moving image data may be divided.
  • the dividing unit 22 may divide the moving image data so as to shorten the time length of sub-data including many pictures that require a relatively long time for encoding processing such as a scene with a lot of motion.
  • the dividing unit 22 may extract sub-data that extracts data of a certain length in the moving image data from a plurality of locations in the moving image data and encodes each of the extracted data.
  • the dividing unit 22 divides one moving image data obtained by combining the plurality of moving image data by the number n of the encoding units 23-m. Sub data may be created.
  • the dividing unit 22 may adjust the length of the sub data so that the number of pictures included in each sub data is a multiple of Group Of Pictures (GOP).
  • the GOP is a structure that defines a set of pictures including a plurality of consecutive pictures that are repeated at a constant period. In the GOP, whether an intra coding method is applied to each picture, or an inter coding method. It is stipulated whether or not is applied.
  • the intra coding method is a method of coding a picture using only information included in one picture to be coded.
  • the inter coding method is a method of coding a picture to be coded using information on a picture to be coded and pictures before and after the picture.
  • the dividing unit 22 encodes the generated sub-data in the order of time when the sub-data is reproduced, in the encoding units 23-1, 23-2,. . . 23-n. Further, the dividing unit 22 inputs the number of pictures included in each sub-data to the encoding unit to which the sub-data is input.
  • Convergence target derivation units 24-1, 24-2,. . . , 24- (n ⁇ 1) are related to the standard decoder buffer occupancy at the time when the last picture included in the preceding sub-bitstream data of the two sub-bitstream data to be combined is decoded. Calculate the target value.
  • the convergence target deriving units 24-1, 24-2,. . . , 24- (n ⁇ 1) have the same configuration and function, and therefore, one convergence target derivation unit 24-m (1 ⁇ m ⁇ n ⁇ 1) will be described below.
  • one bit stream data is generated by combining two sub bit stream data, and that the bit stream data is transmitted to the standard decoder buffer.
  • the occupation amount occupied by the bit-stream data in the standard decoder buffer is determined so that the back-side sub-bitstream data is stored in the standard decoder buffer up to that point. It is preferable to occupy the occupied amount. If this condition is satisfied, as long as each sub-bitstream data is generated so as to comply with the standard decoder buffer, the occupation amount does not overflow the maximum allowable value of the standard decoder buffer, and the standard decoding is performed. Do not underflow the minimum allowable value of the instrument buffer.
  • the decoding time of the last picture of the front sub-bitstream data out of the two sub-bitstream data to be combined is referred to as a transition time.
  • the time point at which the subsequent sub bit stream data of the two sub bit stream data to be combined starts to be accumulated in the standard decoder buffer is referred to as a combined time.
  • FIG. 3A is a diagram illustrating an example of a transition of the occupation amount occupied by one sub bit stream data SBS m in the standard decoder buffer.
  • FIG. 3B is a diagram illustrating an example of transition of the occupation amount occupied by the two sub-bitstream data SBS m and SBS m + 1 to be combined in the standard decoder buffer.
  • FIG. 3C shows the occupancy of the bit stream data BS, which is a combination of the two sub-bit stream data SBS m and SBS m + 1 shown in FIG. 3B, in the standard decoder buffer. It is a figure which shows an example of a transition.
  • the horizontal axis represents time
  • the vertical axis represents the occupation amount of the standard decoder buffer.
  • Line 301 represents the maximum allowable value of the standard decoder buffer occupancy.
  • Time t 0 represents the time when the sub bit stream data SBS m starts to be accumulated in the standard decoder buffer.
  • the period t d represents the initial buffer delay amount
  • the period t f0 represents the picture interval determined by the frame rate
  • the period t f0 is 1/30 second, for example.
  • a graph 310 represents a transition of the occupation amount occupied by the sub bitstream data SBS m in the standard decoder buffer.
  • the graph 320, the next sub-bit stream data SBS m + 1 that is coupled to the sub-bit stream data SBS m is the transitions in occupancy of occupying a standard decoder buffer To express.
  • a graph 330 represents a transition of the occupation amount occupied by the bit stream data BS in the standard decoder buffer.
  • the time t tr represents the transition time when the last picture of the front sub-bitstream data SBS m is decoded
  • the time t j represents the rear sub-bitstream. It represents the time when data SBS m + 1 starts to be accumulated in the standard decoder buffer.
  • the occupied amount of the sub-bitstream data SBS m in the standard decoder buffer from the time t 0 until the initial buffer delay amount t d elapses is the maximum transmission bit rate per unit time. Increase with.
  • the initial buffer delay amount t d has elapsed from time t 0
  • the data d 1 corresponding to the first picture is extracted from the standard decoder buffer. Therefore, the occupation amount decreases by d 1 . From that point on, every time the picture interval t f0 elapses, data for one picture is retrieved from the standard decoder buffer.
  • the amount of occupancy is the unit time from the time when the data for one picture is extracted until the data for the next picture is extracted.
  • the maximum transmission bit rate per hit increases.
  • the occupation amount no longer increases, and each picture interval t f0 has passed one picture worth of data. Decrease.
  • the occupation amount becomes zero.
  • the sub bit stream data SBS m + 1 is accumulated in the standard decoder buffer after the sub bit stream data SBS m .
  • it is considered from defined reference decoder buffer and be consecutive after the time t e bitstream data BS is transmitted to a standard decoder buffer. Therefore, as indicated by the dotted line 311, the occupation amount occupied by the bitstream data BS in the standard decoder buffer after the time t e until the next picture is decoded after the time t e is also as follows. Is considered to increase at the maximum transmission bit rate per unit time.
  • the occupation amount occupied by the sub-bitstream data SBS m + 1 in the standard decoder buffer is the maximum transmission bit per unit time after the combination time t j until the initial delay amount t d elapses. Increase at the rate.
  • the residual occupation amount S r of the bit-stream data BS at the transition time t tr is the sub-bit-stream data SBS m +1 is larger than the occupation amount S tr at the time of transition occupied in the standard decoder buffer.
  • the occupied amount of the bit stream data BS in the standard decoder buffer is the occupied amount of the sub bit stream data SBS m + 1 in the standard decoder buffer.
  • the absolute value ⁇ S r of the difference between the remaining occupation amount Sr and the transition occupation amount Str is the sub-bit stream data SBS m + 1 to be the maximum allowable value near the standard decoder buffer.
  • ⁇ S r is added to the occupation amount occupied by the sub-bitstream data SBS m + 1 in the standard decoder buffer, so that the occupation amount occupied by the bit stream data BS in the standard decoder buffer is the maximum of the standard decoder buffer. It will exceed the allowable value.
  • the residual occupation amount S r of the bit-stream data BS at the transition time t tr becomes the sub-bit-stream data SBS m It is smaller than the occupied amount S tr at the time of transition of +1 .
  • the occupation amount occupied by the bit stream data BS in the standard decoder buffer is the remaining occupation amount S r from the occupation amount occupied by the sub bit stream data SBS m + 1 in the standard decoder buffer.
  • the sub bit stream data SBS m + 1 is generated so that the occupied amount of the sub bit stream data SBS m + 1 in the standard decoder buffer at any time is close to the minimum allowable value of the standard decoder buffer.
  • ⁇ S r is subtracted from the occupation amount occupied by the sub-bitstream data SBS m + 1 in the standard decoder buffer, so that the occupation amount occupied by the bit stream data BS in the standard decoder buffer is the minimum of the standard decoder buffer. It falls below the allowable value.
  • the convergence target derivation unit 24-m generates the sub bit stream data generated by the encoding unit 23- (m + 1) at the transition time regarding the sub bit stream data SBS m generated by the encoding unit 23-m.
  • the occupation amount at transition occupied by the SBS m + 1 in the standard decoder buffer is obtained as one target value.
  • the convergence target deriving unit 24-m also converges the target of the remaining occupation amount of the bit stream data BS obtained by combining the sub bit stream data SBS m and the sub bit stream data SBS m + 1 at the transition time in the standard decoder buffer. Determine the value.
  • This convergence target value is not less than the occupation amount at the time of transition and not more than the maximum allowable value of the standard decoder buffer.
  • the convergence target derivation unit 24-m receives the initial buffer delay amount, the maximum transmission bit rate, and the inter-frame time between the coupling points from the control unit 21. .
  • the inter-frame time is a period from the transition time to the time when the data corresponding to the first picture of the sub bitstream data SBS m + 1 is extracted from the standard decoder buffer.
  • FIG. 4 is a diagram showing a change in the occupation amount occupied by the sub bitstream data SBS m + 1 in the standard decoder buffer in the vicinity of the transition time.
  • time t j represents the combined time
  • time t tr represents the transition time.
  • time t 1 represents the time at which data corresponding to the first picture of the sub bitstream data SBS m + 1 is retrieved from the standard decoder buffer.
  • the duration t d is the initial buffer delay
  • the period t f represents a linkage point frame time.
  • the graph 401 represents the occupation amount occupied by the sub bitstream data SBS m + 1 in the standard decoder buffer.
  • a graph 402 represents an occupation amount of the bit stream data BS, which is a combination of the sub bit stream data SBS m and the sub bit stream data SBS m + 1, in the standard decoder buffer.
  • the occupation amount of the sub-bitstream data SBS m + 1 accumulated in the standard decoder buffer from time t j to time t 1 is the initial buffer delay amount t d Multiplied by the maximum transmission bit rate.
  • the occupation amount of the sub bitstream data SBS m + 1 accumulated in the standard decoder buffer from the transition time t tr to the time t 1 is obtained by multiplying the inter-frame time t f by the maximum transmission bit rate. Value.
  • the convergence target deriving unit 24-m can calculate the transition occupation amount S tr according to the following equation.
  • br is the maximum transmission bit rate.
  • the convergence target deriving unit 24-m calculates a convergence target value by adding a predetermined bias to the transition occupation amount Str after calculating the transition occupation amount Str .
  • the predetermined bias has 0 or a positive value.
  • the predetermined bias is that the occupation amount occupied by the bit stream data BS in the standard decoder buffer after the data corresponding to the last picture of the sub bit stream data SBS m at the transition time t tr is extracted Set to be greater than or equal to S tr .
  • the predetermined bias is that, at the transition time t tr , before the data corresponding to the last picture of the sub bit stream data SBS m is extracted, the occupation amount occupied by the bit stream data BS in the standard decoder buffer is Is set to be less than or equal to the maximum allowable value. Therefore, for example, the predetermined bias may be a value that is three times the standard deviation of the variation of the number of encoded bits obtained by encoding one picture or one GOP with respect to the number of allocated bits. it can.
  • the convergence target deriving unit 24-m passes the transition occupation amount to the coupling unit 25-m.
  • the convergence target derivation unit 24-m passes the convergence target value to the encoding unit 23-m.
  • Encoding units 23-1, 23-2,. . . 23-n encodes the input sub-data, thereby sub-bitstream data SBS 1 , SBS 2 ,. . . , Generate SBS n .
  • FIG. 5 is a functional block diagram of the encoding unit 23-m. As shown in FIG. 5, the encoding unit 23-m includes a data management unit 31, an orthogonal transform / quantization unit 32, a variable-length encoding unit 33, a buffer upper / lower limit control unit 34, an information amount And a control unit 35.
  • the data management unit 31 passes the sub-data received from the dividing unit 22 to the orthogonal transform / quantization unit 32 one by one according to the order of the pictures to be encoded.
  • the data management unit 31 also inputs a signal indicating whether the picture passed to the orthogonal transform / quantization unit 32 is inter-coded or intra-coded to the orthogonal transform / quantization unit 32.
  • the data management unit 31 stores the current picture number, which is the number of the picture currently being encoded, in order to determine the upper limit value and lower limit value of the standard decoder buffer occupancy for each picture. Input to the upper limit / lower limit control unit 34.
  • the orthogonal transform / quantization unit 32 performs orthogonal transform on the picture received from the data management unit 31 and quantizes the frequency signal obtained by the orthogonal transform process. As a result, the orthogonal transform / quantization unit 32 generates a quantized signal having a smaller number of bits than that of the original picture.
  • the orthogonal transform / quantization unit 32 uses various video coding standards such as MPEG-2, MPEG-4, or H.264.MPEG-4 Advanced Video Coding (H.264 MPEG-4 AVC). According to either of them, the orthogonal transform process and the quantization process may be executed.
  • the orthogonal transform / quantization unit 32 first divides the current picture received from the data management unit 31 into a plurality of blocks having a predetermined number of pixels. This block is hereinafter referred to as a macro block.
  • the macro block includes, for example, 16 ⁇ 16 pixels.
  • the orthogonal transform / quantization unit 32 performs a difference operation between each macroblock and the predicted image. Then, the orthogonal transform / quantization unit 32 generates a difference value corresponding to each pixel in the macroblock obtained by the difference calculation as a prediction error signal.
  • the orthogonal transform / quantization unit 32 performs the inter-coded prediction image or intra-coding in accordance with a signal indicating whether the current picture received from the data management unit 31 is inter-coded or intra-coded.
  • One of the predicted images for use is selected.
  • a predicted image for inter coding is created from a picture that has already been coded.
  • a prediction image for intra coding is created from an already coded macroblock of the current picture.
  • the orthogonal transform / quantization unit 32 obtains a frequency signal representing a horizontal frequency component and a vertical frequency component of the prediction error signal by orthogonally transforming the prediction error signal of each macroblock. For example, the orthogonal transform / quantization unit 32 performs a discrete cosine transform (Discrete Cosine Transform, DCT) on the prediction error signal as an orthogonal transform process, thereby generating a set of DCT coefficients for each macroblock as a frequency signal.
  • DCT discrete cosine Transform
  • the orthogonal transform / quantization unit 32 quantizes the frequency signal according to the quantization parameter determined by the information amount control unit 35.
  • This quantization process is a process that represents a signal value included in a certain section as one signal value.
  • the fixed interval is called a quantization width.
  • the orthogonal transform / quantization unit 32 quantizes the frequency signal by truncating a predetermined number of lower bits corresponding to the quantization width from the frequency signal.
  • the quantization width is determined by the quantization parameter.
  • the orthogonal transform / quantization unit 32 determines a quantization width to be used according to a function representing a quantization width value with respect to a quantization parameter value.
  • the function can be a monotonically increasing function with respect to the value of the quantization parameter, and is set in advance.
  • a plurality of quantization matrices that define quantization widths corresponding to the frequency components in the horizontal direction and the vertical direction are prepared in advance and stored in the storage unit 11.
  • the orthogonal transform / quantization unit 32 selects a specific quantization matrix among the quantization matrices stored in the storage unit 11 according to the quantization parameter.
  • the orthogonal transform / quantization unit 32 refers to the selected quantization matrix and determines the quantization width for each frequency component of the frequency signal.
  • the orthogonal transform / quantization unit 32 selects a quantization matrix having a larger quantization width for each frequency component as the quantization parameter value increases. Since the orthogonal transform / quantization unit 32 can reduce the number of bits used to represent each frequency component of the frequency signal by executing the quantization process, the amount of information included in each macroblock can be reduced. . The orthogonal transform / quantization unit 32 supplies the quantized signal to the variable length coding unit 33.
  • the orthogonal transform / quantization unit 32 performs inverse quantization by multiplying the quantized signal by a predetermined number corresponding to the quantization width determined by the quantization parameter in order to generate a predicted image. By this inverse quantization, the frequency signal of each macroblock, for example, a set of DCT coefficients is restored. Thereafter, the orthogonal transform / quantization unit 32 performs inverse orthogonal transform processing on the frequency signal. For example, when DCT processing is performed in the orthogonal transform unit 22, the orthogonal transform / quantization unit 32 performs inverse DCT processing on the inversely quantized signal. By performing the inverse quantization process and the inverse orthogonal transform process on the quantized signal, a prediction error signal having the same level of information as the prediction error signal before encoding is reproduced.
  • the orthogonal transform / quantization unit 32 adds the reproduced prediction error signal corresponding to the pixel to each pixel value of the motion compensated prediction image, which will be described later, for the picture to be inter-coded.
  • the orthogonal transform / quantization unit 32 regenerates the prediction corresponding to each pixel value of the prediction image generated based on the already encoded macroblock for the intra-encoded picture. Add error signals. By executing these processes for each macroblock, the orthogonal transform / quantization unit 32 obtains a predicted picture for the current picture.
  • the orthogonal transform / quantization unit 32 temporarily stores the predicted picture as a new reference picture in a memory included in the processing unit 12. Then, the orthogonal transform / quantization unit 32 uses the reference picture to create a predicted image. Note that the orthogonal transform / quantization unit 32 stores a predetermined number of reference pictures, and when the number of reference pictures exceeds the predetermined number, discards the old reference pictures in order.
  • the orthogonal transform / quantization unit 32 obtains a motion vector using each macroblock of the current picture and a reference picture that has already been encoded in order to create a prediction image for inter coding.
  • the motion vector represents the amount of spatial movement between the macroblock of the current picture and the block of the reference picture that is most similar to the macroblock.
  • the orthogonal transform / quantization unit 32 executes, for example, block matching between the macroblock of interest of the current picture and each reference picture, so that the reference picture that most closely matches the macroblock and its reference are obtained from each reference picture. Determine the area on the picture.
  • the orthogonal transform / quantization unit 32 then identifies the position of the macroblock of the current picture, the amount of movement in the horizontal and vertical directions of the area that most closely matches the macroblock, and identification information that indicates the reference picture to which the area belongs. Let each of the vectors be the motion vectors.
  • the orthogonal transform / quantization unit 32 obtains a motion vector for each macroblock included in the current picture. Then, the orthogonal transform / quantization unit 32 generates a motion-compensated block-unit predicted image by performing motion compensation based on the motion vector obtained for the reference picture.
  • the motion compensation is a process of moving the position of the block of the most similar reference picture so as to cancel out the amount of positional deviation between the macro block and the block of the reference picture most similar to the macro block. It is.
  • the orthogonal transform / quantization unit 32 interpolates the target macroblock of the current picture by interpolation from the pixel values included in the already encoded macroblock adjacent to the left side or the upper side of the target macroblock. A prediction image for encoding is generated.
  • variable length encoding unit 33 encodes the quantized signal and the motion vector received from the orthogonal transform / quantization unit 32 to generate a set of bits in which the data amount is compressed with respect to the original picture. Then, the variable length coding unit 33 concatenates the bit sets generated for each picture included in the sub-data input to the coding unit 23-m according to the execution order of the coding process, thereby Sub bitstream data corresponding to the subdata is generated. For this purpose, for example, the variable-length encoding unit 33 executes variable-length encoding processing for assigning a variable-length codeword that becomes shorter as the signal value with a higher occurrence probability occurs with respect to the quantized signal.
  • variable length coding unit 33 can perform Huffman coding processing or arithmetic coding processing as the variable length coding processing.
  • the variable length coding unit 33 outputs the generated sub bitstream data to the combining unit 25-m.
  • the variable length encoding unit 33 notifies the information amount control unit 35 of the encoding bit length actually assigned to each picture, each macroblock, or each GOP included in the generated sub bitstream data.
  • the buffer upper / lower limit control unit 34 determines the limit value of the occupation amount that the bit stream data occupies in the standard decoder buffer. Specifically, the buffer upper limit / lower limit control unit 34 determines the lower limit value of the occupation amount of the standard decoder buffer at the time when the encoded data corresponding to the current picture to be encoded is extracted from the standard decoder buffer. decide. Further, the buffer upper limit / lower limit control unit 34 determines the upper limit value of the occupancy amount of the standard decoder buffer when the encoded data corresponding to the current picture to be encoded is accumulated in the standard decoder buffer.
  • the buffer upper limit / lower limit control unit 34 receives the initial set upper limit value and the initial set lower limit value of the standard decoder buffer from the control unit 21 and the encoding unit 23-m. The number of pictures included in the sub data is input.
  • the buffer upper limit / lower limit control unit 34 receives the number of the current picture to be encoded from the data management unit 31. Further, the buffer upper limit / lower limit control unit 34 receives the convergence target at the transition time at which the last picture included in the sub-bitstream data generated by the encoding unit 23-m is decoded from the convergence target deriving unit 24-m. A value is entered.
  • the buffer upper limit / lower limit control unit 34 performs standard decoding on the bit stream data BS obtained by combining the sub bit stream data SBS m and SBS m + 1 generated by the encoding units 23-m and 23- (m + 1), respectively. Sets the lower limit for the occupation amount in the instrument buffer. Specifically, the buffer upper limit / lower limit control unit 34, at the transition time from the sub bit stream data SBS m to SBS m + 1 , the occupation amount occupied by the bit stream data BS in the standard decoder buffer falls below the convergence target value. Decide the lower limit so that there is no.
  • the buffer upper limit / lower limit control unit 34 encodes a lower limit value of the occupation amount of the bit stream data BS at the time when each picture of the sub bit stream data SBS m is extracted from the standard decoder buffer, to be assigned to each picture. Set so that the number of bits does not fluctuate rapidly.
  • the buffer upper limit / lower limit control unit 34 inputs the lower limit value from the control unit 21 until the elapsed time after the sub bit stream data SBS m starts to be accumulated in the standard decoder buffer reaches a predetermined control start time.
  • the elapsed time t is calculated according to the following formula.
  • n p represents the number of the current picture that is acquired from the data management unit 31 and that is the target of the encoding process.
  • fr represents the number of pictures included in the sub-data that are retrieved from the standard decoder buffer per second.
  • t d represents an initial buffer delay amount from when the sub bit stream data SBS m starts to be accumulated in the standard decoder buffer until data corresponding to the first picture is extracted.
  • the buffer upper limit / lower limit control unit 34 monotonically increases the lower limit value so that the lower limit value approaches the convergence target value as the elapsed time t increases.
  • the control start time is set to a value greater than or equal to 0 and smaller than a predetermined control end time.
  • the control start time is set so that deterioration in image quality due to a decrease in the number of encoded bits accompanying an increase in the lower limit value for each picture is suppressed to the extent that the observer is not aware.
  • the control start time is set to an elapsed time corresponding to a value less than half of the number of pictures included in the sub data.
  • the control end time can be set to a predetermined timing before the transition time from the sub bit stream data SBS m to the sub bit stream data SBS m + 1 and after the control end time.
  • the interval between the control start time and the control end time is preferably as long as possible.
  • the buffer upper limit / lower limit control unit 34 can set the lower limit value L np for the current picture, for example, according to the following equation.
  • t p represents the time corresponding to the current picture.
  • t start represents the control start time at which the lower limit value correction starts
  • t end represents the control end time at which the lower limit value correction ends.
  • S target represents a convergence target value
  • L ini represents an initial setting lower limit value.
  • the encoding unit 23-m cannot determine the encoded bit allocation amount for each picture so as to exceed the initial set upper limit value. Therefore, the encoding unit 23-m calculates the remaining occupation amount of the bit stream data BS when the data corresponding to the last picture included in the sub bit stream data SBS m is extracted from the standard decoder buffer. Cannot be close to. In such a case, the buffer upper limit / lower limit control unit 34 corrects the upper limit value to be higher than the convergence target value.
  • the buffer upper limit / lower limit control unit 34 sets the upper limit value for all pictures to the maximum allowable value of the occupation amount of the standard decoder buffer.
  • the buffer upper limit / lower limit control unit 34 sets the upper limit value at the time when the picture is taken out from the standard decoder buffer after the predetermined control start time and before the control end time to be higher than the convergence target value. It may be gradually increased until Note that the control start time related to the setting of the upper limit value and the control start time related to the setting of the lower limit value do not have to match. Similarly, the control end time related to the setting of the upper limit value and the control end time related to the setting of the lower limit value may not match. However, it is preferable to set the upper limit value and the lower limit value so that a difference corresponding to the number of encoded bits for at least one picture is always provided between the upper limit value and the lower limit value.
  • FIG. 6A is a graph showing an example of transition of the lower limit value of the standard decoder buffer set by the buffer upper limit / lower limit control unit 34.
  • FIG. 6B is a graph showing an example of transition of the upper limit value of the standard decoder buffer set by the buffer upper limit / lower limit control unit 34.
  • the horizontal axis represents time
  • the vertical axis represents the occupation amount of the standard decoder buffer.
  • a line 601 represents the upper limit value of the standard decoder buffer occupation amount
  • a line 602 represents the lower limit value of the standard decoder buffer occupation amount.
  • dotted lines 603 and 604 represent the convergence target value and the transition occupation amount, respectively.
  • the graph 605, the sub-bit stream data SBS m + 1 generated by the encoding unit 23-m sub-bit stream data SBS m and the next coding unit produced by the 23- (m + 1) is coupled It represents the transition of the occupation amount occupied by the bit stream data BS in the standard decoder buffer.
  • the lower limit value 602 of the standard decoder buffer occupancy is the control start time t 1 from the time t 0 when the sub bitstream data SBS m starts to be accumulated in the standard decoder buffer. Until the initial set lower limit. Thereafter, the lower limit value 602 increases linearly until the control end time t 2 after the control start time t 1 . At the control end time t 2 , the lower limit value 602 reaches the convergence target value 603 set to a value equal to or larger than the transition occupation amount 604 and is kept constant after time t 2 .
  • the lower limit value Since the lower limit value is set in this way, the occupation amount occupied by the bit stream data BS in the standard decoder buffer at the transition time t tr when the last picture of the sub bit stream data SBS m is decoded is surely the sub bit. It becomes higher than the occupied amount at the time of transition of the stream data SBS m + 1 .
  • the upper limit value 601 of the standard decoder buffer occupancy is sufficiently high so that the occupancy 605 does not exceed the upper limit 601 even if the lower limit 602 is set to the convergence target value 603. Therefore, the buffer upper limit / lower limit control unit 34 does not correct the upper limit value.
  • a line 611 represents the upper limit value of the standard decoder buffer occupation amount
  • a line 612 represents the lower limit value of the standard decoder buffer occupation amount
  • a dotted line 613 represents the convergence target value.
  • the lower limit value 612 of the standard decoder buffer occupancy is from time t 0 when the sub-bitstream data starts to be accumulated in the standard decoder buffer to control start time t 1 .
  • the initial setting lower limit value is set. Thereafter, the lower limit value 612 increases linearly until the control end time t 2 after the control start time t 1 . At the control end time t 2 , the lower limit value 612 reaches the convergence target value 613.
  • the upper limit value 611 of the occupation amount of the standard decoder buffer is set to the initial set upper limit value from time t 0 to control start time t 3 . Thereafter, the upper limit value 611 increases linearly until the control end time t 4 after the control start time t 3 . Then the control end time t 4, the upper limit value 611 reaches the maximum allowable value of the standard decoder buffer, kept at time t 4 after constant.
  • the buffer upper / lower limit control unit 34 notifies the information amount control unit 35 of the upper limit value and the lower limit value for the current picture.
  • the information amount control unit 35 determines a quantization parameter for controlling the number of encoded bits assigned to the picture encoded by the orthogonal transform / quantization unit 32.
  • the information amount control unit 35 uses various quantization parameter determination methods in which the value of the quantization parameter decreases as the value of the target information amount corresponding to the number of encoded bits allocated to the picture increases. Any of them can be adopted. As such a method, the information amount control unit 35 performs encoding assigned to the next picture from the plan of the number of encoded bits actually assigned to the already encoded picture and the target number of encoded bits. A feedback type method for determining the number of bits may be employed. Further, the information amount control unit 35 calculates a statistic indicating the nature of the picture from the motion prediction process in the orthogonal transform / quantization unit 32, and determines the number of coding bits to be assigned to the next picture based on the statistic. A feedforward type method may be employed. Further, the information amount control unit 35 may use a method in which such a feedback type method and a feed forward type method are combined.
  • the information amount control unit 35 obtains the basic target information amount of each picture in accordance with the method adopted in the standard test model 5 of MPEG-2.
  • the maximum transmission bit rate and the frame rate are input to the information amount control unit 35 from the control unit 21.
  • the information amount control unit 35 receives picture type information indicating whether the current picture to be encoded is a picture that is inter-coded or a picture that is intra-coded, from the data management unit 31. Further, an upper limit value and a lower limit value for the current picture are input to the information amount control unit 35 from the buffer upper limit / lower limit control unit 34.
  • the information amount control unit 35 when the encoded bit sequence corresponding to the current picture is transmitted to the standard decoder buffer, the occupation amount of the standard decoder buffer does not exceed the upper limit value. So as to obtain the basic target information amount. Further, the information amount control unit 35, when the encoded bit string corresponding to the current picture is extracted from the standard decoder buffer according to these input parameters, the occupation amount of the standard decoder buffer does not fall below the lower limit value. So as to obtain the basic target information amount.
  • the information amount control unit 35 does not cause the standard decoder buffer occupancy to fall below the modified lower limit value.
  • the correction information amount for each picture is obtained.
  • the information amount control unit 35 calculates the final target information amount by subtracting the corrected target information amount from the basic target information amount.
  • the information amount control part 35 calculates
  • the basic target information amount and quantization parameter calculation method for MPEG-2 standard test model 5 are specified at http://www.mpeg.org/MPEG/MSSG/tm5/Ch10/Ch10.html. Refer to URL.
  • the information amount control unit 35 may determine the quantization parameter using a rate distortion function representing the relationship between the target information amount and the quantization parameter as disclosed in Japanese Patent Application Laid-Open No. 2008-252562. Also in this case, when the lower limit value of the buffer occupancy amount is corrected from the initial setting lower limit value, the information amount control unit 35 subtracts the correction information amount for each picture from the target information amount to obtain the target information amount. Correct it.
  • the information amount control unit 35 first calculates the estimated complexity for the current picture.
  • the complexity of a picture that is intra-coded, a picture that is inter-coded by unidirectional prediction, and a picture that is inter-coded by bi-directional prediction is calculated by the following equations.
  • a picture to be intra-coded is referred to as an I picture.
  • a picture that is inter-coded using information of a previous picture in time is called a P picture.
  • a picture that is inter-coded using information of both the previous picture and the subsequent picture is called a B picture.
  • Xi is the complexity for the I picture
  • Xp is the complexity for the P picture
  • Xb is the complexity for the B picture.
  • Si is the number of bits generated by encoding the immediately preceding picture when the immediately preceding encoded picture is an I picture.
  • Sp is the number of bits generated by encoding the immediately preceding picture when the immediately preceding encoded picture is a P picture.
  • Sb is the number of bits generated by encoding the immediately preceding picture when the immediately preceding encoded picture is a B picture.
  • Qi, Qp, and Qb are the quantization parameters of all macroblocks used when encoding the previous picture when the previous picture is an I picture, a P picture, and a B picture, respectively. This is an average quantization parameter calculated by averaging.
  • the initial values of Xi, Xp, and Xb are set as follows as an example.
  • bitrate is the maximum transmission bit rate and represents the amount of information (bit / s) per second given to encoding.
  • the information amount control unit 35 based on the calculated complexity Xi, Xp, Xb, according to the following equation, the basic target information amount Ti for the I picture, the basic target information amount Tp for the P picture, and the basic for the B picture A target information amount Tb is calculated.
  • the immediately preceding picture is a B picture
  • Sj Sb.
  • the remaining number of bits R is updated using the remaining number of bits R calculated for the previous GOP as follows: .
  • R is set to 0 for the first GOP of the moving image data.
  • picturerate is the number of pictures (Hz) scanned per second in the moving image data to be encoded.
  • Np and Nb are the number of remaining unencoded P pictures and B pictures in the GOP, respectively, in the encoding order.
  • the function max (a, b) is a function that outputs the larger value of the variables a and b.
  • the information amount control unit 35 sets target information for a picture encoded after the control start time of the lower limit value of the standard decoder buffer occupancy so that the standard decoder buffer occupancy does not become less than the lower limit.
  • the amount is adjusted using the correction information amount ⁇ T. That is, when the current picture is encoded after the control start time, the information amount control unit 35 calculates the correction information amount ⁇ T. If the current picture is an I picture, the information amount control unit 35 obtains a target information amount T for the current picture by subtracting the correction information amount ⁇ T from the basic target information amount Ti calculated by the equation (5).
  • the information amount control unit 35 sets a value obtained by subtracting the correction information amount ⁇ T from the basic target information amount Tp as the target information amount T for the current picture. Furthermore, if the current picture is a B picture, the information amount control unit 35 sets a value obtained by subtracting the correction information amount ⁇ T from the basic target information amount Tb as the target information amount T for the current picture.
  • the correction information amount ⁇ T corresponds to the difference between the lower limit value when the previous picture is extracted from the standard decoder buffer and the lower limit value when the current picture is extracted from the standard decoder buffer.
  • the correction information amount ⁇ T is calculated by the following equation when the lower limit value is obtained according to the equation (3).
  • S target represents a convergence target value calculated by the convergence target deriving unit 24-m
  • L ini represents an initial setting lower limit value.
  • the N a is encoded between the control start time buffer upper and lower control unit 34 starts the adjustment of the lower limit value of the occupancy of the standard decoder buffer, to the control end time adjustment of the lower limit value The number of pictures to be played.
  • the information amount control unit 35 may set the correction information amount ⁇ T for the I picture that has a large influence on the coding of other pictures to 0. The number of this case, in order to determine the correction information amount ⁇ T for P-pictures and B-pictures, N a in equation (6), P picture and B picture to be coded between the control start time to control the end time The sum of
  • the information amount control unit 35 determines a quantization parameter based on the target information amount T. For this purpose, the information amount control unit 35 calculates the degree of fullness d ij , d pj , and d bj of the standard decoder buffer before the j-th macroblock is encoded. Note that the degree of satisfaction d ij corresponds to an I picture, the degree of satisfaction d pj corresponds to a P picture, and the degree of satisfaction d bj corresponds to a B picture. The degree of satisfaction d ij , d pj , d bj is calculated according to the following equation.
  • B j ⁇ 1 is the number of bits generated by encoding all the macroblocks from the first to the (j ⁇ 1) th.
  • MBN is the number of macroblocks included in a picture.
  • D i0 , d p0 , and d b0 are initial values of satisfaction. Note that the degree of satisfaction d iMBN , d pMBN , and d bMBN when a specific picture is encoded up to the last macroblock are initial values d i0 , d p0 , and d b0 for the following same type of pictures: Become.
  • the information amount control unit 35 determines a quantization parameter for the j-th macroblock by using the satisfaction levels d ij , d pj , and d bj according to the following equation.
  • d j is d ij if the current picture is an I picture
  • d pj if the current picture is a P picture
  • d bj if the current picture is a B picture.
  • the information amount control unit 35 passes the obtained quantization parameter to the orthogonal transform / quantization unit 32.
  • the information amount control unit 35 at the transition time calculated from the actual coded bits for each picture included in a sub-bit stream data SBS m received from the variable length coding unit 33, a sub-bit stream data SBS m
  • the remaining occupation amount of the bit stream data BS to be included is notified to the combining unit 25-m.
  • the information amount control unit 35 starts from the start of accumulation of the sub bitstream data SBS m in the standard decoder buffer until the last picture of the sub bit stream data SBS m is decoded. Multiply the period length by the maximum transmission bit rate.
  • the information amount control unit 35 from the integrated value, by subtracting the total number of coded bits of all the pictures included in the sub-bit stream data SBS m, to calculate the residual fullness.
  • the coupling portions 25-1, 25-2,. . . , 25- (n-1) are coupled to the coupling portions 25-1, 25-2,. . . 25- (n-1), the two sub-bitstream data are combined according to the time order of reproduction.
  • the coupling portion 25-1, and the sub-bit stream data SBS 1 output from the coding unit 23-1, the sub-bit stream data SBS 2 output from the coding unit 23-2 Is entered.
  • the combining unit 25-1 combines the sub bit stream data SBS 2 after the sub bit stream data SBS 1 .
  • the combining unit 25-1 outputs the sub bit stream data combined into one.
  • the combining unit 25-m (where 2 ⁇ m ⁇ n ⁇ 1) includes the sub bit stream data output from the combining unit 25- (m ⁇ 1) and the encoding unit 23- (m + 1).
  • the sub bit stream data SBS m + 1 output from is input.
  • the combining unit 25-m combines the sub bit stream data SBS m + 1 after the sub bit stream data output from the combining unit 25- (m ⁇ 1).
  • the combining unit 25-m outputs the sub bit stream data combined into one.
  • the combining unit 25- (n-1) outputs bit stream data in which all the sub bit stream data generated by the respective encoding units are combined.
  • This bit stream data is obtained by encoding moving image data acquired by the processing unit 12.
  • the coupling portions 25-1, 25-2,. . . , 25- (n-1) have the same configuration and function, and therefore, one coupling portion 25-m will be described below.
  • Coupling unit 25-m the difference in residual fullness notified from the information-amount control unit 35 of the encoding unit 23-m and S r, the transition time of occupancy of S tr received from the target convergence derivation unit 24-m [Delta] S Find r . If the difference ⁇ S r is not 0, the combining unit 25-m transmits the invalid bit string corresponding to the difference ⁇ S r to the sub bit stream data output from the combining unit 25- (m ⁇ 1) and the sub bit stream data. Inserted between bit stream data SBS m + 1 . This invalid bit string is fetched from the standard decoder buffer together with data corresponding to the last picture when the last picture of the sub-bitstream data SBS m is decoded.
  • This invalid bit string is preferably a bit string that does not affect the image quality of the decoded picture.
  • this invalid bit string can be Filler data in the Network Abstraction Layer (NAL) format defined in H.264 MPEG-4 AVC.
  • this invalid bit string can be a stuffing byte defined in MPEG-2.
  • FIG. 7 is a diagram illustrating a correspondence relationship between the transition of the occupation amount of the bit stream data in the standard decoder buffer at the transition time and the sub bit stream data combined by the combining unit 25-m.
  • the schematic structure of the bit stream data 701 is shown on the upper side of FIG.
  • a graph 710 showing the transition of the occupation amount occupied by the bit stream data 701 in the standard decoder buffer is shown.
  • the horizontal axis represents time
  • the vertical axis represents the occupation amount.
  • Time t tr represents the transition time.
  • the bit stream data 701 includes front side sub bit stream data 702 and rear side sub bit stream data 703.
  • bit stream data 701 has an invalid bit string 704 between the two sub bit stream data.
  • the occupation amount of the standard decoder buffer is the valid data amount. reduced by an amount S v corresponding to the data 705.
  • the invalid bit string 704 is extracted from the standard decoder buffer together with the valid data 705, so that the standard decoder buffer occupancy further decreases by an amount ⁇ S r corresponding to the invalid bit string 704.
  • the occupation amount after the effective data 705 corresponding to the last picture included in the front-side sub bitstream data 702 at the transition time t tr is extracted from the standard decoder buffer is the back-side sub-bitstream data 703. It agrees with the transition occupancy S tr due to.
  • FIG. 8 shows an operation flowchart of a moving image data encoding process controlled by a computer program executed on the processing unit 12 of the moving image encoding device 1.
  • n is an integer greater than or equal to 2, and is equal to the number of encoding parts.
  • the dividing unit 22 inputs each sub-data to each encoding unit 23-m (1 ⁇ m ⁇ n) according to the time order of reproduction.
  • the convergence target deriving unit 24-k (1 ⁇ k ⁇ n ⁇ 1) of the processing unit 12 respectively encodes the sub-bitstream data SBS k generated by the encoding unit 23-k into the encoding unit 23- (k +
  • the transition occupation amount and the convergence target value at the transition time to the sub-bitstream data SBS k + 1 generated in 1) are calculated (step S102).
  • the occupation amount during transition is an occupation amount occupied by the sub bitstream data SBS k + 1 in the standard decoder buffer at the transition time.
  • the convergence target value is a target value of the occupation amount occupied by the bit stream data BS obtained by combining the sub bit stream data SBS k and the sub bit stream data SBS k + 1 at the transition time in the standard decoder buffer.
  • the convergence target deriving unit 24-k notifies the transition unit occupation amount to the coupling unit 25-k.
  • the convergence target deriving unit 24-k notifies the convergence target value to the encoding unit 23-k of the processing unit 12.
  • Each encoding unit 23-m (1 ⁇ m ⁇ n) is based on the convergence target value notified of the input sub-data or the upper limit value and lower limit value of the standard decoder buffer set by the control unit 21. Each picture included in the sub-data is encoded. Then, each encoding unit 23-m generates sub bit stream data in which each picture included in the sub data is encoded (step S103). At that time, each encoding unit 23-k (1 ⁇ k ⁇ n ⁇ 1) performs standard decoding at the transition time when the generated bit stream data obtained by combining the sub bit stream data SBS k and SBS k + 1 is changed.
  • the encoding unit 23-n is a sub-bit stream data SBS n as occupied amount of the sub-bit stream data SBS n occupy the standard decoder buffer falls between the maximum allowed value and a minimum allowable value of the standard decoder buffer Generate. Then, the encoding unit 23-1 and the encoding unit 23-2 output the generated sub-bitstream data to the combining unit 25-1.
  • the encoding unit 23-m (3 ⁇ m ⁇ n) outputs the generated sub-bitstream data to the combining unit 25- (m ⁇ 1).
  • Each combining unit 25-k (1 ⁇ k ⁇ n ⁇ 1) receives the actual residual occupation amount S r notified from the information amount control unit 35 of the encoding unit 23-k and the convergence target deriving unit 24-k. A difference ⁇ S r from the received transition occupation amount S tr is obtained (step S104). Then, the combining unit 25-k outputs the invalid bit string corresponding to the difference ⁇ S r from the sub bit stream data output from the combining unit 25- (k ⁇ 1) and the encoding unit 23- (k + 1). Insert between the received sub-bitstream data. Each combining unit 25-k combines the two sub bitstream data (step S105). Then, when all the combining units finish combining the sub bitstream data, bitstream data in which moving image data is encoded is created. Then, the processing unit 12 ends the moving image encoding process.
  • FIG. 9 shows sub-data encoding processing by each encoding unit 23-k (1 ⁇ k ⁇ n ⁇ 1) controlled by a computer program executed on the processing unit 12 of the moving image encoding device 1. An operation
  • movement flowchart is shown.
  • the buffer upper limit / lower limit control unit 34 of the encoding unit 23-k performs standard processing on each picture of the input sub-data according to the convergence target value received from the convergence target deriving unit 24-k.
  • the upper limit value and the lower limit value of the decoder buffer are determined (step S201).
  • the buffer upper limit / lower limit control unit 34 is configured so that the lower limit value approaches the convergence target value as the end of the sub bit stream data obtained by encoding the sub data to which the position of the picture is input is closer. Determine the lower limit for each picture.
  • the buffer upper / lower limit control unit 34 corrects the upper limit value for each picture so as to be higher than the convergence target value.
  • the buffer upper limit / lower limit control unit 34 notifies the information amount control unit 35 of the encoding unit 23-k of the upper limit value and the lower limit value.
  • the information amount control unit 35 determines a target information amount corresponding to the encoded bit allocation amount for each picture (step S202). At that time, the information-amount control unit 35, the sub-bit stream data SBS k + 1 generated by the sub-bit stream data SBS k and the encoding unit 23- (k + 1) generated by the encoding unit 23-k is The condition is that the occupied amount of the combined bitstream data in the standard decoder buffer is included between the upper limit value and the lower limit value. Further, the information amount control unit 35 calculates a correction information amount corresponding to the difference between the lower limit values for a picture set with a lower limit value different from the lower limit value for the previous encoded picture, and sets target information.
  • the target information amount is corrected by subtracting the correction information amount from the amount (step S203). And the information amount control part 35 calculates
  • the orthogonal transform / quantization unit 32 performs orthogonal transform processing on each picture of the input sub data to obtain a frequency signal. Then, the orthogonal transform / quantization unit 32 quantizes the frequency signal with the quantization width determined according to the quantization parameter notified from the information amount control unit 35 (step S205). The orthogonal transform / quantization unit 32 passes the quantized signal obtained by the quantization process to the variable length coding unit 33 of the coding unit 23-k. Then, the variable length coding unit 33 performs variable length coding processing on the quantized signal received from the orthogonal transform / quantization unit 32 (step S206).
  • variable length encoding unit 33 combines the encoded bit string obtained for each picture included in the sub data input to the encoding unit, thereby converting the sub bit stream data obtained by encoding the sub data. Generate (step S207). Then, the variable length encoding unit 33 outputs the generated sub bitstream data to the corresponding combining unit (step S208). Further, the variable length coding unit 33 notifies the information amount control unit 35 of the number of coding bits actually assigned to each picture of the generated sub bitstream data (step S209). Then, the encoding unit 23-k ends the sub data encoding process.
  • the buffer upper limit / lower limit control unit 34 sets the upper limit value and the lower limit value of the standard decoder buffer to the upper limit value and the lower limit value determined by the control unit 21, respectively. Set to the value itself. Further, the processing in step S203 is omitted. As for other operations, the encoding unit 23-n operates in the same manner as the other encoding units.
  • bit stream data generated by the moving image encoding device 1 can be, for example, data conforming to MPEG-2, MPEG-4, or H.264 MPEG-4 AVC. Therefore, the bit stream data generated by the video encoding device 1 can be decoded by a conventional video decoding device.
  • this moving image encoding apparatus is capable of encoding bit allocation with respect to the front sub-bitstream data among the bitstream data generated by combining the two sub-bitstream data by the combining unit. To control. As a result, the moving picture encoding apparatus adjusts the occupation amount of the combined bit stream data in the standard decoder buffer at the transition time at which the last picture of the front side sub bit stream data is decoded. Specifically, the moving picture encoding apparatus determines the occupation amount occupied by the combined bit stream data at the transition time in the standard decoder buffer as a sub-bitstream on the rear side accumulated in the standard decoder buffer by the transition time. Make it higher than the amount of data occupied.
  • the moving picture encoding apparatus further includes an invalid bit string extracted when the last picture of the front sub-bitstream data is decoded between the front sub-bitstream data and the rear sub-bitstream data. insert.
  • the moving picture encoding apparatus is configured to calculate the occupation amount occupied by the combined bit stream data in the standard decoder buffer and the occupation amount occupied by the subsequent sub bit stream data in the standard decoder buffer at the transition time. The difference can be eliminated. Therefore, this moving picture coding apparatus can satisfy the standard decoder buffer specifications without having to simulate the transition of the occupation amount or re-encode after decoding the encoded picture. Therefore, this moving image encoding apparatus can encode moving image data in a short time.
  • this moving image encoding apparatus since this moving image encoding apparatus gradually corrects the lower limit value of the occupied amount of the combined bit stream data in the standard decoder buffer, the number of encoded bits allocated to each picture included in the bit stream data Does not decrease rapidly. Therefore, this moving image encoding apparatus can prevent image quality deterioration due to encoding over the entire moving image data.
  • this moving image encoding apparatus may encode moving image data at a variable bit rate.
  • the occupation amount of the bit stream data occupying the standard decoder buffer only needs to be less than the minimum allowable value of the occupation amount. Therefore, each combiner is invalid even if the remaining occupation amount of the bit stream data at the transition time is larger than the occupation amount at the time of transition occupied by the sub bit stream data on the back side accumulated in the standard decoder buffer by the transition time. It is not necessary to insert a bit string.
  • the invalid bit string inserted by the combining unit may only have an integer multiple of bytes depending on the type of the standard. is there.
  • the bitstream data in which two subbitstream data at the transition time are combined occupies the remaining occupancy in the standard decoder buffer, and the transition occupied by the subbitstream data on the rear side of the two subbitstream data The difference from the time occupancy is in bit units. Therefore, if the difference is not an integer multiple of bytes, the coupling unit cannot completely match the remaining occupation amount at the transition time with the occupation amount at the transition time even if an invalid bit string is inserted.
  • the occupation amount occupied by the bit stream data in the standard decoder buffer is between the maximum allowable value and the minimum allowable value of the standard decoder buffer. It may not fit.
  • the buffer upper limit / lower limit control unit of each encoding unit sets the lower limit value of the standard decoder buffer at the transition time higher by a predetermined margin amount than the convergence target value.
  • the buffer upper limit / lower limit control unit of each encoding unit preferably sets the upper limit value of the standard decoder buffer by a predetermined margin amount lower than the maximum allowable value of the standard decoder buffer.
  • the predetermined margin amount is an amount corresponding to the above error, and may be, for example, 8 bits.
  • each coupling unit obtains the total of the above errors from the previous coupling unit, and the absolute value of a value obtained by adding the error generated in the coupling unit to the total of the obtained errors is always equal to or less than a predetermined margin amount. It is preferable to determine the length of the invalid bit string so that
  • This image encoding device is used for various purposes.
  • the image encoding device is incorporated in a moving image data distribution server, a video transmission device, a videophone system, a computer, or a mobile phone.
  • the encoded moving image data created by this moving image encoding device is converted into a moving image such as an audio signal by the processing unit. Together with other signals acquired at the same time as the data, it is converted into a data stream according to a predetermined communication standard. Then, the moving image data distribution server incorporating the image encoding device distributes the data stream to the moving image decoding device via the communication line.
  • a computer program that causes a computer to realize the functions of the control unit, the division unit, the encoding unit, the convergence target derivation unit, and the combining unit included in the processing unit of the moving image encoding apparatus is stored on a computer-readable medium. It may be provided in a recorded form.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 動画像データを複数のサブデータに分割し、各サブデータを複数の符号化器を用いて並列に符号化した後、符号化された各サブビットストリームデータを一つのビットストリームに結合する動画像符号化装置において、第1のサブビットストリームに含まれる最後のピクチャに相当するデータが第1の仮想バッファから取り出される時点の第1の占有量が、該時点の第2のサブビットストリームデータが第2の仮想バッファに占める第2の占有量以上となるように、第1の占有量の目標値を決定する収束目標導出機能を備える。

Description

動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
 ここに開示される実施形態は、動画像データを分割した複数のデータを並列に符号化することで高速に、かつその動画像データよりもデータ量が少ないビットストリームデータを生成する動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラムに関する。
 動画像データは、一般に非常に大きなデータ量を有する。そのため、動画像データを扱う装置は、動画像データを他の装置へ送信しようとする場合、あるいは、動画像データを記憶装置に記憶しようとする場合、動画像データを符号化することにより、そのデータ量を圧縮する。特に、動画像データを高速に符号化するために、動画像データを複数のサブデータに分割し、各サブデータを複数の符号化器を用いて並列に符号化した後、符号化された各サブデータを一つのビットストリームデータに結合する動画像符号化装置が提案されている。
 さて、符号化された動画像データが復号装置に伝送されたとき、その復号装置が符号化された動画像データを復号できなければならない。そのために、復号装置が符号化された動画像データを一時的に記憶するための所定の容量を持つバッファを有すると仮定する。この場合、動画像データ符号化装置は、そのバッファに蓄積されるデータ量が常にその所定の容量の範囲に収まるように、動画像データを符号化することが要求される。以下では、この復号装置が有する仮想的なバッファを標準復号器バッファと呼ぶ。例えば、Moving Picture Experts Group(MPEG)では、符号化された動画像データが標準復号器バッファに占める占有量の推移に関する考え方が、Video Buffering Verifier(VBV)として規定されている。VBVでは、符号化された動画像データが最大伝送ビットレートで初期遅延量だけ標準復号器バッファに蓄積された後に、一定の時間間隔で1ピクチャ分のデータが標準復号器バッファから一瞬で取り出されるモデルが採用されている。そして、固定ビットレートで動画像データが符号化される場合、標準復号器バッファに伝送された符号化動画像データが標準復号器バッファに占める占有量が、標準復号器バッファの最大許容値と最小許容値の間に収まらなければならない。
 しかし、別個に符号化された複数の動画像データが結合される場合、個々の符号化動画像データは標準復号器バッファの規定を満たしていても、それらの符号化動画像データが結合されたビットストリームデータは標準復号器バッファの規定を満たさないことがある。この問題は、以下の理由により生じる。すなわち、ビットストリームデータの伝送が終了するまでの間、そのビットストリームデータは常に最大伝送ビットレートで標準復号器バッファへ蓄積されると定義される。しかし、連続して伝送される二つの符号化動画像データが結合されるタイミングによっては、後側に結合される符号化動画像データが結合される前のバッファの回復量と、結合点で分割されていない連続した動画像データとして扱った場合のバッファの回復量の間で、動きに整合性が取れない場合がある。そのため、その二つの符号化動画像データのうち、前側の符号化動画像データの最後のピクチャが復号されたときに、後側の符号化動画像データが標準復号器バッファに占める占有量が、ビットストリームデータの占有量と一致しなくなるためである。
 このような問題に対して、標準復号器バッファの占有量の遷移をシミュレーションした結果に基づいて、分割された各分割点における初期遅延量を算出することにより、標準復号器バッファの規定を満たすように動画像データを符号化する技術が提案されている。また、分割されたMPEG画像データの結合区間に含まれるデータを復号した後、標準復号器バッファの占有量が、そのバッファの最大許容値と最小許容値の間に収まるように、結合区間に含まれるデータを再符号化する技術が提案されている。
特開2008-85673号公報 特開2004-297829号公報
 バッファ占有量の遷移をシミュレーションする技術は、そのシミュレーション結果が標準復号器バッファの規定に違反することを示す場合、各ピクチャに対する符号化ビットの割当量を決定するためのパラメータを調整しつつシミュレーションを繰り返す必要がある。そのため、その技術を用いた動画像符号化装置は、動画像データの符号化処理に長時間を要するおそれがあった。
 また、結合区間に含まれるデータを一旦復号した後に、その復号されたデータを再符号化する技術は、その再符号化処理を実行するための時間を余計に必要とする。さらに、この技術は、分割された各動画像データが結合される時点におけるバッファ量の調整を行わない。そのため、その結合時点の設定が不適切であった場合、特定のピクチャに対して割り当てられる符号化ビット量が極端に少なくなり、その結果として急激な画質劣化が生じてしまうおそれがあった。
 そこで本明細書は、標準復号器バッファの規定を満たしつつ、かつ、短時間で動画像データを符号化できる動画像符号化装置、動画像符号化方法及び動画像符号化プログラムを提供することを目的とする。
 一つの実施形態によれば、動画像符号化装置が提供される。この動画像符号化装置は、それぞれ複数のピクチャを含む少なくとも第1のサブデータと第2のサブデータを含む動画像データを記憶する記憶部と、動画像データを符号化することにより、その動画像データのデータ量よりも少ないデータ量を持つビットストリームデータを生成する処理部と、ビットストリームデータを出力する出力部とを有する。その処理部は、ビットストリームデータが所定の伝送レートで仮想的な復号器に伝送され、かつその復号器のバッファに蓄積されるとともに、所定の時間間隔でビットストリームデータに含まれるそれぞれのピクチャに相当するデータがその復号器のバッファから順次取り出されるとしたときに、第1のサブデータが符号化された第1のサブビットストリームデータに含まれる最後のピクチャに相当するデータがその復号器のバッファから取り出された第1の時点においてビットストリームデータがその復号器のバッファに占める第1の占有量が、その第1の時点において第2のサブデータが符号化された第2のサブビットストリームデータがその復号器のバッファに占める第2の占有量以上となるように、第1の占有量の目標値を決定する収束目標導出機能と、第1の占有量が目標値となるように、第1のサブデータに含まれるそれぞれのピクチャに対する符号化ビットの割当量を決定し、その割当量に従って第1のサブデータを符号化することにより、第1のサブビットストリームデータを生成する第1の符号化機能と、第2のサブデータを符号化することにより、第2のサブビットストリームデータを生成する第2の符号化機能と、第1のサブビットストリームデータと第2のサブビットストリームデータを結合することにより、ビットストリームデータを生成する結合機能とを実現する。
 また他の実施形態によれば、それぞれ複数のピクチャを含む少なくとも第1のサブデータと第2のサブデータを含む動画像データを符号化することにより、その動画像データのデータ量よりも少ないデータ量を持つビットストリームデータを生成する動画像符号化方法が提供される。この動画像符号化方法は、ビットストリームデータが所定の伝送レートで仮想的な復号器に伝送され、かつその復号器のバッファに蓄積されるとともに、所定の時間間隔でビットストリームデータに含まれるそれぞれのピクチャに相当するデータがその復号器のバッファから順次取り出されるとしたときに、第1のサブデータが符号化された第1のサブビットストリームデータに含まれる最後のピクチャに相当するデータがその復号器のバッファから取り出された第1の時点においてビットストリームデータがその復号器のバッファに占める第1の占有量が、その第1の時点において第2のサブデータが符号化された第2のサブビットストリームデータがその復号器のバッファに占める第2の占有量以上となるように、第1の占有量の目標値を決定し、第1の占有量が目標値となるように、第1のサブデータに含まれるそれぞれのピクチャに対する符号化ビットの割当量を決定し、その割当量に従って第1のサブデータを符号化することにより、第1のサブビットストリームデータを生成し、第2のサブデータを符号化することにより、第2のサブビットストリームデータを生成し、第1のサブビットストリームデータと第2のサブビットストリームデータを結合することにより、ビットストリームデータを生成することを含む。
 さらに他の実施形態によれば、それぞれ複数のピクチャを含む少なくとも第1のサブデータと第2のサブデータを含む動画像データを符号化することにより、その動画像データのデータ量よりも少ないデータ量を持つビットストリームデータをコンピュータに生成させる動画像符号化用コンピュータプログラムが提供される。このコンピュータプログラムは、ビットストリームデータが所定の伝送レートで仮想的な復号器に伝送され、かつその復号器のバッファに蓄積されるとともに、所定の時間間隔でビットストリームデータに含まれるそれぞれのピクチャに相当するデータがその復号器のバッファから順次取り出されるとしたときに、第1のサブデータが符号化された第1のサブビットストリームデータに含まれる最後のピクチャに相当するデータがその復号器のバッファから取り出された第1の時点においてビットストリームデータがその復号器のバッファに占める第1の占有量が、その第1の時点において第2のサブデータが符号化された第2のサブビットストリームデータがその復号器のバッファに占める第2の占有量以上となるように、第1の占有量の目標値を決定し、第1の占有量が目標値となるように、第1のサブデータに含まれるそれぞれのピクチャに対する符号化ビットの割当量を決定し、その割当量に従って第1のサブデータを符号化することにより、第1のサブビットストリームデータを生成し、第2のサブデータを符号化することにより、第2のサブビットストリームデータを生成し、第1のサブビットストリームデータと第2のサブビットストリームデータを結合することにより、ビットストリームデータを生成することをコンピュータに実行させる命令を含む。
 本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
 上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
 本明細書に開示された動画像符号化装置、動画像符号化方法及び動画像符号化プログラムは、標準復号器バッファの規定を満たしつつ、かつ、短時間で動画像データを符号化できるという効果を奏する。
図1は、一つの実施形態による動画像符号化装置の概略構成図である。 図2は、動画像データを符号化する処理を実行するために実現される機能を示す動画像符号化装置の処理部の機能ブロック図である。 図3(a)は、一つのサブビットストリームデータが標準復号器バッファに占める占有量の遷移の一例を示す図である。図3(b)は、結合される二つのサブビットストリームデータのそれぞれが標準復号器バッファに占める占有量の遷移の一例を示す図である。図3(c)は、二つのサブビットストリームデータが一つに結合されたビットストリームデータが標準復号器バッファに占める占有量の遷移の一例を示す図である。 図4は、遷移時刻近傍における、結合される二つのサブビットストリームデータのうちの後側のサブビットストリームデータが標準復号器バッファに占める占有量の遷移の一例を示す図である。 図5は、符号化部の機能ブロック図である。 図6(a)は、標準復号器バッファの占有量の下限値の遷移の一例を示すグラフである。また、図6(b)は、標準復号器バッファの占有量の上限値の遷移の一例を示すグラフである。 図7は、遷移時刻においてビットストリームデータが標準復号器バッファに占める占有量の遷移と、そのビットストリームデータに含まれる、結合された二つのサブビットストリームデータの対応関係を示す図である。 図8は、動画像符号化装置の処理部上で実行されるコンピュータプログラムにより制御される、動画像データの符号化処理の動作フローチャートを示す図である。 図9は、動画像符号化装置の処理部上で実行されるコンピュータプログラムにより制御される、各符号化部によるサブデータの符号化処理の動作フローチャートを示す図である。
符号の説明
 1  動画像符号化装置
 11  記憶部
 12  処理部
 13  入出力部
 21  制御部
 22  分割部
 23-1、23-2、...、23-n  符号化部
 24-1、24-2、...、24-(n-1)  収束目標導出部
 25-1、25-2、...、25-(n-1)  結合部
 31  データ管理部
 32  直交変換・量子化部
 33  可変長符号化部
 34  バッファ上限・下限制御部
 35  情報量制御部
 以下、図を参照しつつ、一つの実施形態による、動画像符号化装置について説明する。
 この動画像符号化装置は、動画像データを複数のサブデータに分割し、サブデータごとに異なる符号化器を用いて符号化することにより生成したサブビットストリームデータを一つのビットストリームデータに結合する。この動画像符号化装置は、標準復号器バッファの規定を満たすために、結合される二つのサブビットストリームデータのうちの前側のサブビットストリームデータに対する符号化ビット割当量を制御する。さらにこの動画像符号化装置は、前側のサブビットストリームデータと後側のサブビットストリームデータの間に、その最後のピクチャが復号されるときに合わせて取り出される無効ビット列を挿入する。これにより、この動画像符号化装置は、前側のサブビットストリームデータに含まれる最後のピクチャが復号された時点でビットストリームデータが標準復号器バッファに占める占有量と、後側のサブビットストリームデータが標準復号器バッファに占める占有量との差をなくす。
 なお、符号化対象となる動画像データに含まれるピクチャは、インターレース方式により取得されるフィールド、または、プログレッシブ方式により取得されるフレームの何れであってもよい。
 図1は、一つの実施形態による動画像符号化装置1の概略構成図である。図1に示すように、動画像符号化装置1は、記憶部11と、処理部12と、入出力部13とを有する。
 記憶部11は、例えば、半導体メモリ、磁気ディスク装置、または光ディスク装置のうちの少なくとも何れか一つを有する。そして記憶部11は、動画像符号化装置1で使用されるコンピュータプログラム及び各種のデータを記憶する。また記憶部11は、符号化対象となる動画像データを記憶する。また記憶部11は、処理部12により動画像データを符号化することにより生成されたビットストリームデータを記憶してもよい。
 入出力部13は、例えば、動画像符号化装置1を通信ネットワーク(図示せず)に接続するための通信インターフェース及びその制御回路を有する。そして入出力部13は、処理部12が動画像データを符号化することにより生成されたビットストリームデータを通信ネットワークを介して他の装置に出力する。また入出力部13は、他の装置から通信ネットワークを介して符号化対象となる動画像データを取得し、その動画像データを処理部12に渡してもよい。
 処理部12は、1個または複数個のプロセッサと、メモリと、その周辺回路を有する。そして処理部12は、記憶部11から読み込んだ動画像データ、あるいは入出力部13を介して取得した動画像データを符号化する。
 図2は、動画像データを符号化するために実現される機能を示す処理部12の機能ブロック図である。図2に示されるように、処理部12は、制御部21と、分割部22と、n個の符号化部23-1、23-2、...、23-nと、(n-1)個の収束目標導出部24-1、24-2、...、24-(n-1)と、(n-1)個の結合部25-1、25-2、...、25-(n-1)とを有する。ただし、nは2以上の整数である。
 処理部12が有する、これらの各部は、処理部12が有するプロセッサ上で実行されるコンピュータプログラムによって実装される機能モジュールである。処理部12が有するこれらの各部は、それぞれ別個の演算回路あるいはそれら演算回路が集積された一つの集積回路として動画像符号化装置1に実装されてもよい。
 制御部21は、処理部12全体を制御する。そのために、制御部21は、各符号化部23-m(ただし、m=1,2,...,n)がその符号化部に入力されるサブデータに対する符号化ビット割当量を決定するために使用されるパラメータを各符号化部23-mに入力する。また制御部21は、各収束目標導出部24-k(ただし、k=1,2,...,n-1)が、ビットストリームデータが標準復号器バッファに占める占有量の目標値を決定するために使用されるパラメータを各収束目標導出部24-kに入力する。なおこれらのパラメータに関しては、符号化部23-m及び収束目標導出部24-kとともに後述する。
 また制御部21は、符号化対象となる動画像データを記憶部11から読み込み、あるいは入出力部13を介して取得し、その動画像データを分割部22に渡す。その際、その動画像データの内容に関する情報も動画像データとともに取得される場合、その情報も分割部22に渡してもよい。また制御部21は、複数の動画像データを記憶部11から読み込み、あるいは入出力部13を介して取得し、それら複数の動画像データを分割部22に渡してもよい。さらに、処理部12は、予め分割された複数の動画像データを別個の符号化部23-mにより符号化し、それぞれの動画像データが符号化されたサブビットストリームデータを結合することにより、一つのビットストリームデータを生成してもよい。この場合、分割部22は省略されてもよい。そして制御部21は、それら複数の動画像データを直接各符号化部23-mに入力する。
 分割部22は、制御部21から受け取った動画像データを、処理部12が有する符号化部23-mの個数nに合わせて分割することにより、サブデータを作成する。例えば、分割部22は、動画像データを、時間に関して均等にn個に分割することにより、n個のサブデータを作成する。また分割部22は、動画像データの内容に関する情報を制御部21から受け取っている場合、その情報に基づいて、それぞれのサブデータの時間長を異ならせてもよい。例えば、分割部22は、各サブデータに対する符号化処理に要する時間が均等になるように動画像データを分割してもよい。そのため、例えば、分割部22は、動画像データの内容に関する情報を参照して、静止シーンなど符号化処理に要する時間が相対的に短くて済むピクチャを多く含むサブデータの時間長を長くするように、動画像データを分割してもよい。逆に、分割部22は、動きの多いシーンなど符号化処理に要する時間が相対的に長いピクチャを多く含むサブデータの時間長を短くするように、動画像データを分割してもよい。さらに、分割部22は、動画像データ中の一定の長さのデータを動画像データ中の複数の箇所から取り出し、取り出されたそれぞれのデータを符号化するサブデータとしてもよい。さらにまた、分割部22は、複数の動画像データを制御部21から受け取った場合、それら複数の動画像データを結合した一つの動画像データを符号化部23-mの個数nで割ることにより、サブデータを作成してもよい。
 また分割部22は、各サブデータに含まれるピクチャの枚数が、Group Of Pictures(GOP)の倍数となるように、サブデータの長さを調整してもよい。なお、GOPは、一定周期で繰り返される、連続する複数のピクチャを含むピクチャの組を規定する構造であり、GOPでは、各ピクチャに対してイントラ符号化方法が適用されるのか、インター符号化方法が適用されるのかが規定されている。なお、イントラ符号化方法は、符号化対象の1枚のピクチャ内に含まれる情報のみを用いてそのピクチャを符号化する方法である。一方、インター符号化方法は、符号化対象のピクチャと、その前後のピクチャの情報を用いて、符号化対象のピクチャを符号化する方法である。
 分割部22は、作成したそれぞれのサブデータを、再生されるときの時間順に、符号化部23-1、23-2、...、23-nのうちの何れかに入力する。また分割部22は、各サブデータに含まれるピクチャの数を、そのサブデータが入力される符号化部に入力する。
 収束目標導出部24-1、24-2、...、24-(n-1)は、それぞれ、結合される二つのサブビットストリームデータのうちの前側のサブビットストリームデータに含まれる最後のピクチャが復号される時点における標準復号器バッファの占有量に関する目標値を算出する。なお、収束目標導出部24-1、24-2、...、24-(n-1)は、同一の構成及び機能を有するため、以下では、一つの収束目標導出部24-m(1≦m≦n-1)について説明する。
 二つのサブビットストリームデータが結合されることにより、一つのビットストリームデータが生成されており、そのビットストリームデータが標準復号器バッファに伝送されているとする。この場合、前側のサブビットストリームデータの最後のピクチャの復号時点において、そのビットストリームデータが標準復号器バッファに占める占有量が、その時点までに後側のサブビットストリームデータが標準復号器バッファに占める占有量と等しいことが好ましい。この条件が満たされていれば、各サブビットストリームデータが標準復号器バッファの規定を守るように生成されている限り、占有量が標準復号器バッファの最大許容値をオーバーフローせず、かつ標準復号器バッファの最小許容値をアンダーフローしない。なお、以下では、結合される二つのサブビットストリームデータのうち、前側のサブビットストリームデータの最後のピクチャの復号時刻を遷移時刻と呼ぶ。また、結合される二つのサブビットストリームデータのうち、後側のサブビットストリームデータが標準復号器バッファに蓄積開始される時点を結合時刻と呼ぶ。
 この様子を図3(a)~図3(c)を用いて説明する。図3(a)は、一つのサブビットストリームデータSBSmが標準復号器バッファに占める占有量の遷移の一例を示す図である。また、図3(b)は、結合される二つのサブビットストリームデータSBSm、SBSm+1のそれぞれが標準復号器バッファに占める占有量の遷移の一例を示す図である。さらに図3(c)は、図3(b)に示された二つのサブビットストリームデータSBSm、SBSm+1を一つに結合したビットストリームデータBSが標準復号器バッファに占める占有量の遷移の一例を示す図である。
 図3(a)~図3(c)において、横軸は時間を表し、縦軸は標準復号器バッファの占有量を表す。また、線301は、標準復号器バッファの占有量の最大許容値を表す。また時刻t0は、サブビットストリームデータSBSmが標準復号器バッファに蓄積開始される時刻を表す。さらに期間tdは初期バッファ遅延量を表し、期間tf0はフレームレートによって定められるピクチャ間隔を表し、例えば、期間tf0は1/30秒である。また図3(a)及び図3(b)において、グラフ310は、サブビットストリームデータSBSmが標準復号器バッファに占める占有量の遷移を表す。また図3(b)及び図3(c)において、グラフ320は、サブビットストリームデータSBSmに結合される次のサブビットストリームデータSBSm+1が標準復号器バッファに占める占有量の遷移を表す。さらに図3(c)において、グラフ330は、ビットストリームデータBSが、標準復号器バッファに占める占有量の遷移を表す。そして図3(b)及び図3(c)において、時刻ttrは前側のサブビットストリームデータSBSmの最後のピクチャが復号された遷移時刻を表し、時刻tjは、後側のサブビットストリームデータSBSm+1が標準復号器バッファに蓄積開始される結合時刻を表す。
 図3(a)に示されるように、時刻t0から初期バッファ遅延量tdを経過するまで、サブビットストリームデータSBSmが標準復号器バッファに占める占有量は、単位時間当たり最大伝送ビットレートで増加する。そして時刻t0から初期バッファ遅延量tdを経過した時点で、最初のピクチャに相当するデータd1が標準復号器バッファから取り出される。そのため、占有量はd1だけ低下する。その時点以降、ピクチャ間隔tf0が経過するごとに、1枚のピクチャ分のデータが標準復号器バッファから取り出される。また、標準復号器バッファへのサブビットストリームデータSBSmの伝送中、1枚のピクチャ分のデータが取り出されてから、次のピクチャ分のデータが取り出されるまでの間、占有量は、単位時間当たり最大伝送ビットレートで増加する。一方、標準復号器バッファへのサブビットストリームデータSBSmの伝送が終了した時刻te以降、もはや占有量は増加せず、ピクチャ間隔tf0が経過するごとに、1枚のピクチャ分のデータが減少する。そして最後のピクチャに相当するデータが取り出されると、占有量は0になる。
 また、図3(b)に示されるように、結合時刻tj以降、サブビットストリームデータSBSmに引き続きいてサブビットストリームデータSBSm+1が標準復号器バッファに蓄積される。この場合、標準復号器バッファの規定から、時刻te以降も連続してビットストリームデータBSが標準復号器バッファに伝送されるとみなされる。そのため、点線311に示されるように、時刻te以降も、1枚のピクチャが復号されてから次のピクチャが復号されるまでの間、ビットストリームデータBSが標準復号器バッファに占める占有量は、単位時間当たり最大伝送ビットレートで増加するとみなされる。一方、グラフ320に示されるように、サブビットストリームデータSBSm+1が標準復号器バッファに占める占有量は、結合時刻tj以降、初期遅延量tdが経過するまで単位時間当たり最大伝送ビットレートで増加する。しかし、時刻te以降に復号される、サブビットストリームデータSBSmのピクチャに相当するデータが少なければ、遷移時刻ttrにおけるビットストリームデータBSの残留占有量Srは、サブビットストリームデータSBSm+1が標準復号器バッファに占める遷移時占有量Strよりも多くなる。
 そのため、図3(c)に示すように、遷移時刻ttr以降、ビットストリームデータBSが標準復号器バッファに占める占有量は、サブビットストリームデータSBSm+1が標準復号器バッファに占める占有量に、残留占有量Srから遷移時占有量Strの差の絶対値ΔSrを加えた値となる。一方、何れかの時刻tnにおいてサブビットストリームデータSBSm+1が標準復号器バッファに占める占有量が、標準復号器バッファの最大許容値近傍になるようにサブビットストリームデータSBSm+1が生成されることがある。この場合、ΔSrがサブビットストリームデータSBSm+1が標準復号器バッファに占める占有量に加算されることにより、ビットストリームデータBSが標準復号器バッファに占める占有量は標準復号器バッファの最大許容値を超えてしまう。
 逆に、時刻te以降に復号される、サブビットストリームデータSBSmのピクチャに相当するデータが多ければ、遷移時刻ttrにおけるビットストリームデータBSの残留占有量SrがサブビットストリームデータSBSm+1の遷移時占有量Strよりも少なくなる。この場合には、遷移時刻ttr以降、ビットストリームデータBSが標準復号器バッファに占める占有量は、サブビットストリームデータSBSm+1が標準復号器バッファに占める占有量から、残留占有量Srと遷移時占有量Strの差の絶対値ΔSrを引いた値となる。一方、何れかの時刻においてサブビットストリームデータSBSm+1が標準復号器バッファに占める占有量が、標準復号器バッファの最小許容値近傍になるようにサブビットストリームデータSBSm+1が生成されることがある。この場合、サブビットストリームデータSBSm+1が標準復号器バッファに占める占有量からΔSrが減算されることにより、ビットストリームデータBSが標準復号器バッファに占める占有量は標準復号器バッファの最小許容値を下回ってしまう。
 そこで収束目標導出部24-mは、符号化部23-mにより生成されたサブビットストリームデータSBSmに関する遷移時刻での、符号化部23-(m+1)により生成されたサブビットストリームデータSBSm+1が標準復号器バッファに占める遷移時占有量を一つの目標値として求める。また収束目標導出部24-mは、遷移時刻において、サブビットストリームデータSBSmとサブビットストリームデータSBSm+1が結合されたビットストリームデータBSが標準復号器バッファに占める残留占有量の収束目標値を決定する。この収束目標値は、遷移時占有量以上、かつ標準復号器バッファの最大許容値以下とする。
 遷移時占有量及び収束目標値を決定するために、収束目標導出部24-mには、制御部21から初期バッファ遅延量と、最大伝送ビットレートと、結合点フレーム間時間とが入力される。なお結合点フレーム間時間は、遷移時刻からサブビットストリームデータSBSm+1の最初のピクチャに対応するデータが標準復号器バッファから取り出される時刻までの期間である。
 図4は、遷移時刻近傍における、サブビットストリームデータSBSm+1が標準復号器バッファに占める占有量の遷移を示す図である。図4において、時刻tjは結合時刻を表し、時刻ttrは遷移時刻を表す。さらに時刻t1は、サブビットストリームデータSBSm+1の最初のピクチャに対応するデータが標準復号器バッファから取り出される時刻を表す。また期間tdは初期バッファ遅延量を表し、期間tfは結合点フレーム間時間を表す。さらに、グラフ401は、サブビットストリームデータSBSm+1が標準復号器バッファに占める占有量を表す。またグラフ402は、標準復号器バッファにおけるサブビットストリームデータSBSmとサブビットストリームデータSBSm+1が結合されたビットストリームデータBSが標準復号器バッファに占める占有量を表す。
 ここで、標準復号器バッファの定義により、時刻tjから時刻t1までの間に標準復号器バッファに蓄積される、サブビットストリームデータSBSm+1の占有量は、初期バッファ遅延量tdに最大伝送ビットレートを乗じた値となる。また、遷移時刻ttrから時刻t1までの間に標準復号器バッファに蓄積される、サブビットストリームデータSBSm+1の占有量は、結合点フレーム間時間tfに最大伝送ビットレートを乗じた値となる。従って、収束目標導出部24-mは、図4に示されるように、遷移時占有量Strを以下の式に従って算出できる。
Figure JPOXMLDOC01-appb-M000001
ここでbrは最大伝送ビットレートである。
 収束目標導出部24-mは、遷移時占有量Strを算出すると、遷移時占有量Strに所定のバイアスを加算することにより、収束目標値を算出する。なお、所定のバイアスは、0または正の値を有する。そして所定のバイアスは、遷移時刻ttrにおける、サブビットストリームデータSBSmの最後のピクチャに対応するデータが取り出された後に、ビットストリームデータBSが標準復号器バッファに占める占有量が遷移時占有量Str以上となるように設定される。また所定のバイアスは、遷移時刻ttrにおいて、サブビットストリームデータSBSmの最後のピクチャに対応するデータが取り出される前に、ビットストリームデータBSが標準復号器バッファに占める占有量が標準復号器バッファの最大許容値以下となるように設定される。そのために、所定のバイアスは、例えば、1枚のピクチャあるいは1個のGOPを符号化することにより得られる符号化ビット数の、割り当てビット数に対するばらつきの標準偏差の3倍の値とすることができる。
 収束目標導出部24-mは、遷移時占有量を結合部25-mに渡す。また収束目標導出部24-mは、収束目標値を符号化部23-mに渡す。
 符号化部23-1、23-2、...、23-nは、入力されたサブデータを符号化することにより、サブビットストリームデータSBS1、SBS2、...、SBSnを生成する。なお、符号化部23-1、23-2、...、23-nは、同一の構成及び機能を有するため、以下では、一つの符号化部23-mについて説明する。
 図5は、符号化部23-mの機能ブロック図である。図5に示されるように、符号化部23-mは、データ管理部31と、直交変換・量子化部32と、可変長符号化部33と、バッファ上限・下限制御部34と、情報量制御部35とを有する。
 データ管理部31は、分割部22から受け取ったサブデータを、符号化されるピクチャの順番に従って、ピクチャを1枚ずつ直交変換・量子化部32に渡す。またデータ管理部31は、直交変換・量子化部32に渡したピクチャをインター符号化するか、イントラ符号化するかを示す信号も直交変換・量子化部32に入力する。
 さらにデータ管理部31は、各ピクチャに対する標準復号器バッファの占有量の上限値及び下限値を決定するために、現在符号化処理の対象となっているピクチャの番号である現ピクチャ番号を、バッファ上限・下限制御部34に入力する。
 直交変換・量子化部32は、データ管理部31から受け取ったピクチャを直交変換し、その直交変換処理により得られた周波数信号を量子化する。これにより、直交変換・量子化部32は、元のピクチャが持つビット数よりも少ないビット数を持つ量子化信号を生成する。そのために、直交変換・量子化部32は、例えば、MPEG-2、MPEG-4あるいはH.264 MPEG-4 Advanced Video Coding(H.264 MPEG-4 AVC)などの様々な動画像符号化規格の何れかに従って、直交変換処理及び量子化処理を実行してもよい。
 直交変換処理及び量子化処理の一例として、直交変換・量子化部32は、先ず、データ管理部31から受け取った現在のピクチャを、所定数のピクセルを持つ複数のブロックに分割する。このブロックを、以下ではマクロブロックと呼ぶ。また、マクロブロックは、例えば、16×16個のピクセルを含む。
 直交変換・量子化部32は、それぞれのマクロブロックと、予測画像との差分演算を実行する。そして直交変換・量子化部32は、その差分演算により得られたマクロブロック内の各ピクセルに対応する差分値を、予測誤差信号として生成する。その際、直交変換・量子化部32は、データ管理部31から受け取った現在のピクチャをインター符号化するか、イントラ符号化するかを示す信号に従って、インター符号化用の予測画像またはイントラ符号化用の予測画像の何れか一方を選択する。なお、後述するように、インター符号化用の予測画像は、既に符号化されたピクチャから作成される。一方、イントラ符号化用の予測画像は、現在のピクチャの既に符号化されたマクロブロックから作成される。
 直交変換・量子化部32は、各マクロブロックの予測誤差信号を直交変換することにより、予測誤差信号の水平方向の周波数成分及び垂直方向の周波数成分を表す周波数信号を求める。例えば、直交変換・量子化部32は、直交変換処理として、離散コサイン変換(Discrete Cosine Transform、DCT)を予測誤差信号に対して実行することにより、周波数信号として、マクロブロックごとのDCT係数の組を得る。
 次に、直交変換・量子化部32は、周波数信号を、情報量制御部35によって決定された量子化パラメータにしたがって量子化する。この量子化処理は、一定区間に含まれる信号値を一つの信号値で表す処理である。そしてその一定区間は、量子化幅と呼ばれる。例えば、直交変換・量子化部32は、周波数信号から、量子化幅に相当する所定数の下位ビットを切り捨てることにより、その周波数信号を量子化する。量子化幅は、量子化パラメータによって決定される。例えば、直交変換・量子化部32は、量子化パラメータの値に対する量子化幅の値を表す関数にしたがって、使用される量子化幅を決定する。またその関数は、量子化パラメータの値に対する単調増加関数とすることができ、予め設定される。あるいは、水平方向及び垂直方向の周波数成分のそれぞれに対応する量子化幅を規定する量子化マトリクスが、予め複数準備され、記憶部11に記憶される。そして直交変換・量子化部32は、量子化パラメータにしたがって、記憶部11に記憶されたそれら量子化マトリクスのうちの特定の量子化マトリクスを選択する。そして直交変換・量子化部32は、選択された量子化マトリクスを参照して、周波数信号の各周波数成分に対する量子化幅を決定する。この場合も、直交変換・量子化部32は、量子化パラメータの値が大きくなるほど、各周波数成分に対する量子化幅が大きい量子化マトリクスを選択する。
 直交変換・量子化部32は、量子化処理を実行することにより、周波数信号の各周波数成分を表すために使用されるビットの数を削減できるので、各マクロブロックに含まれる情報量を低減できる。直交変換・量子化部32は、量子化信号を可変長符号化部33に供給する。
 また直交変換・量子化部32は、予測画像を生成するために、量子化信号に、量子化パラメータにより決定された量子化幅に相当する所定数を乗算することにより逆量子化する。この逆量子化により、各マクロブロックの周波数信号、例えば、DCT係数の組が復元される。その後直交変換・量子化部32は、周波数信号を逆直交変換処理する。例えば、直交変換部22においてDCT処理が行われる場合、直交変換・量子化部32は、逆量子化信号に対して逆DCT処理を実行する。逆量子化処理及び逆直交変換処理を量子化信号に対して実行することにより、符号化前の予測誤差信号と同程度の情報を有する予測誤差信号が再生される。
 直交変換・量子化部32は、インター符号化されるピクチャについて、後述する動き補償された予測画像の各ピクセル値に、そのピクセルに対応する再生された予測誤差信号を加算する。一方、直交変換・量子化部32は、イントラ符号化されるピクチャについて、既に符号化されたマクロブロックに基づいて生成された予測画像の各ピクセル値に、そのピクセルに対応する、再生された予測誤差信号を加算する。これらの処理を各マクロブロックについて実行することにより、直交変換・量子化部32は、現在のピクチャに対する予測ピクチャを得る。
 直交変換・量子化部32は、予測ピクチャを新たな参照ピクチャとして、処理部12が有するメモリに一時的に記憶する。そして直交変換・量子化部32は、その参照ピクチャを予測画像を作成するために利用する。なお、直交変換・量子化部32は、予め定められた所定枚数分の参照ピクチャを記憶し、参照ピクチャの枚数がその所定枚数を超えると、古い参照ピクチャから順に破棄する。
 直交変換・量子化部32は、インター符号化用の予測画像を作成するために、現在のピクチャの各マクロブロックと、既に符号化された参照ピクチャを用いて、動きベクトルを求める。動きベクトルは、現在のピクチャのマクロブロックと、そのマクロブロックに最も類似する参照ピクチャのブロックとの空間的な移動量を表す。直交変換・量子化部32は、例えば、現在のピクチャの着目するマクロブロックと、各参照ピクチャとのブロックマッチングを実行することにより、各参照ピクチャから、マクロブロックと最も一致する参照ピクチャ及びその参照ピクチャ上の領域を決定する。そして直交変換・量子化部32は、現在のピクチャのマクロブロックの位置と、そのマクロブロックに最も一致する領域との水平方向及び垂直方向の移動量と、その領域が属する参照ピクチャを表す識別情報を、それぞれ要素とするベクトルを動きベクトルとする。
 直交変換・量子化部32は、現在のピクチャに含まれる各マクロブロックに対して、それぞれ動きベクトルを求める。そして直交変換・量子化部32は、参照ピクチャを求めた動きベクトルに基づいて動き補償することにより、動き補償されたブロック単位の予測画像を生成する。なお、動き補償は、動きベクトルで表された、マクロブロックとそれに対して最も類似する参照ピクチャのブロックの位置ずれ量を相殺するように、その最も類似する参照ピクチャのブロックの位置を移動する処理である。
 また直交変換・量子化部32は、現在のピクチャのうちの着目するマクロブロックについて、その着目マクロブロックの左側または上側に隣接する、既に符号化されたマクロブロックに含まれるピクセル値から補間によってイントラ符号化用の予測画像を生成する。
 可変長符号化部33は、直交変換・量子化部32から受け取った量子化信号及び動きベクトルを符号化することにより、元のピクチャに対してデータ量が圧縮されたビットの組を生成する。そして可変長符号化部33は、符号化部23-mに入力されたサブデータに含まれる各ピクチャに対して生成されたビットの組を、符号化処理の実行順序に従って連結することにより、そのサブデータに対応するサブビットストリームデータを生成する。そのために、可変長符号化部33は、例えば、その量子化信号に対して、生起確率が高い信号値ほど短くなる、可変長の符号語を割り当てる可変長符号化処理を実行する。例えば、可変長符号化部33は、可変長符号化処理として、ハフマン符号化処理あるいは算術符号化処理を行うことができる。
 可変長符号化部33は、生成したサブビットストリームデータを結合部25-mへ出力する。また可変長符号化部33は、生成したサブビットストリームデータに含まれる各ピクチャ、各マクロブロックあるいは各GOPに対して実際に割り当てられた符号化ビット長を情報量制御部35に通知する。
 バッファ上限・下限制御部34は、ビットストリームデータが標準復号器バッファに占める占有量の制限値を決定する。具体的には、バッファ上限・下限制御部34は、符号化対象となる現在のピクチャに対応する符号化データが標準復号器バッファから取り出される時点における、標準復号器バッファの占有量の下限値を決定する。またバッファ上限・下限制御部34は、符号化対象となる現在のピクチャに対応する符号化データが標準復号器バッファに蓄積された時点における、標準復号器バッファの占有量の上限値を決定する。
 上限値及び下限値を決定するために、バッファ上限・下限制御部34には、制御部21から標準復号器バッファの初期設定上限値及び初期設定下限値と、符号化部23-mに入力されたサブデータに含まれるピクチャ数が入力される。またバッファ上限・下限制御部34には、データ管理部31から符号化処理の対象となる現在のピクチャの番号が入力される。さらに、バッファ上限・下限制御部34には、収束目標導出部24-mから、符号化部23-mにより生成されたサブビットストリームデータに含まれる最後のピクチャが復号される遷移時刻における収束目標値が入力される。
 バッファ上限・下限制御部34は、符号化部23-m、23-(m+1)によりそれぞれ生成されたサブビットストリームデータSBSm、SBSm+1が結合されたビットストリームデータBSが標準復号器バッファに占める占有量に対する下限値を設定する。具体的には、バッファ上限・下限制御部34は、サブビットストリームデータSBSmからSBSm+1への遷移時刻において、ビットストリームデータBSが標準復号器バッファに占める占有量が収束目標値を下回らないように下限値を決定する。さらにバッファ上限・下限制御部34は、サブビットストリームデータSBSmの各ピクチャが標準復号器バッファから取り出される時点におけるビットストリームデータBSの占有量の下限値を、各ピクチャに対して割り当てられる符号化ビット数が急激に変動しないように設定する。
 例えば、バッファ上限・下限制御部34は、サブビットストリームデータSBSmが標準復号器バッファに蓄積開始されてからの経過時間が所定の制御開始時刻に達するまでは、下限値を制御部21から入力された初期設定下限値とする。なお、その経過時間tは下記の式に従って算出される。
Figure JPOXMLDOC01-appb-M000002
ここでnpは、データ管理部31から取得した、符号化処理の対象となる現在のピクチャの番号を表す。またfrはサブデータに含まれるピクチャが1秒当たりに標準復号器バッファから取り出される枚数を表す。さらにtdは、サブビットストリームデータSBSmが標準復号器バッファに蓄積開始されてから、最初のピクチャに対応するデータが取り出されるまでの初期バッファ遅延量を表す。
 一方、経過時間tが制御開始時刻よりも大きい場合、バッファ上限・下限制御部34は、経過時間tが大きくなるほど下限値が収束目標値に近づくように、下限値を単調増加させる。なお、制御開始時刻は、0以上かつ、所定の制御終了時刻よりも小さい値に設定される。ただし、サブデータの終端に近い数枚のピクチャに対する下限値のみが修正されると、それらのピクチャに対して割り当て可能なビット数が極端に少なくなってしまい、それらのピクチャに対する復号画質が急激に劣化してしまう。そこで制御開始時刻は、ピクチャごとの下限値の上昇に伴う符号化ビット数の減少による画質の劣化が、観察者にとって気が付かない程度に抑制されるように設定されることが好ましい。例えば、制御開始時刻はサブデータに含まれるピクチャの枚数の半分以下の値に対応する経過時間に設定される。また制御終了時刻は、サブビットストリームデータSBSmからサブビットストリームデータSBSm+1への遷移時刻以前であり、かつ、制御終了時刻よりも後の所定のタイミングに設定することができる。しかし、制御開始時刻と制御終了時刻の間隔は、できるだけ長い方が好ましい。このように制御終了時刻を設定することにより、バッファ上限・下限制御部34は、各ピクチャに対する符号化ビット割当量を急激に減らすことなく、標準復号器バッファの占有量の下限値を収束目標値に近づけることができる。
 バッファ上限・下限制御部34は、例えば、下記の式に従って現在のピクチャに対する下限値Lnpを設定することができる。
Figure JPOXMLDOC01-appb-M000003
ここでtpは現在のピクチャに対応する時刻を表す。またtstartは下限値の修正を開始する制御開始時刻を表し、tendは下限値の修正を終了する制御終了時刻を表す。さらに、Stargetは収束目標値を表し、Liniは初期設定下限値を表す。
 また制御部21により決定された、標準復号器バッファの初期設定上限値が収束目標値よりも低い場合も想定される。この場合、符号化部23-mは、その初期設定上限値を超えるように各ピクチャに対する符号化ビット割当量を決定することができない。そのため、符号化部23-mは、サブビットストリームデータSBSmに含まれる最後のピクチャに相当するデータが標準復号器バッファから取り出された時点における、ビットストリームデータBSの残留占有量を収束目標値に近づけることができない。そこでこのような場合、バッファ上限・下限制御部34は、上限値を、収束目標値よりも高くなるように修正する。例えば、バッファ上限・下限制御部34は、全てのピクチャに対する上限値を、標準復号器バッファの占有量の最大許容値に設定する。あるいは、バッファ上限・下限制御部34は、所定の制御開始時刻よりも後でかつ制御終了時刻よりも前において、標準復号器バッファからピクチャが取り出される時刻における上限値を、収束目標値よりも高くなるまで徐々に高くしてもよい。なお、上限値の設定に関する制御開始時刻と、下限値の設定に関する制御開始時刻は一致しなくてもよい。同様に、上限値の設定に関する制御終了時刻と、下限値の設定に関する制御終了時刻は一致しなくてもよい。ただし、上限値と下限値の間に、常に少なくとも1枚のピクチャ分の符号化ビット数に相当する差が設けられるように、上限値と下限値は設定されることが好ましい。
 図6(a)は、バッファ上限・下限制御部34により設定される標準復号器バッファの下限値の遷移の一例を示すグラフである。また、図6(b)は、バッファ上限・下限制御部34により設定される標準復号器バッファの上限値の遷移の一例を示すグラフである。
 図6(a)及び図6(b)において、横軸は時間を表し、縦軸は標準復号器バッファの占有量を表す。また、図6(a)において、線601は、標準復号器バッファの占有量の上限値を表し、線602は、標準復号器バッファの占有量の下限値を表す。さらに点線603及び604は、それぞれ、収束目標値及び遷移時占有量を表す。そしてグラフ605は、符号化部23-mによって生成されたサブビットストリームデータSBSmと次の符号化部23-(m+1)によって生成されたサブビットストリームデータSBSm+1が結合されたビットストリームデータBSが標準復号器バッファに占める占有量の遷移を表す。
 図6(a)に示されるように、標準復号器バッファの占有量の下限値602は、サブビットストリームデータSBSmが標準復号器バッファに蓄積開始される時刻t0から、制御開始時刻t1までの間、初期設定下限値に設定される。その後、下限値602は、制御開始時刻t1を過ぎると、制御終了時刻t2までの間直線的に増加する。そして制御終了時刻t2では、下限値602は、遷移時占有量604以上の値に設定された収束目標値603に達し、時刻t2以降一定に保たれる。このように下限値が設定されるので、サブビットストリームデータSBSmの最後のピクチャが復号される遷移時刻ttrにおいて、ビットストリームデータBSが標準復号器バッファに占める占有量は、確実にサブビットストリームデータSBSm+1の遷移時占有量よりも高くなる。一方、この例では、標準復号器バッファの占有量の上限値601は、下限値602を収束目標値603に設定しても、占有量605がその上限値601を超えないような十分に高い値に設定されているため、バッファ上限・下限制御部34は上限値を修正しない。
 図6(b)において、線611は、標準復号器バッファの占有量の上限値を表し、線612は、標準復号器バッファの占有量の下限値を表す。さらに点線613は、収束目標値を表す。
 図6(b)に示されるように、標準復号器バッファの占有量の下限値612は、サブビットストリームデータが標準復号器バッファに蓄積開始される時刻t0から、制御開始時刻t1までの間、初期設定下限値に設定される。その後、下限値612は、制御開始時刻t1を過ぎると、制御終了時刻t2までの間直線的に増加する。そして制御終了時刻t2では、下限値612は、収束目標値613に達する。一方、標準復号器バッファの占有量の上限値611は、時刻t0から制御開始時刻t3までの間、初期設定上限値に設定される。その後、上限値611は、制御開始時刻t3を過ぎると、制御終了時刻t4までの間直線的に増加する。そして制御終了時刻t4では、上限値611は、標準復号器バッファの最大許容値に達し、時刻t4以降一定に保たれる。
 バッファ上限・下限制御部34は、現在のピクチャに対する上限値及び下限値を情報量制御部35へ通知する。
 情報量制御部35は、直交変換・量子化部32により符号化されるピクチャに対して割り当てられる符号化ビット数を制御するための量子化パラメータを決定する。
 そこで、情報量制御部35は、ピクチャに対して割り当てられる符号化ビット数に対応する目標情報量の値が大きいほど、量子化パラメータの値が小さくなるような様々な量子化パラメータの決定方法のうちの何れかを採用できる。情報量制御部35は、そのような方法として、既に符号化されたピクチャに実際に割り当てられた符号化ビット数と目標とする符号化ビット数の計画から、次のピクチャに対して割り当てる符号化ビット数を決定するフィードバック型の方法を採用してもよい。また情報量制御部35は、直交変換・量子化部32における動き予測処理などからピクチャの性質を示す統計量を算出し、その統計量に基づいて次のピクチャに割り当てる符号化ビット数を決定するフィードフォワード型の方法を採用してもよい。さらに、情報量制御部35は、そのようなフィードバック型の方法とフィードフォワード型の方法を組み合わせた方法を用いてもよい。
 例えば、情報量制御部35は、MPEG-2の標準テストモデル5において採用されている方法に沿って、各ピクチャの基本目標情報量を求める。この場合、情報量制御部35には、制御部21から最大伝送ビットレート、フレームレートが入力される。また情報量制御部35には、データ管理部31から、符号化対象となる現在のピクチャがインター符号化されるピクチャか、イントラ符号化されるピクチャかを示すピクチャ種別情報が入力される。さらに情報量制御部35には、バッファ上限・下限制御部34から現在のピクチャに対する上限値及び下限値が入力される。そして情報量制御部35は、これらの入力されたパラメータに従って、現在のピクチャに対応する符号化ビット列が標準復号器バッファに伝送されたときに、標準復号器バッファの占有量が上限値を超えないように基本目標情報量を求める。また情報量制御部35は、これらの入力されたパラメータに従って、現在のピクチャに対応する符号化ビット列が標準復号器バッファから取り出されたときに、標準復号器バッファの占有量が下限値を下回らないように基本目標情報量を求める。
 さらに情報量制御部35は、バッファ占有量の下限値が初期設定下限値から収束目標値に近づくように修正されている場合、標準復号器バッファの占有量がその修正された下限値を下回らないように、各ピクチャに対する補正情報量を求める。そして、情報量制御部35は、基本目標情報量から補正目標情報量を引くことにより、最終的な目標情報量を算出する。そして情報量制御部35は、目標情報量の値に応じた量子化パラメータを求める。なお、MPEG-2の標準テストモデル5に関する基本目標情報量及び量子化パラメータの算出方法に関しては、http://www.mpeg.org/MPEG/MSSG/tm5/Ch10/Ch10.htmlで特定されるURLを参照されたい。また情報量制御部35は、特開2008-252562号公報に開示されているような、目標情報量と量子化パラメータの関係を表すレート歪関数を用いて量子化パラメータを決定してもよい。この場合も、情報量制御部35は、バッファ占有量の下限値が初期設定下限値から修正されている場合、各ピクチャに対する補正情報量を目標情報量から減算することにより、その目標情報量を修正する。
 一例として、情報量制御部35は、先ず、現在のピクチャに対して推定される複雑度を計算する。イントラ符号化されるピクチャ、片方向予測によりインター符号化されるピクチャ及び両方向予測によりインター符号化されるピクチャに対する複雑度は、それぞれ、次式により算出される。以下では、イントラ符号化されるピクチャをIピクチャと呼ぶ。また、時間的に前のピクチャの情報を用いてインター符号化されるピクチャをPピクチャと呼ぶ。さらに、時間的に前のピクチャと後のピクチャの両方の情報を用いてインター符号化されるピクチャをBピクチャと呼ぶ。
Figure JPOXMLDOC01-appb-M000004
ここで、Xiは、Iピクチャに対する複雑度であり、Xpは、Pピクチャに対する複雑度である。Xbは、Bピクチャに対する複雑度である。またSiは、既に符号化された直前のピクチャがIピクチャである場合に、その直前のピクチャについて符号化により発生したビット数である。同様に、Spは、既に符号化された直前のピクチャがPピクチャである場合に、その直前のピクチャについて符号化により発生したビット数である。さらにSbは、既に符号化された直前のピクチャがBピクチャである場合に、その直前のピクチャについて符号化により発生したビット数である。また、Qi、Qp、Qbは、それぞれ、前のピクチャがIピクチャ、Pピクチャ、Bピクチャである場合に、前のピクチャを符号化する際に使用された、全てのマクロブロックの量子化パラメータを平均することにより算出される平均量子化パラメータである。なお、Xi、Xp、Xbの初期値は例として以下のように設定される。
 Xi = (160 * bitrate) / 115
 Xp = (60 * bitrate) / 115
 Xb = (42 * bitrate) / 115
ただし、bitrateは、最大伝送ビットレートであり、符号化に与えられた1秒あたりの情報量(bit/s)を表す。
 次に、情報量制御部35は、算出された複雑度Xi、Xp、Xbに基づいて、次式に従って、Iピクチャに対する基本目標情報量Ti、Pピクチャに対する基本目標情報量Tp及びBピクチャに対する基本目標情報量Tbを算出する。
Figure JPOXMLDOC01-appb-M000005
ここで、Kp、Kbは定数であり、一般にKp=1.0, Kb=1.4に設定される。またRは、GOPに割り当て可能な符号化ビット数の残量である。Rは、各ピクチャの符号化が完了した後、次のように更新される。
  R = R-Sj
ただし直前のピクチャがIピクチャであれば、Sj=Siである。また直前のピクチャがPピクチャであれば、Sj=Spである。あるいは、直前のピクチャがBピクチャであれば、Sj=Sbである。
 また、GOPの最初のピクチャ、すなわち、Iピクチャを符号化する際に、ビット数の残量Rは、前のGOPについて計算されたビット数の残量Rを用いて次のように更新される。
R = G + R
G = bitrate * N / picturerate
ただしNは、GOPに含まれるピクチャの枚数である。なお、動画像データの最初のGOPに対して、Rは0に設定される。さらに、picturerateは、符号化対象の動画像データにおいて、1秒間に走査されるピクチャの枚数(Hz)である。
 また(5)式において、Np、Nbは、それぞれ、符号化順序における、GOP内の符号化されていない残りPピクチャとBピクチャの枚数である。また、関数max(a,b)は、変数aとbのうちの大きい方の値を出力する関数である。
 さらに、情報量制御部35は、標準復号器バッファの占有量がその下限値未満とならないように、標準復号器バッファの占有量の下限値の制御開始時刻以降に符号化されるピクチャに対する目標情報量を、補正情報量ΔTを用いて調整する。すなわち、情報量制御部35は、現在のピクチャが制御開始時刻よりも後に符号化される場合、情報量制御部35は補正情報量ΔTを算出する。そして情報量制御部35は、現在のピクチャがIピクチャであれば、(5)式により算出された基本目標情報量Tiから補正情報量ΔTを引いた値を、現在のピクチャに対する目標情報量Tとする。また情報量制御部35は、現在のピクチャがPピクチャであれば、基本目標情報量Tpから補正情報量ΔTを引いた値を、現在のピクチャに対する目標情報量Tとする。さらに、情報量制御部35は、現在のピクチャがBピクチャであれば、基本目標情報量Tbから補正情報量ΔTを引いた値を、現在のピクチャに対する目標情報量Tとする。
 ただし、補正情報量ΔTは、1枚前に符号化されるピクチャが標準復号器バッファから取り出されるときの下限値と、現在のピクチャが標準復号器バッファから取り出されるときの下限値の差に対応する値とすることが好ましい。例えば、補正情報量ΔTは、下限値が(3)式に従って求められる場合、次式により算出される。
Figure JPOXMLDOC01-appb-M000006
ここでStargetは収束目標導出部24-mにより算出される収束目標値を表し、Liniは初期設定下限値を表す。またNaは、バッファ上限・下限制御部34が標準復号器バッファの占有量の下限値の調整を開始する制御開始時刻から、その下限値の調整を終了する制御終了時刻までの間に符号化されるピクチャの枚数である。なお、情報量制御部35は、他のピクチャの符号化に対する影響が大きいIピクチャに対する補正情報量ΔTを0に設定してもよい。この場合、Pピクチャ及びBピクチャに対する補正情報量ΔTを決定するために、(6)式におけるNaは、制御開始時刻から制御終了時刻までの間に符号化されるPピクチャ及びBピクチャの枚数の合計とすればよい。
 次に、情報量制御部35は、目標情報量Tに基づいて量子化パラメータを決定する。そのために、情報量制御部35は、j番目のマクロブロックを符号化する前の、標準復号器バッファの充足度dij、dpj、dbjを算出する。なお、充足度dijはIピクチャに対応し、充足度dpjはPピクチャに対応し、充足度dbjはBピクチャに対応する。その充足度dij、dpj、dbjは次式に従って計算される。
Figure JPOXMLDOC01-appb-M000007
ここで、Bj-1は、1番目から(j-1)番目までの全てのマクロブロックを符号化することにより生成されたビット数である。MBNは、ピクチャに含まれるマクロブロックの数である。また、di0、dp0、db0は、充足度の初期値である。なお、特定のピクチャについて、最後のマクロブロックまで符号化したときの充足度diMBN、dpMBN、dbMBNは、次の同じタイプのピクチャに対する充足度の初期値di0、dp0、db0となる。
 最後に、情報量制御部35は、この充足度dij、dpj、dbjを用いて、次式により、j番目のマクロブロックに対する量子化パラメータを決定する。
Figure JPOXMLDOC01-appb-M000008
ただし、djは、現在のピクチャがIピクチャであればdij、現在のピクチャがPピクチャであればdpjであり、現在のピクチャがBピクチャであればdbjである。
 情報量制御部35は、求めた量子化パラメータを、直交変換・量子化部32に渡す。また情報量制御部35は、可変長符号化部33から受け取ったサブビットストリームデータSBSmに含まれる各ピクチャに対する実際の符号化ビット数から算出した遷移時刻での、サブビットストリームデータSBSmを含むビットストリームデータBSの残留占有量を結合部25-mに通知する。この残留占有量を求めるために、情報量制御部35は、サブビットストリームデータSBSmが標準復号器バッファに蓄積開始されてから、サブビットストリームデータSBSmの最後のピクチャが復号されるまでの期間長に最大伝送ビットレートを乗じる。そして情報量制御部35は、その積算値から、サブビットストリームデータSBSmに含まれる全てのピクチャの符号化ビット数の合計を引くことにより、残留占有量を算出する。
 結合部25-1、25-2、...、25-(n-1)は、それぞれ、結合部25-1、25-2、...、25-(n-1)に入力された二つのサブビットストリームデータを再生される時間順に従って結合する。図2に示されるように、結合部25-1には、符号化部23-1から出力されたサブビットストリームデータSBS1と、符号化部23-2から出力されたサブビットストリームデータSBS2が入力される。そして結合部25-1は、サブビットストリームデータSBS1の後にサブビットストリームデータSBS2を結合する。そして結合部25-1は、一つに結合されたサブビットストリームデータを出力する。
 また、結合部25-m(ただし、2≦m≦n-1)には、結合部25-(m-1)から出力されたサブビットストリームデータと、符号化部23-(m+1)から出力されたサブビットストリームデータSBSm+1が入力される。そして結合部25-mは、結合部25-(m-1)から出力されたサブビットストリームデータの後にサブビットストリームデータSBSm+1を結合する。そして結合部25-mは、一つに結合されたサブビットストリームデータを出力する。そして結合部25-(n-1)は、各符号化部により生成されたサブビットストリームデータの全てが結合されたビットストリームデータを出力する。このビットストリームデータは、処理部12が取得した動画像データが符号化されたものである。
 なお、結合部25-1、25-2、...、25-(n-1)は、同一の構成及び機能を有するため、以下では、一つの結合部25-mについて説明する。
 結合部25-mは、符号化部23-mの情報量制御部35から通知された残留占有量Srと、収束目標導出部24-mから受け取った遷移時占有量Strとの差ΔSrを求める。そして結合部25-mは、その差ΔSrが0でなければ、その差ΔSrに相当する量の無効ビット列を、結合部25-(m-1)から出力されたサブビットストリームデータとサブビットストリームデータSBSm+1の間に挿入する。この無効ビット列は、サブビットストリームデータSBSmの最後のピクチャが復号されるときに、その最後のピクチャに相当するデータとともに標準復号器バッファから取り出される。したがって、結合部25-mは、遷移時刻における標準復号器バッファの占有量を、遷移時占有量Strと一致させることができる。なお、この無効ビット列は、復号されるピクチャの画質に影響しないようなビット列とすることが好ましい。例えば、この無効ビット列は、H.264 MPEG-4 AVCに規定された、Network Abstraction Layer(NAL)フォーマットのFillerデータとすることができる。あるいは、この無効ビット列は、MPEG-2に規定されたスタッフィングバイトとすることができる。
 図7は、遷移時刻における標準復号器バッファに占めるビットストリームデータの占有量の遷移と、結合部25-mにより結合されたサブビットストリームデータの対応関係を示す図である。図7の上側には、ビットストリームデータ701の概略構成が示される。また図7の下側には、そのビットストリームデータ701が標準復号器バッファに占める占有量の推移を示すグラフ710が表されている。下側のグラフ710に関して、横軸は時間を表し、縦軸は占有量を表す。また時刻ttrは遷移時刻を表す。
 図7に示されるように、ビットストリームデータ701は、前側のサブビットストリームデータ702と、後側のサブビットストリームデータ703とを有する。さらにビットストリームデータ701は、それら二つのサブビットストリームデータの間に無効ビット列704を有する。このうち、前側のサブビットストリームデータ702に含まれる最後のピクチャに対応する有効データ705が標準復号器バッファから取り出されると、グラフ710に示されるように、標準復号器バッファの占有量がその有効データ705に相当する量Svだけ減少する。遷移時刻ttrにおいて、有効データ705とともに無効ビット列704も標準復号器バッファから取り出されるので、標準復号器バッファの占有量は、無効ビット列704に相当する量ΔSrだけさらに減少する。そのため、遷移時刻ttrにおける、前側のサブビットストリームデータ702に含まれる最後のピクチャに対応する有効データ705が標準復号器バッファから取り出された後の占有量は、後側のサブビットストリームデータ703による遷移時占有量Strと一致する。
 図8は、動画像符号化装置1の処理部12上で実行されるコンピュータプログラムにより制御される、動画像データの符号化処理の動作フローチャートを示す。
 図8に示されるように、処理部12が符号化対象となる動画像データを取得すると、処理部12は符号化処理を開始する。そして処理部12の分割部22は、動画像データをn個のサブデータに分割する(ステップS101)。ただしnは2以上の整数であり、符号化部の個数と等しい。そして分割部22は、各サブデータを、再生される時間順にしたがって、各符号化部23-m(1≦m≦n)に入力する。
 また処理部12の収束目標導出部24-k(1≦k≦n-1)は、それぞれ、符号化部23-kにより生成されたサブビットストリームデータSBSkから符号化部23-(k+1)により生成されたサブビットストリームデータSBSk+1への遷移時刻における遷移時占有量及び収束目標値を算出する(ステップS102)。この遷移時占有量は、上記のように、遷移時刻においてサブビットストリームデータSBSk+1が標準復号器バッファに占める占有量である。さらに収束目標値は、遷移時刻においてサブビットストリームデータSBSkとサブビットストリームデータSBSk+1が結合されたビットストリームデータBSが標準復号器バッファに占める占有量の目標値である。収束目標導出部24-kは、遷移時占有量を結合部25-kに通知する。また収束目標導出部24-kは、収束目標値を処理部12の符号化部23-kに通知する。
 各符号化部23-m(1≦m≦n)は、入力されたサブデータを通知された収束目標値あるいは制御部21により設定された標準復号器バッファの上限値及び下限値に基づいて、そのサブデータに含まれる各ピクチャを符号化する。そして各符号化部23-mは、サブデータに含まれる各ピクチャが符号化されたサブビットストリームデータを生成する(ステップS103)。その際、各符号化部23-k(1≦k≦n-1)は、それぞれ、生成されたサブビットストリームデータSBSkとSBSk+1が結合されたビットストリームデータが遷移時刻において標準復号器バッファに占める残留占有量Srが収束目標値に近づくようにサブビットストリームデータSBSkを生成する。また符号化部23-nは、サブビットストリームデータSBSnが標準復号器バッファに占める占有量が標準復号器バッファの最大許容値と最小許容値の間に収まるようにサブビットストリームデータSBSnを生成する。そして符号化部23-1及び符号化部23-2は、生成したサブビットストリームデータを結合部25-1に出力する。また符号化部23-m(3≦m≦n)は、生成したサブビットストリームデータを結合部25-(m-1)に出力する。
 各結合部25-k(1≦k≦n-1)は、符号化部23-kの情報量制御部35から通知された実際の残留占有量Srと、収束目標導出部24-kから受け取った遷移時占有量Strとの差ΔSrを求める(ステップS104)。そして結合部25-kは、その差ΔSrに相当する量の無効ビット列を、結合部25-(k-1)から出力されたサブビットストリームデータと符号化部23-(k+1)から受け取ったサブビットストリームデータの間に挿入する。そして各結合部25-kは、それら二つのサブビットストリームデータを結合する(ステップS105)。
 そして全ての結合部がサブビットストリームデータの結合を終了することにより、動画像データが符号化されたビットストリームデータが作成される。そして処理部12は、動画像符号化処理を終了する。
 図9は、動画像符号化装置1の処理部12上で実行されるコンピュータプログラムにより制御される、各符号化部23-k(1≦k≦n-1)によるサブデータの符号化処理の動作フローチャートを示す。
 図9に示されるように、符号化部23-kのバッファ上限・下限制御部34は、収束目標導出部24-kから受け取った収束目標値に従って、入力されたサブデータの各ピクチャに対する、標準復号器バッファの上限値及び下限値を決定する(ステップS201)。その際、バッファ上限・下限制御部34は、ピクチャの位置が入力されたサブデータが符号化されることにより得られるサブビットストリームデータの終端に近いほど下限値が収束目標値に近づくように、各ピクチャに対する下限値を決定する。またバッファ上限・下限制御部34は、上限値が収束目標値を下回っている場合に、収束目標値よりも高くなるように各ピクチャに対する上限値を修正する。そしてバッファ上限・下限制御部34は、その上限値及び下限値を、符号化部23-kの情報量制御部35へ通知する。
 情報量制御部35は、各ピクチャに対する符号化ビット割当量に対応する目標情報量を決定する(ステップS202)。その際、情報量制御部35は、符号化部23-kにより生成されるサブビットストリームデータSBSkと符号化部23-(k+1)により生成されるサブビットストリームデータSBSk+1が結合されたビットストリームデータが標準復号器バッファに占める占有量がその上限値と下限値の間に含まれることを条件とする。また情報量制御部35は、一つ前に符号化されたピクチャに対する下限値と異なる下限値が設定されたピクチャに対して、その下限値の差に対応する補正情報量を算出し、目標情報量から補正情報量を減算することにより目標情報量を補正する(ステップS203)。そして情報量制御部35は、その目標情報量に従って、量子化幅を決定するための量子化パラメータを求める(ステップS204)。情報量制御部35は、求めた量子化パラメータを、符号化部23-kの直交変換・量子化部32に通知する。
 直交変換・量子化部32は、入力されたサブデータの各ピクチャに対して直交変換処理を行って周波数信号を求める。そして直交変換・量子化部32は、その周波数信号に対して、情報量制御部35から通知された量子化パラメータに従って決定された量子化幅で量子化する(ステップS205)。直交変換・量子化部32は、その量子化処理により得られた量子化信号を、符号化部23-kの可変長符号化部33に渡す。そして可変長符号化部33は、直交変換・量子化部32から受け取った量子化信号に対して可変長符号化処理を実行する(ステップS206)。可変長符号化部33は、符号化部に入力されたサブデータに含まれる各ピクチャに対して得られた符号化ビット列を結合することにより、そのサブデータが符号化されたサブビットストリームデータを生成する(ステップS207)。そして可変長符号化部33は、生成されたサブビットストリームデータを対応する結合部へ出力する(ステップS208)。また可変長符号化部33は、生成されたサブビットストリームデータの各ピクチャに対して実際に割り当てられた符号化ビット数を情報量制御部35に通知する(ステップS209)。そして符号化部23-kは、サブデータの符号化処理を終了する。
 なお、符号化部23-nでは、上記のステップS201において、バッファ上限・下限制御部34が、標準復号器バッファの上限値及び下限値を、それぞれ、制御部21により決定される上限値及び下限値そのものに設定する。また上記のステップS203の処理は省略される。その他の動作に関しては、符号化部23-nは、他の符号化部と同様に動作する。
 なお、動画像符号化装置1により生成されたビットストリームデータは、例えば、MPEG-2、MPEG-4、あるいはH.264 MPEG-4 AVCに準拠するデータとすることができる。そのため、動画像符号化装置1により生成されたビットストリームデータは、従来の動画像復号装置により復号することができる。
 以上に説明してきたように、この動画像符号化装置は、結合部により二つのサブビットストリームデータが結合されて生成されるビットストリームデータのうちの前側のサブビットストリームデータに対する符号化ビット割当量を制御する。これにより、この動画像符号化装置は、前側のサブビットストリームデータの最後のピクチャが復号された遷移時刻における、結合されたビットストリームデータが標準復号器バッファに占める占有量を調整する。具体的には、動画像符号化装置は、遷移時刻における結合されたビットストリームデータが標準復号器バッファに占める占有量を、遷移時刻までに標準復号器バッファに蓄積された後側のサブビットストリームデータが占める占有量よりも高くする。さらにこの動画像符号化装置は、前側のサブビットストリームデータと後側のサブビットストリームデータの間に、前側のサブビットストリームデータの最後のピクチャが復号されるときに合わせて取り出される無効ビット列を挿入する。これにより、この動画像符号化装置は、遷移時刻における、結合されたビットストリームデータが標準復号器バッファに占める占有量と、後側のサブビットストリームデータが標準復号器バッファに占める占有量との差をなくすことができる。従って、この動画像符号化装置は、占有量の遷移のシミュレーションを行ったり、符号化されたピクチャを一旦復号した後に再符号化する必要なく、標準復号器バッファの規定を満たすることができる。そのため、この動画像符号化装置は、短時間で動画像データを符号化することができる。さらにこの動画像符号化装置は、結合されたビットストリームデータが標準復号器バッファに占める占有量の下限値を徐々に修正するので、そのビットストリームデータに含まれる各ピクチャに割り当てられる符号化ビット数が急激に減少することはない。したがって、この動画像符号化装置は、動画像データ全体にわたって符号化による画質劣化を防止することができる。
 なお、本発明は上記の実施形態に限定されるものではない。例えば、この動画像符号化装置は、可変ビットレートで動画像データを符号化するものであってもよい。この場合、標準復号器バッファに占めるビットストリームデータの占有量が、その占有量の最小許容値を下回らなければよい。そこで、各結合器は、遷移時刻におけるビットストリームデータの残留占有量が遷移時刻までに標準復号器バッファに蓄積された後側のサブビットストリームデータが占める遷移時占有量よりも多くても、無効ビット列を挿入しなくてもよい。
 また、動画像符号化装置が所定の動画像符号化規格にしたがって動作する場合、その規格の種類によっては、結合部により挿入される無効ビット列は、バイトの整数倍の長さしか持てないことがある。一方、遷移時刻における二つのサブビットストリームデータが結合されたビットストリームデータが標準復号器バッファに占める残留占有量と、その二つのサブビットストリームデータのうちの後側のサブビットストリームデータが占める遷移時占有量との差はビット単位となる。そのため、その差がバイトの整数倍でない場合、結合部は、無効ビット列を挿入しても、遷移時刻における残留占有量を遷移時占有量と完全に一致させることはできない。したがって、この無効ビット列挿入後における残留占有量と遷移時占有量との誤差により、ビットストリームデータが標準復号器バッファに占める占有量が、標準復号器バッファの最大許容値と最小許容値の間に収まらなくなる可能性がある。
 そこで、各符号化部のバッファ上限・下限制御部は、遷移時刻における標準復号器バッファの下限値を、収束目標値よりも所定のマージン量だけ高く設定することが好ましい。また各符号化部のバッファ上限・下限制御部は、標準復号器バッファの上限値を、標準復号器バッファの最大許容値よりも所定のマージン量だけ低く設定することが好ましい。その所定のマージン量は上記の誤差に相当する量であり、例えば、8ビットとすることができる。さらに、各結合部は、一つ前の結合器から上記の誤差の合計を取得し、取得した誤差の合計にその結合部において発生する誤差を加えた値の絶対値が常に所定のマージン量以下となるように、無効ビット列の長さを決定することが好ましい。
 この画像符号化装置は、様々な用途に利用される。例えば、この画像符号化装置は、動画像データ配信用サーバ、映像伝送装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。例えば、この画像符号化装置が動画像データ配信用サーバに組み込まれる場合、この動画像符号化装置により作成された、符号化された動画像データは、その処理部により、音声信号等、動画像データと同時に取得される他の信号とともに、所定の通信規格に従ったデータストリームに変換される。そして画像符号化装置を組み込んだ動画像データ配信用サーバは、そのデータストリームを通信回線を介して動画像復号装置へ配信する。
 また、この動画像符号化装置の処理部が有する、制御部、分割部、符号化部、収束目標導出部及び結合部の各機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。
 ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。

Claims (8)

  1.  それぞれ複数のピクチャを含む少なくとも第1のサブデータと第2のサブデータを含む動画像データを記憶する記憶部と、
     前記動画像データを符号化することにより、当該動画像データのデータ量よりも少ないデータ量を持つビットストリームデータを生成する処理部と、
     前記ビットストリームデータを出力する出力部とを有し、
     前記処理部は、
      前記ビットストリームデータが所定の伝送レートで仮想的な復号器に伝送され、かつ該復号器のバッファに蓄積されるとともに、所定の時間間隔で前記ビットストリームデータに含まれるそれぞれのピクチャに相当するデータが前記バッファから順次取り出されるとしたときに、前記第1のサブデータが符号化された第1のサブビットストリームデータに含まれる最後のピクチャに相当するデータが前記バッファから取り出された第1の時点において前記ビットストリームデータが前記バッファに占める第1の占有量が、該第1の時点において前記第2のサブデータが符号化された第2のサブビットストリームデータが前記バッファに占める第2の占有量以上となるように、前記第1の占有量の目標値を決定する収束目標導出機能と、
      前記第1の占有量が前記目標値となるように、前記第1のサブデータに含まれるそれぞれのピクチャに対する符号化ビットの割当量を決定し、該割当量に従って前記第1のサブデータを符号化することにより、前記第1のサブビットストリームデータを生成する第1の符号化機能と、
      前記第2のサブデータを符号化することにより、前記第2のサブビットストリームデータを生成する第2の符号化機能と、
      前記第1のサブビットストリームデータと前記第2のサブビットストリームデータを結合することにより、前記ビットストリームデータを生成する結合機能と、
    を実現する動画像符号化装置。
  2.  前記結合機能は、前記第1の時点における前記第1の占有量から前記第2の占有量を引いた差に相当する長さを持つビット列を前記第1のサブビットストリームデータと前記第2のサブビットストリームデータの間に挿入する、請求項1に記載の動画像符号化装置。
  3.  前記ビット列は、前記仮想的な復号器において前記第1のサブビットストリームデータに含まれる最後のピクチャが復号されるときに、該最後のピクチャに相当するデータとともに前記バッファから取り出され、かつ該最後のピクチャの復号に影響しない無効ビット列である、請求項2に記載の動画像符号化装置。
  4.  前記第1の符号化機能は、
     前記第1のサブビットストリームデータに含まれる第1のピクチャに相当するデータが前記バッファから取り出されたときに、前記ビットストリームデータが前記バッファに占める占有量の下限値を、前記第1のピクチャの位置が前記第1のサブビットストリームデータの最後に近いほど前記目標値に近づくように増加させる占有量制限値決定機能と、
     前記第1のピクチャが前記バッファから取り出されたときに、前記ビットストリームデータが前記バッファに占める占有量が前記下限値以上となるように、前記第1のピクチャに対する符号化ビットの割当量を決定する情報量制御機能と
    を含む請求項1~3の何れか一項に記載の動画像符号化装置。
  5.  前記占有量制限値決定機能は、前記第1のサブビットストリームデータに含まれる第2のピクチャに相当するデータが前記仮想的なバッファに蓄積されたときに、前記ビットストリームデータが前記仮想的なバッファに占める占有量の事前に定められた上限値が前記目標値未満となる場合、該上限値を前記目標値よりも高く修正する、請求項4に記載の動画像符号化装置。
  6.  前記第1の符号化機能は、
      前記第1のサブビットストリームデータに含まれる複数のピクチャのそれぞれについて、該ピクチャの各画素に対応する信号を直交変換することにより周波数信号を生成し、該周波数信号を、前記符号化ビットの割当量が大きくなるほど小さくなる量子化幅で前記周波数信号を量子化する量子化機能と、
      前記量子化された前記周波数信号を可変長符号化することにより、前記第1のサブビットストリームデータを生成する可変長符号化機能とをさらに含み、
     前記情報量制御機能は、前記第1のサブビットストリームデータに含まれる前記第1のピクチャに対する前記下限値である第1の下限値と、該第1のピクチャの一つ前に符号化されるピクチャに対する第2の下限値との差に相当する補正量を、前記第1の下限値と前記第2の下限値とが等しいときに前記第1のピクチャに対して割り当てられる符号化ビットの基本量から減らすことにより、前記第1のピクチャに対する前記符号化ビットの割当量を決定する、
    請求項4または5に記載の動画像符号化装置。
  7.  それぞれ複数のピクチャを含む少なくとも第1のサブデータと第2のサブデータを含む動画像データを符号化することにより、当該動画像データのデータ量よりも少ないデータ量を持つビットストリームデータを生成する動画像符号化方法であって、
     前記ビットストリームデータが所定の伝送レートで仮想的な復号器に伝送され、かつ該復号器のバッファに蓄積されるとともに、所定の時間間隔で前記ビットストリームデータに含まれるそれぞれのピクチャに相当するデータが前記バッファから順次取り出されるとしたときに、前記第1のサブデータが符号化された第1のサブビットストリームデータに含まれる最後のピクチャに相当するデータが前記バッファから取り出された第1の時点において前記ビットストリームデータが前記バッファに占める第1の占有量が、該第1の時点において前記第2のサブデータが符号化された第2のサブビットストリームデータが前記バッファに占める第2の占有量以上となるように、前記第1の占有量の目標値を決定し、
     前記第1の占有量が前記目標値となるように、前記第1のサブデータに含まれるそれぞれのピクチャに対する符号化ビットの割当量を決定し、該割当量に従って前記第1のサブデータを符号化することにより、第1のサブビットストリームデータを生成し、
     前記第2のサブデータを符号化することにより、第2のサブビットストリームデータを生成し、
     前記第1のサブビットストリームデータと前記第2のサブビットストリームデータを結合することにより、前記ビットストリームデータを生成する、
    ことを含む動画像符号化方法。
  8.  それぞれ複数のピクチャを含む少なくとも第1のサブデータと第2のサブデータを含む動画像データを符号化することにより、当該動画像データのデータ量よりも少ないデータ量を持つビットストリームデータをコンピュータに生成させる動画像符号化用コンピュータプログラムであって、
     前記ビットストリームデータが所定の伝送レートで仮想的な復号器に伝送され、かつ該復号器のバッファに蓄積されるとともに、所定の時間間隔で前記ビットストリームデータに含まれるそれぞれのピクチャに相当するデータが前記バッファから順次取り出されるとしたときに、前記第1のサブデータが符号化された第1のサブビットストリームデータに含まれる最後のピクチャに相当するデータが前記バッファから取り出された第1の時点において前記ビットストリームデータが前記バッファに占める第1の占有量が、該第1の時点において前記第2のサブデータが符号化された第2のサブビットストリームデータが前記バッファに占める第2の占有量以上となるように、前記第1の占有量の目標値を決定し、
     前記第1の占有量が前記目標値となるように、前記第1のサブデータに含まれるそれぞれのピクチャに対する符号化ビットの割当量を決定し、該割当量に従って前記第1のサブデータを符号化することにより、第1のサブビットストリームデータを生成し、
     前記第2のサブデータを符号化することにより、第2のサブビットストリームデータを生成し、
     前記第1のサブビットストリームデータと前記第2のサブビットストリームデータを結合することにより、前記ビットストリームデータを生成する、
    ことをコンピュータに実行させる命令を含む動画像符号化用コンピュータプログラム。
PCT/JP2009/053739 2009-02-27 2009-02-27 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム WO2010097946A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2011501428A JP5152402B2 (ja) 2009-02-27 2009-02-27 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
PCT/JP2009/053739 WO2010097946A1 (ja) 2009-02-27 2009-02-27 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
CN200980156661.0A CN102318345B (zh) 2009-02-27 2009-02-27 动态图像编码装置、动态图像编码方法
KR1020117019839A KR101280700B1 (ko) 2009-02-27 2009-02-27 동화상 부호화 장치, 동화상 부호화 방법 및 동화상 부호화용 컴퓨터 프로그램
EP09840799.2A EP2403248B1 (en) 2009-02-27 2009-02-27 Moving picture encoding device, moving picture encoding method, and moving picture encoding computer program
US13/206,023 US9025664B2 (en) 2009-02-27 2011-08-09 Moving image encoding apparatus, moving image encoding method, and moving image encoding computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/053739 WO2010097946A1 (ja) 2009-02-27 2009-02-27 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/206,023 Continuation US9025664B2 (en) 2009-02-27 2011-08-09 Moving image encoding apparatus, moving image encoding method, and moving image encoding computer program

Publications (1)

Publication Number Publication Date
WO2010097946A1 true WO2010097946A1 (ja) 2010-09-02

Family

ID=42665174

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/053739 WO2010097946A1 (ja) 2009-02-27 2009-02-27 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Country Status (6)

Country Link
US (1) US9025664B2 (ja)
EP (1) EP2403248B1 (ja)
JP (1) JP5152402B2 (ja)
KR (1) KR101280700B1 (ja)
CN (1) CN102318345B (ja)
WO (1) WO2010097946A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11749805B2 (en) 2020-01-28 2023-09-05 Ricoh Company, Ltd. Liquid composition for forming electrochemical device, method of manufacturing electrodes, method of manufacturing electrochemical device and electrodes

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9973768B2 (en) * 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
WO2011138900A1 (ja) 2010-05-06 2011-11-10 日本電信電話株式会社 映像符号化制御方法および装置
BR112012028184A2 (pt) * 2010-05-07 2016-08-02 Nippon Telegraph & Telephone método de controle de codificação de vídeo, aparelho de codificação de vídeo e programa de codificação de vídeo
CA2798354C (en) 2010-05-12 2016-01-26 Nippon Telegraph And Telephone Corporation A video encoding bit rate control technique using a quantization statistic threshold to determine whether re-encoding of an encoding-order picture group is required
US9888244B2 (en) * 2011-10-05 2018-02-06 Texas Instruments Incorporated Methods and systems for encoding of multimedia pictures
US9819964B2 (en) * 2012-05-04 2017-11-14 Environmental Systems Research Institute, Inc. Limited error raster compression
US9002126B2 (en) * 2012-05-04 2015-04-07 Environmental Systems Research Institute (ESRI) Limited error raster compression
JP6094126B2 (ja) * 2012-10-01 2017-03-15 富士通株式会社 動画像復号装置
US20140321532A1 (en) * 2013-04-26 2014-10-30 Devadutta Ghat Techniques for coordinating parallel video transcoding
WO2015134825A1 (en) * 2014-03-07 2015-09-11 Sensor Electronic Technology, Inc. Ultraviolet surface illuminator
US9979970B2 (en) * 2014-08-08 2018-05-22 Qualcomm Incorporated System and method for determining buffer fullness for display stream compression
KR101650696B1 (ko) 2015-11-06 2016-08-24 연규수 스포트 용접용 팁의 제조 방법
JP2017168878A (ja) * 2016-03-14 2017-09-21 ルネサスエレクトロニクス株式会社 半導体装置、符号化制御方法及びカメラ装置
CN107846263B (zh) * 2017-11-01 2020-07-14 南京莱斯电子设备有限公司 一种基于分段计算的信源二进制算术编码方法和编码系统
US11509938B2 (en) * 2019-11-05 2022-11-22 Hfi Innovation Inc. Method and apparatus of signaling subpicture information in video coding
CN117319661B (zh) * 2023-09-26 2024-04-12 中移凯普(北京)技术服务有限公司 一种用于视觉传达展示的图像传输系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001054118A (ja) * 1999-06-01 2001-02-23 Sony Corp 符号化装置及び符号化方法並びに多重化装置及び多重化方法
JP2002165214A (ja) * 1997-06-19 2002-06-07 Victor Co Of Japan Ltd 画像信号符号化方法
JP2004297829A (ja) 2001-05-30 2004-10-21 Victor Co Of Japan Ltd Mpegデータ再生装置
JP2005136633A (ja) * 2003-10-29 2005-05-26 Sony Corp 動画像符号化装置および動画像符号化制御方法
JP2006054529A (ja) * 2004-08-10 2006-02-23 Victor Co Of Japan Ltd Mpeg画像データ記録装置及びmpeg画像データ記録方法
JP2008085673A (ja) 2006-09-27 2008-04-10 Toshiba Corp 動画像符号化装置及びその方法
JP2008252562A (ja) 2007-03-30 2008-10-16 Renesas Technology Corp 動画像符号化制御方法および動画像符号化装置
JP2009004897A (ja) * 2007-06-19 2009-01-08 Panasonic Corp 動画像符号化装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8929152D0 (en) * 1989-12-22 1990-02-28 Gen Electric A digital augmentation system for actv-ii
CA2065979C (en) * 1991-06-10 1999-01-19 Stephen Patrick Thompson Mode dependent minimum fifo fill level controls processor access to video memory
GB9424429D0 (en) * 1994-12-02 1995-01-18 Philips Electronics Uk Ltd Audio/video timing discrepancy management
GB9424436D0 (en) * 1994-12-02 1995-01-18 Philips Electronics Video editing buffer management
JP3668556B2 (ja) * 1996-06-13 2005-07-06 ソニー株式会社 ディジタル信号符号化方法
US5953020A (en) * 1997-06-30 1999-09-14 Ati Technologies, Inc. Display FIFO memory management system
KR100555164B1 (ko) * 1997-07-25 2006-03-03 소니 가부시끼 가이샤 편집 장치, 편집 방법, 재부호화 장치, 재부호화 방법, 스플라이싱 장치 및 스플라이싱 방법
DE69838869T2 (de) * 1997-10-03 2008-12-04 Sony Corp. Vorrichtung und Verfahren zum Spleißen von codierten Datenströmen sowie Vorrichtung und Verfahren zur Erzeugung von codierten Datenströmen
JP4232209B2 (ja) * 1998-01-19 2009-03-04 ソニー株式会社 圧縮画像データの編集装置及び圧縮画像データの編集方法
JPH11261958A (ja) * 1998-03-09 1999-09-24 Sony Corp 映像編集装置及び映像編集方法
FI106998B (fi) * 1999-01-15 2001-05-15 Nokia Mobile Phones Ltd Bittinopeuden ohjaus multimedialaitteessa
US6418474B1 (en) * 1999-04-16 2002-07-09 Peerless Systems Corporation Data transfer protocol flow controller and method
US6574193B1 (en) * 1999-07-28 2003-06-03 Veraz Networks Ltd. Congestion control using variable rate encoding based on queue fill
US6873654B1 (en) * 2000-05-16 2005-03-29 Redrock Semiconductor, Inc Method and system for predictive control for live streaming video/audio media
JP2001359153A (ja) * 2000-06-15 2001-12-26 Nec Corp 無線通信システム、基地局及び移動局
GB0104785D0 (en) * 2001-02-27 2001-04-18 Pace Micro Tech Plc MPEG decoder video in the form of cue and/or review streams of data
EP2403263A3 (en) * 2002-04-26 2012-01-25 Sony Corporation Encoding device and method, decoding device and method, editing device and method, recoding medium, and program
US7940843B1 (en) * 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
US7830889B1 (en) * 2003-02-06 2010-11-09 Juniper Networks, Inc. Systems for scheduling the transmission of data in a network device
US7420919B1 (en) * 2003-11-10 2008-09-02 Cisco Technology, Inc. Self converging communication fair rate control system and method
JP4717452B2 (ja) * 2005-01-31 2011-07-06 ルネサスエレクトロニクス株式会社 データ多重化装置
US20060265485A1 (en) * 2005-05-17 2006-11-23 Chai Sek M Method and apparatus for controlling data transfer in a processing system
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
KR20070074985A (ko) * 2006-01-11 2007-07-18 삼성전자주식회사 표시 장치 및 그것의 구동 방법
US20080059154A1 (en) * 2006-09-01 2008-03-06 Nokia Corporation Encoding an audio signal
JP2008066851A (ja) * 2006-09-05 2008-03-21 Sony Corp 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US8126475B2 (en) * 2006-10-09 2012-02-28 Motorola Mobility, Inc. Apparatus and method for uplink scheduling on shared channels
JP4900945B2 (ja) * 2007-01-18 2012-03-21 キヤノン株式会社 記録装置、及び記録方法
JP4773377B2 (ja) * 2007-01-29 2011-09-14 ルネサスエレクトロニクス株式会社 通信システム、通信装置及びフロー制御方法
KR100928324B1 (ko) * 2007-10-02 2009-11-25 주식회사 아이브이넷 압축된 동영상을 복원하기 위한 프레임 버퍼 메모리 운영방법 및 이에 적합한 디코딩 장치
JP5078852B2 (ja) * 2007-12-06 2012-11-21 キヤノン株式会社 動画像符号化装置及び動画像符号化方法
US9167007B2 (en) * 2008-06-06 2015-10-20 Amazon Technologies, Inc. Stream complexity mapping
US20100020654A1 (en) * 2008-07-28 2010-01-28 Mediatek Inc. Method and apparatus for data buffer control of optical disc player
US20100074111A1 (en) * 2008-09-22 2010-03-25 Krishnaprasad Vijayanand Method of data traffic shaping, apparatus and wireless device
US8527649B2 (en) * 2010-03-09 2013-09-03 Mobixell Networks Ltd. Multi-stream bit rate adaptation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002165214A (ja) * 1997-06-19 2002-06-07 Victor Co Of Japan Ltd 画像信号符号化方法
JP2001054118A (ja) * 1999-06-01 2001-02-23 Sony Corp 符号化装置及び符号化方法並びに多重化装置及び多重化方法
JP2004297829A (ja) 2001-05-30 2004-10-21 Victor Co Of Japan Ltd Mpegデータ再生装置
JP2005136633A (ja) * 2003-10-29 2005-05-26 Sony Corp 動画像符号化装置および動画像符号化制御方法
JP2006054529A (ja) * 2004-08-10 2006-02-23 Victor Co Of Japan Ltd Mpeg画像データ記録装置及びmpeg画像データ記録方法
JP2008085673A (ja) 2006-09-27 2008-04-10 Toshiba Corp 動画像符号化装置及びその方法
JP2008252562A (ja) 2007-03-30 2008-10-16 Renesas Technology Corp 動画像符号化制御方法および動画像符号化装置
JP2009004897A (ja) * 2007-06-19 2009-01-08 Panasonic Corp 動画像符号化装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11749805B2 (en) 2020-01-28 2023-09-05 Ricoh Company, Ltd. Liquid composition for forming electrochemical device, method of manufacturing electrodes, method of manufacturing electrochemical device and electrodes

Also Published As

Publication number Publication date
CN102318345A (zh) 2012-01-11
KR101280700B1 (ko) 2013-07-01
EP2403248B1 (en) 2018-07-04
EP2403248A1 (en) 2012-01-04
US20110292995A1 (en) 2011-12-01
JP5152402B2 (ja) 2013-02-27
JPWO2010097946A1 (ja) 2012-08-30
KR20110105875A (ko) 2011-09-27
CN102318345B (zh) 2014-07-30
EP2403248A4 (en) 2014-11-05
US9025664B2 (en) 2015-05-05

Similar Documents

Publication Publication Date Title
JP5152402B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP5072893B2 (ja) 画像符号化方法および画像復号化方法
US7301999B2 (en) Quantization method and system for video MPEG applications and computer program product therefor
JP5472105B2 (ja) 画像処理装置及び画像処理方法
US9479781B2 (en) Motion video encoding apparatus, motion video encoding method, and motion video encoding computer program
KR20090108026A (ko) 비디오 코딩 표준에 대한 개선된 비디오율 제어
JP4853647B2 (ja) 動画像変換方法、動画像変換装置、動画像変換システムおよびサーバ装置並びにプログラム
JP2005072742A (ja) 符号化装置及び符号化方法
KR100588795B1 (ko) 부호화 장치 및 부호화 방법
JP5708490B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
JP2004523985A (ja) ビデオ符号化方法及びこれに対応する符号化装置
JP5136470B2 (ja) 動画像符号化装置及び動画像符号化方法
JP2007235989A (ja) 画像処理装置および画像処理方法、プログラム、並びに、記録媒体
JP3889552B2 (ja) 符号量割り当て装置および方法
JP4193080B2 (ja) 符号化装置及び方法
JP2009246489A (ja) 映像信号切替装置
JP4844595B2 (ja) 階層符号化装置、非階層符号化変換装置、階層符号化プログラム、および非階層符号化変換プログラム
JP4035747B2 (ja) 符号化装置および符号化方法
JP6874844B2 (ja) 動画像符号化装置、動画像符号化方法、及び、動画像符号化プログラム
JP4539028B2 (ja) 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
JP4390009B2 (ja) 符号化装置及び方法、画像処理システム
KR20010060591A (ko) 동영상 부호화기의 비트율 제어장치
JP2002330441A (ja) 符号化方法、符号化方法のプログラム、符号化方法のプログラムを記録した記録媒体及び符号化装置
JP2004312087A (ja) 動画像符号化装置
JP2001145108A (ja) 画像情報変換装置及び方法

Legal Events

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

Ref document number: 200980156661.0

Country of ref document: CN

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

Ref document number: 09840799

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2011501428

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2009840799

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20117019839

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE