WO2012042916A1 - 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム - Google Patents
動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム Download PDFInfo
- Publication number
- WO2012042916A1 WO2012042916A1 PCT/JP2011/050462 JP2011050462W WO2012042916A1 WO 2012042916 A1 WO2012042916 A1 WO 2012042916A1 JP 2011050462 W JP2011050462 W JP 2011050462W WO 2012042916 A1 WO2012042916 A1 WO 2012042916A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- group
- block
- bit
- decoding
- picture
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 68
- 238000004590 computer program Methods 0.000 title claims description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 description 45
- 238000013139 quantization Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- YEPGIYSLLAGBSS-UHFFFAOYSA-M chloro-[3-[(4-iodophenyl)carbamoylamino]-2-methoxypropyl]mercury Chemical compound Cl[Hg]CC(OC)CNC(=O)NC1=CC=C(I)C=C1 YEPGIYSLLAGBSS-UHFFFAOYSA-M 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
Definitions
- the present invention relates to, for example, a moving picture coding apparatus, a moving picture coding method, and a moving picture coding computer program for dividing each picture into a plurality of blocks and coding each block.
- each picture is coded according to one of coding modes having different compression efficiencies.
- each picture includes an intra-picture prediction picture (I picture) encoded using only intra-picture prediction, a unidirectional prediction picture (P picture) using inter-picture prediction, and a bidirectional prediction picture (B picture).
- I picture intra-picture prediction picture
- P picture unidirectional prediction picture
- B picture bidirectional prediction picture
- I picture intra-picture prediction picture
- P picture unidirectional prediction picture
- B picture bidirectional prediction picture
- the amount of code generated varies depending on the type of picture or the complexity of the image, and the amount of code generated at each time is biased. For this reason, in order to transmit a data stream including a moving image encoded at a constant transmission rate, a stream transmission buffer and a reception buffer are required.
- the occurrence of buffer delay due to this buffer is one factor of display delay in the video decoding device. If the buffer size is reduced, the degree of freedom of code amount distribution between pictures is reduced, so that the moving picture decoding apparatus can
- MPEG-2 Video (ISO / IEC 13818-2 / ITU-T H.262, hereinafter referred to as MPEG-2) or MPEG-4 AVC / H.264 (ISO / IEC) 14496-10 / ITU-T H.264 (hereinafter referred to as H.264) defines the operation of the stream reception buffer in an ideal decoding device called Video Buffering Verifier (VBV) and Coded Picture Buffer (CPB), respectively. Yes.
- the moving picture encoding apparatus must control the code amount so that the reception buffer of the ideal decoding apparatus does not overflow and underflow.
- the ideal decoding device is defined to perform instantaneous decoding in which the time required for the decoding process is zero.
- Patent Document 1 discloses a method for controlling a moving picture coding apparatus related to VBV.
- the moving image encoding device confirms that the data of the picture is aligned in the reception buffer at the time when the ideal decoding device decodes a certain picture.
- the code amount is controlled so as to guarantee.
- Underflow in the reception buffer means that when the video encoding device transmits a data stream at a constant transmission rate, the amount of code of each picture is large, and a picture is not displayed until the time when the video decoding device should decode and display it.
- the transmission of data necessary for decoding is not completed, and the necessary data does not exist in the decoding reception buffer. In this case, since the video decoding device cannot perform the decoding process, frame skip occurs.
- the moving image decoding apparatus displays the picture after delaying the stream by a predetermined time from the reception time so that the decoding process can be performed without causing an underflow of the reception buffer.
- the decoding process is instantaneously completed at the processing time 0. Therefore, if the input time of the i-th picture to the video encoding device is t (i) and the decoding time of the i-th picture in the ideal decoding device is dt (i), the time at which the picture can be displayed is Similarly, dt (i).
- a solid line graph 100 represents the buffer occupancy at each time.
- the buffer occupancy is restored at a predetermined transmission rate, and data used for decoding the picture is extracted from the buffer at the decoding time of each picture.
- the i-th picture data starts to be input to the reception buffer at time at (i), and the last data of the i-th picture is input at time ft (i).
- the ideal decoding apparatus completes decoding of the i-th picture at time dt (i), and can display the i-th picture at time dt (i).
- an actual moving image decoding device requires a predetermined decoding processing time.
- the decoding processing time of one picture is shorter than the picture display period, but the picture display period A time close to is required.
- the data of the i-th picture is input to the reception buffer from time at (i) to ft (i), but the data necessary for decoding each block arrives at any time within at ft (i) from at (i) Or is not guaranteed. Therefore, the actual video decoding device starts decoding the i-th picture from time ft (i). Therefore, if the worst processing time required for the decoding process for one picture is ct, the actual moving picture decoding apparatus can guarantee that the decoding process is completed only at time ft (i) + ct.
- the video encoding apparatus guarantees that data necessary for decoding the picture has arrived at the decoding reception buffer by time dt (i), that is, ft (i) is dt (i ) It will be before. Therefore, when ft (i) is the slowest, ft (i) is equal to dt (i). At this time, the time when the decoding process is guaranteed to be completed is dt (i) + ct.
- the moving picture decoding apparatus In order to display all the pictures so that the interval between pictures to be displayed is constant, the moving picture decoding apparatus must delay the display time of each picture by at least ct from the ideal decoding apparatus.
- a moving picture coding apparatus that divides and encodes each picture included in moving picture data into a plurality of blocks.
- This moving image encoding apparatus represents a group determination unit that determines a group to which each block belongs, a group decoding time information calculation unit that calculates a decoding time for each group, and a group to which each block belongs.
- a group information adding unit for adding group information to output data, and a decoding time information calculating unit when data necessary for decoding all blocks included in the group is transmitted to the video decoding device at a predetermined transmission rate.
- a code amount control unit for controlling the code amount of each block included in the group so as to reach the stream reception buffer of the video decoding device by the decoding time of the group calculated in
- an encoding processor that encodes each block based on the block.
- a moving picture coding method for coding each picture included in moving picture data by dividing it into a plurality of blocks.
- This video coding method determines a group to which each block belongs among a plurality of groups, calculates a decoding time for each group, adds group information representing the group to which each block belongs to output data, When the data necessary for decoding all the included blocks is transmitted to the video decoding device at a predetermined transmission rate, so that it reaches the stream reception buffer of the video decoding device by the decoding time of the group, This includes controlling the code amount of each block included in the group, and encoding each block based on the control information of the code amount.
- a moving picture coding computer program that divides and encodes each picture included in moving picture data into a plurality of blocks.
- This moving image encoding computer program determines a group to which each block belongs among a plurality of groups, calculates a decoding time for each group, adds group information representing the group to which each block belongs to output data, When data necessary for decoding all the blocks included in the group is transmitted to the video decoding device at a predetermined transmission rate, it reaches the stream reception buffer of the video decoding device by the decoding time of the group.
- an instruction for controlling the code amount of each block included in the group and causing the computer to encode each block based on the control information of the code amount is included.
- the moving picture coding apparatus and the moving picture coding method disclosed in this specification can reduce the delay of the decoding process.
- FIG. 1 is a diagram illustrating a transition of the buffer occupation amount of the reception buffer according to the conventional technique.
- FIG. 2 is a schematic configuration diagram of a video encoding device according to one embodiment.
- FIG. 3 is a diagram illustrating a transition of the buffer occupancy of the reception buffer in which the encoded moving image data stream transmitted by the moving image encoding device according to the embodiment is accumulated.
- FIG. 4 is a diagram illustrating a transition of the buffer occupancy of the reception buffer when the decoding time of the first group is delayed.
- FIG. 5 is a diagram illustrating an operation flowchart of a moving image encoding process according to an embodiment.
- FIG. 6 is an explanatory diagram of the last bit of the block according to the first embodiment.
- FIG. 7 is an explanatory diagram of the last bit of the block according to the second embodiment.
- FIG. 8A is a diagram illustrating a structure of compressed data of one block according to the third embodiment.
- FIG. 8B is a diagram for explaining the relationship between compressed data and a bit string converted by variable-length coding.
- FIG. 9A is a flowchart (1) for deriving the final bit position of a block that has been variable-length encoded by the variable-length encoding unit according to the third embodiment.
- FIG. 9B is a flowchart (2) for deriving the final bit position of the block that has been variable-length encoded by the variable-length encoding unit according to the third embodiment.
- FIG. 9A is a flowchart (1) for deriving the final bit position of a block that has been variable-length encoded by the variable-length encoding unit according to the third embodiment.
- FIG. 9B is a flowchart (2) for deriving the final bit position of the block that has been variable-length encoded
- FIG. 9C is a flowchart (3) for deriving the final bit position of the block that has been variable-length encoded by the variable-length encoding unit according to the third embodiment.
- FIG. 10 is a schematic configuration diagram of an entropy encoding unit included in a variable length encoding unit according to the fourth embodiment.
- FIG. 11 is an explanatory diagram of the last bit of the block according to the fourth embodiment.
- FIG. 12 is an explanatory diagram of the behavior of the bin coding unit and the multiplexing unit of the variable length coding unit according to the fourth embodiment.
- FIG. 13A is a flowchart (1) for deriving the final bit position of a block that has been variable-length encoded by the variable-length encoding unit according to the fourth embodiment.
- FIG. 10 is a schematic configuration diagram of an entropy encoding unit included in a variable length encoding unit according to the fourth embodiment.
- FIG. 11 is an explanatory diagram of the last bit of the block according to the fourth embodiment.
- FIG. 13B is a flowchart (2) for deriving the final bit position of the block that has been variable-length encoded by the variable-length encoding unit according to the fourth embodiment.
- FIG. 13C is a flowchart (3) for deriving the final bit position of the variable-length encoded block by the variable-length encoding unit according to the fourth embodiment.
- FIG. 2 is a schematic configuration diagram of a video encoding device according to one embodiment.
- the moving image encoding apparatus 10 includes an encoding processing unit 11, a code amount control unit 12, a group determination unit 13, a group decoding time information calculation unit 14, a group information addition unit 15, and a bit counter 25. .
- Each of these units included in the video encoding device 10 is mounted on the video encoding device 10 as a separate circuit.
- these units included in the video encoding device 10 may be mounted on the video encoding device 10 as a single integrated circuit in which circuits that realize the functions of the units are integrated.
- each of these units included in the moving image encoding device 10 may be a functional module realized by a computer program executed on a processor included in the moving image encoding device 10.
- the encoding target picture included in the moving image data is divided into blocks by a control unit (not shown), and is input to the encoding processing unit 11 for each block.
- Each block has, for example, 16 ⁇ 16 pixels.
- Each block is input to the orthogonal transform unit 21.
- the orthogonal transform unit 21 performs an orthogonal transform process such as a discrete cosine transform (DCT) on each block to calculate a set of frequency coefficients.
- the calculated set of frequency coefficients is input to the quantization unit 22.
- a prediction error image obtained by a difference calculation between each block and the predicted image is an orthogonal transform unit. 21 may be input.
- the picture may be either a frame or a field.
- a frame is one still image in moving image data
- a field is a still image obtained by extracting only odd-numbered data or even-numbered data from a frame.
- the encoded moving image may be a color moving image or a monochrome moving image.
- the quantization unit 22 divides each frequency coefficient by a quantization scale determined according to the quantization value calculated by the quantization value calculation unit 24 of the code amount control unit 12, for example. Quantize. By this quantization, information on each frequency coefficient is reduced. As the quantized value increases, the accuracy of quantization deteriorates, and information on each frequency coefficient is greatly reduced.
- Each frequency coefficient quantized by the quantization unit 22 is input to the variable length coding unit 23.
- Each quantized frequency coefficient may be inversely quantized in order to create a predicted image for a picture or block to be encoded later, further inversely orthogonal transformed, and stored in an image memory (not shown).
- the variable length coding unit 23 performs variable length coding on the compressed data of a block (including quantized frequency coefficients and block header information such as a coding mode). Then, the variable length coding unit 23 includes the bit sequence represented by the variable length code in the output data stream. In addition, the bit amount of the bit sequence generated by the variable length encoding unit 23 is added by the bit counter 25 for each block, and the generated code amount is notified to the buffer occupation amount calculation unit 26 of the code amount control unit 12. Details of the embodiment of the variable length encoding unit 23 will be described later.
- the group determination unit 13 determines the group to which the block being encoded belongs, according to a predetermined method based on block count information received from a control unit (not shown).
- the block count information is information representing the number of each block included in the picture. For example, the number for the upper left block of the picture is set to 1, and the number is assigned to each block according to the raster scan order. The largest number is assigned to the block at the lower right of the picture.
- the block count information may include a number assigned to each block according to another order.
- the group determination unit 13 preferably determines a plurality of groups so that the number of blocks included in each group is as equal as possible in order to equalize the decoding processing time for each group.
- the group determination unit 13 can equalize the number of blocks included in each group in an arbitrary picture size by dividing each block into groups in units of block lines. For example, if the picture size is 1920 pixels ⁇ 1088 pixels equivalent to high definition television broadcasting (High Definition Television, HDTV), and the block size is 16 pixels ⁇ 16 pixels, the number of block lines is 68. Therefore, in this case, each block included in the encoding target picture is classified into one of 68 groups.
- the number of blocks included in the group may be a value between 1 and the number of blocks in the entire screen.
- the group determination unit 13 notifies the identification information of the group to which the encoding target block belongs to the buffer occupation amount calculation unit 26 of the code amount control unit 12. Further, the group determination unit 13 notifies the group decoding time information calculation unit 14 and the group information addition unit 15 of the total number N of groups. The group determination unit 13 may notify the group information addition unit 15 of the index of the block located at the head of each group.
- the number of blocks in the horizontal direction included in the picture to be encoded is M and the number of blocks in the vertical direction is N, and all blocks are equally divided into N groups in units of one block line.
- the group decoding time information calculation unit 14 uses ⁇ dgt (i, n) -dgt (i, n-1) equivalent to dgt (i, n) as the decoding time instead of dgt (i, n). ⁇ May be calculated. Further, the group decoding time information calculation unit 14 may round the decoding time so as to be an appropriate unit, for example, a multiple of 1/90000 second unit.
- dt (i) and dt (i-1) are decoding times of the i-th picture and the (i-1) -th picture, respectively.
- the group decoding time information calculation unit 14 may determine the decoding time dgt (i, n) (n ⁇ 2) of the group encoded / decoded after the second as the following equation. By determining the decoding time in this way, the group decoding time information calculation unit 14 can increase the buffer occupancy calculated by the buffer occupancy calculation unit 26 before starting the encoding process of the first group. . As a result, the degree of freedom in code amount control is improved.
- the group decoding time information calculation unit 14 outputs decoding time information including the decoding time of each group to the buffer occupation amount calculation unit 26 and the group information addition unit 15.
- the buffer occupation amount calculation unit 26 calculates an estimated value of the buffer occupation amount of the stream reception buffer of the ideal decoding device.
- the transmission bit rate is R, and the buffer occupancy is represented by d.
- b is notified from the bit counter 25 to the buffer occupation amount calculation unit 26.
- the buffer occupation amount calculation unit 26 subtracts b from d.
- the buffer occupancy calculator 26 recovers the buffer occupancy d according to the following equation after the encoding process of the last block of each group is performed.
- the buffer occupancy calculating unit 26 notifies the quantized value calculating unit 24 of the obtained buffer occupying amount d every time the variable length encoding process for one block is completed.
- the quantization value calculation unit 24 calculates a quantization value for each block based on the buffer occupancy. At that time, the quantization value calculation unit 24 makes the total generated code amount of all the blocks included in the group equal to or less than the buffer occupation amount d immediately before starting the encoding process of the first block of the group. That is, the quantized value is controlled so that d does not become a negative value during the encoding process. For example, the quantization value calculation unit 24 calculates the quantization value according to the quantization value calculation method in the standardization organization reference software Test Model 5 (see Non-Patent Document 1) in MPEG-2. Next, the quantized value calculation unit 24 compares the buffer occupation amount d with a predetermined threshold value DTH1.
- the quantized value is the maximum of the range of possible values
- the maximum code amount generated in each block is b0, and the group to which the block being encoded belongs still has not been encoded.
- the threshold value DTH1 is expressed by the following equation.
- the offset in equation (5) is a margin term.
- the quantized value calculation unit 24 sets the quantized value to the maximum value.
- b0 the code amount of the block when the frequency coefficients are all 0 may be used.
- the quantization value calculation unit 24 determines the quantization value so that all the frequency coefficients of the encoding target block are quantized to 0. With this control, the virtual decoding reception buffer does not underflow unless the average value of the code amount of the remaining blocks that have not been subjected to the encoding process in the group exceeds b0. Thus, if the code amount control unit 12 actually transmits the output stream from the video encoding device 10 to the video decoding device according to the predetermined rate R, the reception buffer of the video decoding device does not underflow. It is possible to control the code amount of moving image data. The quantization value calculation unit 24 notifies the quantization unit 22 of the obtained quantization value.
- the moving picture encoding device 10 includes at least group information representing blocks belonging to each group and the decoding time of each group Decoding time information is added to the output data stream. Then, the moving image encoding device 10 notifies the moving image decoding device of group information and decoding time information. Therefore, the group information adding unit 15 adds group information to the header information of the output data stream at each picture or at a predetermined picture interval, for example.
- the header information can be, for example, a sequence header defined in MPEG-2, a sequence parameter set defined in H.264, or supplemental enhancement information.
- the decoding time for each group is added to the header information that is always attached to each picture, such as the picture header specified in MPEG-2 (Picture Header) or the slice header specified in H.264 (Slice Header). May be.
- the moving picture encoding apparatus 10 When the groups are determined so that the number of blocks included in each group is equal, the moving picture encoding apparatus 10 notifies the moving picture decoding apparatus that all the blocks are equally divided into N groups. Therefore, the group number N is notified from the group determination unit 13 to the group information addition unit 15 as group information.
- the group information adding unit 15 encodes the group information.
- encoding is performed in block units of 16 ⁇ 16 pixels called macroblocks, and the number of blocks does not exceed the range that can usually be expressed in 20 bits. Since the maximum value of the number N of groups is at most equal to the maximum value of the number of blocks, encoding of N may be performed with a fixed bit length.
- the group determination unit 13 notifies the group information addition unit 15 of the group block number N and the index information of the first block of each group as group information. Is done.
- the group information adding unit 15 first encodes the number N of groups, and sequentially encodes index information of the first block of each group.
- a fixed bit length encoding method is used as the encoding method for the index information of the first block.
- the group information adding unit 15 may use another encoding method such as a variable length encoding method such as a Huffman code in order to encode the number N of groups and the index information of the head block of each group.
- the decoding time for each group is notified from the group decoding time information calculation unit 14 to the group information addition unit 15.
- the decoding time is calculated in the form of difference value dgt (i, n) -dgt (i, n-1) and group decoding time information is calculated.
- the group 14 is notified to the group information adding unit 15.
- the group information adding unit 15 encodes the decoding time of each group, adds the encoded decoding time to the data of each picture, and notifies the moving picture decoding apparatus.
- the group information adding unit 15 may quantize each difference value with an appropriate accuracy, for example, with an accuracy of 1/90000 seconds, and then encode it with a fixed bit length of about 32 bits.
- the group information addition unit 15 may encode the difference value indicating the decoding time of each group using an arbitrary variable length encoding method. Good.
- the video decoding device calculates the display delay amount based on the notified number N of groups and the decoding time information of each group. When each group is set so that the number of blocks included in each group is equal, the display delay amount is ct / N, where ct is the worst processing time required for decoding one picture.
- FIG. 3 is a diagram illustrating transition of the buffer occupancy of the reception buffer in which the encoded moving image data stream transmitted by the moving image encoding device 10 is accumulated.
- a graph 300 in FIG. 3 represents a time transition of the buffer occupation amount.
- a period indicated by an arrow 301 represents a maximum time ct / N required for decoding each group.
- the graph 400 in FIG. 4 represents the time transition of the buffer occupancy.
- the moving picture coding apparatus 10 is arranged so that the data necessary for decoding the block included in the nth group arrives at the reception buffer by the time dgt (i, n) represented by the equation (1). Control the code amount of each block.
- the following equation is established as shown in FIG.
- the decoding processing for the blocks in the 1st to (N-1) th groups is completed. If the data necessary for decoding the block included in the Nth group arrives at the reception buffer of the video decoding device at time dgt (i, N), the decoding process is performed assuming that the decoding process of the Nth group is started from there. Ct / N is required as time. Therefore, the decoding of all the blocks is completed at the time indicated by the following formula, and display is possible. Therefore, the delay of the displayable time for the ideal decoding device is shortened from ct to ct / N.
- the decoding time dgt (i, 1) of the first group of the i-th picture is compared with the decoding time dt (i) of the i-th picture by comparing ⁇ dt (i ) -dt (i-1) ⁇ (N-1) / N. Therefore, as shown by the buffer occupancy for each picture indicated by the dotted line 302 in FIGS. 1 and 3, the occupancy of the reception buffer is reduced as compared with the prior art, and the code amount usable for the group is reduced. In addition, the degree of freedom of code amount distribution among the groups decreases. As shown in FIG. 1, since the buffer occupancy becomes small in a low delay in which each picture is decoded within the display period of one picture after the data of each picture is input to the reception buffer, The effect of reducing the buffer occupancy is increased.
- the decoding time of the first group is a function that returns the smaller value of the variables x and y.
- FIG. 5 is an operation flowchart of a video encoding process executed by the video encoding device 10 according to an embodiment.
- the moving image encoding device 10 executes the following moving image encoding processing for each picture.
- the group determining unit 13 determines a group to which each block belongs (step S101). Then, the group determination unit 13 notifies the identification information indicating the group to which the block belongs to the buffer occupation amount calculation unit 26 of the code amount control unit 12. Further, the group determination unit 13 notifies the group decoding time information calculation unit 14 and the group information addition unit 15 of the total number N of groups. The group determination unit 13 may notify the group information addition unit 15 of the index of the block located at the head of each group.
- the group decoding time information calculation unit 14 calculates a decoding time for each group (step S102). The group decoding time information calculation unit 14 notifies the buffer occupation amount calculation unit 26 and the group information addition unit 15 of information indicating the decoding time of each group.
- the group information adding unit 15 encodes group information and decoding time information representing a group to which each block belongs, and adds the encoded group information and decoding time information to the output data stream (step S103).
- the buffer occupancy amount calculation unit 26 when data necessary for decoding all the blocks included in the group is transmitted to the video decoding device at a predetermined transmission rate, the reception buffer at the decoding time of each group.
- the buffer occupation amount is estimated (step S104). At that time, the buffer occupation amount calculation unit 26 refers to the code amount of the block in the group that has been encoded so far, received from the bit counter 25. Then, the buffer occupation amount calculation unit 26 notifies the estimated buffer occupation amount to the quantized value calculation unit 24 of the code amount control unit 12.
- the quantized value calculation unit 24 controls the code amount of blocks belonging to each group so that all the data of each group reaches the stream reception buffer of the video decoding device by the decoding time of each group (step S105). ). Then, the quantization value calculation unit 24 calculates a quantization value corresponding to the code amount as control information for the code amount, and notifies the quantization unit 22 of the encoding processing unit 11 of the quantization value.
- the orthogonal transform unit 21 of the encoding processing unit 11 performs an orthogonal transform process for each block, and calculates a set of frequency coefficients for each block (step S106). Then, the orthogonal transform unit 21 outputs a set of frequency coefficients of each block to the quantization unit 22.
- the quantization unit 22 quantizes the set of frequency coefficients of each block based on the quantization value that is the control information of the code amount (step S107). Then, the quantization unit 22 outputs each quantized frequency coefficient to the variable length coding unit 23 of the coding processing unit 11.
- the variable length coding unit 23 performs variable length coding on each quantized frequency coefficient (step S108). Then, the variable length encoding unit 23 outputs the obtained variable length code.
- variable length code the group information output from the group information adding unit 15, the decoding time information, and the like are stored in the output data stream.
- the variable length encoding unit 23 outputs the code amount for each block to the bit counter 25. After step S108, the moving image encoding device 10 ends the moving image encoding process.
- the last bit of the group is defined as the last bit of the last block in the group.
- variable length coding unit 23 performs variable length coding on compressed data of a block in accordance with Context-based Adaptive Variable Variable Length (Coding) (CAVLC) defined in MPEG-4 / AVC / H.264. To do.
- CAVLC Context-based Adaptive Variable Variable Length
- FIG. 6 is an explanatory diagram of the last bit of each block in the output data stream generated by the variable length coding unit 23 according to the first embodiment.
- the compressed data 1100 of one block shown at the top includes a macroblock skip run (hereinafter referred to as MbSkipRun) 1110 and a macroblock layer (hereinafter referred to as MacroblockLayer) 1111. May be included.
- MbSkipRun macroblock skip run
- MacroblockLayer macroblock layer
- MbSkipRun 1110 represents the number of skipped blocks between the previous block and the current block. Therefore, if MbSkipRun 1110 is 0, all blocks between the previous block and the current block are not skipped.
- MacroblockLayer 1111 is block compression data such as block coding type, motion vector information, and quantized DCT coefficients. Block skipping means that MacroblockLayer 1111 of the skipped block is not included in the output data stream. If the picture is an intra-coded picture, block skipping is not allowed, so MbSkipRun 1110 is always 0. Therefore, MbSkipRun 1110 is not included in the output data stream.
- bit string 1200 in the output data stream corresponds to the bit string 1202 related to the compressed data of the final block x and the block ( ⁇ (x ⁇ 1)) before the final block x (x is an integer of 1 or more).
- the entire bit string 1201 is included.
- Code 0 is a bit string obtained by variable-length coding MbSkipRun
- N [x] is the number of elements of the MacroblockLayer of the last block x.
- the last bit of the last block x is the last bit of the bit string Code N [x] indicated by the arrow 1210.
- the bit string 1300 in the output data stream includes a bit string 1301 related to the block (xL) immediately before the skipped block and a bit string 1302 related to the block x immediately after the skipped block.
- the bit string 1301 is a bit string obtained by variable-length coding the MbSkipRun and MacroblockLayer of the block (xL).
- the bit string 1302 is a bit string obtained by variable-length encoding MbSkipRun and MacroblockLayer of the block x.
- Code 0 corresponding to MbSkipRun included in the bit string 1302 is a bit string obtained by variable-length encoding the value (L-1).
- the last bit of the block x is the last bit of Code N [x] included in the bit string 1302 indicated by the arrow 1311.
- MbSkipRun is (L-1) (where (L-1)> 0), and in the output data stream, the next slice header belonging to the same picture appears before the MacroblockLayer of the subsequent block
- the bit string 1401 related to the block y immediately before the skipped block and MbSkipRun corresponding to the block after the skipped block (y + 1) are variable-length encoded.
- a bit string 1402 is included.
- a bit string 1401 is a bit string obtained by variable-length encoding the MbSkipRun and MacroblockLayer of the block y.
- Code 0 included in the bit string 1402 is a bit string obtained by variable-length coding the value (L-1).
- the bit string 1400 includes a bit string (hereinafter referred to as RbspTrailingBits) 1403 that represents the end of the slice and a slice header (hereinafter referred to as SliceHeader) 1404 that is a bit string that represents the head of the next slice.
- RbspTrailingBits 1403 is a bit string having a predetermined value that represents the end of the bit string of the slice before the appearance of this RbspTrailingBits.
- the RbspTrailingBits 1403 is set so that the moving picture decoding apparatus can recognize that it is the end of the slice by referring to at least the first bit of the RbspTrailingBits 1403.
- the slice header 1404 includes a parameter FirstMbInSlice that means the block address of the head of the slice. In this example, the parameter FirstMbInSlice is assumed to be z.
- MbSkipRun is (L-1) (where (L-1)> 0), and in the output data stream, the slice header belonging to another picture or the MacroblockLayer of the block following the picture header is preceded
- L-1 the bit string 1501 related to the block y immediately before the skipped block and MbSkipRun corresponding to the block after the skipped block (y + 1) are variable-length encoded.
- a bit string 1502 is included.
- a bit string 1501 is a bit string obtained by variable-length coding the MbSkipRun and MacroblockLayer of the block y.
- Code 0 included in the bit string 1502 is a bit string obtained by variable-length encoding the value (L-1).
- the bit string 1500 includes RbspTrailingBits 1503 that represents the end of the slice, a picture header 1504 that represents the head of the next picture, and a SliceHeader 1505 that is a bit string that represents the head of the next slice.
- RbspTrailingBits 1503 that represents the end of the slice
- picture header 1504 that represents the head of the next picture
- SliceHeader 1505 that is a bit string that represents the head of the next slice.
- the value of the parameter FirstMbInSlice included in the SliceHeader 1505 is 0.
- variable length coding unit 23 also performs variable length coding on the compressed data of the block in accordance with CAVLC defined in MPEG-4 AVC / H.264.
- a macro block skip flag representing that each block has been skipped. Is used.
- a split flag indicating whether or not the block is divided is added to the compressed data of each block.
- FIG. 7 is an explanatory diagram of the last bit of each block in the output data stream generated by the variable length coding unit 23 according to the second embodiment.
- the compressed data 2100 of one block may include a split flag (hereinafter referred to as “MbSplitFlag”) 2110, a skip flag (hereinafter referred to as “MbSkipFlag”) 2111, and a MacroblockLayer 2112 in order from the top.
- MbSplitFlag split flag
- MbSkipFlag skip flag
- MacroblockLayer 2112 MacroblockLayer
- MbSplitFlag 2110 represents whether or not the current block (for example, a macro block of 16 pixels ⁇ 16 pixels) is divided into four sub-blocks (for example, a block of 8 pixels ⁇ 8 pixels). For example, if the current block is divided, MbSplitFlag 2110 becomes “1”, while if the current block is not divided or the current block is skipped, MbSplitFlag 2110 becomes “0”. Become. MbSkipFlag 2111 indicates whether or not the current block is skipped. For example, when the current block is skipped, the MbSkipFlag 2111 becomes “1”, and when the current block is not skipped, the MbSkipFlag 2111 becomes “0”.
- Macroblock Layer 2112 is block compression data such as block coding type, motion vector information, and quantized DCT coefficients. Block skip means that MacroblockLayer 2112 of the skipped block is not included in the output data stream.
- the MbSkipFlag 2111 when the current block is divided, the MbSkipFlag 2111 is regarded as “0”, so the MbSkipFlag 2111 may be omitted in the output data stream.
- the compressed data of each of the four sub-blocks is stored in the output data stream following MbSplitFlag 2110. If the picture is an intra-coded picture, block skipping is not allowed, so MbSkipFlag 2111 is always “0”. Therefore, the MbSkipFlag 2111 is not included in the output data stream.
- bit string 2200 in the output data stream corresponds to the bit string 2202 relating to the compressed data of the final block x and the block ( ⁇ (x ⁇ 1)) before the final block x (x is an integer of 1 or more).
- the entire bit string 2201 to be included is included.
- Code 0 next to the bit string 2202 represents a bit string related to the compressed data of the block (x + 1).
- Sp is a bit string obtained by variable-length coding MbSplitFlag
- Sk is a bit string obtained by variable-length coding MbSkipFlag.
- N [x] is the number of elements of the MacroblockLayer of the last block x.
- the last bit of the last block x is the last bit of the bit string Code N [x] indicated by the arrow 2210.
- Code 0 next to the bit string 2302 represents a bit string related to the compressed data of the block (x + 1).
- the bit string 2400 in the output data stream includes a bit string 2401 related to the compressed data of the block y immediately before the skipped block.
- the bit string 2400 includes RbspTrailingBits 2403 that represents the end of the slice and SliceHeader 2404 that represents the head of the next slice.
- RbspTrailingBits 2403 is a bit string having a predetermined value that represents the end of the bit string of the slice before the appearance of this RbspTrailingBits.
- the RbspTrailingBits 2403 is set so that the moving picture decoding apparatus can recognize the end of the slice by referring to at least the first bit of the RbspTrailingBits 2403.
- the slice header 2404 includes a parameter FirstMbInSlice that means the block address of the head of the slice. In this example, the parameter FirstMbInSlice is assumed to be z.
- the bit string 2500 includes an RbspTrailingBits 2503 that represents the end of the slice, a picture header 2504 that represents the head of the next picture, and a SliceHeader 2505 that is a bit string that represents the head of the next slice.
- RbspTrailingBits 2503 that represents the end of the slice
- picture header 2504 that represents the head of the next picture
- SliceHeader 2505 that is a bit string that represents the head of the next slice.
- the value of the parameter FirstMbInSlice included in the SliceHeader 2505 is 0.
- the last bit is the first bit of the bit string RbspTrailingBits 2503 indicated by the arrow 2511. Note that the last bit in this case may be set to a bit after the first bit in the bit string RbspTrailingBits 2503.
- MbSplitFlag may be omitted. Even if MbSplitFlag is omitted, the last bit of the last block is determined as described above with respect to FIG.
- variable length coding unit 23 performs variable length coding on the compressed data of the block in accordance with Content-based Adaptive Binary Arithmetic Coding (CABAC) defined in MPEG-4 AVC / H.264. .
- CABAC is an example of arithmetic coding processing.
- FIG. 8A shows a structure of compressed data of one block.
- the compressed data 3100 of one block may include an MbSkipFlag 3110, a MacroblockLayer 3111, and a slice end flag (hereinafter referred to as EndOfSliceFlag) 3112 in order from the top.
- MbSkipFlag 3110 represents whether or not the current block is skipped. For example, if the current block is skipped, the MbSkipFlag 3110 is “1”, while if the current block is not skipped, the MbSkipFlag 3110 is “0”.
- MacroblockLayer 3111 is block compression data such as block coding type, motion vector information, and quantized DCT coefficients.
- Block skipping means that MacroblockLayer 3111 of the skipped block is not included in the output data stream. If the picture is an intra-coded picture, block skipping is not allowed, so MbSkipFlag 3110 is always “0”. Therefore, MbSkipFlag 3110 is not included in the output data stream.
- EndOfSliceFlag 3112 indicates whether the current block is the last block of the slice. For example, if the current block is the last block, EndOfSliceFlag 3112 is “1”, while if the current block is not the last block, EndOfSliceFlag 3112 is “0”.
- FIG. 8B is a diagram for explaining the relationship between compressed data and a bit string converted by variable-length coding.
- CABAC applies arithmetic coding to each bit of compressed data. For this reason, the relationship between the converted bit string and the compressed data before conversion is not one-to-one.
- One bit in the converted bit string may correspond to a plurality of bits of the compressed data.
- a bit string 3210 which is an example of a bit string of the output data stream, includes 12 bits.
- the dot set 3211 represents bins included in the compressed data obtained by arithmetic decoding of the bit string 3210 corresponding to each bit included in the bit string 3210.
- a bin is a binary representation of compressed data, and is a bit or bit string in compressed data corresponding to each codeword.
- the bit string 3210 corresponds to bin 0 to bin 7.
- Bins 0 to 2 are included in block 0, bins 3 to 5 are included in block 1, bin 6 is included in block 2, and bin 7 is included in block 3.
- the bit included in the converted bit string 3210 shown above the dot is used to decode the bin shown on the left side of the dot. Represents. For example, bin 0 is decoded using the 0th bit and the 1st bit. Bin 1 is decoded using the first bit.
- Bin 5 is decoded using the 3rd to 11th bits.
- the final bit of the block encoded by CABAC is the last bit of the bit string used for decoding bin x included in the compressed data of the block.
- the bin x is the last bit when the compressed data of the block is binarized in order.
- the last bit of the block 0 is the third bit of the bit string 3210 indicated by the arrow 3250.
- the last bit of each of the blocks 1 to 3 is the 11th bit of the bit string 3210 indicated by the arrow 3251. In this way, a plurality of blocks may have a common final bit.
- the final bit of the binary data of the compressed data of the block is always EndOfSliceFlag.
- the last bit of the xth block in the picture is the last bit in the bit string used for decoding the xth EndOfSliceFlag.
- FIGS. 9A to 9C are flowcharts of processing for specifying the last bit of the group in the bit stream of the output data according to the third embodiment.
- the variable length coding unit 23 of the moving picture coding apparatus 10 positions the last bit of the last block belonging to the jth group G (i, j) of the ith picture in the bitstream of the output data.
- Derive BitEnd (i, j) When the bit at the position of BitEnd (i, j) is input to the transmission buffer of the moving image encoding device 10, the moving image encoding device 10 is required to decode all the groups G (i, j). It is determined that the bit has been input to the transmission buffer of the moving image encoding device 10.
- variable length coding unit 23 initializes variables j, m, and c (step S201).
- Variables j, m, and c represent the group index in the picture, the block index in the picture, and the carry number, respectively. The carry number c will be described later.
- variable length coding unit 23 performs arithmetic coding processing (specified in MPEG-4 AVC / H.264) by compressing the block of index m, binarizing the compressed data, and context modeling.
- An array B [] of target bins of EncodingDecision ()) is acquired (step S202).
- the compression processing described above is processing for excluding EndOfSliceFlag indicating whether the block is the last block of the slice.
- the total number of bins subject to arithmetic coding processing of block m is expressed as getNumBins (m).
- the variable length coding unit 23 sets the index b0 of the bin to be processed to 0, and sets the index b1 of the final bin of the block m to getNumBins (m).
- the variable length coding unit 23 obtains the final bit position p of the bit stream before arithmetically coding the b0th bin (step S203). Then, the variable length coding unit 23 performs arithmetic coding on the b0th bin (step S204). Thereby, for example, a newly generated bit is added to the end of the bit stream between 0 and 7 bits. Then, the variable length coding unit 23 obtains the final bit position q of the bitstream after the arithmetic coding process of the b0th bin (step S205).
- the variable length encoding unit 23 determines whether the carry number c is 1 or more (step S206).
- variable length coding unit 23 sets the final bit position p of the bit stream before the arithmetic coding of the b0th bin as the arithmetic code of the b0th bin. It is compared with the final bit position q of the bitstream after conversion (step S207).
- step S207 If the bit position p is different from the bit position q (step S207—Yes), a new bit is generated by the arithmetic coding process of the b0th bin.
- the variable length encoding unit 23 sets the final bit position BitEnd () of the bit string necessary for decoding each group output at this time to the bit position q (step S208). Details of the process in step S208 will be described later. At this point, all the bits necessary for the decoding process are output as a bit stream for all the groups having an index smaller than j. Therefore, the variable length coding unit 23 resets the carry number c to 0 (step S209).
- the variable length encoding unit 23 determines whether all bins in the bin array B [] to be arithmetically encoded have been processed, that is, whether b0 is equal to b1 (step S210). ). If b0 is less than b1 (step S210—No), the variable length coding unit 23 increments b0 by 1, and then repeats the processing from step S203 onward. Then, the variable length encoding unit 23 processes the remaining bins in the bin array B []. On the other hand, when b0 is equal to b1 (step S210—Yes), the variable length coding unit 23 increments b0 by 1, and then executes the processing from step S211 onward. Even if b0 is less than b1 or equal to b1, b0 increases by 1 after comparison with b1, but if b0 is equal to b1, b0 is set to 0 later in step S202. Reset.
- step S206—No If the carry number c is 0 in step S206 (step S206—No), the variable length encoding unit 23 performs the process of step S210 without performing the processes of steps S207 to S209. Further, when the bit position p is equal to the bit position q in step S207 (step S207-No), no new bit is generated by arithmetically encoding the b0th bin. Also in this case, the variable length coding unit 23 performs the process of step S210 without performing the processes of steps S208 to S209.
- variable length coding unit 23 obtains the final bit position p of the bit stream before arithmetically coding EndOfSliceFlag (step S211). Then, the variable length coding unit 23 arithmetically encodes EndOfSliceFlag (step S212), and obtains the final bit position q of the bitstream after endOfSliceFlag is arithmetically encoded (step S213).
- step S216 determines that the current block m is group j. It is determined whether it is the last block (step S217). GetLastBlock (j) represents the index of the last block of group j. If the current block m is not the last block of group j (step S217-No), there is an unprocessed block in group j. Therefore, the variable length coding unit 23 increments m by 1, and then repeats the processing after step S202.
- variable length coding unit 23 increments m by 1. Then, the variable length encoding unit 23 compares the final bit position p of the bit stream before arithmetically encoding EndOfSliceFlag with the final bit position q of the bit stream after arithmetically encoding EndOfSliceFlag (step S218). When the final bit position p is different from the final bit position q (step S218—Yes), a new bit is generated by arithmetically encoding EndOfSliceFlag. Therefore, all bits necessary for decoding all the final blocks of group j are output as a bit stream.
- variable length coding unit 23 sets the final bit position BitEnd () of the bit string necessary for decoding the group j output at this time to the bit position q (step S219), and further sets the group index j. Increment by 1 (step S220).
- the variable length coding unit 23 increments the carry number c by 1 and increments the group index j by 1 (step S221).
- the variable length coding unit 23 determines whether or not the current block m is the last block in the picture (step S222).
- GetNumBlockInPic () represents the total number of blocks in the picture. If the current block m is not the last block in the picture (step S222—No), there is an unprocessed block in the picture, and thus the variable length coding unit 23 repeats the processing from step S202 onward. On the other hand, if the current block m is the last block in the picture (step S222—Yes), the variable length coding unit 23 completes the coding of all the blocks of one picture, and thus ends the last bit specifying process. To do.
- the variable length encoding unit 23 sets the final bit position BitEnd (i, (jc)) of the bit string necessary for decoding the (jc) th group of the i-th picture to q (step S250). Thereafter, the variable length coding unit 23 determines whether or not the carry number c is 0 or less (step S251). If the carry number c is greater than 0 (step S251-No), there is still a group that needs to set the final bit position BitEnd (). Therefore, the variable length encoding unit 23 subtracts 1 from the carry number c, and then executes the process of step S250 again. On the other hand, when the carry number c is 0 or less (step S251—Yes), there is no group that needs to set the final bit position BitEnd (). Therefore, the variable length encoding unit 23 ends the final bit position setting process.
- variable length coding unit 23 according to the fourth embodiment performs variable length coding on the compressed data of the block according to the technique disclosed in Non-Patent Document 2.
- the technique disclosed in Non-Patent Document 2 basically uses an arithmetic coding technique as in CABAC. However, in this method, a plurality of arithmetic encoding units based on the estimated probability of each bit of the binary compressed data are used instead of arithmetically encoding the binary compressed data bit by bit. A separate estimation probability is assigned to each arithmetic encoding unit, and each bit of the compressed binary data is arithmetically encoded in the arithmetic encoding unit corresponding to the estimated probability.
- each arithmetic coding unit processes a bit string with a fixed estimated probability, so in practice, instead of performing an arithmetic coding operation, the input n bits are mapped to an m-bit output.
- the compressed data may be variable length encoded. Note that m and n are each an integer of 1 or more. In this specification, m bits to be output are referred to as a word for convenience.
- the variable length encoded compressed data is output to the output data bit stream in units of words.
- the relationship between the converted bit string and the compressed data before conversion is not one-to-one.
- a word corresponding to the bin previously input to the arithmetic encoding unit may appear in the bit stream of the output data after the word corresponding to the bin input to the arithmetic encoding unit after that bin. is there.
- FIG. 10 is a schematic configuration diagram of an entropy encoding unit 700 included in the variable length encoding unit 23 according to the fourth embodiment.
- the entropy encoding unit 700 performs entropy encoding on the compressed data of the input block, and outputs the resulting stream. Therefore, the entropy encoding unit 700 includes a binarizing unit 701, a context modeling unit 702, a probability quantizing unit 703, and K bin encoding units 704-1 to 704-k (where K is 2 or more). Integer) and a multiplexing unit 705.
- the binarization unit 701 binarizes each symbol included in the compressed data of the input block and represents each symbol as a bit string. Therefore, the binarizing unit 701 binarizes each symbol in accordance with, for example, MPEG-4MAVC / H.264. For example, when the macroblock type mbType in the I-Slice is a symbol “INxN” representing 4 ⁇ 4 intra prediction or 8 ⁇ 8 intra prediction, the symbol is represented by “0”. When the block type mbType is a symbol “IPCM” representing PCM encoding, the symbol is represented by “11”.
- the bit string output from the binarizing unit 701 is input to the context modeling unit 702.
- the context modeling unit 702 individually assigns a context to each bit of the bit string input from the binarization unit 701.
- the context is determined, for example, from the compressed data of the surrounding blocks. The efficiency of arithmetic coding is improved by using different contexts depending on whether the compressed data of the block to be entropy encoded is similar to the compressed data of the surrounding blocks or not.
- the context modeling unit 702 outputs the value (0 or 1), the determined context Least Probable (bit (LPB), and the LPB probability for each bit of the bit string, and the output bits, LPB and LPB probabilities Is input to the probability quantization unit 703.
- LPB represents a value with a smaller appearance frequency in each bit of the bit string output from the context modeling unit 702 in the past as a pair with the context.
- the LPB probability represents the occurrence probability of LPB. For example, when 10 bits included in the past bit string are [0, 0, 0, 1, 1, 1, 1, 1, 1, 1], LPB is 0 and the LPB probability is 0.3.
- the bits output from the probability quantization unit 703 are input to the bin encoding unit corresponding to the quantized value of the LPB probability of the bit among the K bin encoding units 704-1 to 704-k.
- Each of the bin encoding units 704-1 to 704-k arithmetically encodes bits corresponding to quantized values having different LPB probabilities. For example, as described above, if the quantized value of the LPB probability is 1/4, the bit corresponding to the LPB probability is the discrete probability 1/4 of the bin coding units 704-1 to 704-k. Are input to the bin encoding unit corresponding to. Each bin encoding unit adds the bit to the bit sequence of the entry of the quantized LPB probability corresponding to the bin encoding unit among the bit sequences of the entries stored in the buffer of the multiplexing unit 705. Each bin encoding unit converts the bit string into a word each time the bit string can be converted.
- the multiplexing unit 705 has, for example, a buffer, and stores a bit string written from each bin encoding unit and a word corresponding to the bit string in the buffer.
- the multiplexing unit 705 stores the word in the buffer until the word can be output. Then, when the stored word can be output, the multiplexing unit 705 outputs the word as a bit stream of output data.
- each bin encoding unit and the multiplexing unit do not perform arithmetic encoding itself, but a plurality of input bits.
- the included bit string may be variable length encoded as one bin string.
- a conversion table representing a relationship between a bit string (bin string) and a word is stored in each bin coding unit.
- Each bin encoding unit converts the bin sequence into a word with reference to the conversion table. For example, when the LPB is 1 and the LPB probability is 0.15 (that is, the occurrence probability of 0 is 0.85), the input bin string “0000” is converted to “1” and the input bin string “11” is converted to “00001”.
- FIG. 11 is a diagram for explaining the relationship between the compressed data and the bit string converted by the variable length coding.
- the structure of the compressed data of the block is the same as that shown in FIG.
- a bit string 4100 which is an example of a bit string of the output data stream, includes 15 bits.
- the dot set 4101 represents bins included in the compressed data obtained by arithmetic decoding of the bit string 4100 corresponding to each bit included in the bit string 4100.
- the bit string 4100 corresponds to bin 0 to bin 10.
- Bins 0 to 2 are included in block 0, bins 3 to 5 are included in block 1, bins 6 and 7 are included in block 2, and bins 8 to 10 are included in block 3.
- the bit included in the converted bit string 4100 shown above the dot is used to decode the bin shown on the left side of the dot. Represents.
- bin 0, bin 5, and bin 7 are decoded using the 0th to 3rd bits.
- the 3 bits of bin 0, bin 5 and bin 7 are converted into the 0th to 3rd 4 bits in the bit string 4100.
- the bit string (bit 0 to bit 3) necessary for decoding the last bin 5 belonging to the block 1 is the bit string necessary for decoding the first bin 3 belonging to the block 1. It appears in the bit stream 4100 of the output data before (bit 7 to bit 8).
- the order of the corresponding words on the bit stream of the output data may be reversed with respect to the order of each bin of the block.
- the last bit of the block is as follows: As in the case where the block is encoded by CABAC, the first bit and the last bit of the binary data of the compressed data of the block are always MbSkipFlag and EndOfSliceFlag. When there are w blocks in a picture, there are always w MbSkipFlag and w EndOfSliceFlag in the bit stream of the output data.
- the last bit of the variable length encoded block x is in the bit stream of the output data in the word needed to decode each bit of the binary data of the compressed data of block x Is the last bit of the last word A.
- the last bits of the block 0, the block 1, and the block 2 are the eighth bit of the bit string 4100 indicated by the arrow 4200, respectively.
- the last bit of the block 3 is the 14th bit of the bit string 4100 indicated by the arrow 4201.
- FIG. 12 is an explanatory diagram of the behavior of the bin coding unit and the multiplexing unit of the variable length coding unit according to the fourth embodiment.
- the bin encoding units 704-1 to 704-k convert an input bin sequence composed of bits having the same quantized LPB probability into a word with reference to the conversion map 800 from the input bin sequence to the output word.
- the multiplexing unit 705 applies the same transformation map to the bin sequences input from the bin encoding units 704-1 to 704-k to the multiplexing unit 705. For example, the bin string “0000” is converted to the word “1”.
- a probability index 802 representing a quantized LPB probability is added to each bit of the input bit string 801 by the probability quantization unit 703.
- the LPB probability is quantized to one of four values, and probability indexes 0 to 3 are assigned to each quantized LPB probability.
- Each bit of the input bit string 801 is input in order from the first bit 850 to the bin encoding unit corresponding to the probability index of the bit. For example, a bit having a probability index of “0” is input to the bin encoding unit 704-1, and a bit having a probability index of “1” is input to the bin encoding unit 704-2.
- Tables 860 to 863 indicate data stored in the buffer included in the multiplexing unit 705 when the bits 850 to 853 are input to any of the bin encoding units, respectively.
- one row corresponds to one entry stored in the buffer of the multiplexing unit 705.
- entries are written in order from the top according to the order of generation.
- the multiplexing unit 705 outputs the words of the entries stored in the buffer in the order from top to bottom as a bit stream of output data.
- "#" Is the index of the entry in the buffer.
- “Idx” is the index of the corresponding bin encoding unit, and in this example, for easy understanding, the index of the bin encoding unit is added to the input bits input to the bin encoding unit.
- “Input” is an input bit string (bin string). “Word” is a word corresponding to the input bit string. If there is no word corresponding to the input bit string (for example, when the input bit string is “00”), the word is expressed as “N / A” in each table.
- the buffer of the multiplexing unit 705 is empty before the bit 850 is input to any of the bin encoding units 704-1 to 704-k.
- the bin encoding unit to which the bit is input creates a new entry in the buffer of the multiplexing unit 705.
- a bit 850 having a probability index of “0” and a value of “0” is input to the bin encoding unit 704-1, whereby the multiplexing unit 705 The first entry with an entry index of '0' is created in the buffer.
- a bit 851 having a probability index “1” and a value “0” is input to the bin encoding unit 704-2.
- a new entry is generated as shown in the table 861.
- “Idx” of the second entry is “1”.
- the word is still incomplete and the word of the second entry is “N / A”.
- the bin encoding units 704-1 to 704-k and the multiplexing unit 705 follow the rules 1) to 4) below, and the multiplexing unit 705
- the bin sequence of entries in the buffer is converted into words, and the entry words that can be output as appropriate are output.
- the bin encoding units 704-1 to 704-k search for an entry corresponding to the probability index of the input bit in the ascending order of the entry index in the buffer of the multiplexing unit 705.
- the bin encoding units 704-1 to 704-k update the input bit string of the entry. Specifically, bin encoding sections 704-1 to 704-k add new input bits after the input bit string of the entry.
- the multiplexing unit 705 determines whether the updated bit string matches any of the bin strings in the conversion table 800. If there is a matching bin string, the bin coding units 704-1 to 704-k use the word corresponding to the bin string as the word of this entry.
- bin coding sections 704-1 to 704-k create new entries corresponding to the probability index. .
- An entry whose word is not “N / A” can be output as a bit stream, but the output order of entries follows the descending order of the entry index in the buffer of the multiplexing unit 705. This is a restriction necessary for the moving picture decoding apparatus to normally decode the multiplexed word (inverse conversion from word to bin sequence). If an entry whose entry index is smaller than the entry index of interest and whose word is “N / A” remains in the buffer of the multiplexing unit 705, even if the word of the entry of interest is not “N / A” The multiplexing unit 705 cannot output the entry of interest. When the multiplexing unit 705 outputs an entry, the multiplexing unit 705 adds the word of the entry to the bit stream of the output data. The output entry is removed from the multiplexing buffer.
- the table 862 represents the state of the buffer of the multiplexing unit 705 when a bit 852 having a probability index of “0” and a value of “0” is input to the bin encoding unit 704-1.
- entries whose entry indexes are “1” to “4” are in a state where they can be output.
- the multiplexing unit 705 cannot output the words of all the entries as a bit stream yet. That is, a variable length coding delay occurs.
- the table 863 represents the state of the buffer of the multiplexing unit 705 when a bit 853 having a probability index of “0” and a value of “1” is input to the bin encoding unit 704-1. At this time, the word of the entry whose entry index is “0” is not “N / A” for the first time. Therefore, the multiplexing unit 705 can output all entries having entry indexes from “0” to “4”.
- the index of the newly added entry is “5”. That is, the entry index of the new entry is a value obtained by adding 1 to the maximum index among all entries including the output entry.
- the multiplexing unit 705 stores a value obtained by adding 1 to the entry index of the last entry output as the bit stream as the output entry start index FirstIndex of the next bit stream. FirstIndex is reset to 0 at the start of picture encoding.
- FIGS. 13A to 13C are flowcharts of processing for specifying the last bit of the group in the bit stream of the output data according to the fourth embodiment.
- the variable length coding unit 23 of the moving picture coding apparatus 10 positions the last bit of the last block belonging to the jth group G (i, j) of the ith picture in the bitstream of the output data.
- Derive BitEnd (i, j) When the bit at the position of BitEnd (i, j) is input to the transmission buffer of the moving image encoding device 10, the moving image encoding device 10 is required to decode all the groups G (i, j). It is determined that the bit has been input to the transmission buffer of the moving image encoding device 10.
- each step of the flowcharts shown in FIGS. 13A to 13C is the processing of the corresponding steps of the flowcharts shown in FIGS. 9A to 9C, except for the steps described below. Is the same.
- the process in step S301 is the same as the process in step S201. Therefore, for details of steps other than those described below, refer to the description related to the flowcharts shown in FIGS. 9 (A) to 9 (C).
- the bin encoding units 704-1 to 704-k of the variable length encoding unit 23 encode the b0th bin, and if the b0th bin (and the bit string including the b0th bin can be converted) Word) is stored in the buffer of the multiplexing unit 705 (step S304). Thereafter, the variable length coding unit 23 acquires the final bit position q of the bit string output as a bit stream by the multiplexing unit 705 (step S305). Also, the variable length coding unit 23 obtains the first entry index FirstIndex of the next bitstream from the multiplexing unit 705, and sets the index as t.
- the variable length coding unit 23 sets the last bit position p of the bit stream before the arithmetic coding of the b0th bin as the arithmetic code of the b0th bin. Compare with the final bit position q of the bitstream after conversion. Furthermore, the variable length coding unit 23 determines whether or not the first entry index t of the next bitstream is larger than the index s (step S307). Note that the index s represents the largest entry index among entries corresponding to EndOfSliceFlag that has been arithmetically encoded but not output as a bit stream.
- step S307 When the final bit position p is different from the final bit position q and the index t is larger than the index s (step S307—Yes), a new bit is generated by the arithmetic coding process of the b0th bin.
- variable length coding unit 23 sets the final bit position BitEnd () of the bit string necessary for decoding each group output at this time to the bit position q (step S308).
- the variable length encoding unit 23 performs the process of step S310 without performing the processes of steps S308 and S309.
- the variable length encoding unit 23 arithmetically encodes EndOfSliceFlag (step S312), and then acquires the final bit position q of the bitstream after the EndOfSliceFlag is arithmetically encoded ( Step S313). Also, the variable length coding unit 23 obtains the first entry index FirstIndex of the next bitstream from the multiplexing unit 705, and sets the index as t. Further, the variable length coding unit 23 obtains the largest entry index from the multiplexing unit 705 among the entries corresponding to EndOfSliceFlag that has already been arithmetically coded but not output as a bit stream, and the index is set as s. To do.
- variable length coding unit 23 sets the final bit position BitEnd () of the bit string necessary for decoding each group output at this time to the bit position q (step S315).
- variable length coding unit 23 determines whether or not the current block m is the last block of the group j without performing the processes of steps S315 and S316 (step S317). If the current block m is not the last block of group j (step S317-No), there is an unprocessed block in group j. Therefore, the variable length coding unit 23 increments m by 1, and then repeats the processing after step S302.
- variable length coding unit 23 increments m by 1. Then, the variable length coding unit 23 compares the final bit position p of the bitstream before arithmetically encoding EndOfSliceFlag with the final bit position q of the bitstream after arithmetically encoding EndOfSliceFlag, and the index t And the index s are compared (step S318). If p is different from q and t is greater than s (step S318—Yes), a new bit is generated by arithmetically encoding EndOfSliceFlag.
- variable length encoding unit 23 sets the final bit position BitEnd () of the bit string necessary for decoding the group j output at this time to the bit position q (step S319).
- bit position q bit position q
- the variable length coding unit 23 increments the carry number c by 1 and increments the group index j by 1 (step S321).
- this video encoding apparatus classifies blocks into which a picture is divided into groups, and determines the code amount of blocks included in the group according to the decoding time estimated for each group. By adjusting, the decoding delay can be reduced.
- a computer program that realizes the functions of the respective units of the moving picture coding apparatus according to the above-described embodiment or its modification by being executed on a computer is recorded in a recording medium such as a semiconductor memory or an optical recording medium and distributed. May be.
- the moving picture encoding apparatus is used for various purposes.
- the moving image encoding apparatus is incorporated in a video camera, a video transmission apparatus, a video reception apparatus, a videophone system, a computer, or a mobile phone.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
受信バッファのアンダーフローとは、動画像符号化装置が一定の伝送レートでデータストリームを送信した場合に、各ピクチャの符号量が多く、動画像復号装置が復号・表示するべき時刻までにピクチャを復号するのに必要なデータの伝送が完了せず、復号受信バッファ内に必要データが存在していないことである。この場合、動画像復号装置は復号処理を行うことが出来ないため、フレームスキップが発生することとなる。
上述したように、理想復号装置では、処理時間0で、瞬時的に復号処理が完了すると規定される。そのため、動画像符号化装置へのi番目ピクチャの入力時刻をt(i)、理想復号装置における、i番目ピクチャの復号時刻をdt(i)とすれば、そのピクチャが表示可能となる時刻は、同様にdt(i)となる。全てのピクチャにおいてピクチャの表示期間{t(i+1)-t(i)}と{dt(i+1)-dt(i)}が等しくなるので、復号時刻dt(i)は、入力時刻t(i)から固定時間dly分だけ遅延させた時刻{dt(i)=t(i)+dly}となる。従って、動画像符号化装置は、時刻dt(i)までに復号に必要なデータを動画像復号装置の受信バッファに伝送完了させなければならない。
受信バッファでは、所定の伝送レートでバッファ占有量が回復し、各ピクチャの復号時刻にそのピクチャを復号するために用いられる分のデータがバッファから引き抜かれる。i番目ピクチャのデータが、時刻at(i)から受信バッファに入力開始され、i番目ピクチャの最後のデータが時刻ft(i)に入力される。理想復号装置は時刻dt(i)でi番目ピクチャの復号を完了し、その時刻dt(i)においてi番目ピクチャが表示可能となる。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
図2は、一つの実施形態による、動画像符号化装置の概略構成図である。動画像符号化装置10は、符号化処理部11と、符号量制御部12と、グループ決定部13と、グループ復号時刻情報算出部14と、グループ情報付加部15と、ビットカウンタ25とを有する。動画像符号化装置10が有するこれらの各部は、それぞれ、別個の回路として動画像符号化装置10に実装される。あるいは、動画像符号化装置10が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像符号化装置10に実装されてもよい。あるいはまた、動画像符号化装置10が有するこれらの各部は、動画像符号化装置10が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールであってもよい。
各ブロックは直交変換部21に入力される。そして直交変換部21は、各ブロックに対して、それぞれ、例えば離散コサイン変換(Discrete Cosine Transform、DCT)などの直交変換処理を行って周波数係数の組を算出する。算出された周波数係数の組は量子化部22に入力される。なお、各ブロックに対して、既に符号化されたピクチャを動き補償することなどにより予測画像が生成される場合には、各ブロックと予測画像間の差分演算により求められる予測誤差画像が直交変換部21に入力されてもよい。
また、符号化された動画像は、カラー動画像であってもよく、あるいは、モノクロ動画像であってもよい。
量子化部22により量子化された各周波数係数は、可変長符号化部23に入力される。また量子化された各周波数係数は、以降に符号化されるピクチャまたはブロックに対する予測画像を作成するために逆量子化され、さらに逆直交変換されて図示しない画像メモリに記憶されてもよい。
また、可変長符号化部23にて発生したビット系列のビット量はブロックごとにビットカウンタ25にて加算され、発生符号量として符号量制御部12のバッファ占有量算出部26に通知される。
可変長符号化部23の実施形態の詳細については後述する。
なお、グループに含まれるブロックの数は、1から画面全体のブロック数までの間の値にしてもよい。
グループ決定部13は、符号化対象ブロックが属するグループの識別情報を符号量制御部12のバッファ占有量算出部26へ通知する。またグループ決定部13は、グループの総数Nをグループ復号時刻情報算出部14及びグループ情報付加部15へ通知する。なお、グループ決定部13は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部15へ通知してもよい。
以下、符号化対象ピクチャに含まれる水平方向のブロック数をM、垂直方向のブロック数をNとして、全ブロックを1ブロックライン単位でN個のグループに等分割した場合を例に説明する。
さらにグループ復号時刻情報算出部14は、2番目以降に符号化・復号されるグループの復号時刻dgt(i,n)(n≧2)を、次式のように決定してもよい。
グループ復号時刻情報算出部14は、各グループの復号時刻を含む復号時刻情報を、バッファ占有量算出部26及びグループ情報付加部15へ出力する。
バッファ占有量算出部26は、各グループの最後のブロックの符号化処理が行われた後に、次式に従ってバッファ占有量dを回復させる。
量子化値算出部24は、例えば、MPEG-2における標準化団体参照ソフトウェアTest Model5(非特許文献1を参照)における量子化値算出方法に従って量子化値を算出する。次に、量子化値算出部24は、バッファ占有量dを所定の閾値DTH1と比較する。量子化値をその取り得る値の範囲のうちの最大値としたときに、各ブロックで発生する最大の符号量をb0、符号化処理中のブロックの属するグループで、まだ符号化処理を行っていないブロックの数をM0とすると、閾値DTH1は、次式で表される。
またb0として、周波数係数を全て0としたときのブロックの符号量を用いてもよい。このとき、dがDTH1よりも小さければ、量子化値算出部24は、符号化対象ブロックの全ての周波数係数が0に量子化されるように量子化値を決定する。この制御により、グループ内の符号化処理が済んでいない残りブロックの符号量の平均値がb0を超えなければ、仮想的な復号受信バッファはアンダーフローしない。
これにより、符号量制御部12は、動画像符号化装置10からの出力ストリームを実際に所定のレートRに従って動画像復号装置へ伝送すれば、動画像復号装置の受信バッファがアンダーフローしないように動画像データの符号量を制御することが可能となる。
量子化値算出部24は、求めた量子化値を量子化部22へ通知する。
そこで、グループ情報付加部15は、例えば、グループ情報を、各ピクチャ、もしくは所定のピクチャ間隔で、出力データストリームのヘッダ情報に付加する。
ヘッダ情報は、例えば、MPEG-2に規定される、シーケンスヘッダー(Sequence Header)、またはH.264に規定されるシーケンスパラメータセット(Sequence Parameter Set)若しくはSupplemental Enhancement Informationとすることができる。なお、グループごとの復号時刻は、MPEG-2に規定されるピクチャヘッダー(Picture Header)、またはH.264に規定されるスライスヘッダー(Slice Header)など、各ピクチャに必ず付随されるヘッダ情報に付加されてもよい。
動画像復号装置は、通知されたグループ数Nと各グループの復号時刻情報に基づき、表示遅延量を算出する。各グループに含まれるブロック数が等しくなるように各グループが設定されている場合、表示遅延量は、1ピクチャの復号処理に必要な最悪の処理時間をctとして、ct/Nとなる。
図3は、動画像符号化装置10により伝送される符号化動画像データストリームが蓄積される受信バッファのバッファ占有量の遷移を示す図である。また図4は、第1のグループの復号時刻を遅らせた場合における、受信バッファのバッファ占有量の遷移を示す図である。なお、図3及び図4において、横軸は時間を表し、縦軸はバッファ占有量を表す。また、グループ数N=4であるとする。そして図3におけるグラフ300は、バッファ占有量の時間遷移を表す。また矢印301で表される期間は、各グループの復号に要する最大時間ct/Nを表す。同様に、図4におけるグラフ400は、バッファ占有量の時間遷移を表す。
(9)式を(8)式と比較すると、第1のグループの復号時刻を遅らせても、ctが大きい動画像復号装置については、第1のグループの復号時刻を遅らせない場合に対して遅延が増加するものの、ctが十分短い動画像復号装置においては、遅延は増加しないことがわかる。
グループ決定部13は、各ブロックの属するグループを決定する(ステップS101)。そしてグループ決定部13は、ブロックの属するグループを表す識別情報を符号量制御部12のバッファ占有量算出部26へ通知する。またグループ決定部13は、グループの総数Nをグループ復号時刻情報算出部14及びグループ情報付加部15へ通知する。なお、グループ決定部13は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部15へ通知してもよい。
次に、グループ復号時刻情報算出部14は、グループ毎に復号時刻を算出する(ステップS102)。そしてグループ復号時刻情報算出部14は、各グループの復号時刻を表す情報をバッファ占有量算出部26及びグループ情報付加部15へ通知する。
一方、バッファ占有量算出部26は、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合における、各グループの復号時刻における受信バッファのバッファ占有量を推定する(ステップS104)。その際、バッファ占有量算出部26は、ビットカウンタ25から受け取った、それまでに符号化されたグループ内のブロックの符号量を参照する。そしてバッファ占有量算出部26は、推定したバッファ占有量を符号量制御部12の量子化値算出部24へ通知する。量子化値算出部24は、各グループの復号時刻までに各グループの全てのデータが動画像復号装置のストリーム受信バッファに到達するように、各グループに属するブロックの符号量を制御する(ステップS105)。そして量子化値算出部24は、その符号量に応じた量子化値を符号量の制御情報として算出し、その量子化値を符号化処理部11の量子化部22へ通知する。
量子化部22は、符号量の制御情報である量子化値に基づいて各ブロックの周波数係数の組を量子化する(ステップS107)。そして量子化部22は、量子化された各周波数係数を符号化処理部11の可変長符号化部23へ出力する。可変長符号化部23は、量子化された各周波数係数を可変長符号化する(ステップS108)。そして可変長符号化部23は、得られた可変長符号を出力する。この可変長符号とグループ情報付加部15からの出力されたグループ情報、復号時刻情報などが出力データストリームに格納される。また可変長符号化部23は、ブロックごとの符号量をビットカウンタ25へ出力する。
ステップS108の後、動画像符号化装置10は、動画像符号化処理を終了する。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipRun1110は常に0となる。そのため、出力データストリームにMbSkipRun1110は含まれない。
ビット列1202は、最終ブロックxのMbSkipRun(= 0)及びMacroblockLayerを可変長符号化したビット列である。ビット列1202のうち、Code 0はMbSkipRunを可変長符号化したビット列であり、Code M (M = [1, N[x])は、MacroblockLayerの各要素を可変長符号化したビット列である。N[x]は、最終ブロックxのMacroblockLayerの要素数である。
この例では、最終ブロックxの最終ビットは、矢印1210で示される、ビット列Code N[x]の最終ビットとなる。
この例では、ブロック(x-L)とブロックxとの間には、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(x-L+1)~ブロック(x-1)が存在する。従って、ブロック(x-L+1)~ブロック(x-1)の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1310で示される、MbSkipRun = (L-1)に相当するコードCode 0の最終ビットとなる。またブロックxが最終ブロックとなる場合、ブロックxの最終ビットは、矢印1311で示される、ビット列1302に含まれるCode N[x]の最終ビットとなる。
MbSkipFlag2111は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag2111は'1'となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag2111は'0'となる。またMacroblockLayer2112は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer2112が出力データストリームに含まれないことを意味する。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag2111は常に'0'となる。そのため、出力データストリームにMbSkipFlag2111は含まれない。
ビット列2202は、最終ブロックxのMbSplitFlag(= 0)、MbSkipFlag(= 0)及びMacroblockLayerを可変長符号化したビット列である。ビット列2202のうち、SpはMbSplitFlagを可変長符号化したビット列であり、SkはMbSkipFlagを可変長符号化したビット列である。またCode M (M = [1, N[x])は、MacroblockLayerの各要素を可変長符号化したビット列である。N[x]は、最終ブロックxのMacroblockLayerの要素数である。
この例では、最終ブロックxの最終ビットは、矢印2210で示される、ビット列Code N[x]の最終ビットとなる。
この例では、ブロック(x-L)とブロックxとの間には、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(x-L+1)~ブロック(x-1)が存在する。従って、ブロック(x-L+p) (p = {1, ..., L-1})の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2310で示される、(L-1)個のMbSkipFlag(=1)コードの内、左からp番目のコードの最終ビットとなる。またブロックxが最終ブロックとなる場合、ブロックxの最終ビットは、矢印2311で示される、ビット列2302に含まれるCode N[x]の最終ビットとなる。
MbSkipFlag3110は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag3110は'1'となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag3110は'0'となる。またMacroblockLayer3111は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer3111が出力データストリームに含まれないことを意味する。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag3110は常に'0'となる。そのため、出力データストリームにMbSkipFlag3110は含まれない。
EndOfSliceFlag3112は、現在のブロックがスライスの最終ブロックか否かを表す。例えば、現在のブロックが最終ブロックである場合には、EndOfSliceFlag3112は'1'となり、一方、現在のブロックが最終ブロックでなければ、EndOfSliceFlag3112は'0'となる。
図8(B)に示されるように、出力データストリームのビット列の一例であるビット列3210は12個のビットを含む。この場合において、ドットの集合3211は、ビット列3210に含まれる各ビットに対応する、ビット列3210を算術復号することにより得られる圧縮データに含まれるビンを表す。ビンとは、圧縮データをバイナリ表現したものであり、各符号語に対応する圧縮データ中のビットまたはビット列である。この例では、ビット列3210はビン0~ビン7に対応する。そして、ビン0~ビン2はブロック0に含まれ、ビン3~ビン5はブロック1に含まれ、ビン6はブロック2に含まれ、ビン7はブロック3に含まれる。ドットの集合3211に含まれる各ドットは、それぞれ、そのドットの上方に示された変換後のビット列3210に含まれるビットが、そのドットの左側に示されたビンを復号するために使用されることを表す。例えばビン0は、0番目のビットと1番目のビットとを用いて復号される。またビン1は、1番目のビットを用いて復号される。またビン5は、3番目のビットから11番目のビットを用いて復号される。
この時点で、インデックスがjよりも小さい全てのグループについて、復号処理に必要な全ビットがビットストリームとして出力されている。そこで、可変長符号化部23は、キャリー数cを0にリセットする(ステップS209)。
最終ビット位置pが最終ビット位置qと異なる場合(ステップS218-Yes)、EndOfSliceFlagを算術符号化することにより新たなビットが生成されている。従って、グループjの最終ブロックの全てを復号するのに必要な全てのビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力されたグループjを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定し(ステップS219)、さらにグループのインデックスjを1インクリメントする(ステップS220)。
一方、最終ビット位置pが最終ビット位置qと等しい場合(ステップS218-No)、EndOfSliceFlagが算術符号化されても新たなビットが生成されていない。従って、可変長符号化部23は、キャリー数cを1インクリメントし、かつグループのインデックスjを1インクリメントする(ステップS221)。
現在のブロックmがピクチャ内の最終ブロックでなければ(ステップS222-No)、ピクチャ内に未処理のブロックがあるので、可変長符号化部23は、ステップS202以降の処理を繰り返す。一方、現在のブロックmがピクチャ内の最終ブロックであれば(ステップS222-Yes)、可変長符号化部23は、1ピクチャの全てのブロックの符号化を完了したので、最終ビット特定処理を終了する。
可変長符号化部23は、i番目のピクチャの(j-c)番目のグループを復号するのに必要なビット列の最終ビット位置BitEnd(i,(j-c))をqに設定する(ステップS250)。その後、可変長符号化部23は、キャリー数cが0以下か否かを判定する(ステップS251)。キャリー数cが0より大きい場合(ステップS251-No)、最終ビット位置BitEnd()を設定する必要のあるグループがまだ残っている。そこで可変長符号化部23は、キャリー数cを1だけ減算し、その後再度ステップS250の処理を実行する。一方、キャリー数cが0以下である場合(ステップS251-Yes)、最終ビット位置BitEnd()を設定する必要のあるグループは無い。そのため、可変長符号化部23は、最終ビット位置の設定処理を終了する。
非特許文献2に開示された手法は、基本的にCABACと同様に算術符号化技術を用いる。しかし、この手法では、バイナリ化された圧縮データを1ビットずつ算術符号化する代わりに、バイナリ化された圧縮データの各ビットの推定確率に基づく複数個の算術符号化部が用いられる。各算術符号化部には、それぞれ別個の推定確率が割り当てられ、バイナリ化された圧縮データの各ビットは、その推定確率に対応する算術符号化部において算術符号化される。
非特許文献2に開示された手法では、CABACと同様に、変換されたビット列と変換前の圧縮デ-タとの関係が一対一ではない。また、先に算術符号化部に入力されたビンに相当するワードが、そのビンよりも後に算術符号化部に入力されたビンに相当するワードよりも後に出力データのビットストリームに出現することもある。
CABACによりブロックが符号化される場合と同様に、ブロックの圧縮データのバイナリ化データの先頭ビット及び最終ビットは、常にMbSkipFlag及びEndOfSliceFlagである。そしてピクチャ中にブロックがw個あった場合、出力データのビットストリーム中には必ずw個のMbSkipFlagとw個のEndOfSliceFlagがある。
テーブル860~863において、一つの行が、多重化部705のバッファ内に格納された一つのエントリに対応する。そして各テーブル内には、生成された順序に従って、上から順にエントリが表記される。多重化部705は、出力データのビットストリームとして、バッファ内に格納されたエントリのワードを、上から下の順番に沿って出力する。"#"はバッファ内のエントリのインデクスである。"Idx"は対応するビン符号化部のインデクスであり、この例では、理解を容易にするために、ビン符号化部のインデックスは、そのビン符号化部に入力される入力ビットに付加された確率インデックスと同一の値を持つ。「入力」は、入力されたビット列(ビン列)である。「ワード」は入力されたビット列に対応するワードである。もし入力ビット列に対応するワードが存在しない場合(例えば、入力ビット列が"00"の場合)、各テーブルにおいてワードは"N/A"と表記される。
多重化部705のバッファが空の状態で、ビットがビン符号化部に入力されると、ビットが入力されたビン符号化部は、多重化部705のバッファに新しいエントリを作成する。この例では、テーブル860に示されるように、確率インデックスが'0'で、かつ値が'0'であるビット850がビン符号化部704-1へ入力されることにより、多重化部705のバッファ内にエントリインデクスが'0'の最初のエントリが作成される。ビット850の確率インデックスが'0'であるため、このエントリの"Idx"は'0'である。またビット850の値が'0'であるため、最初のエントリの入力ビット列は"0"となる。ワードはまだ未完成であるため、このエントリのワードは"N/A"である。
多重化部705は、エントリを出力する場合、そのエントリのワードを出力データのビットストリームに追加する。出力されたエントリは、多重化バッファから除かれる。
一方、最終ビット位置pが最終ビット位置qと等しいか、あるいは、インデックスtがインデックスsと等しい場合(ステップS307-No)、新たなビットが生成されていない。そのため、可変長符号化部23は、ステップS308及びS309の処理を行わずにステップS310の処理を行う。
pがqと異なり、かつtがsより大きい場合(ステップS318-Yes)、EndOfSliceFlagを算術符号化することにより新たなビットが生成されている。従って、グループjの最終ブロックの全てを復号するのに必要な全てのビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力されたグループjを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定する(ステップS319)。
一方、pがqと等しいか、あるいはtがsと等しい場合(ステップS318-No)、EndOfSliceFlagが算術符号化されても新たなビットが生成されていない。従って、可変長符号化部23は、キャリー数cを1インクリメントし、かつグループのインデックスjを1インクリメントする(ステップS321)。
11 符号化処理部
12 符号量制御部
13 グループ決定部
14 グループ復号時刻情報算出部
15 グループ情報付加部
21 直交変換部
22 量子化部
23 可変長符号化部
24 量子化値算出部
25 ビットカウンタ
26 バッファ占有量算出部
700 エントロピー符号化部
701 バイナリ化部
702 コンテキストモデル化部
703 確率量子化部
704-1~704-k ビン符号化部
705 多重化部
Claims (6)
- 動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置であって、
複数のグループのうち、各ブロックの属するグループを決定するグループ決定部と、
前記グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、
前記各ブロックの属するグループを表すグループ情報を出力データに付加するグループ情報付加部と、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、前記復号時刻情報算出部で算出された当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御する符号量制御部と、
前記符号量の制御情報に基づいて前記各ブロックを符号化する符号化処理部と、
を有する動画像符号化装置。 - 前記グループ復号時刻情報算出部は、符号化対象ピクチャの最初のグループに対応する前記復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する前記復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように前記グループ毎の復号時刻を算出する、請求項1に記載の動画像符号化装置。
- 動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法であって、
複数のグループのうち、各ブロックの属するグループを決定し、
前記グループ毎に復号時刻を算出し、
前記各ブロックの属するグループを表すグループ情報を出力データに付加し、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御し、
前記符号量の制御情報に基づいて前記各ブロックを符号化する、
ことを含む動画像符号化方法。 - 前記グループ毎の復号時刻は、符号化対象ピクチャの最初のグループに対応する前記復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する前記復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように算出される、請求項3に記載の動画像符号化方法。
- 動画像データに含まれる各ピクチャを複数のブロックに分割して符号化することをコンピュータに実行させる動画像符号用コンピュータプログラムであって、
複数のグループのうち、各ブロックの属するグループを決定し、
前記グループ毎に復号時刻を算出し、
前記各ブロックの属するグループを表すグループ情報を出力データに付加し、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御し、
前記符号量の制御情報に基づいて前記各ブロックを符号化する、
ことをコンピュータに実行させる動画像符号化用コンピュータプログラム。 - 前記グループ毎の復号時刻は、符号化対象ピクチャの最初のグループに対応する前記復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する前記復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように算出される、請求項5に記載の動画像符号化用コンピュータプログラム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES11828481T ES2750328T3 (es) | 2010-09-30 | 2011-01-13 | Dispositivo de codificación de imagen dinámica, método de codificación de imagen dinámica y programa informático para codificación de imagen dinámica |
CN201180051895.6A CN103202015B (zh) | 2010-09-30 | 2011-01-13 | 动态图像加密装置及动态图像加密方法 |
JP2012536233A JP5720691B2 (ja) | 2010-09-30 | 2011-01-13 | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム |
KR1020137010375A KR101503190B1 (ko) | 2010-09-30 | 2011-01-13 | 동화상 부호화 장치, 동화상 부호화 방법 및 동화상 부호화용 컴퓨터 프로그램 |
EP11828481.9A EP2624554B1 (en) | 2010-09-30 | 2011-01-13 | Dynamic image encoding device, dynamic image encoding method, and computer program for dynamic image encoding |
KR1020157002906A KR101627568B1 (ko) | 2010-09-30 | 2011-01-13 | 동화상 부호화 장치, 동화상 부호화 방법 및 동화상 부호화용 컴퓨터 프로그램 |
US13/851,560 US9621886B2 (en) | 2010-09-30 | 2013-03-27 | Motion video encoding apparatus, motion video encoding method, and motion video encoding computer program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010-222247 | 2010-09-30 | ||
JP2010222247 | 2010-09-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/851,560 Continuation US9621886B2 (en) | 2010-09-30 | 2013-03-27 | Motion video encoding apparatus, motion video encoding method, and motion video encoding computer program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012042916A1 true WO2012042916A1 (ja) | 2012-04-05 |
Family
ID=45892402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/050462 WO2012042916A1 (ja) | 2010-09-30 | 2011-01-13 | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9621886B2 (ja) |
EP (1) | EP2624554B1 (ja) |
JP (2) | JP5720691B2 (ja) |
KR (2) | KR101627568B1 (ja) |
CN (1) | CN103202015B (ja) |
ES (1) | ES2750328T3 (ja) |
WO (1) | WO2012042916A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379337A (zh) * | 2012-04-27 | 2013-10-30 | 富士通株式会社 | 视频图像编码装置及方法、视频图像解码装置及方法 |
JP2013232802A (ja) * | 2012-04-27 | 2013-11-14 | Fujitsu Ltd | 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法 |
JP2013232803A (ja) * | 2012-04-27 | 2013-11-14 | Fujitsu Ltd | 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法 |
JP2016129419A (ja) * | 2016-03-07 | 2016-07-14 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
JP2016129418A (ja) * | 2016-03-07 | 2016-07-14 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
JP2016129420A (ja) * | 2016-03-07 | 2016-07-14 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
JP2016131387A (ja) * | 2016-03-14 | 2016-07-21 | 富士通株式会社 | 動画像復号方法 |
JP2016146645A (ja) * | 2016-03-07 | 2016-08-12 | 富士通株式会社 | 動画像符号化復号システム及び動画像符号化復号方法 |
JP2016165122A (ja) * | 2016-04-11 | 2016-09-08 | 富士通株式会社 | 動画像復号方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10958989B2 (en) | 2016-02-25 | 2021-03-23 | Synamedia Limited | Framework for embedding data in encoded video |
CN110022481B (zh) * | 2018-01-10 | 2023-05-02 | 中兴通讯股份有限公司 | 视频码流的解码、生成方法及装置、存储介质、电子装置 |
US20210176475A1 (en) * | 2019-12-05 | 2021-06-10 | Mediatek Inc. | Specifying Layout In Video Pictures |
CN115086572A (zh) * | 2022-06-29 | 2022-09-20 | 浙江大华技术股份有限公司 | 一种图像传输方法及装置、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03148981A (ja) | 1989-11-06 | 1991-06-25 | Fujitsu Ltd | 画像信号符号化制御方式 |
JPH0993537A (ja) * | 1995-09-27 | 1997-04-04 | Mitsubishi Electric Corp | ディジタル映像信号記録再生装置及びディジタル映像信号符号化方法 |
JP2003535523A (ja) * | 2000-06-01 | 2003-11-25 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 映像信号符号化およびバッファ管理 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0954924A4 (en) * | 1997-01-21 | 2003-05-14 | Sarnoff Corp | INFORMATION STREAM SYNTAX AND DISPLAY OF THE PRESENCE OF A SPLICE POINT |
JP3299185B2 (ja) | 1998-06-10 | 2002-07-08 | 日本ビクター株式会社 | 符号化装置 |
JP2001251616A (ja) * | 2000-03-02 | 2001-09-14 | Media Glue Corp | 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体 |
JP2001346201A (ja) | 2000-03-27 | 2001-12-14 | Sony Corp | 画像符号化装置とその方法、画像復号化装置とその方法、画像記録装置、画像伝送装置 |
US6819714B2 (en) * | 2000-04-20 | 2004-11-16 | Matsushita Electric Industrial Co., Ltd. | Video encoding apparatus that adjusts code amount by skipping encoding of image data |
US7418007B1 (en) * | 2000-09-20 | 2008-08-26 | General Instrument Corporation | Method and apparatus for determining a transmission bit rate in a statistical multiplexer |
US7532670B2 (en) | 2002-07-02 | 2009-05-12 | Conexant Systems, Inc. | Hypothetical reference decoder with low start-up delays for compressed image and video |
MY134659A (en) * | 2002-11-06 | 2007-12-31 | Nokia Corp | Picture buffering for prediction references and display |
CN1849821B (zh) * | 2003-07-11 | 2012-06-20 | 松下电器产业株式会社 | 记录方法、再现装置和方法 |
EP1638333A1 (en) * | 2004-09-17 | 2006-03-22 | Mitsubishi Electric Information Technology Centre Europe B.V. | Rate adaptive video coding |
JP5072893B2 (ja) * | 2009-03-25 | 2012-11-14 | 株式会社東芝 | 画像符号化方法および画像復号化方法 |
-
2011
- 2011-01-13 JP JP2012536233A patent/JP5720691B2/ja active Active
- 2011-01-13 KR KR1020157002906A patent/KR101627568B1/ko active IP Right Grant
- 2011-01-13 KR KR1020137010375A patent/KR101503190B1/ko active IP Right Grant
- 2011-01-13 ES ES11828481T patent/ES2750328T3/es active Active
- 2011-01-13 CN CN201180051895.6A patent/CN103202015B/zh active Active
- 2011-01-13 EP EP11828481.9A patent/EP2624554B1/en active Active
- 2011-01-13 WO PCT/JP2011/050462 patent/WO2012042916A1/ja active Application Filing
-
2013
- 2013-03-27 US US13/851,560 patent/US9621886B2/en active Active
-
2014
- 2014-10-29 JP JP2014220876A patent/JP5983704B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03148981A (ja) | 1989-11-06 | 1991-06-25 | Fujitsu Ltd | 画像信号符号化制御方式 |
JPH0993537A (ja) * | 1995-09-27 | 1997-04-04 | Mitsubishi Electric Corp | ディジタル映像信号記録再生装置及びディジタル映像信号符号化方法 |
JP2003535523A (ja) * | 2000-06-01 | 2003-11-25 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 映像信号符号化およびバッファ管理 |
Non-Patent Citations (2)
Title |
---|
"JCTVC-A116", April 2010, JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, article "Description of video coding technology proposal by Fraunhofer HHI" |
MPEG-2 TEST MODEL 5, April 1993 (1993-04-01), Retrieved from the Internet <URL:http:/www.mpeg.org/MPEG/MSSG/tm5> |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI477124B (zh) * | 2012-04-27 | 2015-03-11 | Fujitsu Ltd | 視訊影像編碼裝置、視訊影像編碼方法、視訊影像解碼裝置及視訊影像解碼方法 |
CN105744276A (zh) * | 2012-04-27 | 2016-07-06 | 富士通株式会社 | 视频图像解码装置及方法 |
JP2013232801A (ja) * | 2012-04-27 | 2013-11-14 | Fujitsu Ltd | 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法 |
JP2013232803A (ja) * | 2012-04-27 | 2013-11-14 | Fujitsu Ltd | 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法 |
EP2658257A3 (en) * | 2012-04-27 | 2014-09-03 | Fujitsu Limited | Video image encoding device, video image encoding method, video image decoding device, and video image decoding method |
KR101461856B1 (ko) | 2012-04-27 | 2014-11-14 | 후지쯔 가부시끼가이샤 | 동화상 부호화 장치 및 동화상 부호화 방법 |
JP2013232802A (ja) * | 2012-04-27 | 2013-11-14 | Fujitsu Ltd | 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法 |
KR20160031469A (ko) * | 2012-04-27 | 2016-03-22 | 후지쯔 가부시끼가이샤 | 동화상 복호 장치 및 동화상 복호 방법 |
KR101697456B1 (ko) | 2012-04-27 | 2017-02-01 | 후지쯔 가부시끼가이샤 | 동화상 복호 장치 및 동화상 복호 방법 |
CN105744276B (zh) * | 2012-04-27 | 2019-03-01 | 富士通株式会社 | 视频图像解码装置及方法 |
CN103379337A (zh) * | 2012-04-27 | 2013-10-30 | 富士通株式会社 | 视频图像编码装置及方法、视频图像解码装置及方法 |
CN105812809B (zh) * | 2012-04-27 | 2018-12-07 | 富士通株式会社 | 视频图像解码装置及方法 |
EP3217666A1 (en) * | 2012-04-27 | 2017-09-13 | Fujitsu Limited | Video image decoding device and video image decoding method |
CN105812809A (zh) * | 2012-04-27 | 2016-07-27 | 富士通株式会社 | 视频图像解码装置及方法 |
CN103379337B (zh) * | 2012-04-27 | 2016-08-03 | 富士通株式会社 | 视频图像编码装置及方法、视频图像解码装置及方法 |
JP2016129418A (ja) * | 2016-03-07 | 2016-07-14 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
JP2016146645A (ja) * | 2016-03-07 | 2016-08-12 | 富士通株式会社 | 動画像符号化復号システム及び動画像符号化復号方法 |
JP2016129420A (ja) * | 2016-03-07 | 2016-07-14 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
JP2016129419A (ja) * | 2016-03-07 | 2016-07-14 | 富士通株式会社 | 動画像復号装置及び動画像復号方法 |
JP2016131387A (ja) * | 2016-03-14 | 2016-07-21 | 富士通株式会社 | 動画像復号方法 |
JP2016165122A (ja) * | 2016-04-11 | 2016-09-08 | 富士通株式会社 | 動画像復号方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130208793A1 (en) | 2013-08-15 |
KR101627568B1 (ko) | 2016-06-09 |
JP5720691B2 (ja) | 2015-05-20 |
US9621886B2 (en) | 2017-04-11 |
ES2750328T3 (es) | 2020-03-25 |
JP2015057909A (ja) | 2015-03-26 |
CN103202015A (zh) | 2013-07-10 |
EP2624554A4 (en) | 2015-01-07 |
EP2624554A1 (en) | 2013-08-07 |
KR101503190B1 (ko) | 2015-03-16 |
JP5983704B2 (ja) | 2016-09-06 |
KR20150028835A (ko) | 2015-03-16 |
KR20130070645A (ko) | 2013-06-27 |
CN103202015B (zh) | 2016-08-03 |
JPWO2012042916A1 (ja) | 2014-02-06 |
EP2624554B1 (en) | 2019-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5983704B2 (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム | |
JP5447695B2 (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム | |
JP5421408B2 (ja) | αチャンネル映像復号化装置、αチャンネル復号化方法及び記録媒体 | |
KR20100066586A (ko) | 복호 장치 및 복호 방법 | |
JP4560694B2 (ja) | 符号化装置及びその方法 | |
JP5221430B2 (ja) | 画像圧縮装置および画像伸張装置 | |
US9014274B2 (en) | Video image encoding device, video image encoding method | |
JP4388771B2 (ja) | 動画像復号装置、および動画像復号方法 | |
JP2008289105A (ja) | 画像処理装置およびそれを搭載した撮像装置 | |
JP4697561B2 (ja) | 復号装置及びその方法 | |
JP4924744B2 (ja) | 復号装置及びその方法 | |
JP4847423B2 (ja) | 動画像符号化装置、および、コンピュータプログラム | |
JP5819754B2 (ja) | 画像符号化装置 | |
WO2022209032A1 (ja) | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法および映像システム | |
JP2011101404A (ja) | 復号装置及び復号方法 | |
JP2010288070A (ja) | 画像符号化装置 | |
JP4924743B2 (ja) | 復号装置及びその方法 | |
JP2022548685A (ja) | 画像データの符号化及び復号化 | |
JP4661992B2 (ja) | 動画像符号化装置および動画像復号装置 | |
Mundgemane Nagaraj | MULTI-STAGE PREDICTION SCHEME FOR SCREEN CONTENT BASED ON HEVC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11828481 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012536233 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011828481 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20137010375 Country of ref document: KR Kind code of ref document: A |