WO2018190242A1 - 動画像処理装置、動画像処理方法、及び、動画像処理プログラムが格納された記録媒体 - Google Patents

動画像処理装置、動画像処理方法、及び、動画像処理プログラムが格納された記録媒体 Download PDF

Info

Publication number
WO2018190242A1
WO2018190242A1 PCT/JP2018/014591 JP2018014591W WO2018190242A1 WO 2018190242 A1 WO2018190242 A1 WO 2018190242A1 JP 2018014591 W JP2018014591 W JP 2018014591W WO 2018190242 A1 WO2018190242 A1 WO 2018190242A1
Authority
WO
WIPO (PCT)
Prior art keywords
image processing
pixel block
intra prediction
block
processing
Prior art date
Application number
PCT/JP2018/014591
Other languages
English (en)
French (fr)
Inventor
芙美代 鷹野
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US16/499,902 priority Critical patent/US10904546B2/en
Priority to JP2019512481A priority patent/JP6825699B2/ja
Publication of WO2018190242A1 publication Critical patent/WO2018190242A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Definitions

  • the present invention relates to a technique for dividing an image into a plurality of pixel blocks and performing an encoding process or a decoding process for each divided pixel block.
  • H.264 MPEG (Moving Picture Experts Group) -4 AVC (Advanced Video Coding) (hereinafter referred to as "H.264”) and H.265 / HEVC (High Efficiency Video Coding) (hereinafter referred to as "H.265")
  • the image is divided into a large number of pixel blocks (for example, a 16 ⁇ 16 pixel block or a 4 ⁇ 4 pixel block), and encoding and decoding are performed for each pixel block.
  • information is generated by generating a prediction image based on temporal or spatial correlation and encoding only the information indicating the difference between the input image and the prediction image.
  • An encoder that performs such information compression processing can select an encoding type that specifies a method of generating a predicted image from either inter prediction or intra prediction.
  • Inter prediction is a method of creating a prediction image based on pixels constituting a neighboring frame based on temporal correlation.
  • intra prediction is a method for generating a predicted image based on neighboring pixels constituting the same frame based on spatial correlation.
  • processing is performed in the order of raster scan from the pixel block located at the upper left of the frame. That is, in intra prediction based on H.264, when predicting the pixel value of a certain target pixel block, for example, pixels that have been encoded or decoded that are located on the left, upper left, upper, and upper right of the target pixel block. Process based on the pixel value of the block.
  • These pixel blocks are pixel blocks adjacent to the target pixel block that should be referred to when a target pixel block that has not yet been encoded (or decoded) is encoded (or decoded). In the present application, these pixel blocks are hereinafter referred to as “reference adjacent blocks”.
  • FIG. 17 is a block diagram conceptually showing the structure of a general video decoding device 40 compliant with the H.264 standard.
  • the moving picture decoding apparatus 40 includes a variable length decoding unit 410, an inverse transform inverse quantization unit 411, a loop filter 412, a frame buffer 413, an inter prediction unit 414, and an intra prediction unit 415.
  • the variable length decoding unit 410 decodes the bit stream of the input moving image.
  • the inverse transform inverse quantization unit 411 performs inverse transform on the signal decoded by the variable length decoding unit 410 and then performs inverse transform.
  • the video decoding device 40 generates a restored image by adding the signal output from the inverse transform inverse quantization unit 411 and a predicted image described later.
  • the loop filter 412 outputs a decoded image that is a result of removing block distortion in the generated restored image.
  • the frame buffer 413 holds the decoded image output from the loop filter 412.
  • the above-described prediction image is generated by the inter prediction unit 414 or the intra prediction unit 415.
  • the inter prediction unit 414 generates a prediction image by using the decoded image pixels held in the frame buffer 413. Since the inter prediction unit 414 does not refer to pixels in the same frame when performing processing on a pixel block (inter prediction block) to be processed, there is no dependency relationship regarding the processing order between inter prediction blocks in the same frame. . Therefore, the inter prediction unit 414 can process the plurality of inter prediction blocks in a highly parallel manner regardless of the processing status (without depending on the processing status).
  • the intra prediction unit 415 generates a prediction image related to a pixel block (intra prediction block) to be processed using the pixels of the restored image included in the reference adjacent block.
  • intra prediction block a prediction image related to a pixel block
  • Patent Document 1 discloses an apparatus that performs an encoding process or a decoding process in parallel in units of divided pixel blocks.
  • This apparatus starts processing from the upper left pixel block in the frame and manages whether or not the processing for each pixel block is completed.
  • this device searches the pixel block for which the processing of the pixel block located on the left and upper right has been completed as the pixel block to be processed next, and sets the searched pixel block to The process is repeatedly performed.
  • this apparatus advances the process from the leftmost pixel block to the right, if it can be confirmed that the process of the pixel block located at the upper right is completed, the process for the pixel block located at the upper left and the upper part is completed. This relationship can be guaranteed.
  • FIG. 18 is a diagram illustrating a prediction process for a pixel block (individual quadrangle shown in FIG. 18) performed by a general video decoding device 40 using, for example, the technique disclosed in Patent Document 1 on the assumption that the above-described relationship is guaranteed. It is a figure which shows an example of the order which performs this in parallel.
  • the position of the pixel block in FIG. 18 can be represented by (x, y) coordinate values in a two-dimensional space.
  • the numbers assigned to the pixel blocks indicate the processing order for each pixel block, and the pixel blocks to which the same numbers are assigned can be processed in parallel.
  • a pixel block (hereinafter referred to as a pixel block (1, 1) in the coordinate value (1, 1) representing the upper left of the frame is referred to as the pixel block (1, 1).
  • Process is performed.
  • second a process is performed on the pixel block (2, 1) located to the right of the pixel block (1, 1).
  • the pixel block (3,1) located on the right side of the pixel block (2,1), and the pixel blocks (1,1) and (2,1) It is possible to execute processing for the pixel block (1, 2) having the reference adjacent block as. Thereby, the processing for the pixel blocks (3, 1) and (1, 2) is performed in parallel as the third processing.
  • a pixel block (m, n) (m is an arbitrary integer of 3 or more, n is an arbitrary integer of 1 or more), a pixel block (m ⁇ 2, n + 1), are processed in parallel.
  • is an operator representing subtraction
  • + is an operator representing addition.
  • Patent Document 2 a video stream encoded in units of macro blocks (pixel blocks) of n ⁇ n pixels (n is an arbitrary natural number) generated by dividing each image into a matrix is decoded.
  • An apparatus is disclosed. This apparatus detects an inter macroblock (inter prediction block) in the slice by analyzing information representing a slice composed of one or more macroblocks included in the input moving image stream.
  • This apparatus includes two or more decoding processing means for executing decoding processing in units of macroblocks. Then, the apparatus performs the decoding process on the detected inter macroblock in the slice in parallel by the two or more decoding processing units, and then decodes the intra macroblock (intra prediction block) in the slice. Are controlled so as to be executed by the decoding processing means.
  • pixel blocks (intra prediction blocks) to be processed are sequentially ordered from a predetermined position (for example, upper left) in the frame. Search for. Then, when all the processes for the reference adjacent block related to the searched intra prediction block (for example, pixel blocks located on the left, upper left, upper, and upper right of the intra prediction block) are completed, the process for the intra prediction block is performed. To start.
  • the processing for the inter prediction block can be performed in parallel regardless of the processing status (without depending on the processing status), and thus can be completed in a short time by being processed in a highly parallel manner. it can.
  • the said intra prediction block is located in the lower right vicinity of a flame
  • the intra prediction block can be processed at an early timing, the timing at which the processing is actually started is delayed.
  • Patent Documents 1 and 2 do not specifically mention this problem.
  • the main object of the present invention is to provide a moving image processing apparatus and the like that solve such problems.
  • the moving image processing apparatus divides an image into a plurality of pixel blocks, and performs image processing on each of the pixel blocks, thereby performing encoding processing or decoding processing on the image.
  • a determination unit that determines whether or not the image processing on the first pixel block can be executed, and a plurality of the second images that are determined to be executable by the determination unit.
  • the image processing for one pixel block is executed in parallel or pseudo-parallel, and the first pixel stored in the storage means And an execution means for updating the execution state of the image processing for locking.
  • a moving image processing method includes an information processing device that divides an image into a plurality of pixel blocks and performs image processing on each of the pixel blocks.
  • the execution state of the image process is stored in a storage unit for each pixel block, and the image process for the first pixel block stored in the storage unit Determines whether or not image processing for the first pixel block can be executed based on the execution state of the image processing for the second pixel block having a dependency relationship with respect to the processing order, and the image processing can be executed.
  • Image processing for the determined plurality of first pixel blocks is executed in parallel or pseudo-parallel and stored in the storage means It updates the execution state of the image processing for the first pixel block.
  • the moving image processing program divides an image into a plurality of pixel blocks and performs image processing on each of the pixel blocks, thereby performing the image processing.
  • a storage control process for storing the execution state of the image process for each pixel block in a storage unit, and an image for the first pixel block stored in the storage unit
  • a determination process for determining whether or not an image process for the first pixel block can be executed based on an execution state of the image process for the second pixel block having a dependency relationship with respect to a processing order; and the determination process
  • the image processing for the plurality of first pixel blocks determined to be executable by the image processing is performed in parallel or pseudo And executes in parallel, a program for executing an execution process of updating the execution state of the image processing to the storage means the stored said first pixel blocks, to the computer.
  • the present invention can be realized by a computer-readable non-volatile recording medium in which the moving image processing program (computer program) is stored.
  • the present invention makes it possible to speed up the encoding process or decoding process for a moving image.
  • FIG. 10 It is a figure which shows the comparative example of the order which 10 A of moving image decoding apparatuses which concern on 2nd Embodiment of this invention, and a general moving image decoding apparatus perform the prediction process with respect to a pixel block in parallel. It is a figure which illustrates the dependence parameter
  • FIG. 3 is a block diagram illustrating a configuration of a general moving image decoding device 40.
  • FIG. It is a figure which shows an example of the order which the general moving image decoding apparatus 40 performs the prediction process with respect to a pixel block in parallel.
  • FIG. 1 is a block diagram conceptually showing the structure of a moving picture decoding apparatus 10 according to the first embodiment of the present invention. Note that FIG. 1 is also referred to in the description of the moving picture decoding apparatus 10A according to the second embodiment and the moving picture decoding apparatus 10B according to the third embodiment which will be described later.
  • the moving picture decoding apparatus 10 conforms to a standard such as H.264 or H.265 for an input bitstream representing a moving picture encoded by a moving picture encoding apparatus (not shown). It is an apparatus that performs a decoding process and outputs a decoded image as a result of the decoding process.
  • the moving image decoding apparatus 10 performs decoding processing in parallel or pseudo-parallel for each pixel block (for example, a 16 ⁇ 16 pixel block or a 4 ⁇ 4 pixel block) included in a frame constituting a moving image.
  • pseudo-parallel is parallel processing by time division, for example.
  • the term “parallel” including “pseudo parallel” will be used hereinafter.
  • the input bitstream on which the video decoding device 10 performs decoding processing encodes only information indicating the difference between the predicted image generated based on temporal or spatial correlation and the input image (original image). Is the information compressed by.
  • a prediction image related to each pixel block included in the input bitstream is generated by inter prediction (method) or intra prediction (method).
  • Inter prediction is a method of generating a predicted image using pixels included in a neighboring frame based on temporal correlation.
  • Intra prediction is a method of generating a predicted image using neighboring pixels included in the same frame based on spatial correlation.
  • the moving picture decoding apparatus 10 roughly includes an execution unit 11, a storage unit 12, and a determination unit 13.
  • the storage unit 12 is a storage device such as an electronic memory or a magnetic disk.
  • the storage unit 12 stores, for each pixel block, execution states of inter prediction processing (image processing) by an inter prediction unit 114 (to be described later) and intra prediction processing (image processing) by an intra prediction unit 115. These execution states are updated by the inter prediction unit 114 or the intra prediction unit 115.
  • the storage unit 12 also stores an encoding type (information) output by the variable length decoding unit 110 described later in association with the pixel block. The encoding type will be described later.
  • the determination unit 13 can execute the intra prediction process for the pixel block. It is determined whether or not. More specifically, the determination unit 13 sequentially sets, for example, pixel blocks (second pixel blocks) positioned on the left, upper left, upper, and upper right as reference adjacent blocks for the pixel block, The execution state is confirmed by referring to the storage unit 12. Note that the pixel block set as the reference adjacent block by the determination unit 13 may be a pixel block located at a position other than the left, upper left, upper, and upper right with respect to the pixel block.
  • the determination unit 13 performs the intra prediction by the intra prediction unit 115 when all the prediction processes for the reference adjacent block have been completed (that is, the dependency on the processing order from the selected pixel block to the reference adjacent block has been eliminated). It is determined that the prediction process can be executed, and the determination result is notified to the intra prediction unit 115.
  • the execution unit 11 includes a variable length decoding unit 110, an inverse transform inverse quantization unit 111, a loop filter 112, a frame buffer 113, an inter prediction unit 114, an intra prediction unit 115, and switches 116 and 117.
  • the variable length decoding unit 110 outputs information including a quantized transform coefficient and a coding type by performing a decoding process on the input bitstream.
  • a well-known technique can be employed in the technical field of the present invention, and thus detailed description thereof will be omitted.
  • the encoding type is information that identifies whether each pixel block is encoded by inter prediction or intra prediction.
  • the variable length decoding unit 110 stores the encoding type in the storage unit 12 in association with the pixel block.
  • the inverse transform inverse quantization unit 111 performs inverse transform on the quantized transform coefficient output from the variable length decoding unit 110, and then performs inverse transform to output a residual signal. Since the processing performed by the inverse transform inverse quantization unit 111 can employ a well-known technique in the technical field of the present invention, a detailed description thereof will be omitted.
  • the inter prediction unit 114 refers to the encoding type and the execution state of the prediction process for each pixel block stored in the storage unit 12.
  • the inter prediction unit 114 selects an inter prediction block in which the prediction process is unprocessed from pixel blocks (inter prediction blocks) whose encoding type indicates “inter prediction”, and performs inter prediction on the selected inter prediction block. Process. More specifically, the inter prediction unit 114 generates a prediction image representing a result of performing the inter prediction process by referring to a decoded frame (image) stored in a frame buffer 113 described later.
  • the execution unit 11 generates a restored image by adding the generated predicted image and the residual signal output from the inverse transform inverse quantization unit 111.
  • the inter prediction unit 114 updates the execution state stored in the storage unit 12 to “completed” for the inter prediction block for which the prediction process has been completed.
  • the intra prediction unit 115 refers to the encoding type and the execution state of the prediction process for each pixel block stored in the storage unit 12.
  • the intra prediction unit 115 selects an intra prediction block for which the prediction process has not been processed among pixel blocks (intra prediction blocks) whose encoding type indicates “intra prediction”.
  • the intra prediction unit 115 starts the intra prediction process for the intra prediction block when notified from the determination unit 13 that the intra prediction process for the selected intra prediction block can be executed. More specifically, the intra prediction unit 115 generates a prediction image representing a result of performing the intra prediction process by referring to the restored image related to the adjacent reference block. However, it is assumed that the restored image related to the adjacent reference block is stored in, for example, the storage unit 12 by the intra prediction unit 115.
  • the execution unit 11 generates a restored image by adding the generated predicted image and the residual signal output from the inverse transform inverse quantization unit 111.
  • the intra prediction unit 115 updates the execution state stored in the storage unit 12 to “completed” for the intra prediction block for which the prediction process has been completed.
  • the execution unit 11 switches the switches 116 and 117 that switch input / output related to the inter prediction unit 114 and the intra prediction unit 115 according to the coding type of the pixel block to be processed, thereby performing the inter prediction process and the intra prediction described above.
  • the processing can be switched as appropriate. Regarding this switching, since a well-known technique can be employed in the technical field of the present invention, a detailed description thereof will be omitted.
  • the loop filter 112 generates a decoded image from which the block distortion has been removed from the restored image generated by the execution unit 11, and outputs the generated decoded image to the outside.
  • the loop filter 112 stores the generated decoded image in the frame buffer 113.
  • FIG. 2 is a flowchart showing the entire operation of the video decoding device 10.
  • the variable length decoding unit 110 in the executing unit 11 outputs information including the post-quantization transform coefficient and the encoding type by performing a decoding process on the input bitstream (step S101).
  • the inverse transform inverse quantization unit 111 in the execution unit 11 dequantizes the quantized transform coefficient output from the variable length decoding unit 110, and then inverse transforms to output a residual signal (step S102).
  • the execution unit 11 generates a restored image by performing an inter prediction process on a pixel block (inter prediction block) whose encoding type is inter prediction (step S103).
  • the execution unit 11 generates a restored image by performing an intra prediction process on a pixel block (intra prediction block) whose encoding type is intra prediction (step S104).
  • the loop filter 112 in the execution unit 11 generates a decoded image obtained by removing block distortion from the generated restored image, outputs the generated decoded image to the outside, and stores the generated decoded image in the frame buffer 113 (step S105). The process ends.
  • FIG. 3 is a flowchart showing details of an operation in which the moving picture decoding apparatus 10 performs a prediction process using an inter prediction method on a pixel block. That is, FIG. 3 is a flowchart showing details of step S103 in the flowchart shown in FIG.
  • the inter prediction unit 114 in the execution unit 11 selects an unprocessed inter prediction block by referring to the execution state of the prediction process for each pixel block stored in the storage unit 12 (step S201).
  • the inter prediction unit 114 performs inter prediction processing on the selected inter prediction block (step S202).
  • the inter prediction unit 114 updates the execution state stored in the storage unit 12 to “completed” for the inter prediction block for which the prediction process has been completed (step S203).
  • the inter prediction unit 114 checks whether there is an unprocessed inter prediction block by referring to the storage unit 12 (step S204).
  • step S205 If there is an unprocessed inter prediction block (Yes in step S205), the process returns to step S201. When there is no unprocessed inter prediction block (No in step S205), the process in step S103 ends.
  • FIG. 4 is a flowchart showing details of an operation in which the moving image decoding apparatus 10 performs a prediction process using an intra prediction method on a pixel block. That is, FIG. 4 is a flowchart showing details of step S104 in the flowchart shown in FIG.
  • the intra prediction unit 115 in the execution unit 11 selects an unprocessed intra prediction block by referring to the execution state of the prediction processing for each pixel block stored in the storage unit 12 (step S301).
  • the determination unit 13 sequentially sets pixel blocks located on the left, upper left, upper, and upper right as reference adjacent blocks with respect to the intra prediction block selected by the intra prediction unit 115, and refers to the storage unit 12. Then, it is confirmed whether or not the prediction process for the reference adjacent block has been completed (step S302).
  • step S303 If the prediction process for the reference adjacent block has not been completed (No in step S303), the process returns to step S301.
  • the determination unit 13 performs the loop process from step S302 on the next reference adjacent block, and the processes for all the reference adjacent blocks have been completed. If so, the process proceeds to step S305 (step S304).
  • the determination unit 13 determines that the intra prediction process for the intra prediction block selected by the intra prediction unit 115 is executable, and notifies the intra prediction unit 115 of the determination result (step S306).
  • the intra prediction unit 115 performs an intra prediction process on the selected intra prediction block (step S306).
  • the intra prediction unit 115 updates the execution state stored in the storage unit 12 to “completed” for the intra prediction block for which the prediction process has been completed (step S307).
  • the intra prediction unit 115 refers to the storage unit 12 to check whether there is an unprocessed intra prediction block (step S308).
  • step S309 If there is an unprocessed intra prediction block (Yes in step S309), the process returns to step S301. If there is no unprocessed intra prediction block (No in step S309), the process in step S104 ends.
  • the moving picture decoding apparatus 10 can speed up the decoding process for moving pictures.
  • the reason is that, when the first pixel block has a dependency relationship with respect to the second pixel block regarding the prediction process, the moving picture decoding apparatus 10 executes the prediction process (image process) for each pixel block. This is because it is possible to detect that the dependency relationship has been resolved at an early timing, and as a result, it is possible to accelerate the start of the prediction process for the first pixel block.
  • intra prediction blocks to be processed are searched in order from the upper left in the frame, for example. And when all the processes with respect to the reference adjacent block regarding the searched intra prediction block are completed, the process with respect to the said intra prediction block is started.
  • the intra prediction block can be processed at an early timing. Despite this, the timing at which the process is actually started is delayed. That is, in general video decoding processing or video encoding processing, there is a case where the start of processing for an intra prediction block that can be processed at an early timing is delayed, and thus there is a problem that the processing speed is not sufficient. is there.
  • the video decoding device 10 includes an execution unit 11, a storage unit 12, and a determination unit 13.
  • the storage unit 12 divides an image into a plurality of pixel blocks, and performs image processing on each pixel block, thereby storing the execution state of image processing for each pixel block when performing decoding processing on the image.
  • the determination unit 13 stores the first pixel block on the basis of the execution state of the image processing on the second pixel block, which is stored in the storage unit 12, and the image processing on the first pixel block has a dependency on the processing order. It is determined whether or not image processing can be executed.
  • the execution unit 11 performs image processing on the plurality of first pixel blocks that are determined to be executable by the determination unit 13 in parallel, and also performs image processing on the first pixel block stored in the storage unit 12. Update the execution status of the process.
  • FIG. 5 is a diagram illustrating a comparative example of the order in which the video decoding device 10 according to the present embodiment and a general video decoding device execute prediction processing (image processing) on pixel blocks in parallel.
  • a white square represents an inter prediction block
  • a gray square represents an intra prediction block.
  • the numbers given to the intra prediction blocks indicate the processing order for each intra prediction block, and indicate that the intra prediction blocks to which the same numbers are given can be processed in parallel.
  • the reference adjacent blocks related to each intra prediction block are pixel blocks located on the left, upper left, upper, and upper right of the intra prediction block.
  • all the reference neighboring blocks related to each intra prediction block are inter prediction blocks.
  • the video decoding device 10 manages the execution state of the prediction process for the reference adjacent block (second pixel block) for each pixel block (first pixel block). For this reason, the moving picture decoding apparatus 10 can perform the prediction process with respect to six intra prediction blocks in parallel, as shown to Fig.5 (a). That is, in this case, the maximum degree of parallelism of processing is “6”, and the number of processing steps is “1”.
  • a general video decoding device searches for an intra prediction block to be processed in order from the upper left in a frame. Therefore, the general moving picture decoding apparatus can start the prediction process for the intra prediction block (m, n) in the range from the coordinate value (1, n) to the coordinate value (m ⁇ 1, n) (ie, the intra prediction block (m, n)). This is after the prediction processing for the intra prediction block located on the left side in the column where the y coordinate is the same as the prediction block (m, n) is completed. For this reason, as shown in FIG. 5B, a general moving image decoding apparatus sequentially executes prediction processing for six intra prediction blocks in parallel. That is, in this case, the maximum degree of parallelism of processing is “3”, and the number of processing steps is “3”.
  • the video decoding device 10 reduces the number of steps of the prediction process by increasing the parallelism of the prediction processing for the pixel block as compared with a general video decoding device.
  • the speed of the decoding process for moving images can be increased.
  • a device such as a GPU (Graphics Processing Unit) capable of executing a large number of processes in parallel by providing a large number of arithmetic units has been realized.
  • the moving picture decoding apparatus 10 according to the present embodiment can speed up the decoding process for moving pictures by effectively utilizing the functions of such a device.
  • the moving picture decoding apparatus 10A refers to the intra prediction mode set for each intra prediction block when performing the prediction process on the intra prediction block, and the moving picture decoding according to the first embodiment is performed.
  • the reference adjacent block according to the first embodiment is fixed to pixel blocks located on the left, upper left, upper, and upper right of the intra prediction block, for example. That is, in the first embodiment, the positional relationship between an intra prediction block and its reference adjacent block is common to the intra prediction blocks. On the other hand, in this embodiment, the positional relationship between an intra prediction block and its reference adjacent block may be different for each intra prediction block.
  • the intra prediction mode is information that can specify a reference adjacent block related to a certain intra prediction block.
  • FIG. 6 is a diagram illustrating the contents of the intra prediction mode referred to by the video decoding device 10A according to the present embodiment.
  • the contents shown in FIG. 6 are described in Non-Patent Document 1.
  • mode 0 indicates that a pixel block located above the intra prediction block is set as a reference adjacent block.
  • mode 1 indicates that a pixel block located on the left side of the intra prediction block is set as a reference adjacent block. That is, in the prediction process, an intra prediction block whose intra prediction mode is set to “0” has a dependency relationship with the pixel block located on the upper side, and an intra prediction block whose intra prediction mode is set to “1” , The pixel block located on the left side has a dependency relationship.
  • the moving picture decoding apparatus 10A includes an execution unit 11, a storage unit 12A, and a determination unit 13A.
  • the storage unit 12A stores a value indicating the intra prediction mode for each pixel block.
  • the determination unit 13A sequentially selects pixel blocks located at positions specified by the intra prediction mode stored in the storage unit 12A as reference adjacent blocks. Set. Then, the determination unit 13 ⁇ / b> A confirms the execution state of the prediction process for these reference adjacent blocks by referring to the storage unit 12. The determination unit 13A determines that the intra prediction process by the intra prediction unit 115 is possible when all the prediction processes for the reference adjacent block are completed, and notifies the intra prediction unit 115 of the determination result.
  • step S104 in the flowchart shown in FIG. 2 are different from those of the moving picture decoding apparatus 10 according to the first embodiment. .
  • FIG. 7 is a flowchart showing details of the operation in which the video decoding device 10A according to the present embodiment performs the process of step S104, that is, the prediction process using the intra prediction method for the pixel block.
  • the intra prediction unit 115 in the execution unit 11 performs the same processing as step S301 shown in FIG. 4 (step S401).
  • the determination unit 13A sequentially sets pixel blocks located at positions specified by the intra prediction mode as reference adjacent blocks, and performs prediction processing for the reference adjacent blocks.
  • the execution state is confirmed (step S402).
  • step S403 If the prediction process for the reference adjacent block has not been completed (No in step S403), the process returns to step S401.
  • the determination unit 13A performs the loop process from step S402 on the next reference adjacent block, and the processes for all the reference adjacent blocks have been completed. If so, the process proceeds to step S405 (step S404).
  • the moving picture decoding apparatus 10A performs the same processing as steps S305 to S309 shown in FIG. 4 (step S405), and the processing of step S104 ends.
  • the moving picture decoding apparatus 10A can speed up the decoding process for moving pictures. The reason is as described for the first embodiment.
  • the moving picture decoding apparatus 10A narrows down the target for checking whether or not the dependency relationship has been eliminated in the prediction process for the intra prediction block to the reference adjacent block specified by the intra prediction mode. It is possible to further speed up the decoding process for moving images.
  • FIG. 8 is a diagram illustrating a comparative example of the order in which the moving picture decoding apparatus 10A according to the present embodiment and the moving picture decoding apparatus 10 according to the first embodiment execute prediction processing on pixel blocks in parallel. .
  • the white and gray rectangles and the numbers given to the pixel blocks are as described for FIG.
  • FIG. 8A illustrates an intra prediction mode for each pixel block (intra prediction block).
  • mode 2 illustrated in FIG. 6 is set as the intra prediction mode for the pixel block (2, 2).
  • the mode 1 illustrated in FIG. 6 is set as the intra prediction mode.
  • the execution order of the prediction processing for the intra prediction blocks performed by the video decoding device 10A according to the present embodiment is as shown in FIG. As illustrated in (b). That is, in FIG. 8B, since the intra prediction block whose execution order is “1” is all the inter prediction blocks as illustrated in FIG. 8A, the moving picture decoding apparatus 10A. In the first step, prediction processing for these intra prediction blocks can be performed in parallel.
  • an intra prediction block whose execution order is “2” is an intra prediction block whose prediction adjacent block is subjected to prediction processing in the first step, as illustrated in FIG. 8A. That is, in this case, the maximum degree of parallelism of processing is “6”, and the number of processing steps is “2”.
  • the execution order of the prediction processing for the intra prediction blocks performed by the video decoding device 10 according to the first embodiment Is as illustrated in FIG. Since the moving image decoding apparatus 10 does not refer to the intra prediction mode set for each intra prediction block, the prediction processing for a certain intra prediction block is performed by pixels located in the reference adjacent block (that is, pixels located at the left, upper left, upper, and upper right). This is executed after the prediction processing for block) is completed. Therefore, in this case, the maximum parallelism of the process is “2”, and the number of process steps is “6”.
  • the moving picture decoding apparatus 10A can further speed up the decoding process for moving pictures, compared to the moving picture decoding apparatus 10 according to the first embodiment.
  • ⁇ Third Embodiment> The configuration of a video decoding device 10B according to the third embodiment of the present invention will be described with reference to FIG. In the present embodiment, regarding the configuration having the same function as that of the first embodiment described above, the same number as that of the first embodiment is assigned, and the detailed description thereof is omitted.
  • the moving picture decoding apparatus 10B obtains a value representing the dependency relationship of the processing order related to the intra prediction block (hereinafter referred to as “dependence index”) obtained by analyzing in advance the dependency relationship related to the prediction processing for the intra prediction block. "). Then, the moving image decoding apparatus 10B uses the dependency index to control parallel execution of prediction processing on the intra prediction block, and the moving image decoding apparatus 10 according to the first embodiment, and Different from the moving picture decoding apparatus 10A according to the second embodiment.
  • the dependency index is information indicating the number of reference adjacent blocks on which the intra prediction block depends in the prediction process, and the value is updated when the prediction process for a certain reference adjacent block is completed.
  • index which concerns on this embodiment may be the value calculated only for the intra prediction block.
  • the moving picture decoding apparatus 10B includes an execution unit 11B, a storage unit 12B, and a determination unit 13B.
  • the execution unit 11B stores information (for example, the first adjacent block) that can be specified for each intra prediction block, which is stored in the storage unit 12B, before the decoding process for the moving image is started by the moving image decoding apparatus 10B.
  • Dependency index for each intra prediction block is calculated based on the coding type according to the embodiment and the intra prediction mode according to the second embodiment.
  • the execution unit 11B stores the calculated dependency index for each intra prediction block in the storage unit 12B.
  • the execution unit 11B updates (counts down) the dependency index related to the intra prediction block having the intra prediction block as a reference adjacent block by subtracting “1” every time the prediction process for any intra prediction block is completed.
  • the determination unit 13B performs the prediction process for the intra prediction block Is determined to be executable.
  • FIG. 9 is a diagram exemplifying a dependency index related to a pixel block (intra prediction block) updated by the video decoding device 10B according to the present embodiment.
  • white and gray rectangles are as described for FIG.
  • FIG. 9A illustrates an intra prediction mode for each intra prediction block.
  • the intra prediction mode for each intra prediction block according to the present embodiment is equivalent to the intra prediction mode for each intra prediction block according to the second embodiment illustrated in FIG.
  • the dependency index related to the intra prediction block updated by the video decoding device 10B according to the present embodiment is as shown in FIG. It is as illustrated in b).
  • the number given to the intra prediction block represents a dependency index related to the intra prediction block.
  • the six intra prediction blocks whose dependency index is initially set to 0 are equal to the pixel blocks whose prediction processing execution order is “1” in FIG. 8B.
  • the three intra prediction blocks whose dependency index is initially set to 1 in FIG. 9B are equal to the pixel blocks whose prediction processing execution order is “2” in FIG. 8B.
  • the moving picture decoding apparatus 10B executes prediction processing for six intra prediction blocks whose dependency index is initially set to 0 in parallel at the first step. After completing the first step of the prediction process, the moving picture decoding apparatus 10B depends on the intra prediction block on which the prediction process has been executed, and sets the dependency index regarding the three intra prediction blocks whose dependency index is initially set to 1. , “1” is updated to “0”. Thereafter, the moving image decoding apparatus 10B executes the prediction process for the three intra prediction blocks in parallel at the second step. That is, in this case, the maximum degree of parallelism of processing is “6”, and the number of processing steps is “2”.
  • step S104 in the flowchart shown in FIG. 2 are different from those of the video decoding device 10 according to the first embodiment. .
  • FIG. 10 is a flowchart showing details of the operation in which the video decoding device 10B according to the present embodiment performs the process of step S104, that is, the prediction process using the intra prediction method for the pixel block.
  • the execution unit 11B selects intra prediction blocks in order based on the information stored in the storage unit 12B before the decoding process for the moving image is started by the moving image decoding device 10B (step S501).
  • the execution unit 11B calculates a dependency index related to the selected intra prediction block based on the information stored in the storage unit 12B, and stores the calculated dependency index in the storage unit 12B (step S502).
  • the execution unit 11B repeatedly performs the loop processing of Steps S501 to S503 until the processing for all intra prediction blocks is completed (Step S103).
  • the intra prediction unit 115 in the execution unit 11B performs the same process as step S301 shown in FIG. 4 (step S504).
  • the determination unit 13B refers to the storage unit 12B to confirm the dependency index related to the intra prediction block selected by the intra prediction unit 115 (step S505). If the dependency index is not “0” (No in step S506), the process returns to step S504. When the dependence index is “0” (Yes in Step S506), the moving picture decoding apparatus 10B performs the same processing as Steps S305 to S307 illustrated in FIG. 4 (Step S507).
  • the execution unit 11B subtracts “1” from the dependency index related to the selected intra prediction block (step S508).
  • the intra prediction unit 115 performs the same process as step S308 illustrated in FIG. 4 (step S509). If there is an unprocessed intra prediction block (Yes in step S510), the process returns to step S504. If there is no unprocessed intra prediction block (No in step S510), the process in step S104 ends.
  • the moving picture decoding apparatus 10B can speed up the decoding process for moving pictures. The reason is as described for the first embodiment.
  • the moving picture decoding apparatus 10B determines whether or not the dependency relationship has been canceled in the prediction process for the intra prediction block, and determines whether or not the dependency index regarding the intra prediction block is “0”, for example. Therefore, it is possible to speed up the decoding process for moving images.
  • FIG. 11 is a block diagram conceptually showing the structure of the video encoding apparatus 20 according to the fourth embodiment of the present invention.
  • the video encoding device 20 according to the present embodiment performs an encoding process based on, for example, H.264 or H.265 on the input image, and outputs an output bitstream as a result of the encoding process.
  • This is an apparatus for outputting to a moving picture decoding apparatus (not shown) (for example, the moving picture decoding apparatus 10 according to the first embodiment).
  • the video encoding device 20 according to the present embodiment is a device to which the configuration (technique) included in the video decoding device 10 according to the first embodiment is applied.
  • the video encoding apparatus 20 is roughly divided into an execution unit 21, a storage unit 22, a determination unit 23, a first cost calculation unit 24, a second cost calculation unit 25, and a generation unit 26. Yes.
  • the first cost calculation unit 24 calculates, for each pixel block, an encoding cost when the inter prediction method is used as a prediction process (image processing) for the pixel block.
  • the encoding cost is an index indicating the amount of information processing required to execute encoding and decoding on an image.
  • the first cost calculation unit 24 has a calculation standard for calculating the encoding cost when the inter prediction method is used. At this time, the first cost calculation unit 24 also generates a motion vector (prediction vector) in inter prediction.
  • the second cost calculation unit 25 calculates, for each pixel block, an encoding cost when the intra prediction method is used as a prediction process (image processing) for the pixel block.
  • the second cost calculation unit 25 has a calculation standard for calculating the encoding cost when the intra prediction method is used.
  • the generation unit 26 Based on the calculation result regarding the encoding cost by the first cost calculation unit 24 and the second cost calculation unit 25, the generation unit 26 encodes the encoding type information for each pixel block (that is, whether the encoding is performed by inter prediction). Information identifying whether to perform the prediction). For example, when the inter prediction has a lower encoding cost for a certain pixel block, the generation unit 26 sets the encoding type for the pixel block to the inter prediction, and when the intra prediction has a lower encoding cost. The encoding type for the pixel block is set to intra prediction. The generation unit 26 stores the generated encoding type information in the storage unit 22.
  • the storage unit 22 is a storage device such as an electronic memory or a magnetic disk.
  • the storage unit 22 stores, for each pixel block, execution states of inter prediction processing (image processing) by an inter prediction unit 215 (to be described later) and intra prediction processing (image processing) by an intra prediction unit 216. These execution states are updated by the inter prediction unit 215 or the intra prediction unit 216.
  • the storage unit 22 also stores the coding type information input by the generation unit.
  • the determination unit 23 can execute the intra prediction process on the pixel block. Determine whether. At that time, the determination unit 23 performs the same process as the determination unit 13 according to the first embodiment. The determination unit 23 notifies the determination result to the intra prediction unit 216.
  • the execution unit 21 includes a variable length coding unit 210, an inverse transform inverse quantization unit 211, a transform quantization unit 212, a loop filter 213, a frame buffer 214, an inter prediction unit 215, an intra prediction unit 216, and a switch 217. It is out.
  • the inter prediction unit 215 performs inter prediction processing on the selected inter prediction block, similarly to the inter prediction unit 114 according to the first embodiment. More specifically, the inter prediction unit 215 performs inter prediction based on an encoded frame (image) stored in the frame buffer 214 described later and the motion vector generated by the first cost calculation unit 24. A predicted image representing the result of processing is generated. The inter prediction unit 215 updates the execution state stored in the storage unit 22 to “completed” for the inter prediction block for which the prediction process has been completed. The execution unit 21 generates a difference signal between the prediction image generated by the inter prediction unit 215 and the input image as a residual signal.
  • the intra prediction unit 216 performs an intra prediction process on the selected intra prediction block, similarly to the intra prediction unit 115 according to the first embodiment. More specifically, the intra prediction unit 216 generates a prediction image representing a result of performing the intra prediction process by referring to a reconstructed image (described later) related to the adjacent reference block. The intra prediction unit 216 updates the execution state stored in the storage unit 22 to “completed” for the intra prediction block for which the prediction process has been completed. The execution unit 21 generates a difference between the predicted image generated by the intra prediction unit 216 and the input image as a residual signal.
  • the execution unit 21 appropriately performs the above-described inter prediction processing and intra prediction processing by switching the switch 217 that switches the output related to the inter prediction unit 215 and the intra prediction unit 216 according to the encoding type of the pixel block to be processed. It can be switched.
  • the transform quantization unit 212 quantizes the transform coefficient by orthogonally transforming the residual signal generated by the execution unit 21.
  • the inverse transform inverse quantization unit 211 performs inverse orthogonal transform after inverse quantization of the quantized transform coefficient.
  • the execution unit 21 generates a reconstructed image by adding the result of the inverse orthogonal transform and the prediction image generated by the inter prediction unit 215 or the intra prediction unit 216.
  • variable length encoding unit 210 outputs a bitstream generated by encoding the transform coefficient quantized by the transform quantization unit 212.
  • the loop filter 213 stores the frame (image) generated by removing the block distortion of the reconstructed image generated by the execution unit 21 in the frame buffer 214.
  • FIG. 12 is a flowchart showing the entire operation of the moving picture coding apparatus 20.
  • the first cost calculation unit 24 calculates the encoding cost when the inter prediction method is used (step S601).
  • the second cost calculation unit 25 calculates the encoding cost when the intra prediction method is used (step S602).
  • the generation unit 26 generates encoding type information including the encoding type determined based on the calculation results by the first cost calculation unit 24 and the second cost calculation unit 25, and stores the encoding type information in the storage unit 22. (Step S603).
  • the execution unit 21 performs inter prediction processing, transform quantization processing, and inverse transform inverse quantization processing on a pixel block (inter prediction block) whose encoding type is inter prediction, thereby obtaining a reconstructed image.
  • Generate step S604.
  • the execution unit 21 performs intra prediction processing, transform quantization processing, and inverse transform inverse quantization processing on a pixel block (intra prediction block) whose encoding type is intra prediction, thereby obtaining a reconstructed image.
  • Generate step S605.
  • variable length encoding unit 210 in the execution unit 21 generates an output bit stream by encoding the transform coefficient quantized by the transform quantization unit 212 (step S606).
  • the loop filter 213 in the execution unit 21 stores the result of removing the block distortion of the reconstructed image generated by the execution unit 21 in the frame buffer 214 (step S607), and the entire process ends.
  • FIG. 13 is a flowchart showing details of an operation in which the moving image encoding device 20 performs a prediction process using an inter prediction method on a pixel block. That is, FIG. 13 is a flowchart showing details of step S604 in the flowchart shown in FIG.
  • the inter prediction unit 215 in the execution unit 21 selects an unprocessed inter prediction block by referring to the execution state of the prediction process for each pixel block stored in the storage unit 22 (step S701).
  • the execution unit 21 generates a reconstructed image by performing inter prediction processing, block transform quantization processing, and block inverse transform inverse quantization processing on the selected inter prediction block (step S702).
  • the inter prediction unit 215 in the execution unit 21 updates the execution state stored in the storage unit 22 to “completed” with respect to the inter prediction block for which the prediction process has been completed (step S703).
  • the inter prediction unit 215 checks whether there is an unprocessed inter prediction block by referring to the storage unit 22 (step S704).
  • step S705 If there is an unprocessed inter prediction block (Yes in step S705), the process returns to step S701. If there is no unprocessed inter prediction block (No in step S705), the process in step S604 ends.
  • FIG. 14 is a flowchart showing details of an operation in which the moving image encoding apparatus 20 performs a prediction process using an intra prediction method on a pixel block. That is, FIG. 14 is a flowchart showing details of step S605 in the flowchart shown in FIG.
  • the intra prediction unit 216 in the execution unit 21 selects an unprocessed intra prediction block by referring to the execution state of the prediction process for each pixel block stored in the storage unit 22 (step S801).
  • the determination unit 23 sequentially sets pixel blocks positioned on the left, upper left, upper, and upper right as reference adjacent blocks for the intra prediction block selected by the intra prediction unit 216, and confirms the execution state ( Step S802).
  • step S803 If the prediction process for the reference adjacent block has not been completed (No in step S803), the process returns to step S801.
  • the determination unit 23 performs the loop process from step S802 on the next reference adjacent block, and the processes for all the reference adjacent blocks have been completed. If so, the process proceeds to step S805 (step S804).
  • the executing unit 21 generates a reconstructed image by performing an intra prediction process, a block transform quantization process, and a block inverse transform inverse quantization process on the selected intra prediction block (step S805).
  • the intra prediction unit 216 updates the execution state stored in the storage unit 22 to “completed” for the intra prediction block for which the prediction process has been completed (step S806).
  • the intra prediction unit 216 checks whether there is an unprocessed intra prediction block by referring to the storage unit 22 (step S807). If there is an unprocessed intra prediction block (Yes in step S808), the process returns to step S801. If there is no unprocessed inter prediction block (No in step S808), the process in step S605 ends.
  • the moving picture encoding apparatus 20 can speed up the encoding process for moving pictures. The reason is as described for the first embodiment.
  • the moving picture encoding apparatus 20 is applied with the configuration (technique) included in the moving picture decoding apparatus 10A according to the second embodiment or the moving picture decoding apparatus 10B according to the third embodiment. It may be a device.
  • FIG. 15 is a block diagram conceptually showing the structure of the moving image processing apparatus 30 according to the fifth embodiment of the present invention.
  • the moving image processing apparatus 30 includes an execution unit 31, a storage unit 32, and a determination unit 33.
  • the storage unit 32 divides an image into a plurality of pixel blocks, and performs image processing on each pixel block, thereby performing an image processing execution state for each pixel block when performing encoding processing or decoding processing on the image.
  • the determination unit 33 Based on the execution state of the image processing for the second pixel block, which is stored in the storage unit 32 and the image processing for the first pixel block has a dependency relationship with respect to the processing order, the determination unit 33 performs the processing for the first pixel block. It is determined whether or not image processing can be executed.
  • the execution unit 31 performs image processing on the plurality of first pixel blocks, which are determined to be executable by the determination unit 33, in parallel or pseudo-parallel.
  • the execution unit 31 also updates the execution state of the image processing for the first pixel block stored in the storage unit 32.
  • the moving image processing apparatus 30 can speed up image processing for moving images.
  • the reason is that the moving image processing device 30 manages the execution state of image processing for each pixel block when the first pixel block has a dependency on the processing order with respect to the second pixel block. This is because it is possible to detect that the dependency relationship has been resolved at an early timing, and as a result, it is possible to accelerate the start of image processing for the first pixel block.
  • the units in the video decoding device 10 (10A, 10B) shown in FIG. 1, the video encoding device 20 shown in FIG. 11, and the video processing device 30 shown in FIG. It can be realized by a dedicated HW (HardWare) (electronic circuit).
  • HW HardWare
  • FIG. 16 shows the configuration of an information processing apparatus 900 (computer) that can execute the moving picture decoding apparatus 10 (10A, 10B), the moving picture encoding apparatus 20, and the moving picture processing apparatus 30 according to each embodiment of the present invention.
  • FIG. 16 shows the moving picture decoding apparatus 10 (10A, 10B), moving picture encoding apparatus 20, and moving picture processing apparatus 30 shown in FIGS. 1, 11, and 15, or a part of them.
  • This is a configuration of a realizable computer (information processing apparatus) and represents a hardware environment capable of realizing each function in the above-described embodiment.
  • the information processing apparatus 900 illustrated in FIG. 16 includes the following as constituent elements.
  • CPU Central_Processing_Unit
  • ROM Read_Only_Memory
  • RAM Random_Access_Memory
  • -Hard disk storage device
  • a communication interface 905 with an external device ⁇ Bus 906 (communication line)
  • the information processing apparatus 900 including the above-described components is a general computer in which these configurations are connected via a bus 906.
  • the information processing apparatus 900 may include a plurality of CPUs 901 or may include a CPU 901 configured by a multi-core.
  • the information processing apparatus 900 may include a configuration in which a main general-purpose CPU and a hardware accelerator specialized for specific arithmetic processing cooperate to perform a plurality of processes in parallel.
  • the present invention described by taking the above embodiment as an example supplies a computer program capable of realizing the following functions to the information processing apparatus 900 shown in FIG.
  • the function is the above-described configuration in the block configuration diagrams (FIGS. 1, 11, and 15) referred to in the description of the embodiment, or the flowcharts (FIGS. 2 to 4, FIG. 7, FIG. 10, and FIG. 12).
  • the present invention is then achieved by reading the computer program to the CPU 901 of the hardware, interpreting it and executing it.
  • the computer program supplied to the apparatus may be stored in a readable / writable volatile memory (RAM 903) or a nonvolatile storage device such as the ROM 902 or the hard disk 904.
  • a general procedure can be adopted as a method for supplying a computer program into the hardware.
  • the procedure includes, for example, a method of installing in the apparatus via various recording media 907 such as a CD-ROM, and a method of downloading from the outside via a communication line such as the Internet.
  • the present invention is configured by a code constituting the computer program or a recording medium 907 in which the code is stored.

Landscapes

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

Abstract

動画像処理装置30は、画像を複数の画素ブロックに分割し、個々の画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、画素ブロック毎に画像処理の実行状態を記憶する記憶部32と、記憶部32に記憶された、第一の画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の画素ブロックに対する画像処理の実行状態に基づいて、第一の画素ブロックに対する画像処理が実行可能か否かを判定する判定部33と、判定部33によって、画像処理が実行可能と判定された複数の第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、記憶部32に記憶された第一の画素ブロックに対する画像処理の実行状態を更新する実行部31と、を備えることによって、動画像に対する符号化処理あるいは復号処理を高速化する。

Description

動画像処理装置、動画像処理方法、及び、動画像処理プログラムが格納された記録媒体
 本願発明は、画像を複数の画素ブロックに分割し、分割した画素ブロックごとに符号化処理あるいは復号処理を行う技術に関する。
 H.264/MPEG(Moving Picture Experts Group) -4 AVC(Advanced Video Coding)(以降「H.264」と称する)やH.265/HEVC(High Efficiency Video Coding)(以降「H.265」と称する)といった動画像の符号化に関する標準規格では、画像を多数の画素ブロック(例えば16x16画素ブロックや4x4画素ブロック等)に分割し、画素ブロックごとに符号化および復号を行う。
 H.264などの動画像の符号化では、時間的あるいは空間的な相関性に基づいて予測画像を生成し、入力画像と予測画像との差分を示す情報のみを符号化することによって、情報を圧縮する。このような情報の圧縮処理を行うエンコーダは、予測画像の生成方法を指定する符号化タイプを、インター予測とイントラ予測のいずれかから選択できる。インター予測は、時間的な相関性に基づいて、近傍フレームを構成する画素を基に予測画像を作成する方法である。これに対してイントラ予測は、空間的な相関性に基づいて同一フレームを構成する近傍画素を基に予測画像を生成する方法である。例えばH.264に準拠するイントラ予測では、フレームの左上に位置する画素ブロックからラスタスキャン順に処理を行う。すなわちH.264に準拠するイントラ予測では、ある対象画素ブロックの画素値を予測する場合に、例えば当該対象画素ブロックの左、左上、上、及び右上に位置する、符号化あるいは復号済みである画素ブロックの画素値に基づいて処理する。これらの画素ブロックは、符号化(あるいは復号)が未だ行なわれていない対象画素ブロックが符号化(あるいは復号)される際に参照されるべき、当該対象画素ブロックに隣接する画素ブロックである。本願では、これらの画素ブロックを、以降、「参照隣接ブロック」と称することとする。
 図17はH.264規格に準拠した一般的な動画像復号装置40の構成を概念的に示すブロック図である。動画像復号装置40は、可変長復号部410、逆変換逆量子化部411、ループフィルタ412、フレームバッファ413、インター予測部414、及び、イントラ予測部415を備えている。
 可変長復号部410は、入力された動画像のビットストリームを復号する。逆変換逆量子化部411は、可変長復号部410によって復号された信号に対して、逆量子化したのち逆変換を行う。動画像復号装置40は、逆変換逆量子化部411が出力した信号と後述する予測画像とを加算することにより復元画像を生成する。ループフィルタ412は生成された復元画像におけるブロック歪を除去した結果である復号画像を出力する。フレームバッファ413は、ループフィルタ412から出力された復号画像を保持する。
 上述した予測画像は、インター予測部414もしくはイントラ予測部415によって生成される。インター予測部414は、フレームバッファ413に保持された復号画像の画素を用いることにより予測画像を生成する。インター予測部414は、処理対象とする画素ブロック(インター予測ブロック)に対する処理を行う際に、同一フレーム内の画素を参照しないので、同一フレームのインター予測ブロック間に処理順序に関する依存関係は存在しない。したがって、インター予測部414は、複数のインター予測ブロックに対する処理を、それらの処理状況に関係なく(依存することなく)、高並列に処理することができる。
 一方、イントラ予測部415は、参照隣接ブロックに含まれる復元画像の画素を用いて処理対象とする画素ブロック(イントラ予測ブロック)に関する予測画像を生成する。即ち、参照隣接ブロックに対する処理が完了するまで、イントラ予測部415によるイントラ予測ブロックに対する処理を行うことができないという、処理順序に関する依存関係が存在する。したがって、このような依存関係が存在する場合においても、動画像に対する符号化処理あるいは復号処理を高速化する技術への期待が高まってきている。
 このような技術に関連する技術として、特許文献1には、分割された画素ブロック単位で、符号化処理あるいは復号処理を並列に行う装置が開示されている。この装置は、フレーム内の左上端の画素ブロックから処理を開始し、各画素ブロックに対する処理が完了したか否かを管理する。この装置は、ある画素ブロックに対する処理を完了したときに、左と右上に位置する画素ブロックの処理が完了している画素ブロックを、次に処理する画素ブロックとして検索し、検索された画素ブロックに対して処理を行うことを繰り返し行なう。この装置は、左端の画素ブロックから右方向へ処理を進めるので、右上に位置する画素ブロックの処理が完了していることを確認できれば、左上と上に位置する画素ブロックに対する処理が完了しているという関係を保証することができる。
 図18は、上述した関係が保証されることを前提として、例えば特許文献1が示す技術を使用した一般的な動画像復号装置40が、画素ブロック(図18が示す個々の四角形)に対する予測処理を並列に実行する順番の一例を示す図である。図18における画素ブロックの位置は、2次元空間における(x,y)座標値により表すことができる。図18において各画素ブロックに付与された数字は、画素ブロックごとの処理順を表し、同一の数字が付与された画素ブロックは並列に処理可能であることを示している。
 図18に示す例では、最初に、フレームの左上を表す座標値(1,1)に位置する画素ブロック(本願では、以降画素ブロック(1,1)と称し、他の画素ブロックについても同様に称することとする)に対する処理が行われる。次(2番目)に、画素ブロック(1,1)の右隣に位置する画素ブロック(2,1)に対する処理が行われる。画素ブロック(2,1)に対する処理が完了した時点で、画素ブロック(2,1)の右隣に位置する画素ブロック(3,1)と、画素ブロック(1,1)及び(2,1)を参照隣接ブロックとする画素ブロック(1,2)とに対する処理を実行することが可能となる。これにより、画素ブロック(3,1)及び(1,2)に対する処理が、3番目の処理として並列に行われる。図18に示す例では、以降、同様に、画素ブロック(m,n)(mは3以上の任意の整数、nは1以上の任意の整数)と、画素ブロック(m-2,n+1)とが並列処理される。但し、「-」は減算を表す演算子であり、「+」は加算を表す演算子である。
 また、特許文献2には、 各画像をマトリックス状に分割して生成されるn×n画素(nは任意の自然数)のマクロブロック(画素ブロック)単位に符号化された動画像ストリームを復号する装置が開示されている。この装置は、入力された動画像ストリームに含まれる、1以上のマクロブロックにより構成されるスライスを表す情報を解析することによって、当該スライス内のインターマクロブロック(インター予測ブロック)を検出する。この装置は、マクロブロックを単位としたデコード処理を実行する2つ以上のデコード処理手段を備えている。そして、この装置は、検出した当該スライス内のインターマクロブロックに対するデコード処理を、当該2つ以上のデコード処理手段により並列実行させた後、当該スライス内のイントラマクロブロック(イントラ予測ブロック)に対するデコード処理を、当該デコード処理手段が実行するように制御する。
特開2006-129284号公報 特開2009-038501号公報
"情報源符号化部 H.264 | MPEG-4 AVC 規格の概要"、[Online]、[2017年3月29日検索]、インターネット<URL: http://www.soumu.go.jp/main_sosiki/joho_tsusin/policyreports/joho_tsusin/bunkakai/pdf/060720_3_1-2_sa2.pdf>
 上述した一般的な動画像復号処理、あるいは動画像符号化処理では、例えば図18に例示するように、処理対象とする画素ブロック(イントラ予測ブロック)をフレームにおける所定の位置(例えば左上)から順番に検索する。そして、検索したイントラ予測ブロックに関する参照隣接ブロック(例えば、当該イントラ予測ブロックの左、左上、上、及び右上に位置する画素ブロック)に対する処理が全て完了している場合に、当該イントラ予測ブロックに対する処理を開始する。
 このような処理を行う場合において、例えば、あるイントラ予測ブロックに関する参照隣接ブロックが全てインター予測ブロックであるような場合を考える。インター予測ブロックに対する処理は、上述した通り、それらの処理状況に関係なく(依存することなく)、並列に処理することができるので、高並列に処理されることによって、短時間に完了することができる。そして、当該イントラ予測ブロックが、例えばフレームの右下付近に位置する場合、当該イントラ予測ブロックが検索対象となるのは、検索順番において最後に近くなる。この場合、当該イントラ予測ブロックは、早いタイミングに処理可能となるにもかかわらず、実際に処理が開始されるタイミングは遅くなる。すなわち、一般的な動画像復号処理、あるいは動画像符号化処理では、早いタイミングに処理可能となるイントラ予測ブロックに対する処理の開始が遅れるケースが存在するので、処理の高速化が十分であるとは言えない。特許文献1及び2は、この問題について特に言及していない。本願発明の主たる目的は、このような問題を解決する動画像処理装置等を提供することである。
 本願発明の一態様に係る動画像処理装置は、画像を複数の画素ブロックに分割し、個々の前記画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、前記画素ブロック毎に前記画像処理の実行状態を記憶する記憶手段と、前記記憶手段に記憶された、第一の前記画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の前記画素ブロックに対する画像処理の実行状態に基づいて、前記第一の画素ブロックに対する画像処理が実行可能か否かを判定する判定手段と、前記判定手段によって、前記画像処理が実行可能と判定された複数の前記第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、前記記憶手段に記憶された前記第一の画素ブロックに対する画像処理の実行状態を更新する実行手段と、を備える。
 上記目的を達成する他の見地において、本願発明の一態様に係る動画像処理方法は、情報処理装置によって、画像を複数の画素ブロックに分割し、個々の前記画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、前記画素ブロック毎に前記画像処理の実行状態を記憶手段に記憶し、前記記憶手段に記憶された、第一の前記画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の前記画素ブロックに対する画像処理の実行状態に基づいて、前記第一の画素ブロックに対する画像処理が実行可能か否かを判定し、前記画像処理が実行可能と判定した複数の前記第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、前記記憶手段に記憶された前記第一の画素ブロックに対する画像処理の実行状態を更新する。
 また、上記目的を達成する更なる見地において、本願発明の一態様に係る動画像処理プログラムは、画像を複数の画素ブロックに分割し、個々の前記画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、前記画素ブロック毎に前記画像処理の実行状態を記憶手段に記憶する記憶制御処理と、前記記憶手段に記憶された、第一の前記画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の前記画素ブロックに対する画像処理の実行状態に基づいて、前記第一の画素ブロックに対する画像処理が実行可能か否かを判定する判定処理と、前記判定処理によって、前記画像処理が実行可能と判定された複数の前記第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、前記記憶手段に記憶された前記第一の画素ブロックに対する画像処理の実行状態を更新する実行処理と、をコンピュータに実行させるためのプログラムである。
 更に、本願発明は、係る動画像処理プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
 本願発明は、動画像に対する符号化処理あるいは復号処理を高速化することを可能とする。
本願発明の第1の実施形態に係る動画像復号装置10の構成を示すブロック図である。 本願発明の第1の実施形態に係る動画像復号装置10の動作全体を示すフローチャートである。 本願発明の第1の実施形態に係る動画像復号装置10が画素ブロックに対してインター予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。 本願発明の第1の実施形態に係る動画像復号装置10が画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。 本願発明の第1の実施形態に係る動画像復号装置10、及び、一般的な動画像復号装置が、画素ブロックに対する予測処理を並列に実行する順番の比較例を示す図である。 本願発明の第2の実施形態に係る動画像復号装置10Aが参照する各イントラ予測モードの内容を例示する図である。 本願発明の第2の実施形態に係る動画像復号装置10Aが、画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。 本願発明の第2の実施形態に係る動画像復号装置10A、及び、一般的な動画像復号装置が、画素ブロックに対する予測処理を並列に実行する順番の比較例を示す図である。 本願発明の第3の実施形態に係る動画像復号装置10Bにより更新される画素ブロックに関する依存指標を例示する図である。 本願発明の第3の実施形態に係る動画像復号装置10Bが、画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。 本願発明の第4の実施形態に係る動画像符号化装置20の構成を示すブロック図である。 本願発明の第4の実施形態に係る動画像符号化装置20の動作全体を示すフローチャートである。 本願発明の第4の実施形態に係る動画像符号化装置20が、画素ブロックに対してインター予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。 本願発明の第4の実施形態に係る動画像符号化装置20が、画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャート 本願発明の第5の実施形態に係る動画像処理装置30の構成を示すブロック図である。 本願発明の各実施形態に係る動画像復号装置10(10A、10B)、動画像符号化装置20、及び、動画像処理装置30を実行可能な情報処理装置900の構成を示すブロック図である。 一般的な動画像復号装置40の構成を示すブロック図である。 一般的な動画像復号装置40が画素ブロックに対する予測処理を並列に実行する順番の一例を示す図である。
 以下、本願発明の実施の形態について図面を参照して詳細に説明する。
 <第1の実施形態>
 図1は、本願発明の第1の実施の形態に係る動画像復号装置10の構成を概念的に示すブロック図である。尚、図1は、後述する第2の実施形態に係る動画像復号装置10A、及び、第3の実施形態に係る動画像復号装置10Bに関する説明においても、参照することとする。
 本実施形態に係る動画像復号装置10は、図示しない動画像符号化装置によって符号化された動画像を表す入力ビットストリームに対して、例えばH.264あるいはH.265等の標準規格に準拠した復号処理を行い、その復号処理の結果として復号画像を出力する装置である。動画像復号装置10は、動画像を構成するフレームに含まれる画素ブロック(例えば16x16画素ブロックや4x4画素ブロック等)ごとに復号処理を並列または擬似並列に行う。但し、擬似並列は、例えば時分割等による並列処理のことである。本願では以降、「擬似並列」も含めて、「並列」と称することとする。
 動画像復号装置10が復号処理を行う入力ビットストリームは、時間的あるいは空間的な相関性に基づいて生成された予測画像と入力画像(元画像)との差分を示す情報のみを符号化することによって圧縮が行なわれた情報である。そして、入力ビットストリームに含まれる個々の画素ブロックに関する予測画像は、インター予測(方法)あるいはイントラ予測(方法)によって生成されている。インター予測は、時間的な相関性に基づいて、近傍フレームに含まれる画素を用いて予測画像を生成する方法である。イントラ予測は、空間的な相関性に基づいて同一フレームに含まれる近傍画素を用いて予測画像を生成する方法である。
 本実施形態に係る動画像復号装置10は、大別して、実行部11、記憶部12、及び、判定部13を備えている。
 記憶部12は、電子メモリあるいは磁気ディスク等の記憶デバイスである。記憶部12は、後述するインター予測部114によるインター予測処理(画像処理)及びイントラ予測部115によるイントラ予測処理(画像処理)の実行状態を、画素ブロック毎に記憶している。これらの実行状態は、インター予測部114あるいはイントラ予測部115により更新される。記憶部12は、また、後述する可変長復号部110によって出力された符号化タイプ(情報)を画素ブロックと関連付けて記憶している。符号化タイプについては後述する。
 判定部13は、後述するイントラ予測部115が、ある未処理の画素ブロック(第一の画素ブロック)をイントラ予測処理対象として選択した場合に、当該画素ブロックに対するイントラ予測処理の実行が可能であるか否かを判定する。判定部13は、より具体的には、当該画素ブロックに対して、例えば、左、左上、上、右上に位置する画素ブロック(第二の画素ブロック)を、参照隣接ブロックとして順番に設定し、その実行状態を、記憶部12を参照することによって確認する。尚、判定部13により参照隣接ブロックとして設定される画素ブロックは、当該画素ブロックに対して、左、左上、上、右上以外の位置に位置する画素ブロックであってもよい。判定部13は、参照隣接ブロックに対する予測処理が全て完了している(即ち、選択した画素ブロックから参照隣接ブロックに対する、処理順序に関する依存関係が解消している)場合に、イントラ予測部115によるイントラ予測処理の実行が可能であると判定し、その判定結果をイントラ予測部115へ通知する。
 実行部11は、可変長復号部110、逆変換逆量子化部111、ループフィルタ112、フレームバッファ113、インター予測部114、イントラ予測部115、及び、スイッチ116及び117を含んでいる。
 可変長復号部110は、入力ビットストリームに対する復号処理を行うことによって、量子化後変換係数、及び、符号化タイプを含む情報を出力する。量子化後変換係数については、本願発明の技術領域においては周知の技術を採用することができるので、その詳細な説明を省略する。符号化タイプは、画素ブロック毎に、インター予測により符号化されたのかイントラ予測により符号化されたのかを識別する情報である。可変長復号部110は、符号化タイプを画素ブロックと関連付けて記憶部12へ格納する。
 逆変換逆量子化部111は、可変長復号部110から出力された量子化後変換係数を逆量子化した後、逆変換することによって残差信号を出力する。逆変換逆量子化部111により行なわれる処理は、本願発明の技術領域においては周知の技術を採用することができるので、その詳細な説明を省略する。
 インター予測部114は、記憶部12に記憶された各画素ブロックに関する符号化タイプと予測処理の実行状態を参照する。インター予測部114は、符号化タイプが「インター予測」を示す画素ブロック(インター予測ブロック)のうち、予測処理が未処理であるインター予測ブロックを選択し、選択したインター予測ブロックに対してインター予測処理を行う。インター予測部114は、より具体的には、後述するフレームバッファ113に記憶された復号済みのフレーム(画像)を参照することによってインター予測処理を行った結果を表す予測画像を生成する。実行部11は、生成した予測画像と、逆変換逆量子化部111から出力された残差信号とを加算することによって、復元画像を生成する。インター予測部114は、予測処理を完了したインター予測ブロックに関して、記憶部12に記憶された実行状態を「完了」に更新する。
 イントラ予測部115は、記憶部12に記憶された各画素ブロックに関する符号化タイプと予測処理の実行状態を参照する。イントラ予測部115は、符号化タイプが「イントラ予測」を示す画素ブロック(イントラ予測ブロック)のうち、予測処理が未処理であるイントラ予測ブロックを選択する。
 イントラ予測部115は、判定部13から、選択したイントラ予測ブロックに対するイントラ予測処理の実行が可能であることを通知された場合、当該イントラ予測ブロックに対するイントラ予測処理を開始する。イントラ予測部115は、より具体的には、隣接参照ブロックに関する復元画像を参照することによってイントラ予測処理を行った結果を表す予測画像を生成する。但し、隣接参照ブロックに関する復元画像は、イントラ予測部115によって、例えば記憶部12に格納されていることとする。実行部11は、生成した予測画像と、逆変換逆量子化部111から出力された残差信号とを加算することによって、復元画像を生成する。イントラ予測部115は、予測処理を完了したイントラ予測ブロックに関して、記憶部12に記憶された実行状態を「完了」に更新する。
 実行部11は、処理対象とする画素ブロックの符号化タイプに応じて、インター予測部114及びイントラ予測部115に関する入出力を切り換えるスイッチ116及び117を切り換えることによって、上述したインター予測処理及びイントラ予測処理を適宜切り換えることができることとする。この切り換えについては、本願発明の技術領域においては周知の技術を採用することができるので、その詳細な説明を省略する。ループフィルタ112は、実行部11によって生成された復元画像からブロック歪を除去した復号画像を生成して、生成した復号画像を外部へ出力する。ループフィルタ112は、生成した復号画像を、フレームバッファ113に格納する。
 次に図2乃至図4のフローチャートを参照して、本実施形態に係る動画像復号装置10の動作(処理)について詳細に説明する。
 図2は、動画像復号装置10の動作全体を示すフローチャートである。
 実行部11における可変長復号部110は、入力ビットストリームに対する復号処理を行うことによって、量子化後変換係数、及び、符号化タイプを含む情報を出力する(ステップS101)。実行部11における逆変換逆量子化部111は、可変長復号部110から出力された量子化後変換係数を逆量子化した後、逆変換することによって残差信号を出力する(ステップS102)。
 実行部11は、符号化タイプがインター予測である画素ブロック(インター予測ブロック)に対して、インター予測処理を行なうことにより、復元画像を生成する(ステップS103)。実行部11は、符号化タイプがイントラ予測である画素ブロック(イントラ予測ブロック)に対して、イントラ予測処理を行なうことにより、復元画像を生成する(ステップS104)。実行部11におけるループフィルタ112は、生成された復元画像からブロック歪を除去した復号画像を生成し、生成した復号画像を、外部へ出力するとともにフレームバッファ113に格納し(ステップS105)、全体の処理は終了する。
 図3は、動画像復号装置10が画素ブロックに対してインター予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。即ち、図3は、図2に示すフローチャートにおけるステップS103の詳細を示すフローチャートである。
 実行部11におけるインター予測部114は、記憶部12に記憶された画素ブロック毎の予測処理の実行状態を参照することによって、未処理のインター予測ブロックを選択する(ステップS201)。インター予測部114は、選択したインター予測ブロックに対して、インター予測処理を行なう(ステップS202)。
 インター予測部114は、予測処理を完了したインター予測ブロックに関して、記憶部12に記憶された実行状態を「完了」に更新する(ステップS203)。インター予測部114は、記憶部12を参照することによって、未処理のインター予測ブロックがあるか否かを確認する(ステップS204)。
 未処理のインター予測ブロックが存在する場合(ステップS205でYes)、処理はステップS201へ戻る。未処理のインター予測ブロックが存在しない場合(ステップS205でNo)、ステップS103の処理は終了する。
 図4は、動画像復号装置10が画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。即ち、図4は、図2に示すフローチャートにおけるステップS104の詳細を示すフローチャートである。
 実行部11におけるイントラ予測部115は、記憶部12に記憶された画素ブロック毎の予測処理の実行状態を参照することによって、未処理のイントラ予測ブロックを選択する(ステップS301)。判定部13は、イントラ予測部115が選択したイントラ予測ブロックに対して、左、左上、上、右上に位置する画素ブロックを、参照隣接ブロックとして順番に設定し、記憶部12を参照することによって、当該参照隣接ブロックに対する予測処理が完了しているか否かを確認する(ステップS302)。
 当該参照隣接ブロックに対する予測処理が完了していない場合(ステップS303でNo)、処理はステップS301へ戻る。当該参照隣接ブロックに対する予測処理が完了している場合(ステップS303でYes)、判定部13は、次の参照隣接ブロックについてステップS302からのループ処理を行い、全ての参照隣接ブロックに対する処理が完了した場合、処理はステップS305へ進む(ステップS304)。
 判定部13は、イントラ予測部115が選択したイントラ予測ブロックに対するイントラ予測処理が実行可能と判定し、その判定結果をイントラ予測部115へ通知する(ステップS306)。イントラ予測部115は、選択したイントラ予測ブロックに対して、イントラ予測処理を行なう(ステップS306)。
 イントラ予測部115は、予測処理を完了したイントラ予測ブロックに関して、記憶部12に記憶された実行状態を「完了」に更新する(ステップS307)。イントラ予測部115は、記憶部12を参照することによって、未処理のイントラ予測ブロックがあるか否かを確認する(ステップS308)。
 未処理のイントラ予測ブロックが存在する場合(ステップS309でYes)、処理はステップS301へ戻る。未処理のイントラ予測ブロックが存在しない場合(ステップS309でNo)、ステップS104の処理は終了する。
 本実施形態に係る動画像復号装置10は、動画像に対する復号処理を高速化することができる。その理由は、動画像復号装置10は、予測処理に関して第一の画素ブロックが第二の画素ブロックに対して処理順序に関する依存関係がある場合、画素ブロックごとに予測処理(画像処理)の実行状態を管理することによって、当該依存関係が解消したことを早いタイミングに検出し、その結果として、第一の画素ブロックに対する予測処理の開始を早めることができるからである。
 以下に、本実施形態に係る動画像復号装置10によって実現される効果について、詳細に説明する。
 一般的な動画像復号処理では(動画像符号化処理でも同様)、処理対象とするイントラ予測ブロックを、フレームにおける例えば左上から順番に検索する。そして、検索したイントラ予測ブロックに関する参照隣接ブロックに対する処理が全て完了している場合に、当該イントラ予測ブロックに対する処理を開始する。このような処理を行う場合において、例えば、あるイントラ予測ブロックに関する参照隣接ブロックが全てインター予測ブロックであり、かつ、フレームの右下付近に位置する場合、当該イントラ予測ブロックは、早いタイミングに処理可能となるにもかかわらず、実際に処理が開始されるタイミングは遅くなる。すなわち、一般的な動画像復号処理、あるいは動画像符号化処理では、早いタイミングに処理可能となるイントラ予測ブロックに対する処理の開始が遅れるケースが存在するので、処理の高速化が十分でないという問題がある。
 このような問題に対して、本実施形態に係る動画像復号装置10は、実行部11、記憶部12、及び、判定部13を備え、例えば、図2乃至図4を参照して上述する通り動作する。即ち、記憶部12は、画像を複数の画素ブロックに分割し、個々の画素ブロックに対する画像処理を行うことによって、画像に対する復号処理を行う場合に、画素ブロック毎に画像処理の実行状態を記憶する。判定部13は、記憶部12に記憶された、第一の画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の画素ブロックに対する画像処理の実行状態に基づいて、第一の画素ブロックに対する画像処理が実行可能か否かを判定する。実行部11は、判定部13によって、画像処理が実行可能と判定された複数の第一の画素ブロックに対する画像処理を並列に実行するとともに、記憶部12に記憶された第一の画素ブロックに対する画像処理の実行状態を更新する。
 図5は、本実施形態に係る動画像復号装置10、及び、一般的な動画像復号装置が、画素ブロックに対する予測処理(画像処理)を並列に実行する順番の比較例を示す図である。図5において、白の四角形はインター予測ブロックを表し、グレーの四角形はイントラ予測ブロックを表している。図5において、イントラ予測ブロックに付与された数字は、イントラ予測ブロックごとの処理順を表し、同一の数字が付与されたイントラ予測ブロックは並列に処理可能であることを示している。また、各イントラ予測ブロックに関する参照隣接ブロックは、当該イントラ予測ブロックの左、左上、上、及び右上に位置する画素ブロックであることとする。
 図5に示す例では、各イントラ予測ブロックに関する参照隣接ブロックは、全てインター予測ブロックであることとする。本実施形態に係る動画像復号装置10は、画素ブロック(第一の画素ブロック)ごとに参照隣接ブロック(第二の画素ブロック)に対する予測処理の実行状態を管理する。このため、動画像復号装置10は、図5(a)に示す通り、6つのイントラ予測ブロックに対する予測処理を並列に実行することができる。即ちこの場合、処理の最大並列度は「6」であり、処理のステップ数は「1」である。
 これに対して、一般的な動画像復号装置は、処理対象とするイントラ予測ブロックを、フレームにおける左上から順番に検索する。したがって、一般的な動画像復号装置がイントラ予測ブロック(m,n)に対する予測処理を開始できるのは、座標値(1,n)乃至座標値(m-1,n)の範囲(即ち、イントラ予測ブロック(m,n)とy座標が等しい列における左側)に位置するイントラ予測ブロックに対する予測処理が完了した後となる。このため、一般的な動画像復号装置は、図5(b)に示す通り、6つのイントラ予測ブロックに対する予測処理を順番に並列に実行する。即ちこの場合、処理の最大並列度は「3」であり、処理のステップ数は「3」である。
 上述した通り、本実施形態に係る動画像復号装置10は、一般的な動画像復号装置と比較して、画素ブロックに対する予測処理の並列度を高めることによって、予測処理のステップ数を削減するので、動画像に対する復号処理を高速化することができる。近年、多数の演算器を備えることによって多数の処理を並列に実行可能であるGPU(Graphics Processing Unit)などのデバイスが実現されている。本実施形態に係る動画像復号装置10は、このようなデバイスが備える機能を有効活用することによって、動画像に対する復号処理を高速化することができる。
 <第2の実施形態>
 本願発明の第2の実施形態に係る動画像復号装置10Aの構成を、図1を参照して説明する。本実施形態において、上述した第1の実施形態と同様の機能を有する構成に関しては、第1の実施形態と同一の番号を付与することにより、その詳細な説明を省略する。
 本実施形態に係る動画像復号装置10Aは、イントラ予測ブロックに対する予測処理を行う際に、イントラ予測ブロック毎に設定されたイントラ予測モードを参照する点において、第1の実施形態に係る動画像復号装置10と異なる。第1の実施形態に係る参照隣接ブロックは、イントラ予測ブロックの、例えば、左、左上、上、及び右上に位置する画素ブロックに固定されている。即ち、第1の実施形態では、イントラ予測ブロックとその参照隣接ブロックとの位置関係は、イントラ予測ブロック同士で共通である。これに対し、本実施形態では、イントラ予測ブロックとその参照隣接ブロックとの位置関係が、イントラ予測ブロック毎に異なってもよい。イントラ予測モードは、あるイントラ予測ブロックに関する参照隣接ブロックを特定可能な情報である。
 図6は本実施形態に係る動画像復号装置10Aが参照するイントラ予測モードの内容を例示する図である。図6に示す内容は、非特許文献1に記載されている。図6に示す例では、例えばモード0は、イントラ予測ブロックの上側に位置する画素ブロックを参照隣接ブロックとすることを示している。同様に、例えばモード1は、イントラ予測ブロックの左側に位置する画素ブロックを参照隣接ブロックとすることを示している。即ち、予測処理において、イントラ予測モードが「0」に設定されたイントラ予測ブロックは、上側に位置する画素ブロックに対する依存関係を有し、イントラ予測モードが「1」に設定されたイントラ予測ブロックは、左側に位置する画素ブロックに対する依存関係を有する。
 図1に示す通り、本実施形態に係る動画像復号装置10Aは、実行部11、記憶部12A、及び、判定部13Aを備えている。
 記憶部12Aは、画素ブロック毎に、イントラ予測モードを示す値を記憶している。
 判定部13Aは、イントラ予測部115が処理対象として選択したイントラ予測ブロックに対して、記憶部12Aに記憶されたイントラ予測モードにより特定される位置に位置する画素ブロックを、参照隣接ブロックとして順番に設定する。そして、判定部13Aは、それら参照隣接ブロックに対する予測処理の実行状態を、記憶部12を参照することによって確認する。判定部13Aは、参照隣接ブロックに対する予測処理が全て完了している場合に、イントラ予測部115によるイントラ予測処理の実行が可能であると判定し、その判定結果をイントラ予測部115へ通知する。
 本実施形態に係る動画像復号装置10Aの動作は、図2に示すフローチャートの通りであり、図2に示すフローチャートにおけるステップS104の詳細が、第1の実施形態に係る動画像復号装置10と異なる。
 図7は、本実施形態に係る動画像復号装置10Aが、ステップS104の処理、即ち、画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。
 実行部11におけるイントラ予測部115は、図4に示すステップS301と同様の処理を行う(ステップS401)。判定部13Aは、イントラ予測部115が選択したイントラ予測ブロックに対して、イントラ予測モードにより特定される位置に位置する画素ブロックを、参照隣接ブロックとして順番に設定し、当該参照隣接ブロックに対する予測処理の実行状態を確認する(ステップS402)。
 当該参照隣接ブロックに対する予測処理が完了していない場合(ステップS403でNo)、処理はステップS401へ戻る。当該参照隣接ブロックに対する予測処理が完了している場合(ステップS403でYes)、判定部13Aは、次の参照隣接ブロックについてステップS402からのループ処理を行い、全ての参照隣接ブロックに対する処理が完了した場合、処理はステップS405へ進む(ステップS404)。動画像復号装置10Aは、図4に示すステップS305乃至S309と同様の処理を行い(ステップS405)、ステップS104の処理は終了する。
 本実施形態に係る動画像復号装置10Aは、動画像に対する復号処理を高速化することができる。その理由は、第1の実施形態に関して説明した通りである。
 また、本実施形態に係る動画像復号装置10Aは、イントラ予測ブロックに対する予測処理において、依存関係が解消されたか否かを確認する対象を、イントラ予測モードによって特定される参照隣接ブロックに絞り込むので、動画像に対する復号処理をさらに高速化することができる。
 図8は、本実施形態に係る動画像復号装置10A、及び、第1の実施形態に係る動画像復号装置10が、画素ブロックに対する予測処理を並列に実行する順番の比較例を示す図である。図8において、白及びグレーの四角形、及び、画素ブロックに付与された数字は、図5について説明した通りである。
 図8(a)は、画素ブロック(イントラ予測ブロック)毎のイントラ予測モードを例示している。図8(a)において、例えば、画素ブロック(2,2)に対しては、イントラ予測モードとして、図6に例示するモード2が設定されている。図8(a)において、例えば、画素ブロック(5,1)に対しては、イントラ予測モードとして、図6に例示するモード1が設定されている。
 画素ブロック毎のイントラ予測モードが図8(a)に例示する通りに設定されている場合において、本実施形態に係る動画像復号装置10Aが行なうイントラ予測ブロックに対する予測処理の実行順番は、図8(b)に例示する通りとなる。即ち、図8(b)において、実行順番が「1」を示すイントラ予測ブロックは、図8(a)に例示する通り、その参照隣接ブロックが全てインター予測ブロックであるので、動画像復号装置10Aは、1ステップ目に、これらのイントラ予測ブロックに対する予測処理を並列に行うことが可能である。図8(b)において、実行順番が「2」を示すイントラ予測ブロックは、図8(a)に例示する通り、その参照隣接ブロックが1ステップ目に予測処理が行われるイントラ予測ブロックである。即ちこの場合、処理の最大並列度は「6」であり、処理のステップ数は「2」である。
 一方、画素ブロック毎のイントラ予測モードが図8(a)に例示する通りに設定されている場合において、第1の実施形態に係る動画像復号装置10が行なうイントラ予測ブロックに対する予測処理の実行順番は、図8(c)に例示する通りとなる。動画像復号装置10は、イントラ予測ブロック毎に設定されたイントラ予測モードを参照しないので、あるイントラ予測ブロックに対する予測処理は、その参照隣接ブロック(即ち、左、左上、上、右上に位置する画素ブロック)に対する予測処理が完了した後に実行する。したがってこの場合、処理の最大並列度は「2」であり、処理のステップ数は「6」である。
 このように、本実施形態に係る動画像復号装置10Aは、第1の実施形態に係る動画像復号装置10よりもさらに、動画像に対する復号処理を高速化することができる。
 <第3の実施形態>
 本願発明の第3の実施形態に係る動画像復号装置10Bの構成を、図1を参照して説明する。本実施形態において、上述した第1の実施形態と同様の機能を有する構成に関しては、第1の実施形態と同一の番号を付与することにより、その詳細な説明を省略する。
 本実施形態に係る動画像復号装置10Bは、イントラ予測ブロックに対する予測処理に関する依存関係を事前に解析することによって得られた、イントラ予測ブロックに関する処理順序の依存関係を表す値(以下、「依存指標」と称する)を算出する。そして動画像復号装置10Bは、その依存指標を使用することにより、イントラ予測ブロックに対する予測処理を並列に実行することを制御する点において、第1の実施形態に係る動画像復号装置10、及び、第2の実施形態に係る動画像復号装置10Aと異なる。但し、依存指標は、予測処理において、イントラ予測ブロックが依存する参照隣接ブロックの数を表す情報であり、ある参照隣接ブロックに対する予測処理が完了することに伴い、その値が更新される。尚、インター予測ブロックに対する予測処理は、高並列に短時間で処理されることから、本実施形態に係る依存指標は、イントラ予測ブロックのみを対象として算出した値であってもよい。
 図1に示す通り、本実施形態に係る動画像復号装置10Bは、実行部11B、記憶部12B、及び、判定部13Bを備えている。
 実行部11Bは、動画像復号装置10Bによって動画像に対する復号処理が開始される前に、記憶部12Bに記憶されている、イントラ予測ブロックごとに参照隣接ブロックを特定可能な情報(例えば、第1の実施形態に係る符号化タイプ、及び、第2の実施形態に係るイントラ予測モードなど)に基づいて、各イントラ予測ブロックに関する依存指標を算出する。実行部11Bは、算出した各イントラ予測ブロックに関する依存指標を、記憶部12Bに格納する。
 実行部11Bは、いずれかのイントラ予測ブロックに対する予測処理を完了する度に、当該イントラ予測ブロックを参照隣接ブロックとするイントラ予測ブロックに関する依存指標を「1」減算した値に更新(カウントダウン)する。
 判定部13Bは、あるイントラ予測ブロックに関する依存指標が、予測処理が完了していない参照隣接ブロックが存在しない(例えば、依存指標が「0」である)ことを示す場合、イントラ予測ブロックに対する予測処理が実行可能と判定する。
 図9は、本実施形態に係る動画像復号装置10Bにより更新される画素ブロック(イントラ予測ブロック)に関する依存指標を例示する図である。図9において、白及びグレーの四角形は、図5について説明した通りである。
 図9(a)は、イントラ予測ブロック毎のイントラ予測モードを例示している。本実施形態に係るイントラ予測ブロック毎のイントラ予測モードは、図8(a)に例示する第2の実施形態に係るイントラ予測ブロック毎のイントラ予測モードと同等であることとする。
 イントラ予測ブロック毎のイントラ予測モードが図9(a)に例示する通りに設定されている場合において、本実施形態に係る動画像復号装置10Bにより更新されるイントラ予測ブロックに関する依存指標は図9(b)に例示する通りとなる。但し、図9(b)において、イントラ予測ブロックに付与された数字は、当該イントラ予測ブロックに関する依存指標を表す。
 図9(b)に例示する通り、フレームに含まれる9個のイントラ予測ブロックのうちの6個は、その依存指標が0に初期設定され、9個のイントラ予測ブロックのうちの3個は、その依存指標が1に初期設定されていることとする。図9(b)において依存指標が0に初期設定された6個のイントラ予測ブロックは、図8(b)において、予測処理の実行順番が「1」である画素ブロックと等しい。図9(b)において依存指標が1に初期設定された3個のイントラ予測ブロックは、図8(b)において、予測処理の実行順番が「2」である画素ブロックと等しい。
 動画像復号装置10Bは、依存指標が0に初期設定された6個のイントラ予測ブロックに対する予測処理を、1ステップ目に並列に実行する。動画像復号装置10Bは、1ステップ目の予測処理を完了したのち、予測処理が実行されたイントラ予測ブロックに依存する、依存指標が1に初期設定された3個のイントラ予測ブロックに関する依存指標を、「1」から「0」に更新する。この後、動画像復号装置10Bは、当該3個のイントラ予測ブロックに対する予測処理を、2ステップ目に並列に実行する。即ちこの場合、処理の最大並列度は「6」であり、処理のステップ数は「2」である。
 本実施形態に係る動画像復号装置10Bの動作は、図2に示すフローチャートの通りであり、図2に示すフローチャートにおけるステップS104の詳細が、第1の実施形態に係る動画像復号装置10と異なる。
 図10は、本実施形態に係る動画像復号装置10Bが、ステップS104の処理、即ち、画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。
 実行部11Bは、動画像復号装置10Bによって動画像に対する復号処理が開始される前に、記憶部12Bに記憶されている情報に基づいて、イントラ予測ブロックを順番に選択する(ステップS501)。実行部11Bは、記憶部12Bに記憶されている情報に基づいて、選択したイントラ予測ブロックに関する依存指標を算出し、算出した依存指標を、記憶部12Bに格納する(ステップS502)。実行部11Bは、全てのイントラ予測ブロックに対する処理を完了するまで、ステップS501乃至S503のループ処理を繰り返し行う(ステップS103)。
 実行部11Bにおけるイントラ予測部115は、図4に示すステップS301と同様の処理を行う(ステップS504)。判定部13Bは、記憶部12Bを参照することによって、イントラ予測部115が選択したイントラ予測ブロックに関する依存指標を確認する(ステップS505)。依存指標が「0」でない場合(ステップS506でNo)、処理はステップS504へ戻る。依存指標が「0」である場合(ステップS506でYes)、動画像復号装置10Bは、図4に示すステップS305乃至S307と同様の処理を行う(ステップS507)。
 実行部11Bは、選択したイントラ予測ブロックに関する依存指標を「1」減算する(ステップS508)。イントラ予測部115は、図4に示すステップS308と同様の処理を行う(ステップS509)。未処理のイントラ予測ブロックが存在する場合(ステップS510でYes)、処理はステップS504へ戻る。未処理のイントラ予測ブロックが存在しない場合(ステップS510でNo)、ステップS104の処理は終了する。
 本実施形態に係る動画像復号装置10Bは、動画像に対する復号処理を高速化することができる。その理由は、第1の実施形態に関して説明した通りである。
 また、本実施形態に係る動画像復号装置10Bは、イントラ予測ブロックに対する予測処理において、依存関係が解消されたか否かに関する判定を、当該イントラ予測ブロックに関する依存指標が例えば「0」であるか否かを確認するという簡易な処理により行なうことができるので、動画像に対する復号処理を高速化することができる。
 <第4の実施形態>
 図11は、本願発明の第4の実施の形態に係る動画像符号化装置20の構成を概念的に示すブロック図である。本実施形態に係る動画像符号化装置20は、入力画像に対して、例えばH.264あるいはH.265等に準拠した符号化処理を行い、その符号化処理の結果として、出力ビットストリームを、図示しない動画像復号装置(例えば第1の実施形態に係る動画像復号装置10等)に出力する装置である。そして、本実施形態に係る動画像符号化装置20は、第1の実施形態に係る動画像復号装置10が備える構成(技術)が適用された装置である。
 本実施形態に係る動画像符号化装置20は、大別して、実行部21、記憶部22、判定部23、第1コスト算出部24、第2コスト算出部25、及び、生成部26を備えている。
 第1コスト算出部24は、画素ブロックに対する予測処理(画像処理)として、インター予測方法を用いた場合の符号化コストを、画素ブロック毎に算出する。但し、符号化コストは、画像に対する符号化及び復号を実行するのに必要な情報処理量を示す指標である。第1コスト算出部24は、インター予測方法を用いた場合の符号化コストを算出するための算出基準を有していることとする。また、第1コスト算出部24は、この際、インター予測における動きベクトル(予測ベクトル)も併せて生成する。
 第2コスト算出部25は、画素ブロックに対する予測処理(画像処理)として、イントラ予測方法を用いた場合の符号化コストを、画素ブロック毎に算出する。但し、第2コスト算出部25は、イントラ予測方法を用いた場合の符号化コストを算出するための算出基準を有していることとする。
 生成部26は、第1コスト算出部24及び第2コスト算出部25による、符号化コストに関する算出結果に基づいて、画素ブロック毎に符号化タイプ情報(即ち、符号化をインター予測により行なうのかイントラ予測により行なうのかを識別する情報)を生成する。生成部26は、例えばある画素ブロックに関して、インター予測の方が符号化コストが小さい場合は、当該画素ブロックに関する符号化タイプをインター予測に設定し、イントラ予測の方が符号化コストが小さい場合は、当該画素ブロックに関する符号化タイプをイントラ予測に設定する。生成部26は、生成した符号化タイプ情報を、記憶部22に格納する。
 記憶部22は、電子メモリあるいは磁気ディスク等の記憶デバイスである。記憶部22は、後述するインター予測部215によるインター予測処理(画像処理)及びイントラ予測部216によるイントラ予測処理(画像処理)の実行状態を、画素ブロック毎に記憶している。これらの実行状態は、インター予測部215あるいはイントラ予測部216により更新される。記憶部22は、また、生成部によって入力された符号化タイプ情報を記憶している。
 判定部23は、イントラ予測部216が、ある未処理の画素ブロック(第一の画素ブロック)をイントラ予測処理対象として選択した場合に、当該画素ブロックに対するイントラ予測処理の実行が可能であるか否かを判定する。判定部23は、その際、第1の実施形態に係る判定部13と同様な処理を行う。判定部23は、その判定結果をイントラ予測部216へ通知する。
 実行部21は、可変長符号化部210、逆変換逆量子化部211、変換量子化部212、ループフィルタ213、フレームバッファ214、インター予測部215、イントラ予測部216、及び、スイッチ217を含んでいる。
 インター予測部215は、第1の実施形態に係るインター予測部114と同様に、選択したインター予測ブロックに対してインター予測処理を行う。インター予測部215は、より具体的には、後述するフレームバッファ214に記憶された符号化済みのフレーム(画像)と、第1コスト算出部24により生成された動きベクトルとに基づいて、インター予測処理を行った結果を表す予測画像を生成する。インター予測部215は、予測処理を完了したインター予測ブロックに関して、記憶部22に記憶された実行状態を「完了」に更新する。実行部21は、インター予測部215により生成された予測画像と入力画像との差分を残差信号として生成する。
 イントラ予測部216は、第1の実施形態に係るイントラ予測部115と同様に、選択したイントラ予測ブロックに対してイントラ予測処理を行う。イントラ予測部216は、より具体的には、隣接参照ブロックに関する再構築画像(後述)を参照することによってイントラ予測処理を行った結果を表す予測画像を生成する。イントラ予測部216は、予測処理を完了したイントラ予測ブロックに関して、記憶部22に記憶された実行状態を「完了」に更新する。実行部21は、イントラ予測部216により生成された予測画像と入力画像との差分を残差信号として生成する。
 実行部21は、処理対象とする画素ブロックの符号化タイプに応じて、インター予測部215及びイントラ予測部216に関する出力を切り換えるスイッチ217を切り換えることによって、上述したインター予測処理及びイントラ予測処理を適宜切り換えることができることとする。
 変換量子化部212は、実行部21により生成された残差信号を直交変換することによって、変換係数を量子化する。逆変換逆量子化部211は、量子化された変換係数を逆量子化したのち、逆直交変換を行なう。実行部21は、その逆直交変換の結果と、インター予測部215あるいはイントラ予測部216により生成された予測画像とを加算することによって、再構築画像を生成する。
 可変長符号化部210は、変換量子化部212により量子化された変換係数を符号化することにより生成したビットストリームを出力する。ループフィルタ213は、実行部21により生成された再構築画像のブロック歪を除去することによって生成したフレーム(画像)をフレームバッファ214に格納する。
 次に図12乃至図14のフローチャートを参照して、本実施形態に係る動画像符号化装置20の動作(処理)について詳細に説明する。
 図12は、動画像符号化装置20の動作全体を示すフローチャートである。
 第1コスト算出部24は、インター予測方法を用いた場合の符号化コストを算出する(ステップS601)。第2コスト算出部25は、イントラ予測方法を用いた場合の符号化コストを算出する(ステップS602)。生成部26は、第1コスト算出部24及び第2コスト算出部25による算出結果に基づいて決定した符号化タイプを含む符号化タイプ情報を生成し、符号化タイプ情報を記憶部22へ格納する(ステップS603)。
 実行部21は、符号化タイプがインター予測である画素ブロック(インター予測ブロック)に対して、インター予測処理、変換量子化処理、及び、逆変換逆量子化処理を行うことにより、再構築画像を生成する(ステップS604)。実行部21は、符号化タイプがイントラ予測である画素ブロック(イントラ予測ブロック)に対して、イントラ予測処理、変換量子化処理、及び、逆変換逆量子化処理を行うことにより、再構築画像を生成する(ステップS605)。
 実行部21における可変長符号化部210は、変換量子化部212により量子化された変換係数を符号化することによって、出力ビットストリームを生成する(ステップS606)。実行部21におけるループフィルタ213は、実行部21により生成された再構築画像のブロック歪を除去した結果をフレームバッファ214に格納し(ステップS607)、全体の処理は終了する。
 図13は、動画像符号化装置20が画素ブロックに対してインター予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。即ち、図13は、図12に示すフローチャートにおけるステップS604の詳細を示すフローチャートである。
 実行部21におけるインター予測部215は、記憶部22に記憶された画素ブロック毎の予測処理の実行状態を参照することによって、未処理のインター予測ブロックを選択する(ステップS701)。実行部21は、選択したインター予測ブロックに対して、インター予測処理、ブロック変換量子化処理、及び、ブロック逆変換逆量子化処理を行うことにより、再構築画像を生成する(ステップS702)。
 実行部21におけるインター予測部215は、予測処理を完了したインター予測ブロックに関して、記憶部22に記憶された実行状態を「完了」に更新する(ステップS703)。インター予測部215は、記憶部22を参照することによって、未処理のインター予測ブロックがあるか否かを確認する(ステップS704)。
 未処理のインター予測ブロックが存在する場合(ステップS705でYes)、処理はステップS701へ戻る。未処理のインター予測ブロックが存在しない場合(ステップS705でNo)、ステップS604の処理は終了する。
 図14は、動画像符号化装置20が画素ブロックに対してイントラ予測方法を用いた予測処理を行う動作の詳細を示すフローチャートである。即ち、図14は、図12に示すフローチャートにおけるステップS605の詳細を示すフローチャートである。
 実行部21におけるイントラ予測部216は、記憶部22に記憶された画素ブロック毎の予測処理の実行状態を参照することによって、未処理のイントラ予測ブロックを選択する(ステップS801)。判定部23は、イントラ予測部216が選択したイントラ予測ブロックに対して、左、左上、上、及び右上に位置する画素ブロックを、参照隣接ブロックとして順番に設定し、その実行状態を確認する(ステップS802)。
 当該参照隣接ブロックに対する予測処理が完了していない場合(ステップS803でNo)、処理はステップS801へ戻る。当該参照隣接ブロックに対する予測処理が完了している場合(ステップS803でYes)、判定部23は、次の参照隣接ブロックについてステップS802からのループ処理を行い、全ての参照隣接ブロックに対する処理が完了した場合、処理はステップS805へ進む(ステップS804)。
 実行部21は、選択したイントラ予測ブロックに対して、イントラ予測処理、ブロック変換量子化処理、及び、ブロック逆変換逆量子化処理を行うことにより、再構築画像を生成する(ステップS805)。イントラ予測部216は、予測処理を完了したイントラ予測ブロックに関して、記憶部22に記憶された実行状態を「完了」に更新する(ステップS806)。
 イントラ予測部216は、記憶部22を参照することによって、未処理のイントラ予測ブロックがあるか否かを確認する(ステップS807)。未処理のイントラ予測ブロックが存在する場合(ステップS808でYes)、処理はステップS801へ戻る。未処理のインター予測ブロックが存在しない場合(ステップS808でNo)、ステップS605の処理は終了する。
 本実施形態に係る動画像符号化装置20は、動画像に対する符号化処理を高速化することができる。その理由は、第1の実施形態に関して説明した通りである。
 また、本実施形態に係る動画像符号化装置20は、第2の実施形態に係る動画像復号装置10A、あるいは、第3の実施形態に係る動画像復号装置10Bが備える構成(技術)が適用された装置であってもよい。
 <第5の実施形態>
 図15は、本願発明の第5の実施形態に係る動画像処理装置30の構成を概念的に示すブロック図である。
 本実施形態に係る動画像処理装置30は、実行部31、記憶部32、及び、判定部33を備えている。
 記憶部32は、画像を複数の画素ブロックに分割し、個々の画素ブロックに対する画像処理を行うことによって、画像に対する符号化処理あるいは復号処理を行う場合に、当該画素ブロック毎に画像処理の実行状態を記憶する。
 判定部33は、記憶部32に記憶された、第一の画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の画素ブロックに対する画像処理の実行状態に基づいて、第一の画素ブロックに対する画像処理が実行可能か否かを判定する。
 実行部31は、判定部33によって、画像処理が実行可能と判定された複数の第一の画素ブロックに対する画像処理を並列または擬似並列に実行する。実行部31は、また、記憶部32に記憶された第一の画素ブロックに対する画像処理の実行状態を更新する。
 本実施形態に係る動画像処理装置30は、動画像に対する画像処理を高速化することができる。その理由は、動画像処理装置30は、画像処理に関して第一の画素ブロックが第二の画素ブロックに対して処理順序に関する依存関係がある場合、画素ブロックごとに画像処理の実行状態を管理することによって、当該依存関係が解消したことを早いタイミングに検出し、その結果として、第一の画素ブロックに対する画像処理の開始を早めることができるからである。
 <ハードウェア構成例>
 上述した各実施形態において、図1に示した動画像復号装置10(10A、10B)、図11に示した動画像符号化装置20、及び、図15に示した動画像処理装置30における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、図11、及び、図15において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・実行部11(11B)、21、及び31、
・記憶部12(12A、12B)、22、及び32における記憶制御機能、
・判定部13(13A、13B)、23、及び33、
・第1コスト算出部24、
・第2コスト算出部25、
・生成部26。
 但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図16を参照して説明する。
 図16は、本願発明の各実施形態に係る動画像復号装置10(10A、10B)、動画像符号化装置20、及び、動画像処理装置30を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図16は、図1、図11、及び、図15に示した動画像復号装置10(10A、10B)、動画像符号化装置20、及び、動画像処理装置30、或いはその一部を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。図16に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・外部装置との通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・入出力インタフェース909。
 即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。情報処理装置900は、あるいは、複数の処理を並列に実行できるように、メインとなる汎用CPUと特定の演算処理に特化されたハードウェアアクセラレータとが協業する構成を備えてもよい。
 そして、上述した実施形態を例に説明した本願発明は、図16に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1、図11、及び図15)における上述した構成、或いはフローチャート(図2乃至4、図7、図10、及び、図12乃至14)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
 また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
 以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2017年4月10日に出願された日本出願特願2017-077532を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 10  動画像復号装置
 11  実行部
 110  可変長復号部
 111  逆変換逆量子化部
 112  ループフィルタ
 113  フレームバッファ
 114  インター予測部
 115  イントラ予測部
 116及び117 スイッチ
 12  記憶部
 13  判定部
 20  動画像符号化装置
 21  実行部
 210  可変長符号化部
 211  逆変換逆量子化部
 212  変換量子化部
 213  ループフィルタ
 214  フレームバッファ
 215  インター予測部
 216  イントラ予測部
 217  スイッチ
 22  記憶部
 23  判定部
 24  第1コスト算出部
 25  第2コスト算出部
 30  動画像処理装置
 31  実行部
 32  記憶部
 33  判定部
 40  動画像復号装置
 410  可変長復号部
 411  逆変換逆量子化部
 412  ループフィルタ
 413  フレームバッファ
 414  インター予測部
 415  イントラ予測部
 900  情報処理装置
 901  CPU
 902  ROM
 903  RAM
 904  ハードディスク(記憶装置)
 905  通信インタフェース
 906  バス
 907  記録媒体
 908  リーダライタ
 909  入出力インタフェース

