WO2013108330A1 - 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法 - Google Patents
画像復号装置、画像符号化装置、画像復号方法および画像符号化方法 Download PDFInfo
- Publication number
- WO2013108330A1 WO2013108330A1 PCT/JP2012/007676 JP2012007676W WO2013108330A1 WO 2013108330 A1 WO2013108330 A1 WO 2013108330A1 JP 2012007676 W JP2012007676 W JP 2012007676W WO 2013108330 A1 WO2013108330 A1 WO 2013108330A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- processing
- blocks
- image
- storage unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to an image decoding apparatus that decodes an image divided and encoded into a plurality of blocks having at least two types of sizes by pipeline processing including a plurality of processes.
- Patent Document 1 Non-Patent Document 1
- Non-Patent Document 2 There are techniques described in Patent Document 1, Non-Patent Document 1, and Non-Patent Document 2 as techniques related to an image decoding apparatus that decodes an image.
- the present invention provides an image decoding apparatus that can reduce useless waiting time.
- An image decoding apparatus is an image decoding apparatus that decodes an image divided and encoded into a plurality of blocks having at least two types of sizes by pipeline processing including a plurality of processes, A first storage unit having a capacity capable of storing two or more blocks having the largest size among the at least two sizes, and a first process among the plurality of processes is sequentially performed on the plurality of blocks.
- a first processing unit that sequentially stores the plurality of blocks in the first storage unit by storing the block on which the first processing has been performed in the first storage unit; and the first storage
- a second processing unit that sequentially extracts the plurality of blocks from the unit and sequentially performs a second process among the plurality of processes on the extracted blocks.
- This invention reduces unnecessary waiting time in pipeline processing. Therefore, the processing efficiency is improved.
- FIG. 1 is an explanatory diagram showing pipeline processing.
- FIG. 2 is an explanatory diagram showing a variable-size block.
- FIG. 3 is an explanatory diagram showing an operation when pipeline processing is applied to a variable-size block.
- FIG. 4 is a configuration diagram illustrating the image decoding apparatus according to the first embodiment.
- FIG. 5 is a configuration diagram showing connections between a plurality of components according to the first embodiment.
- FIG. 6 is a detailed configuration diagram illustrating a variable length decoding unit, an inverse quantization unit, and an inverse frequency transform unit of the image decoding apparatus according to Embodiment 1.
- FIG. 7A is a diagram showing a sequence according to the first embodiment.
- FIG. 7B is a diagram showing a picture according to Embodiment 1.
- FIG. 7C is a diagram showing an encoded stream according to Embodiment 1.
- FIG. 8A is a diagram illustrating a first configuration example of the coding unit according to Embodiment 1.
- FIG. 8B is a diagram illustrating a second configuration example of the coding unit according to Embodiment 1.
- FIG. 9A is a diagram illustrating a first configuration example of the conversion unit according to Embodiment 1.
- FIG. 9B is a diagram illustrating a second configuration example of the conversion unit according to Embodiment 1.
- FIG. 10A is a diagram illustrating a header of the coding unit according to Embodiment 1.
- FIG. 10B is a diagram illustrating a prediction unit according to Embodiment 1.
- FIG. 11A is a diagram illustrating a configuration example of a plurality of coding units used for describing the operation according to Embodiment 1.
- FIG. 11B is a diagram illustrating details of a plurality of encoding units used for describing the operation according to Embodiment 1.
- FIG. 12 is a flowchart showing the operation of the image decoding apparatus according to Embodiment 1.
- FIG. 13 is a flowchart illustrating processing in which the image decoding apparatus according to Embodiment 1 decodes an encoding unit.
- FIG. 14A is a flowchart showing an operation of the variable length decoding unit according to Embodiment 1.
- FIG. 14B is a flowchart showing an operation of the inverse quantization unit according to Embodiment 1.
- FIG. 14C is a flowchart illustrating an operation of the inverse frequency conversion unit according to Embodiment 1.
- FIG. 14D is a flowchart illustrating an operation of the motion compensation unit according to Embodiment 1.
- FIG. 14E is a flowchart showing the operation of the in-plane prediction unit according to Embodiment 1.
- FIG. 14F is a flowchart illustrating the operation of the reconfiguration unit according to Embodiment 1.
- FIG. 14G is a flowchart illustrating the operation of the in-loop filter unit according to Embodiment 1.
- FIG. 15 is a time chart illustrating the operation of the image decoding apparatus according to Embodiment 1.
- FIG. 16 is a diagram showing an example of the state of the FIFO unit according to the first embodiment in time series.
- FIG. 16 is a diagram showing an example of the state of the FIFO unit according to the first embodiment in time series.
- FIG. 17 is a diagram showing another example of the state of the FIFO unit according to the first embodiment in time series.
- FIG. 18 is a detailed configuration diagram illustrating a variable length decoding unit, an inverse quantization unit, and an inverse frequency conversion unit of the image decoding apparatus according to Embodiment 2.
- FIG. 19A is a flowchart showing an operation of the variable length decoding unit according to Embodiment 2.
- FIG. 19B is a flowchart illustrating an operation of the inverse quantization unit according to Embodiment 2.
- FIG. 19C is a flowchart showing the operation of the inverse frequency converter according to Embodiment 2.
- FIG. 19D is a flowchart illustrating the operation of the motion compensation unit according to Embodiment 2.
- FIG. 19A is a flowchart showing an operation of the variable length decoding unit according to Embodiment 2.
- FIG. 19B is a flowchart illustrating an operation of the inverse quantization unit according to Embodiment 2.
- FIG. 22B is a flowchart showing an operation of the image coding apparatus according to Embodiment 3.
- FIG. 23A is a block diagram showing an image decoding apparatus according to Embodiment 4.
- FIG. 23B is a flowchart showing an operation of the image decoding apparatus according to Embodiment 4.
- FIG. 24A is a configuration diagram illustrating an image encoding device according to Embodiment 4.
- FIG. 24B is a flowchart showing an operation of the image coding apparatus according to Embodiment 4.
- FIG. 25A is a block diagram showing an image decoding apparatus according to Embodiment 5.
- FIG. 25B is a flowchart showing the operation of the processing unit of the image decoding apparatus according to Embodiment 5.
- FIG. 25A is a block diagram showing an image decoding apparatus according to Embodiment 5.
- FIG. 26A is a configuration diagram illustrating an image encoding device according to Embodiment 5.
- FIG. 26B is a flowchart showing the operation of the processing unit of the image coding apparatus according to Embodiment 5.
- FIG. 27 is an overall configuration diagram of a content supply system that implements a content distribution service.
- FIG. 28 is an overall configuration diagram of a digital broadcasting system.
- FIG. 29 is a block diagram illustrating a configuration example of a television.
- FIG. 30 is a block diagram illustrating a configuration example of an information reproducing / recording unit that reads and writes information from and on a recording medium that is an optical disk.
- FIG. 31 is a diagram showing an example of the structure of a recording medium that is an optical disk.
- FIG. 32 is a configuration diagram illustrating a configuration example of an integrated circuit that implements image decoding processing.
- FIG. 33 is a configuration diagram illustrating a configuration example of an integrated circuit that implements image decoding processing and image encoding processing.
- An image encoding apparatus that encodes a moving image divides each picture constituting the moving image into a plurality of macroblocks (Macroblock, sometimes referred to as MB for short) each formed of 16 ⁇ 16 pixels. Then, the image encoding device encodes each macroblock in the raster scan order. The image encoding device generates an encoded stream by encoding and compressing a moving image. The image decoding device decodes this encoded stream for each macroblock in raster scan order, and reproduces each picture of the original moving image.
- Macroblock sometimes referred to as MB for short
- ITU-T H.264 is one of the conventional image encoding methods.
- H.264 standards see, for example, Non-Patent Document 1).
- the image decoding apparatus is the H.264 standard.
- In order to decode an image encoded by the H.264 standard first, an encoded stream is read. Then, the image decoding apparatus performs variable length decoding after decoding various header information. The image decoding apparatus performs inverse frequency conversion by inversely quantizing coefficient information obtained by variable length decoding. Thereby, a difference image is generated.
- the image decoding apparatus performs in-plane prediction or motion compensation according to the macroblock type obtained by variable length decoding. Thereby, the image decoding apparatus generates a predicted image. Thereafter, the image decoding apparatus performs a reconstruction process by adding the difference image to the predicted image. Then, the image decoding apparatus decodes the decoding target image by performing an in-loop filter process on the reconstructed image.
- the image decoding apparatus decodes the encoded image by performing the variable length decoding process to the in-loop filter process for each macroblock.
- a technique for speeding up the decoding process a technique of executing the decoding process by pipeline processing in units of macroblocks is generally used (see, for example, Patent Document 1).
- pipeline processing in units of macroblocks a series of processing from variable length decoding processing to in-loop filter processing is divided into several stages. Then, the processing of each stage is executed in parallel in synchronization with the data unit of the macroblock.
- Non-Patent Document 2 it has been proposed to set the data unit more flexibly in the next-generation image encoding method (see Non-Patent Document 2, for example).
- FIG. 1 shows an example of pipeline processing when the decoding processing is divided into five stages.
- the processing from the first stage to the fifth stage is sequentially performed on one macroblock. Then, the processes from the first stage to the fifth stage are simultaneously performed on a plurality of different macroblocks.
- the image decoding apparatus performs variable length decoding on the encoded stream, and outputs encoded information such as a motion vector and coefficient information corresponding to each pixel data.
- the image decoding apparatus performs inverse quantization and inverse frequency transform on the coefficient information obtained in the first stage, and generates a difference image.
- the image decoding apparatus simultaneously processes a plurality of different macroblocks at each stage using pipeline processing. Thereby, the image decoding apparatus can implement parallel processing and speed up the decoding processing.
- the time slot (TS) cycle of the pipeline processing is determined by the processing cycle of the stage having the longest processing cycle. Therefore, if only the processing cycle of a certain stage becomes long, the other stages cannot start the processing of the next macroblock until the processing of the longest stage is completed. Therefore, useless space is generated. In order to operate the pipeline processing efficiently, it is important to configure the processing so as not to use unnecessary vacancies.
- the image encoding apparatus As described above, the image encoding apparatus according to the H.264 standard encodes an image in units of macroblocks configured by 16 ⁇ 16 pixels. However, 16 ⁇ 16 pixels are not necessarily optimal as a unit of encoding. In general, as the image resolution increases, the correlation between adjacent blocks increases. Therefore, the compression efficiency can be further improved by increasing the encoding unit.
- Non-patent Document 2 the conventional H.264.
- the block size corresponding to the H.264 standard is variable.
- the image encoding apparatus according to this technique can also encode an image with a block larger than the conventional 16 ⁇ 16 pixels, and can appropriately encode an ultra-high-definition image.
- an encoding unit is defined as an encoding data unit.
- This encoding unit is a data unit capable of switching between intra prediction for performing intra prediction and inter prediction for performing motion compensation, as in the case of a macroblock in the conventional encoding standard. Is defined as a general block.
- the size of this encoding unit is any of 4 ⁇ 4 pixels, 8 ⁇ 8 pixels, 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, 64 ⁇ 64 pixels, and 128 ⁇ 128 pixels.
- the largest coding unit is referred to as a maximum coding unit (LCU).
- the 64 ⁇ 64 pixel encoding unit includes 4096 pixel data.
- the 128 ⁇ 128 pixel encoding unit includes 16384 pixel data. That is, the 128 ⁇ 128 pixel encoding unit includes four times as much data as the 64 ⁇ 64 pixel encoding unit.
- FIG. 2 shows an example of a plurality of encoding units composed of 128 ⁇ 128 pixels and 64 ⁇ 64 pixels.
- Non-Patent Document 2 further defines a conversion unit (TU: Transform Unit, also called frequency conversion unit).
- the conversion unit is defined as a block size for frequency conversion. Specifically, the size of this conversion unit is any of 4 ⁇ 4 pixels, 8 ⁇ 8 pixels, 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, and 64 ⁇ 64 pixels.
- a prediction unit is defined as a data unit for in-plane prediction or inter prediction.
- the prediction unit is selected from various rectangular sizes of 4x4 pixels or more, such as 128x128 pixels, 64x128 pixels, 128x64 pixels, or 64x64 pixels, within the encoding unit.
- Non-Patent Document 2 describes a technique for improving encoding efficiency by changing the size of an encoding unit, that is, a macroblock.
- the pipeline processing shown in Patent Document 1 is applied to such a variable encoding unit, the required processing amount increases in proportion to the number of pixels included in the encoding unit. Similarly, the number of processing cycles increases.
- FIG. 3 shows an example in which an encoded stream is decoded by pipeline processing of five stages.
- CU0 is a 128 ⁇ 128 pixel encoding unit
- CU1 to CU4 are 64 ⁇ 64 pixel encoding units.
- CU0 is an encoding unit having a pixel number four times that of CU1 to CU4
- the processing cycle of CU0 is four times that of other encoding units.
- an image decoding device performs pipeline processing including a plurality of processes on an image that is divided into a plurality of blocks having at least two sizes and encoded.
- An image decoding apparatus for decoding a first storage unit having a capacity capable of storing two or more blocks of the largest size among the at least two types of sizes, and the plurality of processes for the plurality of blocks The first process is sequentially performed, and the plurality of blocks are sequentially stored in the first storage unit by storing the block on which the first process is performed in the first storage unit.
- the first processing unit processes the block of the largest size and writes the block to the first storage unit, while the second processing unit transfers another block of the largest size to the first storage unit.
- the other block can be processed by extracting from the storage unit.
- the first storage unit can hold three or more blocks depending on their sizes. Therefore, the useless waiting time in which the first processing unit and the second processing unit wait for the end of the processing is reduced, and the processing efficiency is improved.
- the image decoding apparatus further includes a second storage unit, and the second processing unit determines whether or not the block in which the first process is performed is stored in the first storage unit. And determining whether or not an area for storing the block on which the second process has been performed is free in the second storage unit, and the first process is performed in the first storage unit. At a timing when it is determined that the block has been stored and the area for storing the block on which the second processing has been performed is determined to be free in the second storage unit. The block is extracted from the first storage unit, the second process is performed on the extracted block, and the block on which the second process is performed is stored in the second storage unit. It may be stored.
- the second processing unit can perform processing at the timing when preparation for processing is completed. Therefore, useless waiting time is reduced.
- the image decoding device further includes a determination unit that determines the size of each of the plurality of blocks, and the first processing unit is configured according to the size of the block on which the first processing has been performed. An area that the block occupies in the first storage unit may be determined, and the block may be stored in the determined area.
- the first processing unit can appropriately store a plurality of blocks in the first storage unit according to their sizes. Therefore, the first processing unit can store many blocks in a small capacity.
- the first storage unit may have a capacity capable of storing three or more blocks having the largest size among the at least two sizes.
- the first processing unit can store more blocks in the first storage unit. Therefore, the image decoding apparatus can more reliably reduce the waiting time.
- the plurality of blocks are a plurality of encoding units, a plurality of transform units, or a plurality of prediction units
- the first processing unit or the second processing unit includes the plurality of encoding units.
- a variable length decoding process for a unit, an inverse frequency transform process for the plurality of transform units, or a prediction process for the plurality of prediction units may be performed as the first process or the second process.
- the first processing unit may perform variable length decoding processing as the first processing
- the second processing unit may perform inverse quantization processing as the second processing.
- the first processing unit may perform inverse quantization processing as the first processing
- the second processing unit may perform inverse frequency conversion processing as the second processing.
- the first processing unit may perform an inverse frequency conversion process as the first process
- the second processing unit may perform a reconstruction process as the second process.
- the first processing unit may perform in-plane prediction processing as the first processing
- the second processing unit may perform reconstruction processing as the second processing.
- the first processing unit may perform motion compensation processing as the first processing
- the second processing unit may perform reconstruction processing as the second processing
- the first processing unit may perform a reconstruction process as the first process
- the second processing unit may perform an in-loop filter process as the second process.
- the first processing unit may perform a reference image transfer process as the first process
- the second processing unit may perform a motion compensation process as the second process.
- the second processing unit sequentially extracts the plurality of blocks from the first storage unit asynchronously with the first processing unit, and extracts the plurality of blocks.
- the second process may be performed sequentially.
- the first processing unit and the second processing unit operate asynchronously and independently. Therefore, the first processing unit and the second processing unit perform each process at an appropriate timing. Therefore, useless waiting time is reduced and processing efficiency is improved.
- the second processing unit includes the first processing unit in the processing order of the plurality of blocks in parallel with the first processing unit performing the first processing on the first block.
- the second process may be performed on a second block that is two or more away from this block.
- the first processing unit can perform processing regardless of the progress of processing in the second processing unit. Therefore, useless waiting time is reduced.
- the image encoding device divides an image into a plurality of blocks having at least two sizes, and encodes the divided image by pipeline processing including a plurality of processes.
- An image encoding device comprising: a first storage unit having a capacity capable of storing two or more blocks of the largest size among the at least two types of sizes; and a plurality of processes for the plurality of blocks.
- first processing is sequentially performed, and the first storage unit sequentially stores the plurality of blocks in the first storage unit by storing the block on which the first processing has been performed.
- a second processing unit that sequentially extracts the plurality of blocks from the first storage unit and sequentially performs a second process among the plurality of processes on the extracted blocks.
- Picture mark It may be in the apparatus.
- expressions such as 128 ⁇ 128 pixels and 64 ⁇ 64 pixels mean sizes of 128 pixels ⁇ 128 pixels and 64 pixels ⁇ 64 pixels, respectively.
- expressions such as a block, a data unit, and a coding unit mean a grouped area. Each of them may mean an image area. Alternatively, they may each mean a data area in the encoded stream.
- the image may be a moving image, a still image, a plurality of pictures constituting a moving image, a single picture, a part of a picture, or the like.
- the image decoding apparatus decodes an encoded stream that is an encoded image.
- the size of the encoding unit constituting the encoded stream is variable.
- the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
- the image decoding apparatus performs a plurality of processes in parallel in a pipeline manner with the size of the encoding unit defined in the encoded stream.
- An input / output buffer is connected to a plurality of processing units constituting the image decoding apparatus.
- This input / output buffer includes a FIFO (First In First Out) unit capable of holding data corresponding to at least three maximum encoding units. Note that the maximum encoding unit is the largest encoding unit among a plurality of encoding units constituting the encoded stream.
- FIFO First In First Out
- FIG. 4 is a configuration diagram of the image decoding apparatus according to the present embodiment.
- the image decoding apparatus according to the present embodiment includes a control unit 501, a frame memory 502, a reconstructed image memory 509, a variable length decoding unit 503, an inverse quantization unit 504, an inverse frequency conversion unit 505, a motion compensation unit 506, an in-plane A prediction unit 507, a reconstruction unit 508, and an in-loop filter unit 510 are provided.
- the control unit 501 controls the entire image decoding apparatus.
- the frame memory 502 is a memory for storing the decoded image data.
- the reconstructed image memory 509 is a memory for storing a part of the generated reconstructed image.
- the variable length decoding unit 503 reads the encoded stream and decodes the variable length code.
- the inverse quantization unit 504 performs inverse quantization.
- the inverse frequency conversion unit 505 performs inverse frequency conversion.
- the motion compensation unit 506 reads a reference image from the frame memory 502, performs motion compensation, and generates a predicted image.
- the in-plane prediction unit 507 reads a reference image from the reconstructed image memory 509, performs in-plane prediction (also referred to as intra prediction), and generates a predicted image.
- the reconstruction unit 508 generates a reconstructed image by adding the difference image and the predicted image, and stores a part of the reconstructed image in the reconstructed image memory 509.
- the in-loop filter unit 510 removes noise from the reconstructed image by in-loop filter processing, and improves the quality of the reconstructed image.
- the in-loop filter is a filter that is applied before the reconstructed image is stored in the frame memory 502 as a reference image.
- a deblock filter, a sample adaptive offset filter, and an active loop filter may be used as the in-loop filter.
- a filter applied at the time of display is called an out-loop filter.
- FIG. 5 is a configuration diagram showing connections between a plurality of processing units. Constituent elements similar to those in FIG.
- variable length decoding unit 503 The input of the encoded stream to the variable length decoding unit 503 according to the present embodiment is performed via the FIFO unit 500.
- variable length decoding unit 503 and the inverse quantization unit 504 are connected via a FIFO unit 511 for storing coefficients.
- inverse quantization unit 504 and the inverse frequency conversion unit 505 are connected via a FIFO unit 512 for storing the quantized coefficients.
- the inverse frequency transform unit 505 and the reconstruction unit 508 are connected via a FIFO unit 513 for storing a residual image after the inverse frequency transform process.
- the frame memory 502 and the motion compensation unit 506 are connected via a FIFO unit 514 for storing a reference image.
- the motion compensation unit 506 and the reconstruction unit 508 are connected via a FIFO unit 515 for storing a predicted image.
- the reconstruction unit 508 and the in-plane prediction unit 507 are connected via a FIFO unit 517 for storing a predicted image.
- the reconstruction unit 508 and the in-loop filter unit 510 are connected via a FIFO unit 518 for storing a reconstructed image.
- the in-loop filter unit 510 and the frame memory 502 are connected via a FIFO unit 519 for storing a decoded image.
- Each FIFO unit can hold data for three or more maximum encoding units.
- FIG. 6 is a diagram illustrating in detail the connection of the variable length decoding unit 503, the inverse quantization unit 504, the inverse frequency conversion unit 505, the FIFO unit 500, the FIFO unit 511, the FIFO unit 512, and the FIFO unit 513.
- a FIFO management unit 5001 and an activation unit 5011 are added around the variable length decoding unit 503.
- the FIFO management unit 5001 manages the data held in the FIFO unit 500 and manages the free area of the FIFO unit 511.
- the activation unit 5011 determines the states of the input FIFO unit 500 and the output FIFO unit 511 connected to the variable length decoding unit 503 from the information managed by the FIFO management unit 5001. Then, the activation unit 5011 activates the variable length decoding unit 503 based on the state of the FIFO unit 500 and the FIFO unit 511. That is, the activation unit 5011 causes the variable length decoding unit 503 to execute variable length decoding processing.
- a FIFO management unit 5002 and an activation unit 5012 are added to the configuration shown in FIG. 5 around the inverse quantization unit 504.
- the FIFO management unit 5002 manages the data held in the FIFO unit 511 and manages the free area of the FIFO unit 512.
- the activation unit 5012 determines the states of the input FIFO unit 511 and the output FIFO unit 512 connected to the inverse quantization unit 504 from the information managed by the FIFO management unit 5002. Then, the activation unit 5012 activates the inverse quantization unit 504 based on the state of the FIFO unit 511 and the FIFO unit 512. That is, the activation unit 5012 causes the inverse quantization unit 504 to execute the inverse quantization process.
- a FIFO management unit 5003 and an activation unit 5013 are added to the configuration shown in FIG. 5 around the inverse frequency conversion unit 505.
- the FIFO management unit 5003 manages the data held in the FIFO unit 512 and manages the free area of the FIFO unit 513.
- the activation unit 5013 determines the states of the input FIFO unit 512 and the output FIFO unit 513 connected to the inverse frequency conversion unit 505 from the information managed by the FIFO management unit 5003. Then, the activation unit 5013 activates the inverse frequency conversion unit 505 based on the state of the FIFO unit 512 and the FIFO unit 513. That is, the activation unit 5013 causes the inverse frequency conversion unit 505 to execute an inverse frequency conversion process.
- each processing unit shown in FIG. 5 is also provided with a FIFO management unit and an activation unit. Thereby, each processing unit performs processing based on the state of the FIFO unit.
- Each processing unit may include a FIFO management unit and an activation unit.
- the operation of the FIFO management unit and the operation of the activation unit may be shown as the operations of the respective processing units including the FIFO management unit and the activation unit.
- the image decoding device may include a reference image transfer processing unit that performs a reference image transfer process.
- the reference image transfer processing unit transfers the reference image from the frame memory 502 to the FIFO unit 514.
- the motion compensation unit 506 performs motion compensation using the reference image transferred by the reference image transfer processing unit.
- the encoded stream decoded by the image decoding apparatus according to the present embodiment includes an encoding unit, a conversion unit, and a prediction unit.
- the encoding unit is a data unit set with a size of 128 ⁇ 128 pixels to 8 ⁇ 8 pixels and capable of switching between in-plane prediction and inter prediction.
- the conversion unit is set to a size of 64 ⁇ 64 pixels to 4 ⁇ 4 pixels inside the encoding unit.
- the prediction unit is set with a size of 128 ⁇ 128 pixels to 4 ⁇ 4 pixels inside the encoding unit, and has a motion vector for intra prediction mode or inter prediction.
- FIGS. 7A to 10B the configuration of the encoded stream will be described with reference to FIGS. 7A to 10B.
- FIG. 7A and 7B show a hierarchical configuration of an encoded stream decoded by the image decoding apparatus according to the present embodiment.
- a group of a plurality of pictures is called a sequence.
- each picture is divided into slices, and each slice is further divided into coding units.
- a picture may not be divided into slices.
- the maximum encoding unit size is 128 ⁇ 128 pixels. Also, a 128 ⁇ 128 pixel encoding unit and a 64 ⁇ 64 pixel encoding unit are mixed.
- FIG. 7C is a diagram showing an encoded stream according to the present embodiment.
- the data shown in FIGS. 7A and 7B are hierarchically encoded, whereby the encoded stream shown in FIG. 7C is obtained.
- the encoded stream shown in FIG. 7C includes a sequence header that controls a sequence, a picture header that controls a picture, a slice header that controls a slice, and encoded unit layer data (CU layer data).
- a sequence header is called SPS (Sequence Parameter Set)
- a picture header is called PPS (Picture Parameter Set).
- the encoded stream includes a CU division flag and CU data.
- this CU division flag is “1”, it indicates that the block is divided into four, and when it is “0”, it indicates that the block is not divided into four.
- the CU partition flag is “0”.
- the first CU division flag is “1”.
- This first CU partition flag indicates that a block of 128 ⁇ 128 pixels is divided into four blocks of at least 64 ⁇ 64 pixels. Since each of the four blocks of 64 ⁇ 64 pixels is not divided, the subsequent CU division flag is “0”. In this way, the size of the encoding unit is specified as any of 128 ⁇ 128 pixels to 4 ⁇ 4 pixels by the CU partition flag.
- FIG. 9A and FIG. 9B each show a configuration example of the conversion unit according to the present embodiment.
- the CU data of each coding unit further includes a CU header, a TU partition flag, and coefficient information.
- the CU header will be described later.
- the TU partition flag indicates the size of the transform unit in the encoding unit, and indicates whether or not the size is hierarchically divided into four as with the CU partition flag.
- FIG. 9A shows an example in which a 128 ⁇ 128 pixel encoding unit is composed of four 64 ⁇ 64 pixel conversion units.
- the maximum transform unit is 64 ⁇ 64 pixels, it is necessarily divided into four.
- each 64 ⁇ 64 pixel block is not divided. Therefore, the TU partition flags are all “0”.
- FIG. 9B shows an example in which an encoding unit of 128 ⁇ 128 pixels includes three conversion units of 64 ⁇ 64 pixels and four conversion units of 32 ⁇ 32 pixels. In this case, there is a TU partition flag having a value of “1”.
- 9A and 9B includes luminance data (luminance information) and color difference data (color difference information). That is, coefficient information including both luminance data and color difference data is collected for each conversion unit in the encoded stream.
- the CU header includes a CU type, and further includes a motion vector or an in-plane prediction mode.
- the size of the prediction unit is determined by the CU type.
- FIG. 10B shows prediction units of 128 ⁇ 128 pixels, 64 ⁇ 128 pixels, 128 ⁇ 64 pixels, and 64 ⁇ 64 pixels.
- the size of the prediction unit can be selected from sizes of 4 ⁇ 4 pixels or more.
- the prediction unit may be rectangular.
- a motion vector or an in-plane prediction mode is designated for each prediction unit.
- FIG. 11A and FIG. 11B show a configuration example of a plurality of encoding units used for explanation of the operation. Eight encoding units (CU0 to CU7) shown in FIG. 11A are used to describe the operation of the image decoding apparatus according to the present embodiment.
- CU0 and CU5 to CU7 are encoding units each composed of 128 ⁇ 128 pixels.
- CU1 to CU4 are coding units configured by 64 ⁇ 64 pixels.
- the size of the conversion unit of CU4 is 32 ⁇ 32 pixels. All the other conversion units have a size of 64 ⁇ 64 pixels.
- the size of the prediction unit of CU0 is 128 ⁇ 128 pixels
- the size of the prediction units of CU1 to CU4 is 64 ⁇ 64 pixels
- the size of the prediction units of CU5 to CU7 is 128 ⁇ 128 pixels.
- FIG. 12 is a flowchart showing the decoding operation of one sequence included in the encoded stream.
- the image decoding apparatus first decodes the sequence header (S901).
- the variable length decoding unit 503 decodes the encoded stream based on the control of the control unit 501.
- the image decoding apparatus similarly decodes the picture header (S902) and decodes the slice header (S903).
- the image decoding apparatus decodes the encoding unit (S904).
- the decoding of the encoding unit will be described in detail later.
- the image decoding apparatus determines whether or not the decoded coding unit is the last coding unit in the slice (S905). If the decoded coding unit is not the last coding unit of the slice, the image decoding apparatus again decodes the next coding unit (S904).
- the image decoding apparatus determines whether or not the slice including the decoded encoding unit is the last slice of the picture (S906). If it is not the last slice of the picture, the image decoding apparatus decodes the slice header again (S903).
- the image decoding apparatus determines whether or not the picture including the decoded encoding unit is the last picture in the sequence (S907). If the picture is not the last picture in the sequence, the image decoding apparatus decodes the picture header again (S902). After decoding all the pictures in the sequence, the image decoding apparatus ends a series of decoding operations.
- FIG. 13 is a flowchart showing the decoding operation of one encoding unit.
- variable length decoding unit 503 performs variable length decoding on the processing target encoding unit included in the input encoded stream (S1001).
- the variable length decoding unit 503 outputs coding information such as a coding unit type, an intra prediction (intra prediction) mode, motion vector information, and a quantization parameter, and corresponds to each pixel data.
- Output coefficient information The encoded information is output to the control unit 501 and then input to each processing unit.
- the coefficient information is output to the next inverse quantization unit 504.
- the inverse quantization unit 504 performs an inverse quantization process (S1002).
- the inverse frequency transform unit 505 performs inverse frequency transform to generate a difference image (S1003).
- the control unit 501 determines whether inter prediction or in-plane prediction is used for the processing target encoding unit (S1004).
- the motion compensation unit 506 is activated by the control unit 501, and the motion compensation unit 506 generates a prediction image with 1/2 pixel accuracy or 1/4 pixel accuracy (S1005).
- the in-plane prediction unit 507 is activated by the control unit 501, the in-plane prediction unit 507 performs the in-plane prediction process, and the predicted image is obtained.
- Generate S1006.
- the reconstruction unit 508 generates a reconstructed image by adding the prediction image output from the motion compensation unit 506 or the in-plane prediction unit 507 and the difference image output from the inverse frequency conversion unit 505 (S1007).
- the generated reconstructed image is input to the in-loop filter unit 510.
- the portion used in the in-plane prediction is stored in the reconstructed image memory 509.
- the in-loop filter unit 510 performs in-loop filter processing for reducing noise on the obtained reconstructed image.
- the in-loop filter unit 510 stores the result in the frame memory 502 (S1008). This completes the decoding operation of the encoding unit.
- the plurality of processes shown in FIG. 13 are divided into a plurality of stages by dotted lines.
- the image decoding apparatus simultaneously performs a plurality of processes on a plurality of encoding units that are different for each stage.
- parallel processing is realized and performance is improved.
- Such processing is called pipeline processing.
- the first stage includes a variable length decoding process (S1001).
- the second stage includes an inverse quantization process (S1002) and an inverse frequency conversion process (S1003).
- the third stage includes a motion compensation process (S1005).
- the fourth stage includes in-plane prediction processing (S1006) and reconstruction processing (S1007).
- the fifth stage includes in-loop filter processing (S1008).
- the plurality of processes divided into the plurality of stages are executed in parallel in a pipeline manner with respect to a plurality of encoding units different from one another for each stage.
- the image decoding apparatus does not need to execute the processes of all stages in synchronization. Then, the image decoding apparatus can execute the processing of each stage asynchronously with the processing of other stages.
- FIG. 14A is a flowchart showing the operation of the variable length decoding unit 503 shown in FIG. First, after the CU0 header is input to the FIFO unit 500, the variable length decoding unit 503 performs variable length decoding processing on the CU0 header (S1010).
- variable length decoding unit 503 confirms that the input data necessary for the variable length decoding process of the data of CU0 has been input to the FIFO unit 500 (S1011). Also, the variable length decoding unit 503 confirms that there is a free area in the output destination FIFO unit 511 for outputting the coefficient obtained by the variable length decoding process of the data of CU0 (S1012). After the confirmation, the variable length decoding unit 503 performs variable length decoding processing of the data of CU0 (S1013).
- variable length decoding unit 503 performs variable length decoding processing on the CU1 header (S1010).
- variable length decoding unit 503 confirms that the input data necessary for the variable length decoding process of the data of CU1 has been input to the FIFO unit 500 (S1011). Also, the variable length decoding unit 503 confirms that there is a free area in the output destination FIFO unit 511 for outputting the coefficient obtained by the variable length decoding process of the data of CU1 (S1012). After the confirmation, the variable length decoding unit 503 performs variable length decoding processing of the data of CU1 (S1013).
- variable length decoding unit 503 performs the same operation for subsequent encoding units.
- the variable length decoding unit 503 ends the variable length decoding process of the last coding unit of the slice.
- FIG. 14B is a flowchart showing the operation of the inverse quantization unit 504 shown in FIG.
- the inverse quantization unit 504 confirms that input data necessary for the inverse quantization process of CU0 has been input to the FIFO unit 511 (S1021). Also, the inverse quantization unit 504 confirms that there is a free area in the output destination FIFO unit 512 for outputting the result obtained by the inverse quantization process of CU0 (S1022). After the confirmation, the inverse quantization unit 504 performs the inverse quantization process for CU0 (S1002).
- the inverse quantization unit 504 confirms that the input data necessary for the inverse quantization process of the CU1 has been input to the FIFO unit 511 (S1021). Further, the inverse quantization unit 504 confirms that there is a free area in the output destination FIFO unit 512 for outputting the result obtained by the inverse quantization processing of the CU1 (S1022). After the confirmation, the inverse quantization unit 504 performs the inverse quantization process for CU1 (S1002).
- the inverse quantization unit 504 performs the same operation for the subsequent encoding units. Then, when the inverse quantization process of the last coding unit of the slice is completed, the inverse quantization unit 504 ends the slice inverse quantization process (S1023).
- FIG. 14C is a flowchart showing the operation of the inverse frequency converter 505 shown in FIG.
- the inverse frequency conversion unit 505 confirms that input data necessary for the inverse frequency conversion process of the CU0 has been input to the FIFO unit 512 (S1031). Further, the inverse frequency transform unit 505 confirms that there is a free area in the output destination FIFO unit 513 for outputting the result obtained by the inverse frequency transform process of CU0 (S1032). After the confirmation, the inverse frequency conversion unit 505 performs an inverse frequency conversion process for CU0 (S1003).
- the inverse frequency conversion unit 505 confirms that input data necessary for the inverse frequency conversion process of the CU1 has been input to the FIFO unit 512 (S1031). Further, the inverse frequency transform unit 505 confirms that there is a free area in the output destination FIFO unit 513 for outputting the result obtained by the inverse frequency transform process of the CU1 (S1032). After the confirmation, the inverse frequency conversion unit 505 performs the inverse frequency conversion process of CU1 (S1003).
- the inverse frequency conversion unit 505 performs the same operation for the subsequent encoding units. Then, when the inverse frequency conversion process of the last coding unit of the slice is completed, the inverse frequency conversion unit 505 ends the inverse frequency conversion process of the slice (S1033).
- FIG. 14D is a flowchart showing the operation of the motion compensation unit 506 shown in FIG.
- the prediction mode of CU0 to CU7 is inter prediction, as in the example of FIG. 11B.
- the motion compensation unit 506 confirms that input data necessary for the motion compensation processing of CU0 has been input to the FIFO units 511 and 514 (S1041). Also, the motion compensation unit 506 confirms that there is a free area in the output destination FIFO unit 515 for outputting the result obtained by the motion compensation processing of CU0 (S1042). After confirmation, the motion compensation unit 506 performs motion compensation processing for CU0 (S1004).
- the motion compensation unit 506 confirms that the input data necessary for the motion compensation processing of CU1 has been input to the FIFO units 511 and 514 (S1041). In addition, the motion compensation unit 506 confirms that there is a free area in the output destination FIFO unit 515 for outputting the result obtained by the motion compensation processing of the CU 1 (S1042). After confirmation, the motion compensation unit 506 performs motion compensation processing for CU0 (S1004).
- the motion compensation unit 506 performs the same operation for the subsequent encoding units. Then, when the motion compensation process for the last coding unit of the slice is completed, the motion compensation unit 506 ends the motion compensation process for the slice (S1043).
- FIG. 14E is a flowchart showing the operation of the in-plane prediction unit 507 shown in FIG.
- the prediction mode of CU0 to CU7 is intra prediction.
- the in-plane prediction unit 507 confirms that input data necessary for the in-plane prediction process of CU0 has been input to the FIFO unit 511 and the reconstructed image memory 509 (S1051). Further, the in-plane prediction unit 507 confirms that there is a free area in the output destination FIFO unit 517 for outputting a predicted image obtained by the in-plane prediction process of CU0 (S1052). After the confirmation, the in-plane prediction unit 507 performs an in-plane prediction process for CU0 (S1005).
- the in-plane prediction unit 507 confirms that the input data necessary for the in-plane prediction process of CU1 has been input to the FIFO unit 511 and the reconstructed image memory 509 (S1051). Further, the in-plane prediction unit 507 confirms that there is a free area in the output destination FIFO unit 517 for outputting a predicted image obtained by the in-plane prediction process of the CU1 (S1052). After the confirmation, the in-plane prediction unit 507 performs an in-plane prediction process for CU1 (S1005).
- the in-plane prediction unit 507 performs the same operation for subsequent encoding units. Then, when the intra prediction process of the last coding unit of the slice is completed, the intra prediction unit 507 ends the intra prediction process of the slice (S1053).
- FIG. 14F is a flowchart showing the operation of the reconfiguration unit 508 shown in FIG.
- the reconfiguration unit 508 confirms that input data necessary for the reconfiguration processing of CU0 has been input to the FIFO units 513, 515, and 517 (S1061). Also, the reconstruction unit 508 confirms that there is a free area in the output destination FIFO unit 518 for outputting the reconstructed image obtained by the reconstruction process of the CU0 (S1062). After confirmation, the reconfiguration unit 508 performs reconfiguration processing for CU0 (S1006).
- the reconfiguration unit 508 confirms that the input data necessary for the reconfiguration process of the CU1 has been input to the FIFO units 513, 515, and 517 (S1061). Also, the reconstruction unit 508 confirms that the output destination FIFO unit 518 has a free area for outputting the reconstructed image obtained by the reconstruction process of the CU 1 (S1062). After confirmation, the reconfiguration unit 508 performs reconfiguration processing for CU1 (S1006).
- the reconstruction unit 508 performs the same operation for the subsequent encoding units. Then, the reconstruction unit 508 terminates the slice reconstruction process when the reconstruction process for the last coding unit of the slice is terminated (S1063).
- FIG. 14G is a flowchart showing the operation of the in-loop filter unit 510 shown in FIG.
- the in-loop filter unit 510 confirms that input data required for the in-loop filter processing of the CU0 has been input to the FIFO unit 518 (S1071). Further, the in-loop filter unit 510 confirms that there is a free area in the output destination FIFO unit 519 for outputting the decoded image obtained by the in-loop filter processing of the CU0 (S1072). After the confirmation, the in-loop filter unit 510 performs an in-loop filter process for CU0 (S1007).
- the in-loop filter unit 510 confirms that input data necessary for the in-loop filter processing of the CU 1 has been input to the FIFO unit 518 (S1071). Further, the in-loop filter unit 510 confirms that there is a free area in the output destination FIFO unit 519 for outputting the decoded image obtained by the in-loop filter processing of the CU 1 (S1072). After confirmation, the in-loop filter unit 510 performs in-loop filter processing for CU1 (S1007).
- the in-loop filter unit 510 performs the same operation for subsequent encoding units. Then, when the in-loop filter processing of the last coding unit of the slice is completed, the in-loop filter unit 510 ends the in-loop filter processing of the slice (S1073).
- variable length decoding unit 503 performs the variable length decoding process described above.
- the inverse quantization unit 504 performs the above-described inverse quantization process
- the inverse frequency conversion unit 505 performs the above-described inverse frequency conversion process.
- the motion compensation unit 506 performs the motion compensation process described above.
- the in-plane prediction unit 507 performs the above-described in-plane prediction process
- the reconstruction unit 508 performs the above-described reconstruction process.
- the in-loop filter unit 510 performs the above-described in-loop filter processing.
- the image decoding apparatus performs a series of processes using the output result of the previous stage as input data of the next stage. As described above, the image decoding apparatus performs a plurality of processes in parallel on a plurality of different encoding units at a plurality of stages. Then, the image decoding apparatus executes each of the plurality of processes asynchronously with the other processes at a timing when necessary preparation is completed.
- FIG. 15 is a time chart showing time-series operations of the image decoding apparatus according to the present embodiment.
- FIG. 15 shows an operation when a plurality of processes are divided into a plurality of stages as shown in FIG. 13 and a plurality of encoding units are configured as shown in FIG. 11A.
- the encoding unit to be processed is switched independently of the other stages at the timing when necessary preparations are completed. Therefore, as shown in FIG. 3, occurrence of useless waiting time is suppressed.
- FIG. 16 is a diagram showing the state of the FIFO unit 513 according to the present embodiment in time series.
- the FIFO unit 513 is a component for storing the residual image obtained by the inverse frequency conversion process.
- the FIFO unit 513 has a capacity capable of storing data for four maximum encoding units.
- FIG. 16 shows the state of data stored in the FIFO unit 513 at times A to J.
- time A corresponds to the time point before the reverse frequency conversion process of CU0 is completed in FIG.
- Time B corresponds to the time point when the inverse frequency conversion processing of CU0 is completed in FIG.
- Time C corresponds to the time point when the inverse frequency conversion processing of CU1 is completed in FIG.
- Time D corresponds to the time point when the inverse frequency conversion processing of CU2 is completed in FIG.
- time E corresponds to the time point when the reconfiguration process of CU0 is completed before the inverse frequency conversion process of CU3 is completed.
- time F corresponds to the time point when the inverse frequency conversion process of the CU 3 is completed in FIG.
- time G corresponds to the time point when the reconfiguration process of CU1 is completed before the inverse frequency conversion process of CU4 is completed.
- Time H corresponds to the time point when the inverse frequency conversion processing of CU4 is completed in FIG.
- time I corresponds to the time point when the reconfiguration process of CU2 is completed before the inverse frequency conversion process of CU5 is completed.
- Time J corresponds to the time point when the inverse frequency conversion processing of CU5 is completed in FIG.
- WP represents a write pointer and indicates a position to write input data.
- RP represents a read pointer and indicates a position from which output data is read.
- the held CU counter value indicates the number of encoding units held by the FIFO unit 513.
- the reconstruction unit 508 determines whether there is input data for one encoding unit based on whether the retained CU counter value is 1 or more (FIG. 14F). S1061). Further, when performing the inverse frequency conversion process, the inverse frequency transform unit 505 determines whether there is an output area for one encoding unit based on whether the retained CU counter value is 3 or less. (S1032 in FIG. 14C).
- the processing unit that stores data in a specific FIFO unit increases the retained CU counter value of the FIFO unit. Further, the processing unit that extracts data from the FIFO unit decreases the retained CU counter value of the FIFO unit.
- the inverse frequency conversion unit 505 increases the holding CU counter value of the FIFO unit 513 after storing the data. Then, the reconfiguration unit 508 decreases the retained CU counter value of the FIFO unit 513 after data extraction.
- the retained CU counter value of the FIFO unit 513 is 1 or more and 3 or less. Therefore, useless waiting time does not occur.
- FIG. 17 is a diagram showing another example of the state of the FIFO unit 513 according to the present embodiment in time series.
- the FIFO unit 513 has a capacity capable of storing data for three maximum encoding units.
- Other conditions are the same as in the example of FIG.
- the inverse frequency transform unit 505 when performing the inverse frequency conversion process, has an output area for one encoding unit based on whether or not the retained CU counter value is 2 or less. Is determined (S1032 in FIG. 14C). Therefore, when the retained CU counter value is 3, a waiting time occurs in the inverse frequency conversion process. However, the occurrence of the waiting time is suppressed as compared with the case where the FIFO unit 513 is not provided. In addition, since other variable length decoding processes and inverse quantization processes are performed asynchronously, the processing delay is reduced as a whole.
- the start and completion timings of a plurality of processes included in the pipeline process are not synchronized. Therefore, useless waiting time is reduced, and pipeline processing is executed efficiently.
- the image decoding apparatus includes a FIFO unit that can hold data for at least three maximum encoding units as an input / output buffer connected to each of a plurality of processing units.
- An area for one maximum encoding unit is used for each of the storage process and the extraction process.
- An area equal to or larger than one maximum encoding unit is used as a buffer for absorbing fluctuations in processing time.
- the time for waiting for data input and the time for waiting for an empty output buffer in each process decreases. As a result, the processing performance is further improved. In addition, since the circuit operates efficiently, the required power consumption is reduced.
- an encoding unit is used as a data unit used for encoding and decoding.
- the data unit used for encoding and decoding may be a macroblock.
- the data unit used for encoding and decoding may be a block called a super macro block.
- each process in the pipeline process is shown based on the encoding method shown in Non-Patent Document 2.
- each process in the pipeline process is not limited to the example of the present embodiment.
- the size of the maximum encoding unit is 128 ⁇ 128 pixels.
- the size of the maximum encoding unit may be any size.
- the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
- the size of the encoding unit may be other sizes.
- the configuration of the pipeline processing shown in the present embodiment is an example. It is not always necessary to divide a plurality of processes into a plurality of stages as in this embodiment. For example, a plurality of processes may be realized in one stage, and one process may be divided into several stages.
- variable length code In the present embodiment, a variable length code is used.
- the encoding method of the variable length code may be any encoding method such as a Huffman code, a run length code, or an arithmetic code.
- each processing unit may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
- the FIFO unit 500, the FIFO unit 511, the FIFO unit 512, the FIFO unit 513, the FIFO unit 514, the FIFO unit 515, the FIFO unit 517, the FIFO unit 518, the FIFO unit 519, the frame memory 502, and the reconfigured image memory 509 are memories. Not limited to. These may be storage elements that can store data. For example, these may be flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
- the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
- the same configuration as in the present embodiment may be applied in addition to the decoding process.
- a configuration similar to that of the present embodiment may be applied to an encoding process that is the reverse process of the decoding process. That is, the image encoding apparatus may include a FIFO unit that can hold data for at least three maximum encoding units as an input / output buffer connected to each of the plurality of processing units. Thereby, the pipeline processing is efficiently executed as in the present embodiment.
- the CU partition flag is present at the head of the divided block.
- the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
- the CU partition flag may exist at the head of the maximum coding unit.
- the TU partition flag is present at the head of each coefficient information.
- the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
- the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
- the image decoding apparatus performs a plurality of processes for each encoding unit.
- the image decoding apparatus may perform a plurality of processes for each available data set different from the encoding unit. That is, the image decoding apparatus may perform a plurality of processes for each conversion unit, may perform a plurality of processes for each prediction unit, or may perform a plurality of processes for each other data set. .
- all processing is performed for each encoding unit.
- the inverse frequency conversion process may be performed for each conversion unit, and the motion compensation process may be performed for each prediction unit. That is, the data unit does not necessarily have to be the same in all processes.
- the image decoding apparatus includes a FIFO unit that can hold data for at least three maximum encoding units as an input / output buffer connected to each of a plurality of processing units.
- the image decoding apparatus may include a FIFO unit that can hold data for three or more usable maximum data sets.
- the image decoding apparatus may include a FIFO unit that can hold data for three or more maximum conversion units. Further, the image decoding apparatus may include a FIFO unit that can hold data for three or more maximum prediction units. In addition, the image decoding apparatus may include a FIFO unit that can hold data for three or more maximum data sets.
- the image decoding apparatus decodes an encoded stream that is an encoded image.
- the size of the encoding unit constituting the encoded stream is variable.
- the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
- the image decoding apparatus performs a plurality of processes in parallel in a pipeline manner with the size of the encoding unit defined in the encoded stream.
- An input / output buffer is connected to a plurality of processing units constituting the image decoding apparatus.
- This input / output buffer is composed of a FIFO unit capable of holding data corresponding to at least two maximum encoding units. Further, the data in the FIFO unit is managed based on the encoding unit size.
- the capacity of the FIFO unit is larger, in each process, the time for waiting for data input and the time for waiting for an empty output buffer are reduced. Further, even when the encoding unit to be processed is smaller than the assumed maximum encoding unit, the time for waiting for the input of data and the time for waiting for an empty output buffer are reduced in each process. Further, compared with the first embodiment, the capacity required for the memory between the plurality of processing units is reduced.
- FIG. 4 is a configuration diagram of the image decoding apparatus according to the present embodiment. Since the overall configuration of the image decoding apparatus according to the present embodiment is the same as that of Embodiment 1, description thereof is omitted.
- FIG. 5 is a configuration diagram showing connections between a plurality of processing units. Since the connection configuration is the same as that of the first embodiment, description thereof is omitted.
- FIG. 18 is a diagram describing in detail the connection of the variable length decoding unit 503, the inverse quantization unit 504, the inverse frequency conversion unit 505, the FIFO unit 500, the FIFO unit 511, the FIFO unit 512, and the FIFO unit 513. The description of the same components as in FIG. 6 is omitted.
- a size determination unit 5020 is added. The size determination unit 5020 determines the size of the encoding unit based on the header information decoded by the variable length decoding unit 503.
- the size determined by the size determination unit 5020 is input to the input FIFO unit of each processing unit and the FIFO management unit that manages the output FIFO unit. Then, the FIFO management unit manages the FIFO unit according to the size and activates the processing unit.
- the size determination unit 5020 may be included in the variable length decoding unit 503.
- the operation of the size determination unit 5020 may be shown as the operation of the variable length decoding unit 503 including the size determination unit 5020.
- the image decoding apparatus uses the size of the encoding unit to determine the presence / absence of input data and the presence / absence of an output area.
- FIG. 19A is a flowchart showing the operation of the variable length decoding unit 503 according to the present embodiment.
- the variable length decoding unit 503 performs variable length decoding processing of the header of the encoding unit (S2010).
- variable length decoding unit 503 determines the size of the encoding unit (S2011). Next, the variable length decoding unit 503 confirms that there is input data corresponding to the size of the encoding unit (S2012). Next, the variable length decoding unit 503 confirms that there is an output area corresponding to the size of the encoding unit (S2013). After the confirmation, the variable length decoding unit 503 performs variable length decoding processing on the data of the encoding unit (S2014). Then, the variable length decoding unit 503 repeats the above operation until the last coding unit of the slice (S2015).
- FIG. 19B is a flowchart showing the operation of the inverse quantization unit 504 according to the present embodiment.
- the inverse quantization unit 504 acquires the size of the coding unit based on the result determined by the variable length decoding unit 503 (S2020).
- the inverse quantization unit 504 confirms that there is input data corresponding to the size of the encoding unit (S2021).
- the inverse quantization unit 504 confirms that there is an output area corresponding to the size of the encoding unit (S2022).
- the inverse quantization unit 504 performs the inverse quantization process of the encoding unit (S1002).
- the inverse quantization unit 504 repeats the above operation until the last coding unit of the slice (S2023).
- FIG. 19C is a flowchart showing the operation of the inverse frequency conversion unit 505 according to the present embodiment.
- the inverse frequency transform unit 505 acquires the size of the coding unit based on the result determined by the variable length decoding unit 503 (S2030).
- the inverse frequency transform unit 505 confirms that there is input data corresponding to the size of the encoding unit (S2031).
- the inverse frequency transform unit 505 confirms that there is an output region corresponding to the size of the encoding unit (S2032).
- the inverse frequency transform unit 505 performs an inverse frequency transform process of the encoding unit (S1003).
- the inverse frequency transform unit 505 repeats the above operation until the last coding unit of the slice (S2033).
- FIG. 19D is a flowchart showing the operation of the motion compensation unit 506 according to the present embodiment.
- the motion compensation unit 506 acquires the size of the coding unit based on the result determined by the variable length decoding unit 503 (S2040).
- the motion compensation unit 506 confirms that there is input data corresponding to the size of the encoding unit (S2041).
- the motion compensation unit 506 confirms that there is an output area corresponding to the size of the encoding unit (S2042).
- the motion compensation unit 506 performs motion compensation processing for the coding unit (S1004). Then, the motion compensation unit 506 repeats the above operation until the last coding unit of the slice (S2043).
- FIG. 19E is a flowchart showing the operation of the in-plane prediction unit 507 according to the present embodiment.
- the in-plane prediction unit 507 acquires the size of the coding unit based on the result determined by the variable length decoding unit 503 (S2050).
- the in-plane prediction unit 507 confirms that there is input data corresponding to the size of the encoding unit (S2051).
- the in-plane prediction unit 507 confirms that there is an output area corresponding to the size of the encoding unit (S2052).
- the in-plane prediction unit 507 performs an in-plane prediction process of the coding unit (S1005). Then, the in-plane prediction unit 507 repeats the above operation until the last coding unit of the slice (S2053).
- FIG. 19F is a flowchart showing the operation of the reconfiguration unit 508 according to the present embodiment.
- the reconstruction unit 508 acquires the size of the encoding unit based on the result determined by the variable length decoding unit 503 (S2060).
- the reconstruction unit 508 confirms that there is input data corresponding to the size of the encoding unit (S2061).
- the reconstruction unit 508 confirms that there is an output area corresponding to the size of the encoding unit (S2062).
- the reconstruction unit 508 performs in-plane prediction processing of the coding unit (S1006). Then, the reconstruction unit 508 repeats the above-described operation until the last coding unit of the slice (S2063).
- FIG. 19G is a flowchart showing the operation of the in-loop filter unit 510 according to the present embodiment.
- the in-loop filter unit 510 acquires the size of the encoding unit based on the result determined by the variable length decoding unit 503 (S2070).
- the in-loop filter unit 510 confirms that there is input data corresponding to the size of the encoding unit (S2071).
- the in-loop filter unit 510 confirms that there is an output area corresponding to the size of the encoding unit (S2072).
- the in-loop filter unit 510 performs in-loop filter processing of the encoding unit (S1007).
- the in-loop filter unit 510 repeats the above-described operation up to the last coding unit of the slice (S2073).
- each process is executed based on the size of the encoding unit.
- Other operations are the same as those in the first embodiment.
- FIG. 15 is a time chart showing time-series operations of the image decoding apparatus according to the present embodiment. Also in the present embodiment, pipeline processing is executed as in the first embodiment.
- FIG. 20 is a diagram showing the state of the FIFO unit 513 according to the present embodiment in time series.
- the FIFO unit 513 has a capacity capable of storing data for two maximum encoding units.
- FIG. 20 shows the state of data stored in the FIFO unit 513 at times A to J. Times A to J are the same as the respective times shown in the first embodiment.
- WP represents a write pointer and indicates a position where input data is written.
- RP represents a read pointer and indicates a position from which output data is read.
- the retained CU counter value in FIG. 20 indicates how many minimum encoding units the information is stored in the FIFO unit 513. For example, when CU1, CU2, CU3, and CU4 are the minimum sizes of the encoding units, CU0 corresponds to four minimum encoding units. That is, as shown at time B in FIG. 20, when the processing of CU0 is completed, a value corresponding to four minimum coding units is added to the held CU counter value.
- the reconfiguration unit 508 acquires the size of the encoding unit to be processed, unlike the first embodiment (S2060 in FIG. 19F). Then, the reconfiguration unit 508 determines whether there is input data in the FIFO unit 513 based on whether the held CU counter value of the FIFO unit 513 is equal to or larger than the value corresponding to the size (FIG. 19F). S2061).
- the inverse frequency transform unit 505 determines whether or not the FIFO unit 513 has a free area based on whether or not the addition result of the value corresponding to the size of the encoding unit and the retained CU counter value is 8 or less. Is determined (S2032 in FIG. 19C).
- a processing unit that stores data of an encoding unit in a specific FIFO unit increases the retained CU counter value of the FIFO unit based on the size of the encoding unit. Further, the processing unit that extracts the data of the encoding unit from the FIFO unit decreases the retained CU counter value of the FIFO unit based on the size of the encoding unit.
- the image decoding apparatus manages data input / output of the FIFO unit based on the size of the encoding unit. Therefore, the image decoding apparatus can execute a plurality of processes in parallel on a plurality of encoding units of various sizes in a pipeline manner. The image decoding apparatus can effectively utilize the area of the FIFO unit that connects the plurality of processing units.
- the image decoding apparatus performs a plurality of processes in parallel in a pipeline manner with the size of the encoding unit defined in the encoded stream.
- the image decoding apparatus includes a FIFO unit that can hold data corresponding to at least two maximum encoding units as an input / output buffer connected to each of the plurality of processing units.
- the image decoding apparatus manages input / output data of the FIFO unit based on the size of the encoding unit.
- the time for waiting for data input and the time for waiting for an empty output buffer are reduced. Further, even when the encoding unit to be processed is smaller than the assumed maximum encoding unit, the time for waiting for the input of data and the time for waiting for an empty output buffer are reduced in each process.
- the processing performance is further improved.
- the circuit since the circuit operates efficiently, the required power consumption is reduced. Further, it is possible to reduce the memory capacity between the plurality of processing units as compared with the first embodiment. As a result, the circuit scale can be reduced.
- an encoding unit is used as a data unit used for encoding and decoding.
- the data unit used for encoding and decoding may be a macroblock.
- the data unit used for encoding and decoding may be a block called a super macro block.
- each process in the pipeline process is shown based on the encoding method shown in Non-Patent Document 2.
- each process in the pipeline process is not limited to the example of the present embodiment.
- the size of the maximum encoding unit is 128 ⁇ 128 pixels.
- the size of the maximum encoding unit may be any size.
- the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
- the size of the encoding unit may be other sizes.
- the configuration of the pipeline processing shown in the present embodiment is an example. It is not always necessary to divide a plurality of processes into a plurality of stages as in this embodiment. For example, a plurality of processes may be realized in one stage, and one process may be divided into several stages.
- variable length code In the present embodiment, a variable length code is used.
- the encoding method of the variable length code may be any encoding method such as a Huffman code, a run length code, or an arithmetic code.
- each processing unit may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
- the FIFO unit 500, the FIFO unit 511, the FIFO unit 512, the FIFO unit 513, the FIFO unit 514, the FIFO unit 515, the FIFO unit 517, the FIFO unit 518, the FIFO unit 519, the frame memory 502, and the reconfigured image memory 509 are memories. Not limited to. These may be storage elements that can store data. For example, these may be flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
- the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
- decoding processing is shown.
- the same configuration as in the present embodiment may be applied in addition to the decoding process.
- a configuration similar to that of the present embodiment may be applied to an encoding process that is the reverse process of the decoding process.
- the image encoding apparatus includes a FIFO unit capable of holding data for at least two maximum encoding units as an input / output buffer connected to each of the plurality of processing units, and the FIFO unit based on the encoding unit size It is only necessary to manage the data. Thereby, the pipeline processing is efficiently executed as in the present embodiment.
- the CU partition flag is present at the head of the divided block.
- the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
- the CU partition flag may exist at the head of the maximum coding unit.
- the TU partition flag is present at the head of each coefficient information.
- the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
- the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
- the image decoding apparatus performs a plurality of processes for each encoding unit.
- the image decoding apparatus may perform a plurality of processes for each available data set different from the encoding unit. That is, the image decoding apparatus may perform a plurality of processes for each conversion unit, may perform a plurality of processes for each prediction unit, or may perform a plurality of processes for each other data set. .
- all processing is performed for each encoding unit.
- the inverse frequency conversion process may be performed for each conversion unit, and the motion compensation process may be performed for each prediction unit. That is, the data unit does not necessarily have to be the same in all processes.
- the image decoding apparatus includes a FIFO unit that can hold data for at least two maximum encoding units as an input / output buffer connected to each of a plurality of processing units.
- the image decoding apparatus may include a FIFO unit that can hold data for two or more usable maximum data sets.
- the image decoding apparatus may include a FIFO unit that can hold data for two or more maximum conversion units. Further, the image decoding apparatus may include a FIFO unit that can hold data for two or more maximum prediction units. Further, the image decoding apparatus may include a FIFO unit that can hold data for two or more maximum data sets.
- the image decoding apparatus and the image encoding apparatus according to the present embodiment include characteristic constituent elements among the plurality of constituent elements shown in the first embodiment and the second embodiment.
- FIG. 21A is a block diagram showing an image decoding apparatus according to the present embodiment.
- the image decoding apparatus 100 illustrated in FIG. 21A decodes an image divided and encoded into a plurality of blocks having at least two types of sizes by pipeline processing including a plurality of processes.
- the image decoding apparatus 100 includes two processing units 101 and 102 and a storage unit 111.
- the storage unit 111 has a capacity capable of storing two or more blocks of the largest size among at least two types of sizes.
- FIG. 21B is a flowchart showing the operation of the image decoding apparatus 100 shown in FIG. 21A.
- the processing unit 101 sequentially performs a first process among a plurality of processes on a plurality of blocks. Then, the processing unit 101 sequentially stores a plurality of blocks in the storage unit 111 by storing the blocks on which the first process has been performed in the storage unit 111 (S101).
- the processing unit 102 sequentially extracts a plurality of blocks from the storage unit 111. Then, the processing unit 102 sequentially performs the second process among the plurality of processes on the plurality of extracted blocks (S102).
- the processing unit 101 processes the block with the largest size and writes the block to the storage unit 111, while the processing unit 102 extracts another block with the largest size from the storage unit 111, and Another block can be processed.
- the storage unit 111 can hold three or more blocks depending on their sizes. Therefore, the useless waiting time for the processing unit 101 and the processing unit 102 to wait for the end of the processing is reduced, and the processing efficiency is improved.
- FIG. 22A is a configuration diagram showing an image encoding device according to the present embodiment.
- the image encoding device 200 illustrated in FIG. 22A divides an image into a plurality of blocks having at least two types of sizes, and encodes the divided image by pipeline processing including a plurality of processes.
- the image encoding device 200 includes two processing units 201 and 202 and a storage unit 211.
- the storage unit 211 has a capacity capable of storing two or more blocks of the largest size among at least two types of sizes.
- FIG. 22B is a flowchart showing the operation of the image coding apparatus 200 shown in FIG. 22A.
- the processing unit 201 sequentially performs a first process among a plurality of processes on a plurality of blocks. Then, the processing unit 201 sequentially stores a plurality of blocks in the storage unit 211 by storing the blocks on which the first processing has been performed in the storage unit 211 (S201).
- the processing unit 202 sequentially extracts a plurality of blocks from the storage unit 211. Then, the processing unit 202 sequentially performs the second process on the plurality of extracted blocks (S202).
- the image encoding device 200 can obtain the same effect as the image decoding device 100.
- the storage unit 111 and the storage unit 211 may have a capacity capable of storing three or more blocks of the largest size among at least two types of sizes.
- the plurality of blocks may be a plurality of encoding units, a plurality of transform units, or a plurality of prediction units.
- the processing unit 101 or the processing unit 102 performs variable length decoding processing for a plurality of encoding units, inverse frequency conversion processing for a plurality of transform units, or prediction processing for a plurality of prediction units as a first process or a second process. This is done as follows. Then, the processing unit 201 or the processing unit 202 performs a variable length coding process for a plurality of coding units, a frequency conversion process for a plurality of transform units, or a prediction process for a plurality of prediction units as a first process or a second process. As a process.
- the processing unit 101 may perform variable length decoding processing as the first processing, and the processing unit 202 may perform inverse quantization processing as the second processing.
- the processing unit 201 may perform frequency conversion processing as the first processing, and the processing unit 202 may perform quantization processing as the second processing.
- the processing unit 201 may perform the quantization process as the first process, and the processing unit 202 may perform the variable length encoding process as the second process.
- processing unit 101 and the processing unit 201 may perform the inverse quantization process as the first process, and the processing unit 102 and the processing unit 202 may perform the inverse frequency conversion process as the second process.
- the processing unit 101 and the processing unit 201 may perform the inverse frequency conversion process as the first process, and the processing unit 102 and the processing unit 202 may perform the reconstruction process as the second process.
- processing unit 101 and the processing unit 201 may perform the in-plane prediction process as the first process, and the processing unit 102 and the processing unit 202 may perform the reconstruction process as the second process.
- the processing unit 101 and the processing unit 201 may perform the motion compensation process as the first process, and the processing unit 102 and the processing unit 202 may perform the reconstruction process as the second process.
- the processing unit 101 and the processing unit 201 may perform the reconstruction process as a first process, and the processing unit 102 and the processing unit 202 may perform an in-loop filter process as a second process.
- processing unit 101 and the processing unit 201 may perform the reference image transfer process as the first process, and the processing unit 102 and the processing unit 202 may perform the motion compensation process as the second process.
- the processing unit 101 transfers the reference image of the decoding target block and stores it in the storage unit 111.
- the processing unit 102 extracts the reference image of the decoding target block from the storage unit 111, and executes the motion compensation process of the decoding target block using the extracted reference image.
- the processing unit 201 transfers the reference image of the encoding target block and stores it in the storage unit 211.
- the processing unit 202 extracts the reference image of the encoding target block from the storage unit 211, and executes the motion compensation process of the encoding target block using the extracted reference image.
- processing unit 102 may sequentially extract a plurality of blocks from the storage unit 111 asynchronously with the processing unit 101, and sequentially perform the second process on the extracted plurality of blocks.
- processing unit 202 may sequentially extract a plurality of blocks from the storage unit 211 asynchronously with the processing unit 201 and sequentially perform the second process on the extracted plurality of blocks.
- the processing unit 102 performs a second process in which two or more are separated from the first block in the processing order of a plurality of blocks.
- the second process may be performed on the block.
- the processing unit 202 includes a second unit that is separated from the first block by two or more in the processing order of a plurality of blocks in parallel with the processing unit 201 performing the first process on the first block. The second process may be performed on the blocks.
- the processing unit 102 typically extracts a plurality of blocks from the storage unit 111 in the order in which the plurality of blocks are stored in the storage unit 111.
- the processing unit 202 typically extracts a plurality of blocks from the storage unit 211 in the order in which the plurality of blocks are stored in the storage unit 211.
- the image decoding apparatus and the image encoding apparatus according to the present embodiment include characteristic constituent elements among the plurality of constituent elements shown in the first embodiment and the second embodiment.
- new components are added to the configuration of the third embodiment.
- FIG. 23A is a block diagram showing an image decoding apparatus according to the present embodiment.
- the image decoding apparatus 300 illustrated in FIG. 23A decodes an image divided and encoded into a plurality of blocks having at least two types of sizes by pipeline processing including a plurality of processes.
- the image decoding apparatus 300 includes two processing units 301 and 302, a storage unit 311 and a determination unit 320.
- the storage unit 311 has a capacity capable of storing two or more blocks having the largest size among at least two types of sizes.
- the determination unit 320 determines the size of each of the plurality of blocks.
- FIG. 23B is a flowchart showing the operation of the image decoding apparatus 300 shown in FIG. 23A.
- the determination unit 320 determines the size of the block (S301).
- the processing unit 301 performs a first process on the block. Then, the processing unit 301 stores the block on which the first process has been performed in the storage unit 311 (S302). At this time, the processing unit 301 determines an area that the block occupies in the storage unit 311 according to the size of the block on which the first process is performed, and stores the block in the determined area. Next, the processing unit 302 extracts a block from the storage unit 311.
- the process part 302 performs the 2nd process among several processes with respect to the extracted block (S303).
- the processing unit 301 can appropriately store a plurality of blocks in the storage unit 311 according to their sizes. Therefore, the processing unit 301 can store many blocks in a small capacity.
- FIG. 24A is a configuration diagram showing an image encoding device according to the present embodiment.
- the image encoding device 400 illustrated in FIG. 24A divides an image into a plurality of blocks having at least two types of sizes, and encodes the divided image by pipeline processing including a plurality of processes.
- the image encoding device 400 includes two processing units 401 and 402, a storage unit 411, and a determination unit 420.
- the storage unit 411 has a capacity capable of storing two or more blocks having the largest size among at least two types of sizes.
- the determination unit 420 determines the size of each of the plurality of blocks.
- FIG. 24B is a flowchart showing the operation of the image encoding device 400 shown in FIG. 24A.
- the determination unit 420 determines the size of the block (S401).
- the processing unit 401 performs a first process on the block. And the process part 401 stores the block in which the 1st process was performed in the memory
- the process part 402 performs 2nd process among several processes with respect to the extracted block (S403).
- the image encoding device 400 can obtain the same effect as the image decoding device 300.
- the image decoding apparatus and the image encoding apparatus according to the present embodiment include characteristic constituent elements among the plurality of constituent elements shown in the first embodiment and the second embodiment.
- new components are added to the configuration of the third embodiment.
- FIG. 25A is a block diagram showing an image decoding apparatus according to the present embodiment.
- the image decoding apparatus 700 illustrated in FIG. 25A decodes an image divided and encoded into a plurality of blocks having at least two sizes by pipeline processing including a plurality of processes.
- the image decoding apparatus 700 includes two processing units 701 and 702 and two storage units 711 and 712.
- the storage unit 711 has a capacity capable of storing two or more blocks of the largest size among at least two types of sizes.
- the processing units 701 and 702 of the present embodiment operate in the same manner as the processing units 101 and 102 of the third embodiment.
- the processing unit 702 of this embodiment additionally performs the operation of FIG. 25B when performing the second processing.
- FIG. 25B is a flowchart showing the operation of the processing unit 702 shown in FIG. 25A.
- the processing unit 702 determines whether or not the block on which the first processing has been performed is stored in the storage unit 711 and the block on which the second processing has been performed on the storage unit 712 before performing the second processing. It is determined whether or not an area for storing is free (S701).
- the processing unit 702 determines that the block on which the first process has been performed is stored in the storage unit 711, and an area for storing the block on which the second process has been performed in the storage unit 712 A block is extracted from the storage unit 711 at a timing when it is determined that is free. Then, the processing unit 702 performs the second process on the extracted block, and stores the block on which the second process has been performed in the storage unit 712 (S702).
- the processing unit 702 can perform processing at the timing when preparation for processing is completed. Therefore, useless waiting time is reduced.
- FIG. 26A is a configuration diagram showing an image encoding device according to the present embodiment.
- the image encoding device 800 illustrated in FIG. 26A divides an image into a plurality of blocks having at least two types of sizes, and encodes the divided image by pipeline processing including a plurality of processes.
- the image encoding apparatus 800 includes two processing units 801 and 802 and two storage units 811 and 812.
- the storage unit 811 has a capacity capable of storing two or more blocks of the largest size among at least two types of sizes.
- the processing units 801 and 802 according to the present embodiment operate in the same manner as the processing units 801 and 802 according to the third embodiment.
- the processing unit 802 according to the present embodiment additionally performs the operation of FIG. 26B when performing the second processing.
- FIG. 26B is a flowchart showing the operation of the processing unit 802 shown in FIG. 26A.
- the processing unit 802 determines whether or not the block on which the first processing has been performed is stored in the storage unit 811 and the block on which the second processing has been performed on the storage unit 812 before performing the second processing. It is determined whether or not an area for storing is free (S801).
- the processing unit 802 determines that the block on which the first process has been performed is stored in the storage unit 811, and the area for storing the block on which the second process has been performed in the storage unit 812 The block is extracted from the storage unit 811 at the timing when it is determined that the is free. Then, the processing unit 802 performs second processing on the extracted block, and stores the block on which the second processing has been performed in the storage unit 812 (S802).
- the image coding apparatus 800 can obtain the same effect as the image decoding apparatus 700.
- each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
- the software that realizes the image decoding device of each of the above embodiments is a program as follows.
- this program is an image decoding method for decoding an image divided into a plurality of blocks having at least two sizes and encoded by a pipeline process including a plurality of processes.
- a first process among the plurality of processes is sequentially performed on the block, and the first storage unit having a capacity capable of storing two or more blocks of the largest size among the at least two sizes is stored in the first storage unit.
- An image decoding method including a second processing step of sequentially performing a second process among the plurality of processes on the plurality of extracted blocks is executed.
- this program is an image encoding method for dividing an image into a plurality of blocks having at least two sizes and encoding the divided image by pipeline processing including a plurality of processes.
- a first storage having a capacity capable of storing at least two blocks of the largest size among the at least two sizes by sequentially performing a first process among the plurality of processes on the plurality of blocks;
- a second processing step of sequentially performing a second process among the plurality of processes on the plurality of extracted blocks. It may be.
- Each component may be a circuit. These circuits may constitute one circuit as a whole, or may be separate circuits. Each of these circuits may be a general-purpose circuit or a dedicated circuit.
- the image decoding device and the image encoding device according to one or more aspects have been described based on the embodiment, but the present invention is not limited to this embodiment. Unless it deviates from the gist of the present invention, various modifications conceived by those skilled in the art have been made in this embodiment, and forms constructed by combining components in different embodiments are also within the scope of one or more aspects. May be included.
- another processing unit may execute a process executed by a specific processing unit.
- the order in which the processes are executed may be changed, or a plurality of processes may be executed in parallel.
- the present invention can be realized not only as an image decoding device or an image encoding device, but also as a method using a processing unit constituting the image decoding device or the image encoding device as a step. For example, these steps are performed by a computer.
- the present invention can be realized as a program for causing a computer to execute the steps included in these methods.
- the present invention can be realized as a non-transitory computer-readable recording medium such as a CD-ROM in which the program is recorded.
- a plurality of components included in the image decoding device or the image encoding device may be realized as an LSI (Large Scale Integration) that is an integrated circuit. These components may be individually made into one chip, or may be made into one chip so as to include a part or all of them. For example, the components other than the memory may be integrated into one chip.
- LSI Large Scale Integration
- IC Integrated Circuit
- system LSI system LSI
- super LSI super LSI
- ultra LSI ultra LSI depending on the degree of integration.
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- the storage medium may be any medium that can record a program, such as a magnetic disk, an optical disk, a magneto-optical disk, an IC card, and a semiconductor memory.
- FIG. 27 is a diagram showing an overall configuration of a content supply system ex100 that realizes a content distribution service.
- the communication service providing area is divided into desired sizes, and base stations ex106 to ex110, which are fixed radio stations, are installed in each cell.
- devices such as a computer ex111, a PDA (Personal Digital Assistant) ex112, a camera ex113, a mobile phone ex114, and a game machine ex115 are mutually connected via a telephone network ex104 and base stations ex106 to ex110. Connected. Each device is connected to the Internet ex101 via the Internet service provider ex102.
- PDA Personal Digital Assistant
- each device may be directly connected to the telephone network ex104 without going through the base stations ex106 to ex110 which are fixed wireless stations.
- the devices may be directly connected to each other via short-range wireless or the like.
- the camera ex113 is a device that can shoot a moving image such as a digital video camera
- the camera ex116 is a device that can shoot a still image and a moving image such as a digital camera.
- the mobile phone ex114 is a GSM (registered trademark) (Global System for Mobile Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division MultipleL system).
- GSM Global System for Mobile Communications
- CDMA Code Division Multiple Access
- W-CDMA Wideband-Code Division MultipleL system
- HSPA High Speed Packet Access
- PHS Personal Handyphone System
- the camera ex113 and the like are connected to the streaming server ex103 through the base station ex109 and the telephone network ex104, thereby enabling live distribution and the like.
- live distribution the content (for example, music live video) captured by the user using the camera ex113 is encoded as described in the above embodiments and transmitted to the streaming server ex103.
- the streaming server ex103 streams the transmitted content data to the requested client.
- the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, a game machine ex115, and the like that can decode the encoded data. Each device that has received the distributed data decodes and reproduces the received data.
- the encoded processing of the captured data may be performed by the camera ex113, the streaming server ex103 that performs data transmission processing, or may be performed in a shared manner.
- the distributed processing of the distributed data may be performed by the client, the streaming server ex103, or may be performed in a shared manner.
- still images and / or moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111.
- the encoding process in this case may be performed by any of the camera ex116, the computer ex111, and the streaming server ex103, or may be performed in a shared manner.
- these encoding processing and decoding processing are generally executed in a computer ex111 and an LSI (Large Scale Integration) ex500 included in each device.
- the LSI ex500 may be configured as a single chip or a plurality of chips.
- image encoding software or image decoding software is incorporated into any recording medium (CD-ROM, flexible disk, hard disk, etc.) that can be read by the computer ex111 and the like, and encoding processing or decoding processing is performed using the software. May be performed.
- moving image data acquired by the camera may be transmitted. The moving image data at this time is data encoded by the LSI ex500 included in the mobile phone ex114.
- the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, and distribute data in a distributed manner.
- the encoded data can be received and reproduced by the client.
- the information transmitted by the user can be received, decrypted and reproduced in real time by the client, and even a user who does not have special rights and facilities can realize personal broadcasting.
- At least one of the image encoding device and the image decoding device of each of the above embodiments can be incorporated in the digital broadcasting system ex200.
- a bit stream of video information is transmitted to a communication or satellite ex202 via radio waves.
- This bit stream is an encoded bit stream encoded by the image encoding method described in the above embodiments.
- the broadcasting satellite ex202 transmits a radio wave for broadcasting, and the home antenna ex204 capable of receiving the satellite broadcast receives the radio wave.
- the received bit stream is decoded and reproduced by a device such as the television (receiver) ex300 or the set top box (STB) ex217.
- the image decoding apparatus described in the above embodiment can be mounted on the playback apparatus ex212 that reads and decodes the bitstream recorded on the recording medium ex214 such as a CD and a DVD that are recording media.
- the reproduced video signal is displayed on the monitor ex213.
- the image decoding shown in the above embodiments is also performed on the reader / recorder ex218 that reads and decodes the encoded bitstream recorded on the recording medium ex215 such as DVD and BD, or encodes and writes the video signal on the recording medium ex215.
- the reproduced video signal is displayed on the monitor ex219, and the video signal can be reproduced in another device and system using the recording medium ex215 in which the encoded bitstream is recorded.
- an image decoding device may be mounted in a set-top box ex217 connected to a cable ex203 for cable television or an antenna ex204 for satellite / terrestrial broadcasting and displayed on the monitor ex219 of the television. At this time, the image decoding apparatus may be incorporated in the television instead of the set top box.
- FIG. 29 is a diagram illustrating a television (receiver) ex300 that uses the image decoding method described in each of the above embodiments.
- the television ex300 includes a tuner ex301 that acquires or outputs a bit stream of video information via the antenna ex204 or the cable ex203 that receives the broadcast, and the encoded data that is demodulated or transmitted to the outside.
- a modulation / demodulation unit ex302 that modulates and a multiplexing / separation unit ex303 that separates demodulated video data and audio data or multiplexes encoded video data and audio data.
- the television ex300 decodes each of the audio data and the video data, or encodes each information, an audio signal processing unit ex304, a signal processing unit ex306 including the video signal processing unit ex305, and outputs the decoded audio signal.
- the television ex300 includes an interface unit ex317 including an operation input unit ex312 that receives an input of a user operation.
- the television ex300 includes a control unit ex310 that controls each unit in an integrated manner, and a power supply circuit unit ex311 that supplies power to each unit.
- the interface unit ex317 includes a bridge ex313 connected to an external device such as a reader / recorder ex218, a recording unit ex216 such as an SD card, and an external recording such as a hard disk.
- a driver ex315 for connecting to a medium, a modem ex316 for connecting to a telephone network, and the like may be included.
- the recording medium ex216 can record information electrically by using a nonvolatile / volatile semiconductor memory element to be stored.
- Each part of the television ex300 is connected to each other via a synchronous bus.
- the television ex300 receives a user operation from the remote controller ex220 or the like, and demultiplexes the video data and audio data demodulated by the modulation / demodulation unit ex302 by the multiplexing / separation unit ex303 based on the control of the control unit ex310 having a CPU or the like. . Furthermore, in the television ex300, the separated audio data is decoded by the audio signal processing unit ex304, and the separated video data is decoded by the video signal processing unit ex305 using the decoding method described in the above embodiments. The decoded audio signal and video signal are output to the outside from the output unit ex309.
- these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced in synchronization.
- the television ex300 may read the encoded bitstream encoded from the recording media ex215 and ex216 such as a magnetic / optical disk and an SD card, not from a broadcast or the like.
- the television ex300 encodes an audio signal and a video signal and transmits them to the outside or writes them on a recording medium.
- the television ex300 receives a user operation from the remote controller ex220 or the like, and encodes an audio signal with the audio signal processing unit ex304 based on the control of the control unit ex310, and converts the video signal with the video signal processing unit ex305.
- Encoding is performed using the encoding method described in (1).
- the encoded audio signal and video signal are multiplexed by the multiplexing / demultiplexing unit ex303 and output to the outside. When multiplexing, these signals may be temporarily stored in the buffers ex320 and ex321 so that the audio signal and the video signal are synchronized.
- buffers ex318 to ex321 may be provided as shown in the figure, or one or more buffers may be shared. Further, in addition to the illustrated example, data may be stored in the buffer as a buffer material that prevents system overflow and underflow, for example, between the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
- the television ex300 In addition to acquiring audio data and video data from broadcast and recording media, the television ex300 has a configuration for receiving AV input of a microphone and a camera, and even if encoding processing is performed on the data acquired therefrom Good.
- the television ex300 has been described as a configuration capable of the above-described encoding processing, multiplexing, and external output. However, these processing cannot be performed, and only the above-described reception, decoding processing, and external output are possible. It may be.
- the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218,
- the ex300 and the reader / recorder ex218 may share each other.
- FIG. 30 shows the configuration of the information reproducing / recording unit ex400 when data is read from or written to the optical disk.
- the information reproducing / recording unit ex400 includes elements ex401 to ex407 described below.
- the optical head ex401 writes information by irradiating a laser spot on the recording surface of the recording medium ex215 that is an optical disk, and reads information by detecting reflected light from the recording surface of the recording medium ex215.
- the modulation recording unit ex402 electrically drives a semiconductor laser built in the optical head ex401 and modulates the laser beam according to the recording data.
- the reproduction demodulator ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector built in the optical head ex401, separates and demodulates the signal component recorded on the recording medium ex215, and is necessary. To play back information.
- the buffer ex404 temporarily holds information to be recorded on the recording medium ex215 and information reproduced from the recording medium ex215.
- the disk motor ex405 rotates the recording medium ex215.
- the servo control unit ex406 moves the optical head ex401 to a predetermined information track while controlling the rotational drive of the disk motor ex405, and performs a laser spot tracking
- the system control unit ex407 controls the entire information reproduction / recording unit ex400.
- the system control unit ex407 uses various types of information held in the buffer ex404, and generates and adds new information as necessary, as well as the modulation recording unit ex402, the reproduction demodulation unit This is realized by recording / reproducing information through the optical head ex401 while operating the ex403 and the servo control unit ex406 in a coordinated manner.
- the system control unit ex407 includes, for example, a microprocessor, and executes these processes by executing a read / write program.
- the optical head ex401 has been described as irradiating a laser spot, but it may be configured to perform higher-density recording using near-field light.
- FIG. 31 shows a schematic diagram of a recording medium ex215 that is an optical disk.
- Guide grooves grooves
- address information indicating the absolute position on the disc is recorded in advance on the information track ex230 by changing the shape of the groove.
- This address information includes information for specifying the position of the recording block ex231 which is a unit for recording data, and the recording block is specified by reproducing the information track ex230 and reading the address information in a recording and reproducing apparatus.
- the recording medium ex215 includes a data recording area ex233, an inner peripheral area ex232, and an outer peripheral area ex234.
- the area used for recording the user data is the data recording area ex233, and the inner circumference area ex232 and the outer circumference area ex234 arranged on the inner circumference or outer circumference of the data recording area ex233 are used for specific purposes other than user data recording. Used.
- the information reproducing / recording unit ex400 reads / writes encoded audio data, video data, or encoded data obtained by multiplexing these data with respect to the data recording area ex233 of the recording medium ex215.
- an optical disk such as a single-layer DVD or BD has been described as an example.
- the present invention is not limited to these, and an optical disk having a multilayer structure and capable of recording other than the surface may be used. It also has a structure that performs multidimensional recording / reproduction, such as recording information using light of various different wavelengths at the same location on the disc, and recording different layers of information from various angles. It may be an optical disk.
- the car ex210 having the antenna ex205 can receive data from the satellite ex202 and the like, and the moving image can be reproduced on a display device such as the car navigation ex211 that the car ex210 has.
- the configuration of the car navigation ex211 may be, for example, the configuration shown in FIG. 29 with a GPS receiving unit added, and the same may be considered for the computer ex111, the mobile phone ex114, and the like.
- the mobile phone ex114 and the like can be used in three ways: a transmitting terminal having only an encoder and a receiving terminal having only a decoder. The implementation form of can be considered.
- the image encoding method or the image decoding method shown in each of the above embodiments can be used in any of the above-described devices or systems, and by doing so, the effects described in the above embodiments can be obtained. Can be obtained.
- the image decoding apparatus shown in the first embodiment is realized as an LSI that is typically a semiconductor integrated circuit.
- the realized form is shown in FIG.
- the frame memory 502 is realized on the DRAM, and other circuits and memories are configured on the LSI.
- a bit stream buffer for storing the encoded stream may be realized on the DRAM.
- LSI LSI
- IC system LSI
- super LSI ultra LSI depending on the degree of integration
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- a drawing device corresponding to various uses can be configured.
- the present invention can be used as information drawing means in cellular phones, televisions, digital video recorders, digital video cameras, car navigation systems, and the like.
- a display in addition to a cathode ray tube (CRT), a flat display such as a liquid crystal, a PDP (plasma display panel) and an organic EL, a projection display represented by a projector, and the like can be combined.
- the LSI in the present embodiment cooperates with a DRAM (Dynamic Random Access Memory) including a bit stream buffer for storing an encoded stream and a frame memory for storing an image, thereby performing an encoding process or a decoding process. May be performed.
- the LSI in the present embodiment may be linked with other storage devices such as eDRAM (embedded DRAM), SRAM (Static Random Access Memory), or hard disk instead of DRAM.
- FIG. 33 shows the configuration of an LSI ex500 that is made into one chip.
- the LSI ex500 includes elements ex502 to ex509 described below, and each element is connected via a bus ex510.
- the power supply circuit unit ex505 starts up to an operable state by supplying power to each unit when the power supply is in an on state.
- the LSI ex500 receives an AV signal input from the microphone ex117, the camera ex113, and the like by the AV I / Oex 509.
- the input AV signal is temporarily stored in an external memory ex511 such as SDRAM.
- the accumulated data is divided into a plurality of times as appropriate according to the processing amount and processing speed, and sent to the signal processing unit ex507.
- the signal processing unit ex507 performs encoding of an audio signal and / or encoding of a video signal.
- the encoding process of the video signal is the encoding process described in the above embodiment.
- the signal processing unit ex507 further performs processing such as multiplexing the encoded audio data and the encoded video data according to circumstances, and outputs the result from the stream I / Oex 504 to the outside.
- the output bit stream is transmitted to the base station ex107 or written to the recording medium ex215.
- the LSI ex500 transmits the encoded data obtained from the base station ex107 by the stream I / Oex 504 or the recording medium ex215 based on the control of the microcomputer (microcomputer) ex502.
- the encoded data obtained by reading is temporarily stored in the memory ex511 or the like.
- the accumulated data is appropriately divided into a plurality of times according to the processing amount and the processing speed and sent to the signal processing unit ex507, where the signal processing unit ex507 decodes audio data and / or video data. Decryption is performed.
- the decoding process of the video signal is the decoding process described in the above embodiments.
- each signal may be temporarily stored in the memory ex511 or the like so that the decoded audio signal and the decoded video signal can be reproduced in synchronization.
- the decoded output signal is output from the AVI / Oex 509 to the monitor ex219 or the like through the memory ex511 or the like as appropriate.
- the memory controller ex503 is used.
- the memory ex511 has been described as an external configuration of the LSI ex500. However, a configuration included in the LSI ex500 may be used.
- the LSI ex500 may be made into one chip or a plurality of chips.
- LSI LSI
- IC system LSI
- super LSI ultra LSI depending on the degree of integration
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- the present invention can be used for various purposes.
- it can be used for high-resolution information display devices such as televisions, digital video recorders, car navigation systems, mobile phones, digital cameras, and digital video cameras, or imaging devices, and has high utility value.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明者は、「背景技術」の欄において記載した、画像を復号する画像復号装置に関して、課題の存在を見出した。以下に詳しく説明する。
(1-1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化された画像である符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
次に、本実施の形態に係る画像復号装置の構成について説明する。
次に、本実施の形態に係る画像復号装置の動作を説明する。本実施の形態に係る画像復号装置が復号する符号化ストリームは、符号化ユニットと、変換ユニットと、予測ユニットとで構成される。
本実施の形態に係る画像復号装置は、複数の処理部のそれぞれに接続される入出力バッファとして、少なくとも最大符号化ユニット3個分のデータを保持することのできるFIFO部を備える。格納処理および抽出処理のそれぞれに、最大符号化ユニット1個分の領域が用いられる。そして、最大符号化ユニット1個分以上の領域が、処理時間の変動を吸収するためのバッファとして用いられる。
なお、本実施の形態では、符号化および復号に用いられるデータ単位として、符号化ユニットが用いられている。しかし、符号化および復号に用いられるデータ単位は、マクロブロックであってもよい。また、符号化および復号に用いられるデータ単位は、スーパーマクロブロックと呼ばれるブロックであってもよい。
(2-1.概要)
まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化された画像である符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
図4は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の全体構成は、実施の形態1と同様であるので、説明を省略する。
本実施の形態では、実施の形態1と同様に、図7A~図10Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図11Aおよび図11Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置全体の動作フローは、図12および図13に示された実施の形態1の動作フローと同様であるので、説明を省略する。
本実施の形態に係る画像復号装置は、符号化ストリームにおいて定義された符号化ユニットのサイズで、複数の処理をパイプライン方式で並列に行う。また、画像復号装置は、複数の処理部のそれぞれに接続される入出力バッファとして、少なくとも最大符号化ユニット2個分のデータを保持できるFIFO部を備える。また、画像復号装置は、符号化ユニットのサイズに基づいて、FIFO部の入出力データを管理する。
なお、本実施の形態では、符号化および復号に用いられるデータ単位として、符号化ユニットが用いられている。しかし、符号化および復号に用いられるデータ単位は、マクロブロックであってもよい。また、符号化および復号に用いられるデータ単位は、スーパーマクロブロックと呼ばれるブロックであってもよい。
本実施の形態に係る画像復号装置および画像符号化装置は、実施の形態1および実施の形態2で示された複数の構成要素のうち、特徴的な構成要素を備える。
本実施の形態に係る画像復号装置および画像符号化装置は、実施の形態1および実施の形態2で示された複数の構成要素のうち、特徴的な構成要素を備える。また、本実施の形態では、実施の形態3の構成に新たな構成要素が追加されている。
本実施の形態に係る画像復号装置および画像符号化装置は、実施の形態1および実施の形態2で示された複数の構成要素のうち、特徴的な構成要素を備える。また、本実施の形態では、実施の形態3の構成に新たな構成要素が追加されている。
上記各実施の形態で示した画像符号化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図32に示す。フレームメモリ502をDRAM上に実現し、その他の回路およびメモリをLSI上に構成している。符号化ストリームを格納するビットストリームバッファをDRAM上に実現してもよい。
上記各実施の形態で示した画像符号化装置、画像復号装置、画像符号化方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図33に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex502~ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
101、102、201、202、301、302、401、402、701、702、801、802 処理部
111、211、311、411、711、712、811、812 記憶部
200、400、800 画像符号化装置
320、420 判定部
500、511、512、513、514、515、517、518、519 FIFO部
501、ex310 制御部
502 フレームメモリ
503 可変長復号部
504 逆量子化部
505 逆周波数変換部
506 動き補償部
507 面内予測部
508 再構成部
509 再構成画像メモリ
510 インループフィルタ部
5001、5002、5003 FIFO管理部
5011、5012、5013 起動部
5020 サイズ判定部
ex100 コンテンツ供給システム
ex101 インターネット
ex102 インターネットサービスプロバイダ
ex103 ストリーミングサーバ
ex104 電話網
ex106、ex107、ex108、ex109、ex110 基地局
ex111 コンピュータ
ex112 PDA(Personal Digital Assistant)
ex113、ex116 カメラ
ex114 携帯電話
ex115 ゲーム機
ex117 マイク
ex200 デジタル放送用システム
ex201 放送局
ex202 放送衛星(衛星)
ex203 ケーブル
ex204、ex205 アンテナ
ex210 車
ex211 カーナビゲーション(カーナビ)
ex212 再生装置
ex213、ex219 モニタ
ex214、ex215、ex216 記録メディア
ex217 セットトップボックス(STB)
ex218 リーダ/レコーダ
ex220 リモートコントローラ
ex230 情報トラック
ex231 記録ブロック
ex232 内周領域
ex233 データ記録領域
ex234 外周領域
ex300 テレビ(受信機)
ex301 チューナ
ex302 変調/復調部
ex303 多重/分離部
ex304 音声信号処理部
ex305 映像信号処理部
ex306、ex507 信号処理部
ex307 スピーカ
ex308 表示部
ex309 出力部
ex311、ex505 電源回路部
ex312 操作入力部
ex313 ブリッジ
ex314 スロット部
ex315 ドライバ
ex316 モデム
ex317 インタフェース部
ex318、ex319、ex320、ex321、ex404 バッファ
ex400 情報再生/記録部
ex401 光ヘッド
ex402 変調記録部
ex403 再生復調部
ex405 ディスクモータ
ex406 サーボ制御部
ex407 システム制御部
ex500 LSI
ex502 マイコン(マイクロコンピュータ)
ex503 メモリコントローラ
ex504 ストリームI/O
ex509 AV I/O
ex510 バス
ex511 メモリ
Claims (21)
- 少なくとも2種類のサイズが存在する複数のブロックに分割され符号化された画像を複数の処理を含むパイプライン処理で復号する画像復号装置であって、
前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを2つ以上記憶可能な容量を有する第1の記憶部と、
前記複数のブロックに対して前記複数の処理のうち第1の処理を順次行い、前記第1の記憶部に前記第1の処理が行われたブロックを格納することにより前記第1の記憶部に前記複数のブロックを順次格納する第1の処理部と、
前記第1の記憶部から前記複数のブロックを順次抽出し、抽出された前記複数のブロックに対して前記複数の処理のうち第2の処理を順次行う第2の処理部とを備える
画像復号装置。 - 前記画像復号装置は、さらに、第2の記憶部を備え、
前記第2の処理部は、
前記第1の記憶部に前記第1の処理が行われたブロックが格納されているか否か、および、前記第2の記憶部に前記第2の処理が行われたブロックを格納するための領域が空いているか否かを判定し、
前記第1の記憶部に前記第1の処理が行われた前記ブロックが格納されていると判定され、かつ、前記第2の記憶部に前記第2の処理が行われた前記ブロックを格納するための前記領域が空いていると判定されたタイミングで、前記第1の記憶部から前記ブロックを抽出して、抽出された前記ブロックに対して前記第2の処理を行い、前記第2の記憶部に前記第2の処理が行われた前記ブロックを格納する
請求項1に記載の画像復号装置。 - 前記画像復号装置は、さらに、前記複数のブロックのそれぞれのサイズを判定する判定部を備え、
前記第1の処理部は、前記第1の処理が行われたブロックのサイズに従って、前記ブロックが前記第1の記憶部において専有する領域を決定し、決定された前記領域に前記ブロックを格納する
請求項1または2に記載の画像復号装置。 - 前記第1の記憶部は、前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを3つ以上記憶可能な容量を有する
請求項1~3のいずれか1項に記載の画像復号装置。 - 前記複数のブロックは、複数の符号化ユニット、複数の変換ユニット、または、複数の予測ユニットであり、
前記第1の処理部または前記第2の処理部は、前記複数の符号化ユニットに対する可変長復号処理、前記複数の変換ユニットに対する逆周波数変換処理、または、前記複数の予測ユニットに対する予測処理を前記第1の処理または前記第2の処理として行う
請求項1~4のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、可変長復号処理を前記第1の処理として行い、
前記第2の処理部は、逆量子化処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、逆量子化処理を前記第1の処理として行い、
前記第2の処理部は、逆周波数変換処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、逆周波数変換処理を前記第1の処理として行い、
前記第2の処理部は、再構成処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、面内予測処理を前記第1の処理として行い、
前記第2の処理部は、再構成処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、動き補償処理を前記第1の処理として行い、
前記第2の処理部は、再構成処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、再構成処理を前記第1の処理として行い、
前記第2の処理部は、インループフィルタ処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第1の処理部は、参照画像転送処理を前記第1の処理として行い、
前記第2の処理部は、動き補償処理を前記第2の処理として行う
請求項1~5のいずれか1項に記載の画像復号装置。 - 前記第2の処理部は、前記第1の処理部とは非同期に、前記第1の記憶部から前記複数のブロックを順次抽出して、抽出された前記複数のブロックに対して前記第2の処理を順次行う
請求項1~12のいずれか1項に記載の画像復号装置。 - 前記第2の処理部は、前記第1の処理部が第1のブロックに対して前記第1の処理を行うことに並行して、前記複数のブロックの処理順序で前記第1のブロックから2つ以上離れた第2のブロックに対して前記第2の処理を行う
請求項1~13のいずれか1項に記載の画像復号装置。 - 画像を少なくとも2種類のサイズが存在する複数のブロックに分割し、分割された前記画像を複数の処理を含むパイプライン処理で符号化する画像符号化装置であって、
前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを2つ以上記憶可能な容量を有する第1の記憶部と、
前記複数のブロックに対して前記複数の処理のうち第1の処理を順次行い、前記第1の記憶部に前記第1の処理が行われたブロックを格納することにより前記第1の記憶部に前記複数のブロックを順次格納する第1の処理部と、
前記第1の記憶部から前記複数のブロックを順次抽出し、抽出された前記複数のブロックに対して前記複数の処理のうち第2の処理を順次行う第2の処理部とを備える
画像符号化装置。 - 少なくとも2種類のサイズが存在する複数のブロックに分割され符号化された画像を複数の処理を含むパイプライン処理で復号する画像復号方法であって、
前記複数のブロックに対して前記複数の処理のうち第1の処理を順次行い、前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを2つ以上記憶可能な容量を有する第1の記憶部に前記第1の処理が行われたブロックを格納することにより前記第1の記憶部に前記複数のブロックを順次格納する第1の処理ステップと、
前記第1の記憶部から前記複数のブロックを順次抽出し、抽出された前記複数のブロックに対して前記複数の処理のうち第2の処理を順次行う第2の処理ステップとを含む
画像復号方法。 - 画像を少なくとも2種類のサイズが存在する複数のブロックに分割し、分割された前記画像を複数の処理を含むパイプライン処理で符号化する画像符号化方法であって、
前記複数のブロックに対して前記複数の処理のうち第1の処理を順次行い、前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを2つ以上記憶可能な容量を有する第1の記憶部に前記第1の処理が行われたブロックを格納することにより前記第1の記憶部に前記複数のブロックを順次格納する第1の処理ステップと、
前記第1の記憶部から前記複数のブロックを順次抽出し、抽出された前記複数のブロックに対して前記複数の処理のうち第2の処理を順次行う第2の処理ステップとを含む
画像符号化方法。 - 請求項16に記載された画像復号方法に含まれるステップをコンピュータに実行させるための
プログラム。 - 請求項17に記載された画像符号化方法に含まれるステップをコンピュータに実行させるための
プログラム。 - 少なくとも2種類のサイズが存在する複数のブロックに分割され符号化された画像を複数の処理を含むパイプライン処理で復号する集積回路であって、
前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを2つ以上記憶可能な容量を有する第1の記憶部と、
前記複数のブロックに対して前記複数の処理のうち第1の処理を順次行い、前記第1の記憶部に前記第1の処理が行われたブロックを格納することにより前記第1の記憶部に前記複数のブロックを順次格納する第1の処理部と、
前記第1の記憶部から前記複数のブロックを順次抽出し、抽出された前記複数のブロックに対して前記複数の処理のうち第2の処理を順次行う第2の処理部とを備える
集積回路。 - 画像を少なくとも2種類のサイズが存在する複数のブロックに分割し、分割された前記画像を複数の処理を含むパイプライン処理で符号化する集積回路であって、
前記少なくとも2種類のサイズのうち最も大きいサイズのブロックを2つ以上記憶可能な容量を有する第1の記憶部と、
前記複数のブロックに対して前記複数の処理のうち第1の処理を順次行い、前記第1の記憶部に前記第1の処理が行われたブロックを格納することにより前記第1の記憶部に前記複数のブロックを順次格納する第1の処理部と、
前記第1の記憶部から前記複数のブロックを順次抽出し、抽出された前記複数のブロックに対して前記複数の処理のうち第2の処理を順次行う第2の処理部とを備える
集積回路。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/241,258 US9153037B2 (en) | 2012-01-18 | 2012-11-29 | Image decoding device, image encoding device, image decoding method, and image encoding method |
| CN201280041360.5A CN103765903B (zh) | 2012-01-18 | 2012-11-29 | 图像解码装置、图像编码装置、图像解码方法及图像编码方法 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012008211 | 2012-01-18 | ||
| JP2012-008211 | 2012-01-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2013108330A1 true WO2013108330A1 (ja) | 2013-07-25 |
Family
ID=48798788
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2012/007676 WO2013108330A1 (ja) | 2012-01-18 | 2012-11-29 | 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9153037B2 (ja) |
| JP (1) | JPWO2013108330A1 (ja) |
| CN (1) | CN103765903B (ja) |
| WO (1) | WO2013108330A1 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015073177A (ja) * | 2013-10-02 | 2015-04-16 | ルネサスエレクトロニクス株式会社 | 動画像符号化装置およびその動作方法 |
| JP2015181225A (ja) * | 2014-03-06 | 2015-10-15 | パナソニックIpマネジメント株式会社 | 動画像符号化装置および動画像符号化方法 |
| JPWO2015146646A1 (ja) * | 2014-03-28 | 2017-04-13 | ソニー株式会社 | 画像復号装置および方法 |
| JP7064644B2 (ja) | 2014-03-06 | 2022-05-10 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 動画像符号化装置 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104954808B (zh) * | 2015-06-17 | 2018-03-23 | 福州瑞芯微电子股份有限公司 | 一种基于编码树单元CTU buffer实现轮转操作方法及系统 |
| US11196800B2 (en) | 2016-09-26 | 2021-12-07 | Google Llc | Systems and methods for communication efficient distributed mean estimation |
| NL2018613B1 (en) * | 2017-03-30 | 2018-10-10 | Orbid Ltd | Two-dimensional marker for marking an object, method and system for generating the marker, method and system for generating a marker code, and method and system for authenticating an object |
| AU2018217333B2 (en) * | 2018-08-17 | 2025-04-24 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
| AU2018217336B2 (en) | 2018-08-17 | 2025-04-24 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
| WO2020054784A1 (ja) * | 2018-09-11 | 2020-03-19 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法および復号方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1155668A (ja) * | 1997-07-31 | 1999-02-26 | Nec Corp | 画像符号化装置 |
| JPH11187272A (ja) * | 1997-12-18 | 1999-07-09 | Fuji Xerox Co Ltd | 画像データ圧縮装置及びその圧縮制御方法 |
| JP2001275116A (ja) * | 2000-03-24 | 2001-10-05 | Sharp Corp | 画像処理装置 |
| JP2010233201A (ja) * | 2009-03-05 | 2010-10-14 | Ricoh Co Ltd | 復号装置、復号装置の制御方法及び画像形成装置 |
| WO2011145601A1 (ja) * | 2010-05-18 | 2011-11-24 | ソニー株式会社 | 画像処理装置と画像処理方法 |
| WO2012046435A1 (ja) * | 2010-10-04 | 2012-04-12 | パナソニック株式会社 | 画像処理装置、画像符号化方法および画像処理方法 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0984005A (ja) | 1995-09-14 | 1997-03-28 | Mitsubishi Electric Corp | 画像伸張装置 |
| US7295609B2 (en) * | 2001-11-30 | 2007-11-13 | Sony Corporation | Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information |
| US7826535B2 (en) * | 2002-04-11 | 2010-11-02 | Broadcom Corporation | Adaptive pixel processing |
| JP3968712B2 (ja) * | 2003-04-28 | 2007-08-29 | ソニー株式会社 | 動き予測補償装置及びその方法 |
| CN1235411C (zh) * | 2003-10-17 | 2006-01-04 | 中国科学院计算技术研究所 | 基于流水线的帧内预测模式块编码加速方法 |
| US7965773B1 (en) * | 2005-06-30 | 2011-06-21 | Advanced Micro Devices, Inc. | Macroblock cache |
| US20080123750A1 (en) * | 2006-11-29 | 2008-05-29 | Michael Bronstein | Parallel deblocking filter for H.264 video codec |
| JP2008141276A (ja) | 2006-11-30 | 2008-06-19 | Sanyo Electric Co Ltd | Tv信号処理回路 |
| JP2009182623A (ja) * | 2008-01-30 | 2009-08-13 | Panasonic Corp | 画像符号化方法 |
| CN101394560B (zh) * | 2008-06-30 | 2010-09-01 | 浙江大学 | 一种用于视频编码的混合流水线装置 |
| CN101710994B (zh) * | 2009-12-17 | 2012-12-26 | 无锡中星微电子有限公司 | 一种用于视频解码的方法和系统 |
| WO2011158867A1 (ja) * | 2010-06-17 | 2011-12-22 | シャープ株式会社 | 画像復号装置、及び画像符号化装置 |
| JP5741076B2 (ja) * | 2010-12-09 | 2015-07-01 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
| TWI530161B (zh) * | 2011-06-07 | 2016-04-11 | Sony Corp | Image processing apparatus and method |
| JP5907367B2 (ja) * | 2011-06-28 | 2016-04-26 | ソニー株式会社 | 画像処理装置および方法、プログラム、並びに記録媒体 |
| AU2013281946B2 (en) * | 2012-06-29 | 2017-03-02 | Sony Group Corporation | Decoding device, and decoding method |
-
2012
- 2012-11-29 WO PCT/JP2012/007676 patent/WO2013108330A1/ja active Application Filing
- 2012-11-29 JP JP2013554098A patent/JPWO2013108330A1/ja active Pending
- 2012-11-29 US US14/241,258 patent/US9153037B2/en not_active Expired - Fee Related
- 2012-11-29 CN CN201280041360.5A patent/CN103765903B/zh not_active Expired - Fee Related
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1155668A (ja) * | 1997-07-31 | 1999-02-26 | Nec Corp | 画像符号化装置 |
| JPH11187272A (ja) * | 1997-12-18 | 1999-07-09 | Fuji Xerox Co Ltd | 画像データ圧縮装置及びその圧縮制御方法 |
| JP2001275116A (ja) * | 2000-03-24 | 2001-10-05 | Sharp Corp | 画像処理装置 |
| JP2010233201A (ja) * | 2009-03-05 | 2010-10-14 | Ricoh Co Ltd | 復号装置、復号装置の制御方法及び画像形成装置 |
| WO2011145601A1 (ja) * | 2010-05-18 | 2011-11-24 | ソニー株式会社 | 画像処理装置と画像処理方法 |
| WO2012046435A1 (ja) * | 2010-10-04 | 2012-04-12 | パナソニック株式会社 | 画像処理装置、画像符号化方法および画像処理方法 |
Non-Patent Citations (1)
| Title |
|---|
| AKIHIKO OTANI ET AL.: "MPEG2 Junkyo Gazo Asshuku Shinchoyo DSP(VDSP2) no Kaihatsu [1] -Architecture Gaiyo", 1994 NEN THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS SHUNKI TAIKAI KOEN RONBUNSHU, vol. 5, no. C-650, 10 March 1994 (1994-03-10), pages 218 * |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015073177A (ja) * | 2013-10-02 | 2015-04-16 | ルネサスエレクトロニクス株式会社 | 動画像符号化装置およびその動作方法 |
| JP2015181225A (ja) * | 2014-03-06 | 2015-10-15 | パナソニックIpマネジメント株式会社 | 動画像符号化装置および動画像符号化方法 |
| JP7064644B2 (ja) | 2014-03-06 | 2022-05-10 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 動画像符号化装置 |
| JP7595145B2 (ja) | 2014-03-06 | 2024-12-05 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 動画像符号化装置及び動画像符号化方法 |
| JPWO2015146646A1 (ja) * | 2014-03-28 | 2017-04-13 | ソニー株式会社 | 画像復号装置および方法 |
| US10298927B2 (en) | 2014-03-28 | 2019-05-21 | Sony Corporation | Image decoding device and method |
Also Published As
| Publication number | Publication date |
|---|---|
| US9153037B2 (en) | 2015-10-06 |
| JPWO2013108330A1 (ja) | 2015-05-11 |
| US20140294310A1 (en) | 2014-10-02 |
| CN103765903B (zh) | 2017-09-01 |
| CN103765903A (zh) | 2014-04-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5518069B2 (ja) | 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法、プログラムおよび集積回路 | |
| JP6390883B2 (ja) | 画像処理装置 | |
| CN103765903B (zh) | 图像解码装置、图像编码装置、图像解码方法及图像编码方法 | |
| WO2012046435A1 (ja) | 画像処理装置、画像符号化方法および画像処理方法 | |
| WO2011161949A1 (ja) | 画像復号装置、画像復号方法、集積回路およびプログラム | |
| WO2010150486A1 (ja) | 画像符号化方法及び画像符号化装置 | |
| WO2011048764A1 (ja) | 復号装置、復号方法、プログラム、及び集積回路 | |
| JP5999515B2 (ja) | 画像処理装置、及び、画像処理方法 | |
| JP6260921B2 (ja) | 画像処理装置および画像処理方法 | |
| JP5546044B2 (ja) | 画像復号装置、画像符号化装置、画像復号回路及び画像復号方法 | |
| JP5468604B2 (ja) | 画像復号装置、集積回路、画像復号方法及び画像復号システム | |
| WO2013076897A1 (ja) | 画像処理装置および画像処理方法 | |
| WO2011129052A1 (ja) | 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法 | |
| JP2011182132A (ja) | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、集積回路およびプログラム |
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: 12866268 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2013554098 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14241258 Country of ref document: US |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12866268 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |