The present invention relates to a processing control device, a processing control method, and a processing control program for determining that dependence of one process with the other process disappears.
Non Patent Literature (NPL) 1 describes High Efficiency Video Coding (HEVC) which is a video coding scheme based on the ITU-T Recommendation H.265 standard.
In HEVC, each frame of digitized video is divided into coding tree units (CTUs) and the respective CTUs are encoded in the order of raster scan. Each CTU is divided into coding units (CUs) in the quad-tree structure and encoded. Each CU is divided into prediction units (PUs) before prediction. Moreover, a prediction error of each CU is divided into transform units (TUs) in the quad-tree structure and frequency-transformed. The largest size of CU and the minimum size of CU are referred to as a largest coding unit (LCU) and a smallest coding unit (SCU), respectively.
The CU is predictively encoded by intra prediction or inter frame prediction (inter prediction).
Moreover, the CU is divided into TUs in the quad-tree structure. The way of division is the same as in the case of the CU division illustrated in (A) of
When the division is performed in the case of coding by the intra prediction, TUs are sequentially divided with the PU, which is a block obtained by dividing the CU into four parts, as a starting point. In the case of coding by the inter prediction, TUs are sequentially divided with the CU as a starting point.
Referring to
The optimal prediction mode decision unit 307 decides a CU quad-tree structure, a PU partitioning shape, and a TU quad-tree structure so as to obtain high coding efficiency in accordance with the features of the image for each CTU.
The prediction unit 306 generates a prediction signal for the input image signal of the CU on the basis of the CU quad-tree structure and the PU partitioning shape decided by the optimal prediction mode decision unit 307. The prediction signal is generated on the basis of the intra prediction or the inter prediction.
The transformer 301 frequency-transforms a prediction error image (prediction error signal) obtained by subtracting a prediction signal from the input image signal on the basis of the TU quad-tree structure decided by the optimal prediction mode decision unit 307. The transformer 301 uses orthogonal transform of block size 4×4, 8×8, 16×16, or 32×32 based on the frequency transform in the transform coding of the prediction error signal. Specifically, discrete sine transform (DST) approximated in integer arithmetic (of integer precision) is used for the 4×4 TU of a luminance component of an intra-encoded or inter-encoded CU. For other TUs, discrete cosine transform (DCT) approximated in integer arithmetic (of integer precision) corresponding to the block size is used.
Hereinafter, the discrete cosine transforming and the discrete sine transforming performed by the transformer 301 will be collectively referred to as “orthogonal transforming.”
The quantizer 302 quantizes a transform coefficient (orthogonal transform coefficient) supplied from the transformer 301. The inverse quantizer/inverse transformer 304 inversely quantizes the transform coefficient. Furthermore, the inverse quantizer/inverse transformer 304 inversely transforms the inversely-quantized transform coefficient. The inversely-transformed prediction error image is supplied to the buffer 305 with the prediction signal added. The buffer 305 stores the image as a reference image.
PTL 1: PCT Patent Applications Publication No. 2008/114367
NPL 1: ITU-T Recommendation H.265 High efficiency video coding, April 2013
The intra prediction is prediction for generating a prediction image from a reference image of a coding target frame. NPL 1 defines 33 types of angular intra prediction illustrated in
In
The prediction block has the dependence with the adjacent blocks and therefore, for example, top-left four blocks (four 16×16 blocks) in (A) of
As a result, the above four blocks are not allowed to be processed simultaneously in the subsequent process (process in the part enclosed by a dashed line in
Specifically, as illustrated in (B) of
In HEVC, the adjacent blocks are processed in Z-order (Z scan). The completion of process of a certain block, however, enables the process of a plurality of blocks in some cases. For example, upon completion of the process of a block (a) illustrated in (A) of
Therefore, to increase the speed of the coding process, it is preferable to start the process of one block immediately after dependence of the block with the other block disappears.
PTL 1 describes a system which uses dependence specification unit where data indicating dependence between a plurality of blocks is set. Upon the completion of the process of a certain block in the system, data of the completion of the process is set with respect to the block in the dependence specification unit and data indicating that the process is executable with respect to the block for which process is made possible is set.
In PTL 1, the dependence between a block and a picture (composed of a plurality of blocks) is also set in the dependence specification unit, thereby enhancing the effect of the parallel processing of respective portions constituting a coding device or a decoding device.
The control using such a dependence specification unit is complicated, however, and in the case of mounting the coding device or the decoding device for treating the blocks of the plurality of sizes (see (A) of
Therefore, it is an object of the present invention to provide a processing control device, a processing control method, and a processing control program capable of performing simple and rapid dependence control.
According to the present invention, there is provided a processing control device for determining that dependence of one process with the other process disappears, wherein: the process is performed with any one of processing units of a plurality of sizes as a unit; and a processing unit of a small size among the processing units of the plurality of sizes is included in a processing unit of a large size, the processing control device including: a process completion map which is a map corresponding to processing units of the respective sizes, and in which, when the process corresponding thereto is completed, setting indicating completion of the process is performed; a dependence dissolution map which includes maps corresponding to the processing units of the respective sizes and in which information indicating that the dependence of each process disappears is set; a controller which, when the process is completed, sets information indicating that the process is completed in an area corresponding to the process within the small size of map in the process completion map; and a reflecting circuit which reflects the information set in the process completion map in the dependence dissolution map.
According to the present invention, there is provided a processing control method for determining that dependence of one process with the other process disappears, wherein: the process is performed with any one of processing units of a plurality of sizes as a unit; a processing unit of a small size among the processing units of the plurality of sizes is included in a processing unit of a large size; when one process is completed, information indicating that the process is completed is set in an area corresponding to the process within the small size of map in the process completion map corresponding to the processing units of the respective sizes; and the information set in the process completion map is reflected on the dependence dissolution map which includes maps corresponding to the processing units of the respective sizes and in which information indicating that the dependence of each process disappears is set.
According to the present invention, there is provided a processing control program causing a computer to perform: setting information indicating that one process is completed in an area corresponding to the process within a small size of map in a process completion map corresponding to processing units of respective sizes when the process is completed; and reflecting the information set in the process completion map on the dependence dissolution map which includes maps corresponding to the processing units of the respective sizes and in which information indicating that the dependence of each processing disappears is set.
According to the present invention, simple and rapid dependence control can be performed.
The process completion map includes a 4×4 unit information map, an 8×8 unit information map, a 16×16 unit information map, and a 32×32 unit information map.
In the process completion map, data corresponding to each of 64×4 units (16 pixels) included in the 32×32 block is set in the 4×4 unit information map. In the 8×8 unit information map, data corresponding to each of 16 8×8 units (64 pixels) included in the 32×32 block is set. In the 16×16 unit information map, data corresponding to each of four 16×16 units (256 pixels) included in the 32×32 block is set. In the 32×32 unit information map, data corresponding to each of four 32×32 units (1024 pixels) included in the 64×64 LCU is set.
In the 4×4 unit information map, data corresponding to each of 64 4×4 units (one unit includes 16 pixels) included in the 32×32 block is set. In the 8×8 unit information map, data corresponding to each of 16 8×8 units (one unit includes 64 pixels) included in the 32×32 block is set. In the 16×16 unit information map, data corresponding to each of four 16×16 units (one unit includes 256 pixels) included in the 32×32 block is set. In the 32×32 unit information map, data corresponding to each of four 32×32 units (one unit includes 1024 pixels) included in the 64×64 LCU is set. Note that the term “N×N unit” (N: 4, 8, 16, or 32) does not mean N×N units, but means a single unit that includes N×N pixels.
Upon the completion of the process of the corresponding block in each unit information map, “1” is set.
The dependence dissolution map includes a 4×4 unit information map, an 8×8 unit information map, a 16×16 unit information map, and a 32×32 unit information map. Incidentally, in the dependence dissolution map, the shaded area indicates that the corresponding area is a target for the dependence dissolution, for example.
In the dependence dissolution map, when the process of a corresponding block can be started in each unit information map, “1” is set.
The controller 10 initializes all data in each unit information map in the process completion map to zero at a predetermined time. Thereafter, upon the completion of the process of the TU in the prediction image generating process #1, “1” is set to data at a corresponding location in the 4×4 unit information map of the corresponding process completion map. If “1” is set at a plurality of predetermined locations in the 4×4 unit information map, “1” is set to data at predetermined locations in the dependence dissolution map.
When there is a location where “1” is set in the dependence dissolution map, the controller 10 causes a processing unit (not illustrated in
Moreover, in the 4×4 unit information map of the process completion map, when “1” is set at four locations included in one location of the 8×8 unit information map, “1” is set at the corresponding location in the 8×8 unit information map. Similarly, in the 8×8 unit information map, when “1” is set at four locations included in one location in the 16×16 unit information map, “1” is set at the corresponding location in the 16×16 unit information map. Furthermore, in the 16×16 unit information map, when “1” is set at four locations included in one location in the 32×32 unit information map, “1” is set at the corresponding location in the 32×32 unit information map.
The processing control circuit is applicable to a video coding device illustrated in
In the process completion map 21, there is provided an AND circuit 215 provided so that an input is data of four areas included in one area of the 8×8 unit information map 212 in the 4×4 unit information map 211 and an output is set in the area of the 8×8 unit information map 212. Although only the single AND circuit 215 is illustrated in
Incidentally, the term “an AND circuit ‘inputs data’” means that a logical level “1” or “0” of “data” is input to the AND circuit.
Furthermore, in the process completion map 21, there is provided an AND circuit 216 provided so that an input is data of four areas included in one area of the 16×16 unit information map 213 in the 8×8 unit information map 212 and an output is set in the area of the 16×16 unit information map 213. Although only the single AND circuit 216 is illustrated in
Furthermore, in the process completion map 21, there is provided an AND circuit 217 provided so that an input is data of four areas included in one area of the 32×32 unit information map 214 in the 16×16 unit information map 213 and an output is set in the area of the 32×32 unit information map 214. Although only the single AND circuit 217 is illustrated in
Since the AND circuit 215 is provided, the controller 10 does not set data in the 8×8 unit information map 212. It is because data is automatically set in the 8×8 unit information map 212 on the basis of the data set in the 4×4 unit information map 211.
Similarly, the AND circuit 216 causes data to be automatically set in the 16×16 unit information map 213 on the basis of the data set in the 8×8 unit information map 212.
Moreover, the AND circuit 217 causes data to be automatically set in the 32×32 unit information map 214 on the basis of the data set in the 16×16 unit information map 213.
Incidentally, for example, a register is used as an area where data in the mapping unit 20 is set (an area where data in the process completion map 21 and in the dependence dissolution map 23 is set).
Moreover, the dependence dissolution map 23 also includes a 4×4 unit information map 231, an 8×8 unit information map 232, a 16×16 unit information map 233, and a 32×32 unit information map 234. The 4×4 unit information map 231 has 16×16 areas. The 8×8 unit information map 232 has 8×8 areas. The 16×16 unit information map 233 has 4×4 areas. The 32×32 unit information map 234 has 2×2 areas. Note that, however, in
A reflecting circuit 22 includes an AND circuit 221 and an inverter 225. The AND circuit 221 inputs data in a certain area of the 4×4 unit information map 211 in the process completion map 21 via the inverter 225. Furthermore, the AND circuit 221 inputs data in areas (for example, five areas around the certain area) corresponding to a block having dependence with the block corresponding to the certain area. In addition, the output of the AND circuit 221 is connected to the dependence dissolution map 23 so that data is set in the area of the 4×4 unit information map 231 in the dependence dissolution map 23, the area corresponding to the certain area of the 4×4 unit information map 211 in the process completion map 21.
Similarly, the AND circuit 222 in the reflecting circuit 22 inputs data in a certain area of the 8×8 unit information map 212 in the process completion map 21 via an inverter (not illustrated in
Moreover, the AND circuit 223 in the reflecting circuit 22 inputs data in a certain area of the 16×16 unit information map 213 in the process completion map 21 via an inverter (not illustrated in
Furthermore, the AND circuit 224 in the reflecting circuit 22 inputs data in a certain area of the 32×32 unit information map 214 in the process completion map 21 via an inverter (not illustrated in
As described above, upon the completion of process of the TU, the controller 10 sets data in a corresponding location in the 4×4 unit information map 211 of the process completion map 21 to 1. When “1” is set in a plurality of predetermined locations in the 4×4 unit information map 211, the AND circuit 221 causes data in the predetermined locations in the dependence dissolution map 23 to be set to “1.” In the example illustrated in
Furthermore, also regarding the 8×8 blocks, 16×16 blocks, and 32×32 blocks, data in the corresponding area in the dependence dissolution map 23 is set to “1” which indicates that the dependence disappears when data in the areas (areas corresponding to blocks having the dependence) around the area corresponding to the TU for which process is not completed yet is set to “1,” in other words, when the process of the blocks is completed in the 8×8 unit information map 212, the 16×16 unit information map 213, and the 32×32 unit information map 214 of the process completion map 21.
Upon occurrence of an area in which data is changed from “0” to “1” in the dependence dissolution map 23, the controller 10 instructs the processing unit 30 to start the process of the block (TU) corresponding to the area.
Referring to
The controller 10, first, initializes each area of the 4×4 unit information map 211 in the process completion map 21 to “0” (step S1).
Then, the controller 10 monitors whether or not the process performed by the processing unit 30 has been completed (step S2).
If there is a block for which process is completed (step S3), the controller 10 sets “1” in the area corresponding to the process in the 4×4 unit information map 211 of the process completion map 21 (step S4). As described above, the information set in the 4×4 unit information map 211 of the process completion map 21 is transmitted to the 8×8 unit information map 212, the 16×16 unit information map 213, and the 32×32 unit information map 214.
Moreover, the controller 10 checks whether there is an area where “1” is set in any of the unit information maps in the dependence dissolution map 23 (step S5). The area where “1” is set indicates that the corresponding process is ready to be performed. If the process is processing to be performed next, the controller 10 instructs the processing unit 30 to start to perform the process (step S6). Incidentally, in the case where the processing control device is applied to a video coding device, the process ready to be performed need not be performed in some cases according to the way of the CU and TU division.
As described hereinabove, in this exemplary embodiment, there are provided the process completion map 21 which is a map corresponding to processing units of the respective sizes, and in which, when process corresponding thereto is completed, setting indicating the completion of the process is performed and the dependence dissolution map 23 which is a map corresponding to the processing units of the respective sizes and in which information indicating that the dependence of each process disappears is set, and when detecting that the process is completed, the controller 10 sets information indicating that the process is completed in an area corresponding to the process within a minimum size of map (the 4×4 unit information map 211) in the process completion map 21, and the reflecting circuit 22 reflects the information set in the process completion map 21 in the dependence dissolution map 23, thereby enabling dependence control to be performed with a simple configuration.
Moreover, the controller 10 is able to determine whether the process is ready to be performed regarding blocks of all sizes only by setting data in the 4×4 unit information map 211 in the process completion map 21, thereby enabling dependence control to be performed rapidly with a simple configuration.
In the above exemplary embodiment, the processing control method is performed in the processing control device with a hardware circuit. The processing control method, however, is also able to be implemented by software. Specifically, the process completion map 21 and the dependence dissolution map 23 described above are allowed to be implemented by a storage unit (a register or a memory) and a central processing unit (CPU) which performs a process according to a program (particularly, performs a process corresponding to the function of an AND circuit) in an information processing device such as a computer including the CPU, so that the controller 10 and the reflecting circuit 22 are implemented by the CPU which performs a process according to the program.
As illustrated in
The information transmission circuit 40 is implemented by AND circuits 215, 216, and 217 in the configuration illustrated in
Although the present invention has been described with reference to the exemplary embodiments and examples hereinabove, the present invention is not limited thereto. A variety of changes, which can be understood by those skilled in the art, may be made in the configuration and details of the present invention within the scope thereof.
This application claims priority to Japanese Patent Application No. 2013-204865 filed on Sep. 30, 2013, and the entire disclosure thereof is hereby incorporated herein by reference.
Number | Date | Country | Kind |
---|---|---|---|
2013-204865 | Sep 2013 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2014/004430 | 8/28/2014 | WO | 00 |