Claims (10)

  1.  画像を複数の画素ブロックに分割し、個々の前記画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、前記画素ブロック毎に前記画像処理の実行状態を記憶する記憶手段と、
     前記記憶手段に記憶された、第一の前記画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の前記画素ブロックに対する画像処理の実行状態に基づいて、前記第一の画素ブロックに対する画像処理が実行可能か否かを判定する判定手段と、
     前記判定手段によって、前記画像処理が実行可能と判定された複数の前記第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、前記記憶手段に記憶された前記第一の画素ブロックに対する画像処理の実行状態を更新する実行手段と、
     を備える動画像処理装置。
  2.  前記実行手段は、前記第一の画素ブロックに隣接する前記第二の画素ブロックを表す情報を用いて、前記第一の画素ブロックに関する予測画像を生成する、
     請求項1に記載の動画像処理装置。
  3.  前記記憶手段は、前記画素ブロックに対する画像処理として、時間的な相関性に基づいて前記予測画像を生成するインター予測方法と、空間的な相関性に基づいて前記予測画像を生成するイントラ予測方法とのいずれかを使用するかを示す符号化タイプ情報を、前記画素ブロック毎に記憶し、
     前記判定手段は、前記符号化タイプ情報が前記イントラ予測方法を使用することを示し、かつ、前記画像処理の実行状態が未完了であることを示す前記第二の画素ブロックが存在しなくなったときに、前記第一の画素ブロックに対する画像処理が実行可能と判定する、
     請求項2に記載の動画像処理装置。
  4.  前記画素ブロックに対する画像処理として、前記インター予測方法を用いた場合の符号化コストを算出する第一のコスト算出手段と、
     前記画素ブロックに対する画像処理として、前記イントラ予測方法を用いた場合の符号化コストを算出する第二のコスト算出手段と、
     前記第一及び第二のコスト算出手段による算出結果に基づいて、前記画素ブロック毎に前記符号化タイプ情報を生成し、生成した前記符号化タイプ情報を、前記記憶手段に格納する生成手段と、
     をさらに備える請求項3に記載の動画像処理装置。
  5.  前記記憶手段は、前記イントラ予測方法において、前記第一の画素ブロックに隣接する前記第二の画素ブロックを特定するイントラ予測モードを示す値を、前記画素ブロック毎に記憶し、
     前記判定手段は、前記イントラ予測モードを示す値によって特定される前記第二の画素ブロックに対する画像処理の実行状態を参照する、
     請求項3または4に記載の動画像処理装置。
  6.  前記記憶手段は、前記画像に対する符号化処理あるいは復号処理が開始される前に、前記イントラ予測方法を使用した前記第一の画素ブロックと前記第二の画素ブロックとに関する前記依存関係を表す値を、前記画素ブロック毎に記憶し、
     前記実行手段は、いずれかの前記第二の画素ブロックに対する画像処理を完了する度に、前記第一の画素ブロックに関する前記依存関係を表す値を更新し、
     前記判定手段は、前記第一の画素ブロックに関する前記依存関係を表す値が、前記画像処理が完了していない前記第二の画素ブロックが存在しないことを示す場合に、前記第一の画素ブロックに対する画像処理が実行可能と判定する、
     請求項3乃至5のいずれか一項に記載の動画像処理装置。
  7.  前記実行手段は、前記画像に対する符号化処理あるいは復号処理が開始される前に、前記イントラ予測方法を使用した前記画像処理が行われる前記画素ブロックに関する前記依存関係を表す値を算出し、算出した前記依存関係を表す値を前記記憶手段に格納する、
     請求項6に記載の動画像処理装置。
  8.  前記実行手段は、H264及びH265を含む動画像の符号化に関する標準規格のいずれかに準じた前記画像処理を実行する、
     請求項1乃至7のいずれか一項に記載の動画像処理装置。
  9.  情報処理装置によって、
      画像を複数の画素ブロックに分割し、個々の前記画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、前記画素ブロック毎に前記画像処理の実行状態を記憶手段に記憶し、
      前記記憶手段に記憶された、第一の前記画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の前記画素ブロックに対する画像処理の実行状態に基づいて、前記第一の画素ブロックに対する画像処理が実行可能か否かを判定し、
      前記画像処理が実行可能と判定した複数の前記第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、前記記憶手段に記憶された前記第一の画素ブロックに対する画像処理の実行状態を更新する、
     動画像処理方法。
  10.  画像を複数の画素ブロックに分割し、個々の前記画素ブロックに対する画像処理を行うことによって、前記画像に対する符号化処理あるいは復号処理を行う場合に、前記画素ブロック毎に前記画像処理の実行状態を記憶手段に記憶する記憶制御処理と、
     前記記憶手段に記憶された、第一の前記画素ブロックに対する画像処理が処理順序に関して依存関係を有する第二の前記画素ブロックに対する画像処理の実行状態に基づいて、前記第一の画素ブロックに対する画像処理が実行可能か否かを判定する判定処理と、
     前記判定処理によって、前記画像処理が実行可能と判定された複数の前記第一の画素ブロックに対する画像処理を並列または擬似並列に実行するとともに、前記記憶手段に記憶された前記第一の画素ブロックに対する画像処理の実行状態を更新する実行処理と、
     をコンピュータに実行させるための動画像処理プログラムが格納された記録媒体。
PCT/JP2018/014591 2017-04-10 2018-04-05 動画像処理装置、動画像処理方法、及び、動画像処理プログラムが格納された記録媒体 WO2018190242A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/499,902 US10904546B2 (en) 2017-04-10 2018-04-05 Moving image processing device, moving image processing method, and recording medium having moving image processing program stored thereon
JP2019512481A JP6825699B2 (ja) 2017-04-10 2018-04-05 動画像処理装置、動画像処理方法、及び、動画像処理プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-077532 2017-04-10
JP2017077532 2017-04-10

Publications (1)

Publication Number Publication Date
WO2018190242A1 true WO2018190242A1 (ja) 2018-10-18

Family

ID=63793457

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/014591 WO2018190242A1 (ja) 2017-04-10 2018-04-05 動画像処理装置、動画像処理方法、及び、動画像処理プログラムが格納された記録媒体

Country Status (3)

Country Link
US (1) US10904546B2 (ja)
JP (1) JP6825699B2 (ja)
WO (1) WO2018190242A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008283612A (ja) * 2007-05-14 2008-11-20 Sony Corp データ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、およびプログラム
WO2009063646A1 (ja) * 2007-11-16 2009-05-22 Panasonic Corporation 画像復号装置及び画像復号方法
JP2010041115A (ja) * 2008-07-31 2010-02-18 Canon Inc 画像処理装置および画像処理方法
WO2015045276A1 (ja) * 2013-09-30 2015-04-02 日本電気株式会社 処理制御装置、処理制御方法および処理制御プログラム
US20160049839A1 (en) * 2013-04-05 2016-02-18 Arion Technologia Brasil-Gestão De Ativos S/A Device and process for the generation of electrical energy

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4453518B2 (ja) 2004-10-29 2010-04-21 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
JP2009038501A (ja) 2007-07-31 2009-02-19 Toshiba Corp 復号化装置および復号方法
EP2837172A4 (en) * 2012-04-09 2015-12-30 Intel Corp PARALLEL PROCESSING OF IMAGE DATA HAVING DEPENDENT PIXELS OF THE UPPER LEFT CORNER
US9224187B2 (en) * 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008283612A (ja) * 2007-05-14 2008-11-20 Sony Corp データ処理装置、復号装置、符号化装置、データ処理方法、復号方法、符号化方法、およびプログラム
WO2009063646A1 (ja) * 2007-11-16 2009-05-22 Panasonic Corporation 画像復号装置及び画像復号方法
JP2010041115A (ja) * 2008-07-31 2010-02-18 Canon Inc 画像処理装置および画像処理方法
US20160049839A1 (en) * 2013-04-05 2016-02-18 Arion Technologia Brasil-Gestão De Ativos S/A Device and process for the generation of electrical energy
WO2015045276A1 (ja) * 2013-09-30 2015-04-02 日本電気株式会社 処理制御装置、処理制御方法および処理制御プログラム

Also Published As

Publication number Publication date
JP6825699B2 (ja) 2021-02-03
JPWO2018190242A1 (ja) 2020-01-23
US20200120352A1 (en) 2020-04-16
US10904546B2 (en) 2021-01-26

Similar Documents

Publication Publication Date Title
JP6310523B2 (ja) 画像の符号化および復号の方法、符号化および復号デバイス、ならびにそれに対応するコンピュータプログラム
KR101684207B1 (ko) 동화상 복호 장치, 동화상 부호화 장치, 동화상 복호 방법, 및 동화상 부호화 방법
JP2009177352A (ja) 動画像符号化装置及びその制御方法、並びに、コンピュータプログラム
JP2022518587A (ja) イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換
KR102465773B1 (ko) 동화상 부호화 장치, 동화상 부호화 방법, 그리고 동화상 부호화용 컴퓨터 프로그램
WO2018190242A1 (ja) 動画像処理装置、動画像処理方法、及び、動画像処理プログラムが格納された記録媒体
JP5281597B2 (ja) 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
JP5281596B2 (ja) 動きベクトル予測方法,動きベクトル予測装置および動きベクトル予測プログラム
US9866841B2 (en) Image coding method and image coding apparatus
JP6317720B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム
JP2018125882A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2017104010A1 (ja) 動画像符号化装置および動画像符号化方法
JP2007208802A (ja) 画像符号化装置及び画像符号化方法
JP6311821B2 (ja) 動画像処理装置及び動画像処理方法
JP2016134852A (ja) 符号化装置、符号化方法及びプログラム
KR20160067580A (ko) 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서
JP5645589B2 (ja) 動画像符号化装置
WO2016143093A1 (ja) 動画像符号化装置及びそれに用いるIntra予測符号化方法、及び動画像復号化装置
JP2012120086A (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: 18784815

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019512481

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18784815

Country of ref document: EP

Kind code of ref document: A1