WO2020255688A1 - Image encoding device, image decoding device and method, and program - Google Patents

Image encoding device, image decoding device and method, and program Download PDF

Info

Publication number
WO2020255688A1
WO2020255688A1 PCT/JP2020/021614 JP2020021614W WO2020255688A1 WO 2020255688 A1 WO2020255688 A1 WO 2020255688A1 JP 2020021614 W JP2020021614 W JP 2020021614W WO 2020255688 A1 WO2020255688 A1 WO 2020255688A1
Authority
WO
WIPO (PCT)
Prior art keywords
subblock
attention
prediction
image
basic block
Prior art date
Application number
PCT/JP2020/021614
Other languages
French (fr)
Japanese (ja)
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 キヤノン株式会社
Publication of WO2020255688A1 publication Critical patent/WO2020255688A1/en

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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/167Position within a video image, e.g. region of interest [ROI]
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the present invention relates to an image coding device, an image decoding device, a method, and a program.
  • HEVC High Efficiency Video Coding
  • HEVC High Efficiency Video Coding
  • a basic block having a size larger than that of a conventional macroblock (16 ⁇ 16 pixels) has been adopted.
  • This large-sized basic block is called a CTU (Coding Tree Unit), and its size is a maximum of 64 ⁇ 64 pixels.
  • the CTU is further divided into sub-blocks that serve as units for prediction and conversion.
  • Patent Document 1 discloses a technique for predicting such a motion vector.
  • VVC Very Video Coding
  • VVC is also considering the introduction of prediction technology using encoded block pixels and motion vectors.
  • the pixels and motion vectors of blocks adjacent to the left and above, upper left and upper right of the block to be encoded are used, but especially when parallel processing is performed in block column units, some blocks There were cases where pixels and motion vectors could not be referenced. As a result, such prediction processing may hinder the implementation of parallel processing.
  • the present invention has been made to solve the above-mentioned problems, and an object of the present invention is to reduce the complexity of implementation by limiting the blocks that can be used for prediction processing to some blocks.
  • the image coding apparatus of the present invention has the following configuration. That is, An image coding device that encodes an image.
  • a division means for dividing a frame image to be encoded into basic blocks of a predetermined size and further dividing the basic block into a plurality of subblocks. It has a prediction means for executing intra-prediction or inter-prediction for the subblocks obtained by the division means.
  • the prediction means is In the case where the intra prediction is executed for the attention subblock in the attention basic block, and the subblock located at the upper right of the attention subblock is in the basic block located at the upper right of the attention basic block.
  • the subblock located at the upper right of the attention subblock is always excluded from the reference target in the intra prediction for the attention subblock, and the intra prediction is performed.
  • the complexity of implementation can be reduced by limiting the blocks that can be used for prediction processing to some blocks depending on the positional relationship between the blocks and adjacent blocks.
  • the block block diagram of the image coding apparatus in 1st Embodiment The block block diagram of the image decoding apparatus in 1st Embodiment.
  • a block of interest such as a block to be processed at present is referred to as a block of interest.
  • the basic block to be processed at present is called a attention block.
  • the subblock to be processed at present is referred to as a attention subblock.
  • restrictions on subblocks that can be used in intra-prediction and restrictions on sub-blocks that can be selected as motion vector predictors in inter-prediction will be described. Only one of these restrictions may be applied, or both may be applied. Even when only one of them is applied, it is possible to contribute to the reduction of implementation complexity and the reduction of memory usage.
  • FIG. 1 is a block composition of the image coding apparatus of this embodiment.
  • the image coding device has a control unit 150 that controls the entire device.
  • the control unit 150 includes a CPU, a ROM for storing a program executed by the CPU, and a RAM used as a work area of the CPU.
  • the image coding apparatus includes an input terminal 101, a block division unit 102, a prediction unit 103, a conversion / quantization unit 104, an inverse quantization / inverse conversion unit 105, an image reproduction unit 106, a frame memory 107, and an in-loop filter unit. It has 108, a coding unit 109, an integrated coding unit 110, an output terminal 111, and a motion vector memory 112.
  • the input terminal 101 inputs the image data to be encoded supplied from the image data supply unit (not shown) in frame units.
  • the image data generation source may be of any type, such as an image pickup device that generates image data to be encoded, a file server or a storage medium that stores the image data to be encoded.
  • the output terminal 112 outputs the coded data to the output destination device, but the output destination device is not particularly limited to a storage medium, a file server, or the like.
  • the output terminal 112 may be a network interface, or may output encoded data to the outside via the network.
  • the block division unit 102 divides the input frame image into a plurality of basic blocks, and outputs the image data of each basic block unit to the prediction unit 103 in the subsequent stage. Specifically, the block division unit 102 outputs the image data of the basic block to the prediction unit 103 in the order of raster scan with the basic block as a unit.
  • the prediction unit 103 divides the image data in basic block units into sub-blocks, performs intra-frame prediction, which is intra-frame prediction, inter-prediction, which is inter-frame prediction, and the like, and generates prediction image data. .. Further, the prediction unit 103 calculates and outputs a prediction error from the attention subblock and the prediction image data in the input image data. For example, the prediction error is the difference between the attention subblock and the prediction image data of the attention subblock. Further, the prediction unit 103 also outputs information necessary for prediction, for example, information such as sub-block division, prediction mode, motion vector, and the like together with the prediction error. Hereinafter, the information necessary for this prediction is referred to as prediction information. This prediction information will be used for prediction in other blocks and for generating prediction image data on the decoding side.
  • the conversion / quantization unit 104 obtains a conversion coefficient by orthogonally converting the prediction error input from the prediction unit 103 in units of subblocks. Further, the conversion / quantization unit 104 performs quantization on the obtained conversion coefficient to obtain a quantization coefficient. It should be noted that the function of performing orthogonal conversion and the function of performing quantization may be configured separately.
  • the inverse quantization / inverse conversion unit 105 inversely quantizes the quantization coefficient output from the conversion / quantization unit 104 to reproduce the conversion coefficient, and further performs inverse orthogonal conversion to reproduce the prediction error.
  • the function of performing inverse quantization and the function of performing inverse orthogonal transformation may be configured separately.
  • the image reproduction unit 106 Based on the prediction information output from the prediction unit 103, the image reproduction unit 106 generates the prediction image data by appropriately referring to the frame memory 107, and generates the reproduction image data from the generated prediction image data and the input prediction error. Generate and store in frame memory 107. For example, the image reproduction unit 106 reproduces the reproduced image data by adding a prediction error to the predicted image data.
  • the in-loop filter unit 108 performs in-loop filter processing such as a deblocking filter and a sample adaptive offset on the reproduced image data stored in the frame memory 107, and re-stores the filtered image data in the frame memory 107. ..
  • the motion vector memory 112 holds the motion vector of the encoded subblock. Therefore, the motion vector memory 112 holds the motion vector in the prediction information output by the prediction unit 103 in association with the position of the subblock to be encoded.
  • the coding unit 109 encodes the quantization coefficient output from the conversion / quantization unit 104 and the prediction information output from the prediction unit 103, generates code data, and outputs the code data.
  • the integrated coding unit 110 generates header code data encoded in the header part of the sequence or picture, which is necessary for decoding the bit stream on the decoding side. Further, the integrated coding unit 110 forms a bit stream in which the code data output from the coding unit 109 is integrated with the header code data, and outputs the bit stream via the output terminal 111.
  • moving image data is input in frame units.
  • the block division unit 102 will be described as being divided into basic blocks of 64 ⁇ 64 pixels, but the present invention is not limited to this.
  • the size of the basic block may be 128 ⁇ 128 pixels.
  • a notation such as 64 x 64 pixels indicates that the height of the block in the vertical direction is 64 pixels and the width in the horizontal direction is 64 pixels.
  • the notation 32 ⁇ 64 pixels indicates that the height of the block in the vertical direction is 32 pixels and the width in the horizontal direction is 64 pixels.
  • the same notation shall indicate the vertical height and the horizontal width of the block as in the above example.
  • the image data for one frame input via the input terminal 101 is supplied to the block dividing unit 102.
  • the block division unit 102 divides the input image data into a plurality of basic blocks, and outputs the image data in basic block units to the prediction unit 103. In this embodiment, it is assumed that an image of a basic block unit of 64 ⁇ 64 pixels is output.
  • the prediction unit 103 executes prediction processing on the image data of the basic block unit input from the block division unit 102. Specifically, the prediction unit 103 determines the sub-block division that divides the basic block into smaller sub-blocks, and further refers to the motion vector memory 112 and the frame memory 107 in sub-block units for intra-prediction and inter-prediction. Determine the prediction mode such as.
  • FIGS. 7A to 7F An example of the subblock division method is shown with reference to FIGS. 7A to 7F.
  • the thick frames of blocks 700 to 705 in FIGS. 7A to 7F represent basic blocks (64 ⁇ 64 pixels in the embodiment), and each quadrangle divided by a thin line inside thereof represents a subblock.
  • FIG. 7A is an example in which the basic block 700 is a subblock. That is, this is an example in which the basic block is not divided and the size of the subblock is 64 ⁇ 64 pixels.
  • FIG. 7B shows a division example in which the basic block 701 is divided into four square sub-blocks, and the size of one sub-block is 32 ⁇ 32 pixels.
  • 7C to 7F show an example of rectangular subblock division.
  • FIG. 7C shows that the basic block 702 is divided into two sub-blocks (longitudinal in the vertical direction) having a size of 32 ⁇ 64 pixels.
  • FIG. 7D shows that the basic block 703 is divided into two subblocks (horizontally longitudinal) having a size of 64 ⁇ 32 pixels.
  • the basic blocks 704 and 705 of FIGS. 7E and 7F although the division directions are different, they are divided into three rectangular subblocks at a ratio of 1: 2: 1. In this way, not only squares but also rectangular sub-blocks are used for encoding processing.
  • the basic block 701 of 64 ⁇ 64 pixels is divided into quadtrees and divided into four sub-blocks of 32 ⁇ 32 pixels.
  • the subblock division method is not limited to this.
  • a binary tree division as shown in FIGS. 7C and 7D, a ternary tree division as shown in FIGS. 7E and 7F, or an undivided tree as shown in FIG. 7A may be used.
  • the prediction process by the prediction unit 103 will be described in detail.
  • image coding technology such as HEVC
  • the pixels of the encoded subblock are used to encode the subblock to be encoded.
  • the process of predicting the pixels of In the prediction process intra-prediction using pixels of the coded subblock in the frame in which the subblock to be encoded exists, or a sub of the coded frame different from the frame in which the subblock to be coded exists.
  • inter-predictions that use block pixels. Also in this embodiment, these two types of prediction methods are used.
  • the prediction unit 103 When performing intra prediction, the prediction unit 103 is spatially located in the periphery of the subblock to be encoded, and uses the encoded pixels to generate prediction pixels of the subblock to be encoded (hereinafter, hereinafter, The subblock to be encoded is also called a subblock of interest, and the basic block including the subblock to be encoded is also called a basic block of interest).
  • the prediction unit 103 describes an intra prediction method such as horizontal prediction using the coded pixels of the subblock adjacent to the left of the subblock of interest and vertical prediction using the coded pixels of the subblock adjacent above.
  • the method used for the prediction of the subblock of interest is determined from the inside, and the information indicating it is generated as the intra prediction mode.
  • peripheral sub-blocks used for intra-prediction are not limited to those located on the left and above, and those located on the lower left, upper left, and upper right are also used if they are encoded.
  • the relationship between the subblock to be encoded and the surrounding subblocks used for intra-prediction will be described in more detail with reference to FIGS. 8A to 8E.
  • the thick frame shows a basic block of 64 ⁇ 64 pixels
  • the thin frame obtained by dividing the thick frame into quadtrees shows a subblock of 32 ⁇ 32 pixels.
  • 8B to 8E show a subblock of interest (C: Current) to be encoded and five subblocks ⁇ BL: Bottom Left, L: Left, located in the periphery ⁇ lower left, left, upper left, upper, upper right ⁇ . It shows the relationship with UL: Upper Left, U: Upper, UR: Upper Right ⁇ .
  • FIG. 8B shows the positional relationship with the five surrounding subblocks when the attention subblock (C) is located at the upper left of the attention basic block. Whether or not the attention subblock (C) is located at the upper left of the attention basic block can be determined by whether or not the attention subblock (C) includes the upper left pixel of the attention basic block. it can.
  • FIG. 8B since the coding processing of the five subblocks UL, U, UR, L, and BL is completed at the time of the prediction processing of the coding target subblock (C), these five subblocks are used for the intra. It is possible to perform prediction processing. Depending on the prediction method, the intra-prediction processing of the attention subblock (C) can be performed using all of these five subblocks, or the attention subblock using only a part of the five subblocks. The intra prediction process of (C) may be performed.
  • FIG. 8C shows the positional relationship with the five surrounding subblocks when the attention subblock (C) is located in the upper right of the attention basic block. Whether or not the attention subblock (C) is located at the upper right of the attention basic block can be determined by whether or not the attention subblock (C) includes the pixel at the upper right end of the attention basic block.
  • the coding processing of the lower left (BL) subblock among the five subblocks is not completed. Therefore, the subblock (BL) cannot be used for the intra prediction process.
  • the upper right (UR) subblock is coded when the coding process is sequentially performed.
  • each basic block line (block line) is executed in parallel with a delay of one basic block.
  • FIG. 9 shows that the four parallel coding processes are performed by delaying the four basic block lines from left to right by one basic block. The four shaded areas in the figure indicate the basic blocks encoded in parallel.
  • the sub is located in the upper right of the attention subblock. It is conceivable to perform prediction processing without using a block (UR). However, only in such a case, if the use of the subblock (UR) located at the upper right of the subblock of interest in the prediction processing is prohibited (restricted), the difficulty level in implementing the coding method is correspondingly increased. There are problems such as high speed, complicated coding process, slowdown of coding process, and increase of memory usage.
  • the prediction unit 103 of the present embodiment always considers the attention subblock when the attention subblock is a subblock located at the upper right of the attention basic block, regardless of whether or not the coding processing is executed in parallel. It is assumed that the prediction process of the subblock of interest is performed without using the subblock (UR) located at the upper right of. In other words, if the upper right subblock of the attention subblock is in the basic block located at the upper right of the attention basic block, the upper right subblock is excluded from the subblocks used in the prediction process. As a result, it is possible to reduce the mounting cost such as holding the pixel value caused by the reference of the upper right basic block regardless of whether or not the coding processing is executed in parallel.
  • the prediction unit 103 excludes the upper right (UR) and the lower left (BL) during the prediction processing (these Intra-prediction processing is performed using three sub-blocks (restricted from using blocks), left (L), upper left (UL), and upper (U).
  • FIG. 8D shows the positional relationship between the attention subblock (C) and the surrounding five subblocks when it is located at the lower left of the basic block. Whether or not the attention subblock (C) is located at the lower left in the attention basic block can be determined by whether or not the attention subblock (C) includes the pixel at the lower left end in the attention basic block.
  • the coding processing of the lower left (BL) subblock is not completed. Therefore, the subblock (BL) cannot be used for the intra prediction process.
  • the remaining four subblocks, left (L), upper left (UL), upper (U), and upper right (UR), have been encoded. Therefore, the prediction unit 103 does not use the lower left (BL) subblock, but refers to these four subblocks of left (L), upper left (UL), upper (U), and upper right (UR) for intra-prediction. Perform processing.
  • FIG. 8E shows the positional relationship between the attention subblock (C) and the surrounding five subblocks when it is located at the lower right of the basic block. Whether or not the attention subblock (C) is located at the lower right of the attention basic block can be determined by whether or not the attention subblock (C) includes the lower right pixel in the attention basic block. ..
  • the coding processing of the lower left (BL) and upper right (UR) subblocks is not completed. Therefore, the subblock (BL) and the subblock (UR) cannot be used for the intra prediction process.
  • the prediction unit 103 does not use the lower left (BL) and upper right (UR) subblocks, and the remaining three subblocks, left (L), upper left (UL), and upper (U). Intra-prediction processing is performed using.
  • inter-prediction is a process of predicting the pixels of the block of interest (sub-block to be encoded) by referring to the pixels of the encoded frame (frame different from the frame to which the sub-block to be encoded belongs). For example, if there is no movement between the coded frame of the reference target and the coded frame of the reference target, the pixels of the coded target subblock are predicted using the pixels at the same position of the coded frame of the reference target. .. In such a case, a motion vector (0, 0) indicating that there is no motion is generated. On the other hand, when motion is generated between frames for the subblock to be encoded, a motion vector (MVx, MVy) indicating the motion is generated.
  • Image coding standards such as HEVC employ a technique called "motion vector prediction" in order to further reduce the amount of data related to this motion vector.
  • This is a technique for predicting the motion vector of the subblock to be encoded by using the motion vector of another encoded subblock, and has the effect of reducing the amount of data of the motion vector.
  • the sub-block C in FIG. 8B is a part of a moving object
  • the sub-blocks L, U, UR, L, BL, etc. around the sub-block C are moved by a motion vector predictor. It is selected as a candidate, and the motion vector closest to the motion vector of the subblock C is used as the motion vector predictor.
  • the difference between the motion vector predictor and the motion vector of the subblock to be encoded is encoded.
  • the prediction unit 103 of the present embodiment limits the sub-blocks used for motion vector prediction according to the positional relationship between the sub-block C of interest to be encoded and the sub-blocks around it. In other words, the subblocks from which the motion vector can be selected (enabled) as the motion vector predictor are made different according to the positional relationship with the surrounding subblocks.
  • the prediction unit 103 performs motion vector prediction using the motion vectors of all five subblocks as candidates for the motion vector predictor.
  • these sub-blocks may not have a motion vector, in which case the motion vector of that sub-block cannot be used. For example, if a subblock is encoded using intra-prediction, that block does not have a motion vector. This also applies to the following description of FIGS. 8C to 8E.
  • the maximum number of subblocks that can be used for is not limited to these five subblocks, but may be a part of the five subblocks, or other subblocks may be added. However, in any case, as will be described later, the subblocks that can be used are limited depending on the position of the subblock (C) to be encoded.
  • the prediction unit 103 uses the unencoded lower left (BL) sub as in the case of intra prediction.
  • the motion vector of the block and the motion vector of the upper right (UR) subblock belonging to the upper right basic block of the current basic block are not always used for the motion vector prediction of the coded subblock (C).
  • the prediction unit 103 performs motion vector prediction using the motion vectors of the remaining three sub-blocks (L), upper left (UL), and upper (U) as candidates for the motion vector predictor.
  • the motion vector of the lower left (BL) subblock and the motion vector of the upper right (UR) subblock are different regardless of whether or not the coding processing is executed in parallel. Since it is prohibited to be a candidate for a motion vector predictor, it is possible to reduce the implementation cost such as holding the pixel value caused by the reference of the upper right basic block.
  • the prediction unit 103 uses the unencoded lower left (BL) motion vector to predict the motion vector. Not used. That is, in this case, it is prohibited (restricted) that the motion vector at the lower left (BL) is a candidate for the motion vector predictor. Therefore, the prediction unit 103 performs motion vector prediction using the motion vectors of the remaining four sub-blocks (L), upper left (UL), upper (U), and upper right (UR) as candidates for the motion vector predictor.
  • the prediction unit 103 uses the unencoded lower left (BL) motion vector and upper right (UR).
  • Motion vector is not used for motion vector prediction. That is, in this case, it is prohibited (restricted) that the motion vector of the lower left (BL) block is a candidate for the motion vector predictor. It is also prohibited (restricted) to use the motion vector of the upper right (UR) block as a candidate for the motion vector predictor. Therefore, the prediction unit 103 uses the motion vectors of the remaining three sub-blocks (L), upper left (UL), and upper (U) as candidates for the motion vector predictor to perform motion vector prediction.
  • the prediction unit 103 generates prediction image data from the intra prediction mode determined as described above, the motion vector, and the encoded pixels, and further generates a prediction error from the input image data and the prediction image data. Output to the conversion / quantization unit 104. Further, the prediction unit 103 outputs information such as subblock division, intra prediction mode, and motion vector as prediction information to the coding unit 109, the image reproduction unit 106, and the motion vector memory 112.
  • the conversion / quantization unit 104 performs orthogonal conversion / quantization on the input prediction error and generates a quantization coefficient. Specifically, the conversion / quantization unit 104 first performs an orthogonal conversion process corresponding to the size of the subblock to generate an orthogonal conversion coefficient. Next, the conversion / quantization unit 104 quantizes the orthogonal conversion coefficient and generates the quantization coefficient. Then, the conversion / quantization unit 104 outputs the generated quantization coefficient to the coding unit 109 and the inverse quantization / inverse conversion unit 105.
  • the inverse quantization / inverse conversion unit 105 inversely quantizes the input quantization coefficient to reproduce the conversion coefficient, and further performs inverse orthogonal conversion of the reproduced conversion coefficient to reproduce the prediction error. Then, the inverse quantization / inverse conversion unit 105 outputs the reproduced prediction error to the image reproduction unit 106.
  • the image reproduction unit 106 appropriately refers to the frame memory 107 and the motion vector memory 112 based on the prediction information input from the prediction unit 103, and reproduces the predicted image.
  • the image reproduction unit 106 reproduces the predicted image using the pixels of the peripheral encoded subblocks stored in the frame memory 107.
  • the subblocks used for intra-prediction are limited according to the positional relationship between the coded subblock and the peripheral coded subblocks, and the limiting method is the limiting method in the prediction processing of the prediction unit 103. Since the same is true, the description here will be omitted.
  • the image reproduction unit 106 uses the pixels of the encoded subblocks of other frames stored in the frame memory 107 based on the motion vector determined by the prediction unit 103. Is used to generate a predicted image. In this case, the subblocks used for motion vector prediction are limited according to the positional relationship between the coded subblock and the peripheral coded subblocks, and the limiting method is the limiting method in the prediction process of the prediction unit 103. Since it is the same as the above, the description here is omitted.
  • the image reproduction unit 106 then reproduces the image data from the reproduced predicted image and the reproduced prediction error input from the inverse quantization / inverse conversion unit 105, and stores the reproduced image data in the frame memory 107.
  • the in-loop filter unit 108 reads the reproduced image from the frame memory 107 and performs in-loop filter processing such as a deblocking filter. Then, the in-loop filter unit 108 re-stores the filtered image data in the frame memory 107.
  • the coding unit 109 entropy-encodes the quantization coefficient generated by the conversion / quantization unit 104 and the prediction information input from the prediction unit 103 in block units to generate code data.
  • the method of entropy coding is not particularly limited, but Golomb coding, arithmetic coding, Huffman coding and the like can be used.
  • the coding unit 109 outputs the generated code data to the integrated coding unit 110.
  • the integrated coding unit 110 generates header code data encoded in the header part of the sequence or picture, which is necessary for decoding the bit stream on the decoding side.
  • the integrated coding unit 110 further multiplexes (integrates) the code data and the like input from the coding unit 109 so as to follow the header code data to form a bit stream. Then, the coding unit 109 outputs the formed bit stream to the outside via the output terminal 111.
  • FIG. 6 shows an example of the data structure of the bitstream output in the first embodiment.
  • the picture data which is the coded data for each picture
  • FIG. 3 is a flowchart showing the coding process for one frame of the control unit 150 in the image coding device of the embodiment.
  • control unit 150 controls the integrated coding unit 110 to determine the size of the image (the number of pixels in the horizontal and vertical directions of one frame), the size of the basic block, and the like.
  • the header information necessary for encoding the image data and decoding the bit stream on the decoding side is encoded and output.
  • control unit 150 controls the block division unit 102, divides the input frame image into basic block units, and outputs one of them to the prediction unit 103.
  • control unit 150 controls the prediction unit 103 to execute prediction processing on the image data of the basic block unit generated in S302, and performs prediction information such as subblock division information and prediction mode and prediction image data. Generate.
  • the prediction unit 103 further calculates a prediction error from the input image data and the predicted image data, and outputs the prediction error.
  • control unit 150 controls the conversion / quantization unit 104 to perform orthogonal conversion and quantization.
  • the conversion / quantization unit 104 executes orthogonal conversion with respect to the prediction error calculated in S303 and generates a conversion coefficient.
  • the conversion / quantization unit 104 performs quantization with respect to the conversion coefficient to generate a quantization coefficient.
  • control unit 150 controls the inverse quantization / inverse conversion unit 105 to perform inverse quantization and inverse orthogonal conversion.
  • the inverse quantization / inverse conversion unit 105 dequantizes the quantization coefficient generated in S304 and reproduces the conversion coefficient. Further, the inverse quantization / inverse conversion unit 105 performs inverse orthogonal conversion with respect to the conversion coefficient and reproduces the prediction error.
  • control unit 150 controls the image reproduction unit 106 to reproduce the image. Specifically, the image reproduction unit 106 reproduces the predicted image based on the prediction information generated in S303. Further, the image reproduction unit 106 reproduces the image data from the reproduced predicted image and the prediction error generated in S305, and stores the image data in the frame memory 107.
  • control unit 150 controls the coding unit 109 to encode the image. Specifically, the coding unit 109 encodes the prediction information generated in S303 and the quantization coefficient generated in S304 to generate code data. In addition, the coding unit 109 generates a bit stream including other code data.
  • control unit 150 determines whether or not the coding of all the basic blocks in the frame of interest is completed, and if so, proceeds to S309 if the coding is completed, and there is an uncoded basic block. If it is determined, the process is returned to S302 in order to encode the basic block.
  • control unit 150 controls the in-loop filter unit 108 to execute the filter processing. Specifically, the in-loop filter unit 108 performs in-loop filter processing on the image (image data reproduced in S306) stored in the frame memory 107, and transfers the filtered image data to the frame memory 107. Restore and finish this process.
  • the basic block to which the subblock to be encoded (the subblock of interest) belongs regardless of whether or not each block line composed of a plurality of basic blocks is encoded in parallel.
  • FIG. 2 is a block configuration diagram of an image decoding device that performs intra-predictive decoding and inter-predictive decoding in sub-block units from the coded image data generated by the image coding device in the embodiment.
  • the configuration and its operation related to the decoding process will be described with reference to the figure.
  • the restrictions on the subblocks that can be used in the above-mentioned intra-prediction and the restrictions on the sub-blocks that can be selected as the motion vector predictor in the inter-prediction are the same.
  • the image decoding device has a control unit 250 that controls the entire device.
  • the control unit 250 has a CPU, a ROM for storing a program executed by the CPU, and a RAM used as a work area of the CPU.
  • the image decoding device includes an input terminal 201, a separation decoding unit 202, a decoding unit 203, an inverse quantization / inverse conversion unit 204, an image reproduction unit 205, a frame memory 206, an in-loop filter unit 207, an output terminal 208, and the like. It has a motion vector memory 209.
  • the input terminal 201 inputs a coded bit stream
  • the input source is, for example, a storage medium storing the coded stream, but it may be input from a network, and the type thereof does not matter.
  • the separation / decoding unit 202 separates the bitstream into code data related to information related to decoding processing and coefficients, and decodes the code data existing in the header part of the bitstream.
  • the separation / decoding unit 202 performs the reverse operation of the integrated coding unit 110 of FIG.
  • the decoding unit 203 decodes the code data output from the separation decoding unit 202 and reproduces the quantization coefficient and the prediction information. Then, the decoding unit 203 outputs the obtained quantization coefficient and prediction information to the inverse quantization / inverse conversion unit 204 and the image reproduction unit 205. Further, the decoding unit 203 outputs and stores the motion vector information included in the prediction information in the motion vector memory 209.
  • the inverse quantization / inverse conversion unit 204 performs inverse quantization on the quantization coefficient input from the decoding unit 203 to obtain a conversion coefficient. Further, the inverse quantization / inverse conversion unit 204 performs inverse orthogonal transformation on the conversion coefficient and reproduces the prediction error.
  • the image reproduction unit 205 appropriately refers to the frame memory 206 based on the input prediction information to generate the prediction image data. Then, the image reproduction unit 205 generates the reproduction image data from the predicted image data and the prediction error reproduced by the inverse quantization / inverse conversion unit 204, and outputs (stores) the reproduced image data to the frame memory.
  • the in-loop filter unit 207 performs an in-loop filter process such as a deblocking filter on the reproduced image (stored in the frame memory 206), and the filtered image. Is output.
  • an in-loop filter process such as a deblocking filter on the reproduced image (stored in the frame memory 206), and the filtered image. Is output.
  • the output terminal 208 sequentially outputs the frame images stored in the frame memory 206 to the outside.
  • the output destination is generally a display device, but other devices may be used.
  • the encoded bit stream is input in frame units.
  • the separation / decoding unit 202 inputs or receives a bit stream for one frame via the input terminal 201.
  • the separation / decoding unit 202 separates the input bit stream into information related to the decoding process and code data related to the coefficient, and decodes the code data existing in the header unit of the bit stream. Subsequently, the separation / decoding unit 202 reproduces the code data of the basic block unit of the picture data and outputs the code data to the decoding unit 203.
  • the decoding unit 203 decodes the code data and reproduces the quantization coefficient and the prediction information. Then, the decoding unit 203 outputs the quantization coefficient to the inverse quantization / inverse conversion unit 204 and the prediction information to the image reproduction unit 205, respectively. Further, the decoding unit 203 outputs and stores the motion vector in the prediction information to the motion vector memory 209 so as to correspond to the position of the subblock.
  • the inverse quantization / inverse conversion unit 204 performs inverse quantization on the input quantization coefficient to generate an orthogonal conversion coefficient. Further, the inverse quantization / inverse conversion unit 204 performs inverse orthogonal transformation on the generated orthogonal transformation coefficient to reproduce the prediction error. Then, the inverse quantization / inverse conversion unit 204 outputs the reproduced prediction error to the image reproduction unit 205.
  • the image reproduction unit 205 reproduces the predicted image by referring to the prediction information and the motion vector memory 209 input from the decoding unit 203 and appropriately referring to the frame memory 206.
  • two types of prediction methods intra-prediction and inter-prediction, are used as in the prediction unit 103 of the image coding apparatus.
  • the subblocks used for the prediction processing are limited according to the positional relationship between the decoding target subblock and the peripheral decoded subblocks.
  • the image reproduction unit 106 in the image coding apparatus Since the same is true, the description thereof will be omitted.
  • the image reproduction unit 205 reproduces the image data from the predicted image and the prediction error input from the inverse quantization / inverse conversion unit 204, and stores the reproduced image data in the frame memory 206.
  • the stored image data will be used as a reference when making a prediction.
  • the image reproduction unit 205 also limits the sub-blocks that can be used in the intra-prediction, as in the prediction unit 103 of the image coding device. Therefore, it is not necessary to store unnecessary data for reference in other blocks, and it is easy to determine whether to store data for other blocks, so that the memory usage amount It is possible to reduce the complexity of implementation and reduce the complexity of implementation. Further, similarly to the prediction unit 103 of the image coding device, the subblocks that can be selected as the motion vector predictor in the inter-prediction are also limited. This also contributes to the reduction of implementation complexity and the reduction of memory usage.
  • the in-loop filter unit 207 reads the reproduced image data from the frame memory 206 and performs in-loop filter processing such as a deblocking filter. Then, the in-loop filter unit 207 stores the filtered image in the frame memory 206 again. The reproduced image stored in the frame memory 206 and filtered is finally output from the terminal 208 to the outside (display or the like).
  • FIG. 4 is a flowchart showing a one-frame image decoding process of the control unit 250 in the image decoding device according to the embodiment. The decoding process will be described below with reference to the same figure.
  • control unit 250 controls the separation / decoding unit 202 to separate the bit stream into information related to the decoding process and code data of the image data, acquire information required for decoding, and code data of the image. Is output to the decoding unit 203.
  • control unit 250 controls the decoding unit 203, decodes the code data separated in S401, and reproduces the quantization coefficient and the prediction information.
  • control unit 250 controls the inverse quantization / inverse conversion unit 204 to perform inverse quantization and inverse orthogonal conversion. Specifically, the inverse quantization / inverse conversion unit 204 performs inverse quantization on the quantization coefficient of each subblock under the control of the control unit 250 to obtain a conversion coefficient, and further, the conversion coefficient is obtained. The prediction error is reproduced by performing the inverse orthogonal transformation on the.
  • control unit 250 controls the image reproduction unit 205 to reproduce the image data. Specifically, the image reproduction unit 205 reproduces the predicted image based on the predicted information. Then, the image reproduction unit 205 reproduces the image data by adding the prediction error generated in S404 to the predicted image.
  • control unit 250 determines whether or not the decoding process of the frame of interest has been completed, that is, whether or not the decoding of all the basic blocks in the frame of interest and all the subblocks inside the frame has been completed. Then, when the decoding of the frame of interest is completed, the control unit 250 proceeds to S406, and if there is an undecrypted basic block or subblock, the control unit 250 decodes the next basic block or subblock. , The process is returned to S402.
  • control unit 250 controls the in-loop filter unit 207, performs in-loop filter processing on the image data (image data reproduced in S404) stored in the frame memory 206, and filters the image. Is generated and the process ends.
  • the subblock to be decoded belongs to the upper right of the basic block. It is possible to decode a bitstream that has undergone prediction processing without referring to subblocks that belong to adjacent basic blocks. As a result, the complexity of implementation is reduced, and the feasibility of parallel processing of decoding can be improved.
  • FIG. 5 is a block diagram showing a configuration example of computer hardware applicable to the image coding device and the image decoding device according to the above embodiment.
  • the CPU 501 controls the entire computer by using the computer programs and data stored in the RAM 502 and the ROM 503, and executes each of the above-described processes as performed by the image processing device according to the above embodiment. That is, the CPU 501 functions as each processing unit shown in FIGS. 1 and 2.
  • the RAM 502 has an area for temporarily storing programs and data acquired from the outside via the external storage device 506 and the I / F (interface) 507. Further, the RAM 502 is also used as a work area used by the CPU 501 when executing various processes.
  • the RAM 502 can be allocated as a frame memory, for example, or various other areas can be provided as appropriate.
  • the ROM 503 stores the setting data of this computer, the boot program, and the like.
  • the operation unit 504 is composed of a keyboard, a mouse, and the like, and can be operated by a user of the computer to input various instructions to the CPU 501.
  • the display unit 505 displays the processing result by the CPU 501.
  • the display unit 505 is composed of, for example, a liquid crystal display.
  • the external storage device 506 is a large-capacity information storage device represented by a hard disk drive device.
  • the external storage device 506 stores an OS (operating system) and a computer program (application program) for realizing the functions of the respective parts shown in FIGS. 1 and 2 in the CPU 501. Further, each image data as a processing target may be stored in the external storage device 506.
  • the computer programs and data stored in the external storage device 506 are appropriately loaded into the RAM 502 according to the control by the CPU 501, and are processed by the CPU 501.
  • a network such as a LAN or the Internet, or other devices such as a projection device or a display device can be connected to the I / F 507, and the computer acquires and sends various information via the I / F 507. Can be done.
  • Reference numeral 508 is a bus connecting the above-mentioned parts.
  • the CPU 501 executes the boot program stored in the ROM 503, loads the OS stored in the external storage device 506 into the RAM 502, and executes the boot program. Then, under the control of the OS, the CPU 501 loads the application program related to encoding or decoding from the external storage device 506 into the RAM 502 and executes it.
  • the CPU 501 functions as each processing unit of FIG. 1 or 2, and the present device functions as an image coding device or an image decoding device.
  • the present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
  • a circuit for example, ASIC
  • the present invention is used in a coding device / decoding device that encodes / decodes still images / moving images.
  • it can be applied to coding methods and decoding methods that use intra-prediction and inter-prediction.

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

The present invention reduces mounting complexity by limiting blocks to be able to be used in prediction processing to some blocks according to positional relationships of blocks. To this end, an image encoding device, which encodes a moving image according to the present invention, includes: a division unit which separates, from frame images in the moving image to be encoded, basic blocks of a preset size in a raster scan order and additionally divides the basic blocks into a plurality of sub-blocks; and an encoding unit which intra-prediction encodes and inter-prediction encodes the sub-blocks obtained from the division unit. Here, when a sub-block of interest in a basic block of interest is intra-prediction encoded and a sub-block in the upper right of the sub-block of interest is within a basic block in the upper right of the basic block of interest, the encoding unit performs intra-prediction encoding by excluding the sub-block in the upper right of the sub-block of interest from a reference target of the intra-prediction encoding.

Description

画像符号化装置及び画像復号装置及び方法及びプログラムImage coding device and image decoding device, method and program
 本発明は画像符号化装置及び画像復号装置及び方法及びプログラムに関するものである。 The present invention relates to an image coding device, an image decoding device, a method, and a program.
 動画像の圧縮記録の符号化方式として、HEVC(High Efficiency Video Coding)符号化方式(以下、HEVCと記す)が知られている。HEVCでは符号化効率向上のため、従来のマクロブロック(16×16画素)より大きなサイズの基本ブロックが採用された。この大きなサイズの基本ブロックはCTU(Coding Tree Unit)と呼ばれ、そのサイズは最大64×64画素である。CTUはさらに予測や変換を行う単位となるサブブロックに分割される。 As a coding method for compressed recording of moving images, a HEVC (High Efficiency Video Coding) coding method (hereinafter referred to as HEVC) is known. In HEVC, in order to improve coding efficiency, a basic block having a size larger than that of a conventional macroblock (16 × 16 pixels) has been adopted. This large-sized basic block is called a CTU (Coding Tree Unit), and its size is a maximum of 64 × 64 pixels. The CTU is further divided into sub-blocks that serve as units for prediction and conversion.
 また、HEVCにおいては、符号化済みのブロックの動きベクトルを用いて、符号化対象ブロックの動きベクトルを予測する処理が用いられている。動きベクトルを予測することにより、符号化する差分を小さくすることで、動きベクトルの圧縮効率を高めることが可能となっている。特許文献1は、このような動きベクトルを予測する技術が開示されている。 Further, in HEVC, a process of predicting the motion vector of the coded block is used by using the motion vector of the coded block. By predicting the motion vector, it is possible to improve the compression efficiency of the motion vector by reducing the difference to be encoded. Patent Document 1 discloses a technique for predicting such a motion vector.
 近年、HEVCの後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始された。JVET(Joint Video Experts Team)がISO/IECとITU-Tの間で設立され、VVC(Versatile Video Coding)符号化方式(以下、VVC)として標準化が進められている。 In recent years, as a successor to HEVC, activities to carry out international standardization of more efficient coding methods have started. JVET (Joint Video Experts Team) was established between ISO / IEC and ITU-T, and standardization is being promoted as a VVC (Versatile Video Coding) coding method (hereinafter, VVC).
特表2014-506439号公報Special Table 2014-506439
 VVCにおいても、HEVCと同様に符号化済みのブロックの画素や動きベクトルを用いた予測技術の導入が検討されている。こうした予測技術では、符号化対象のブロックの左や上、左上や右上などに隣接したブロックの画素や動きベクトルを用いているが、特にブロック列単位で並列処理を行う場合、一部のブロックの画素や動きベクトルが参照できないケースがあった。結果として、こうした予測処理が原因で並列処理の実装を妨げる結果となることがあった。 Similar to HEVC, VVC is also considering the introduction of prediction technology using encoded block pixels and motion vectors. In such a prediction technology, the pixels and motion vectors of blocks adjacent to the left and above, upper left and upper right of the block to be encoded are used, but especially when parallel processing is performed in block column units, some blocks There were cases where pixels and motion vectors could not be referenced. As a result, such prediction processing may hinder the implementation of parallel processing.
 本発明は上述した課題を解決するためになされたものであり、予測処理に用いることができるブロックを一部のブロックに制限することで、実装の複雑度を低減することを目的としている。 The present invention has been made to solve the above-mentioned problems, and an object of the present invention is to reduce the complexity of implementation by limiting the blocks that can be used for prediction processing to some blocks.
 この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
 画像を符号化する画像符号化装置であって、
 符号化対象のフレーム画像を、所定のサイズの基本ブロックに分割し、当該基本ブロックを更に複数のサブブロックに分割する分割手段と、
 該分割手段で得たサブブロックに対して、イントラ予測、または、インター予測を実行する予測手段とを有し、
 前記予測手段は、
   注目基本ブロック内の注目サブブロックに対してイントラ予測を実行する場合であって、前記注目サブブロックの右上に位置するサブブロックが前記注目基本ブロックの右上に位置する基本ブロック内にある場合においては常に、前記注目サブブロックの右上に位置するサブブロックを、前記注目サブブロックに対するイントラ予測における参照対象から除外して、当該イントラ予測を行うことを特徴とする。
In order to solve this problem, for example, the image coding apparatus of the present invention has the following configuration. That is,
An image coding device that encodes an image.
A division means for dividing a frame image to be encoded into basic blocks of a predetermined size and further dividing the basic block into a plurality of subblocks.
It has a prediction means for executing intra-prediction or inter-prediction for the subblocks obtained by the division means.
The prediction means is
In the case where the intra prediction is executed for the attention subblock in the attention basic block, and the subblock located at the upper right of the attention subblock is in the basic block located at the upper right of the attention basic block. The subblock located at the upper right of the attention subblock is always excluded from the reference target in the intra prediction for the attention subblock, and the intra prediction is performed.
 本発明によれば、ブロックと隣接するブロックとの位置関係によって、予測処理に用いることができるブロックを一部のブロックに制限することで実装の複雑度を低減することができる。 According to the present invention, the complexity of implementation can be reduced by limiting the blocks that can be used for prediction processing to some blocks depending on the positional relationship between the blocks and adjacent blocks.
 本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。 Other features and advantages of the present invention will be clarified by the following description with reference to the accompanying drawings. In the attached drawings, the same or similar configurations are designated by the same reference numbers.
 添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
第1の実施形態における画像符号化装置のブロック構成図。 第1の実施形態における画像復号装置のブロック構成図。 第1の実施形態における画像符号化処理を示すフローチャート。 第1の実施形態における画像復号処理を示すフローチャート。 第2の実施形態の画像符号化装置、復号装置に適用可能なコンピュータのハードウェア構成を示すブロック図。 実施形態におけるビットストリームのデータ構造の一例を示す図。 実施形態におけるサブブロック分割の一例を示す図。 実施形態におけるサブブロック分割の一例を示す図。 実施形態におけるサブブロック分割の一例を示す図。 実施形態におけるサブブロック分割の一例を示す図。 実施形態におけるサブブロック分割の一例を示す図。 実施形態におけるサブブロック分割の一例を示す図。 実施形態における符号化処理における予測処理に用いられるブロックの関係性を示す図。 実施形態における符号化処理における予測処理に用いられるブロックの関係性を示す図。 実施形態における符号化処理における予測処理に用いられるブロックの関係性を示す図。 実施形態における符号化処理における予測処理に用いられるブロックの関係性を示す図。 実施形態における符号化処理における予測処理に用いられるブロックの関係性を示す図。 基本ブロックの並列符号化を実施する場合のスキャン法の一例を示す図。
The accompanying drawings are included in the specification, form a part thereof, show an embodiment of the present invention, and are used together with the description to explain the principle of the present invention.
The block block diagram of the image coding apparatus in 1st Embodiment. The block block diagram of the image decoding apparatus in 1st Embodiment. The flowchart which shows the image coding process in 1st Embodiment. The flowchart which shows the image decoding processing in 1st Embodiment. The block diagram which shows the hardware structure of the computer applicable to the image coding apparatus and decoding apparatus of 2nd Embodiment. The figure which shows an example of the data structure of a bit stream in an embodiment. The figure which shows an example of the sub-block division in an embodiment. The figure which shows an example of the sub-block division in an embodiment. The figure which shows an example of the sub-block division in an embodiment. The figure which shows an example of the sub-block division in an embodiment. The figure which shows an example of the sub-block division in an embodiment. The figure which shows an example of the sub-block division in an embodiment. The figure which shows the relationship of the block used for the prediction processing in the coding processing in embodiment. The figure which shows the relationship of the block used for the prediction processing in the coding processing in embodiment. The figure which shows the relationship of the block used for the prediction processing in the coding processing in embodiment. The figure which shows the relationship of the block used for the prediction processing in the coding processing in embodiment. The figure which shows the relationship of the block used for the prediction processing in the coding processing in embodiment. The figure which shows an example of the scanning method when performing parallel coding of a basic block.
 以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。また 、基本ブロックや、サブブロックといった呼称は、各実施形態において便宜的に用いている呼称であり、その意味が変わらない範囲で、適宜、他の呼称を用いてもよい。例えば、基本ブロックやサブブロックは、基本ユニットやサブユニットと称されてもよいし、単にブロックやユニットと称されてもよい。また、現在の処理対象のブロック等の注目するべきブロックのことを注目ブロックと称することとする。例えば、現在の処理対象の基本ブロックのことを注目ブロックと称する。また、現在の処理対象のサブブロックのことを注目サブブロックと称する。 Hereinafter, embodiments will be described in detail with reference to the attached drawings. The following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiment, not all of the plurality of features are essential to the invention, and the plurality of features may be arbitrarily combined. Further, in the attached drawings, the same or similar configurations are designated by the same reference numbers, and duplicate description is omitted. In addition, the names such as basic block and sub-block are names used for convenience in each embodiment, and other names may be used as appropriate as long as their meanings do not change. For example, a basic block or subunit may be referred to as a basic unit or subunit, or may simply be referred to as a block or unit. In addition, a block of interest such as a block to be processed at present is referred to as a block of interest. For example, the basic block to be processed at present is called a attention block. Further, the subblock to be processed at present is referred to as a attention subblock.
 また、下記の各実施形態において、イントラ予測において用いることができるサブブロックに関する制限と、インター予測において動きベクトル予測子として選択できるサブブロックに関する制限について説明する。これらの制限はいずれかのみ適用するようにしてもよいし、両方を適用するようにしてもよい。いずれかのみを適用した場合であっても、実装の複雑度の低減や、メモリ使用量の低減に寄与することができる。 Further, in each of the following embodiments, restrictions on subblocks that can be used in intra-prediction and restrictions on sub-blocks that can be selected as motion vector predictors in inter-prediction will be described. Only one of these restrictions may be applied, or both may be applied. Even when only one of them is applied, it is possible to contribute to the reduction of implementation complexity and the reduction of memory usage.
 [第1の実施形態]
 図1は本実施形態の画像符号化装置のブロック構図である。画像符号化装置は、装置全体の制御を司る制御部150を有する。この制御部150は、CPU、CPUが実行するプログラムを格納するROM、CPUのワークエリアとして利用するRAMを有する。また、画像符号化装置は、入力端子101、ブロック分割部102、予測部103、変換・量子化部104、逆量子化・逆変換部105、画像再生部106、フレームメモリ107、インループフィルタ部108、符号化部109、統合符号化部110、出力端子111、及び、動きベクトルメモリ112を有する。
[First Embodiment]
FIG. 1 is a block composition of the image coding apparatus of this embodiment. The image coding device has a control unit 150 that controls the entire device. The control unit 150 includes a CPU, a ROM for storing a program executed by the CPU, and a RAM used as a work area of the CPU. Further, the image coding apparatus includes an input terminal 101, a block division unit 102, a prediction unit 103, a conversion / quantization unit 104, an inverse quantization / inverse conversion unit 105, an image reproduction unit 106, a frame memory 107, and an in-loop filter unit. It has 108, a coding unit 109, an integrated coding unit 110, an output terminal 111, and a motion vector memory 112.
 入力端子101は、図示を省略する画像データ供給部から供給される符号化対象の画像データをフレーム単位に入力する。画像データ発生源は、符号化対象の画像データを生成する撮像装置や、符号化対象の画像データを記憶したファイルサーバや記憶媒体等、その種類は問わない。また、出力端子112は、符号化データを出力先装置に出力するが、その出力先装置も記憶媒体や、ファイルサーバ等、特に限定されない。例えば、出力端子112はネットワークインターフェースであってもよく、ネットワークを介して外部に符号化データを出力してもよい。 The input terminal 101 inputs the image data to be encoded supplied from the image data supply unit (not shown) in frame units. The image data generation source may be of any type, such as an image pickup device that generates image data to be encoded, a file server or a storage medium that stores the image data to be encoded. Further, the output terminal 112 outputs the coded data to the output destination device, but the output destination device is not particularly limited to a storage medium, a file server, or the like. For example, the output terminal 112 may be a network interface, or may output encoded data to the outside via the network.
 ブロック分割部102は、入力したフレーム画像を複数の基本ブロックに分割し、基本ブロック単位の画像データを後段の予測部103に出力する。具体的には、ブロック分割部102は、基本ブロックを単位とするラスタースキャン順に、その基本ブロックの画像データを予測部103に出力する。 The block division unit 102 divides the input frame image into a plurality of basic blocks, and outputs the image data of each basic block unit to the prediction unit 103 in the subsequent stage. Specifically, the block division unit 102 outputs the image data of the basic block to the prediction unit 103 in the order of raster scan with the basic block as a unit.
 ここで、注意したい点は、基本ブロック単位に、ラスタースキャン順に逐次的に符号化を行う場合、符号化対象の注目基本ブロックに隣接する8つ基本ブロック中で、左上、上、右上、及び、左に隣接する計4つ基本ブロックは符号化済みとなり、右、左下、下、及び、右下に隣接する計4つの基本ブロックは未符号化となる。 Here, it should be noted that when coding is performed sequentially in the order of raster scan for each basic block, the upper left, upper, upper right, and upper left, upper, upper right, and among the eight basic blocks adjacent to the basic block of interest to be encoded, A total of four basic blocks adjacent to the left are encoded, and a total of four basic blocks adjacent to the right, lower left, lower, and lower right are uncoded.
 予測部103は、基本ブロック単位の画像データに対し、サブブロック分割を行い、サブブロック単位でフレーム内予測であるイントラ予測や、フレーム間予測であるインター予測などを行い、予測画像データを生成する。さらに、予測部103は、入力された画像データにおける注目サブブロックと予測画像データから予測誤差を算出し、出力する。例えば、予測誤差とは、注目サブブロックと、当該注目サブブロックの予測画像データとの差分である。また、予測部103は、予測に必要な情報、例えばサブブロック分割、予測モードや動きベクトル等の情報も予測誤差と併せて出力する。以下ではこの予測に必要な情報を予測情報と呼称する。この予測情報は、他のブロックにおける予測や、復号側で予測画像データを生成するために使用されることとなる。 The prediction unit 103 divides the image data in basic block units into sub-blocks, performs intra-frame prediction, which is intra-frame prediction, inter-prediction, which is inter-frame prediction, and the like, and generates prediction image data. .. Further, the prediction unit 103 calculates and outputs a prediction error from the attention subblock and the prediction image data in the input image data. For example, the prediction error is the difference between the attention subblock and the prediction image data of the attention subblock. Further, the prediction unit 103 also outputs information necessary for prediction, for example, information such as sub-block division, prediction mode, motion vector, and the like together with the prediction error. Hereinafter, the information necessary for this prediction is referred to as prediction information. This prediction information will be used for prediction in other blocks and for generating prediction image data on the decoding side.
 変換・量子化部104は、予測部103より入力した予測誤差を、サブブロック単位で直交変換して変換係数を得る。さらに変換・量子化部104は、得られた変換係数に対して量子化を行い、量子化係数を得る。なお、直交変換を行う機能と、量子化を行う機能とは別々の構成としてもよい。 The conversion / quantization unit 104 obtains a conversion coefficient by orthogonally converting the prediction error input from the prediction unit 103 in units of subblocks. Further, the conversion / quantization unit 104 performs quantization on the obtained conversion coefficient to obtain a quantization coefficient. It should be noted that the function of performing orthogonal conversion and the function of performing quantization may be configured separately.
 逆量子化・逆変換部105は、変換・量子化部104から出力された量子化係数を逆量子化して変換係数を再生し、さらに、逆直交変換して予測誤差を再生する。なお、逆量子化を行う機能と、逆直交変換を行う機能とは別々の構成としてもよい。 The inverse quantization / inverse conversion unit 105 inversely quantizes the quantization coefficient output from the conversion / quantization unit 104 to reproduce the conversion coefficient, and further performs inverse orthogonal conversion to reproduce the prediction error. The function of performing inverse quantization and the function of performing inverse orthogonal transformation may be configured separately.
 画像再生部106は、予測部103から出力された予測情報に基づいて、フレームメモリ107を適宜参照して予測画像データを生成し、生成した予測画像データと入力した予測誤差とから再生画像データを生成し、フレームメモリ107に格納する。例えば、画像再生部106は、予測画像データに予測誤差を加算することによって、再生画像データを再生する。 Based on the prediction information output from the prediction unit 103, the image reproduction unit 106 generates the prediction image data by appropriately referring to the frame memory 107, and generates the reproduction image data from the generated prediction image data and the input prediction error. Generate and store in frame memory 107. For example, the image reproduction unit 106 reproduces the reproduced image data by adding a prediction error to the predicted image data.
 インループフィルタ部108は、フレームメモリ107に格納された再生画像データに対し、デブロッキングフィルタやサンプルアダプティブオフセットなどのインループフィルタ処理を行い、フィルタ処理後の画像データをフレームメモリ107に再格納する。 The in-loop filter unit 108 performs in-loop filter processing such as a deblocking filter and a sample adaptive offset on the reproduced image data stored in the frame memory 107, and re-stores the filtered image data in the frame memory 107. ..
 動きベクトルメモリ112は、符号化済サブブロックの動きベクトルを保持する。このため、動きベクトルメモリ112は、予測部103が出力した予測情報における動きベクトルと、符号化対象となったサブブロックの位置とを対応づけて保持する。 The motion vector memory 112 holds the motion vector of the encoded subblock. Therefore, the motion vector memory 112 holds the motion vector in the prediction information output by the prediction unit 103 in association with the position of the subblock to be encoded.
 符号化部109は、変換・量子化部104から出力された量子化係数、および、予測部103から出力された予測情報を符号化して、符号データを生成し出力する。 The coding unit 109 encodes the quantization coefficient output from the conversion / quantization unit 104 and the prediction information output from the prediction unit 103, generates code data, and outputs the code data.
 統合符号化部110は、復号側でビットストリームの復号に必要となる、シーケンスやピクチャのヘッダ部分に符号化されるヘッダ符号データを生成する。さらに統合符号化部110は、ヘッダ符号データに、符号化部109から出力された符号データを統合したビットストリームを形成し、出力端子111を介して出力する。 The integrated coding unit 110 generates header code data encoded in the header part of the sequence or picture, which is necessary for decoding the bit stream on the decoding side. Further, the integrated coding unit 110 forms a bit stream in which the code data output from the coding unit 109 is integrated with the header code data, and outputs the bit stream via the output terminal 111.
 ここで、画像符号化装置における画像の符号化動作をより詳しく以下に説明する。本実施形態では動画像データをフレーム単位に入力する構成とする。さらに本実施形態では説明のため、ブロック分割部102は、64×64画素の基本ブロックに分割するものとして説明するが、これに限定されない。例えば、基本ブロックのサイズは128×128画素であってもよい。 Here, the image coding operation in the image coding device will be described in more detail below. In the present embodiment, moving image data is input in frame units. Further, in the present embodiment, for the sake of explanation, the block division unit 102 will be described as being divided into basic blocks of 64 × 64 pixels, but the present invention is not limited to this. For example, the size of the basic block may be 128 × 128 pixels.
 なお、64×64画素というような表記は、当該ブロックの垂直方向の高さが64画素で、水平方向の幅が64画素であることを示していることとする。同様に、32×64画素という表記は、当該ブロックの垂直方向の高さが32画素で、水平方向の幅が64画素であることを示していることとする。以下、同様な表記については、上記の例と同様に、そのブロックの垂直方向の高さと水平方向の幅を示すものとする。 Note that a notation such as 64 x 64 pixels indicates that the height of the block in the vertical direction is 64 pixels and the width in the horizontal direction is 64 pixels. Similarly, the notation 32 × 64 pixels indicates that the height of the block in the vertical direction is 32 pixels and the width in the horizontal direction is 64 pixels. Hereinafter, the same notation shall indicate the vertical height and the horizontal width of the block as in the above example.
 入力端子101を介して入力された1フレーム分の画像データはブロック分割部102に供給される。ブロック分割部102では、入力された画像データを複数の基本ブロックに分割し、基本ブロック単位の画像データを予測部103に出力する。本実施形態では64×64画素の基本ブロック単位の画像を出力するものとする。 The image data for one frame input via the input terminal 101 is supplied to the block dividing unit 102. The block division unit 102 divides the input image data into a plurality of basic blocks, and outputs the image data in basic block units to the prediction unit 103. In this embodiment, it is assumed that an image of a basic block unit of 64 × 64 pixels is output.
 予測部103は、ブロック分割部102より入力した基本ブロック単位の画像データに対し予測処理を実行する。具体的には、予測部103は、基本ブロックをさらに細かいサブブロックに分割するサブブロック分割を決定し、さらにサブブロック単位で動きベクトルメモリ112やフレームメモリ107を参照しながら、イントラ予測やインター予測などの予測モードを決定する。 The prediction unit 103 executes prediction processing on the image data of the basic block unit input from the block division unit 102. Specifically, the prediction unit 103 determines the sub-block division that divides the basic block into smaller sub-blocks, and further refers to the motion vector memory 112 and the frame memory 107 in sub-block units for intra-prediction and inter-prediction. Determine the prediction mode such as.
 図7A乃至7Fを参照してサブブロック分割方法の一例を示す。図7A乃至7Fにおけるブロック700乃至705の太枠は基本ブロック(実施形態では64×64画素)を表し、その内部の細い線で分割された各四角形がサブブロックを表している。図7Aは、基本ブロック700がサブブロックである例である。つまり、基本ブロックが分割されず、サブブロックのサイズが64×64画素の例である。図7Bは、基本ブロック701を4個の正方形のサブブロックへ分割した分割例を示しており、1つのサブブロックのサイズは32×32画素である。図7C乃至7Fは長方形サブブロック分割の一例を表している。図7Cは、基本ブロック702が32×64画素サイズの2個のサブブロック(垂直方向に長手)に分割されることを示している。図7Dは、基本ブロック703が、64×32画素サイズの2個のサブブロック(水平方向に長手)に分割されることを示している。図7E,7Fの基本ブロック704、705の場合、分割方向が異なるものの、1:2:1の比で3つの長方形サブブロックに分割されている。このように正方形だけではなく、長方形のサブブロックも用いて符号化処理を行っている。 An example of the subblock division method is shown with reference to FIGS. 7A to 7F. The thick frames of blocks 700 to 705 in FIGS. 7A to 7F represent basic blocks (64 × 64 pixels in the embodiment), and each quadrangle divided by a thin line inside thereof represents a subblock. FIG. 7A is an example in which the basic block 700 is a subblock. That is, this is an example in which the basic block is not divided and the size of the subblock is 64 × 64 pixels. FIG. 7B shows a division example in which the basic block 701 is divided into four square sub-blocks, and the size of one sub-block is 32 × 32 pixels. 7C to 7F show an example of rectangular subblock division. FIG. 7C shows that the basic block 702 is divided into two sub-blocks (longitudinal in the vertical direction) having a size of 32 × 64 pixels. FIG. 7D shows that the basic block 703 is divided into two subblocks (horizontally longitudinal) having a size of 64 × 32 pixels. In the case of the basic blocks 704 and 705 of FIGS. 7E and 7F, although the division directions are different, they are divided into three rectangular subblocks at a ratio of 1: 2: 1. In this way, not only squares but also rectangular sub-blocks are used for encoding processing.
 実施形態では、説明を単純化するため、図7Bに示すように、64×64画素の基本ブロック701が四分木分割され、4つの32×32画素のサブブロックに分割されるものとする。ただし、サブブロック分割方法はこれに限定されない。図7C,7Dのような二分木分割や、図7E,7Fのような三分木分割または図7Aのような無分割を用いても構わない。 In the embodiment, for simplification of the description, as shown in FIG. 7B, the basic block 701 of 64 × 64 pixels is divided into quadtrees and divided into four sub-blocks of 32 × 32 pixels. However, the subblock division method is not limited to this. A binary tree division as shown in FIGS. 7C and 7D, a ternary tree division as shown in FIGS. 7E and 7F, or an undivided tree as shown in FIG. 7A may be used.
 予測部103による予測処理について詳しく説明する。HEVCをはじめとする画像符号化技術においては、再生画像の画質を維持しつつ、符号化されるビットストリームのデータ量を小さくするため、符号化済サブブロックの画素を用いて符号化対象サブブロックの画素を予測する処理が行われる。予測処理には、符号化対象のサブブロックが存在するフレーム内の符号化済サブブロックの画素を用いるイントラ予測や、符号化対象のサブブロックが存在するフレームとは異なる、符号化済みフレームのサブブロックの画素を用いるインター予測が存在する。本実施形態でも、この2種類の予測方法が用いられる。 The prediction process by the prediction unit 103 will be described in detail. In image coding technology such as HEVC, in order to reduce the amount of data in the encoded bitstream while maintaining the image quality of the reproduced image, the pixels of the encoded subblock are used to encode the subblock to be encoded. The process of predicting the pixels of In the prediction process, intra-prediction using pixels of the coded subblock in the frame in which the subblock to be encoded exists, or a sub of the coded frame different from the frame in which the subblock to be coded exists. There are inter-predictions that use block pixels. Also in this embodiment, these two types of prediction methods are used.
 イントラ予測を行う場合、予測部103は、符号化対象のサブブロックの空間的に周辺に位置し、符号化済画素を用いて符号化対象のサブブロックの予測画素を生成する(なお、以降、符号化対象のサブブロックを注目サブブロック、符号化対象のサブブロックを含む基本ブロックを注目基本ブロックとも呼称する)。この際、予測部103は、注目サブブロックの左に隣接するサブブロックの符号化済画素を用いる水平予測や、上に隣接するサブブロックの符号化済画素を用いる垂直予測などのイントラ予測方法の中から注目サブブロックの予測に用いる方法を決定し、それを示す情報をイントラ予測モードとして生成する。イントラ予測に用いられる周辺のサブブロックは左や上に位置しているものに限られず、符号化済であれば左下や左上、右上に位置しているものも用いられる。図8A乃至8Eを用いて、符号化対象サブブロックとイントラ予測に用いられる周辺のサブブロックとの関係性について更に詳しく説明する。 When performing intra prediction, the prediction unit 103 is spatially located in the periphery of the subblock to be encoded, and uses the encoded pixels to generate prediction pixels of the subblock to be encoded (hereinafter, hereinafter, The subblock to be encoded is also called a subblock of interest, and the basic block including the subblock to be encoded is also called a basic block of interest). At this time, the prediction unit 103 describes an intra prediction method such as horizontal prediction using the coded pixels of the subblock adjacent to the left of the subblock of interest and vertical prediction using the coded pixels of the subblock adjacent above. The method used for the prediction of the subblock of interest is determined from the inside, and the information indicating it is generated as the intra prediction mode. The peripheral sub-blocks used for intra-prediction are not limited to those located on the left and above, and those located on the lower left, upper left, and upper right are also used if they are encoded. The relationship between the subblock to be encoded and the surrounding subblocks used for intra-prediction will be described in more detail with reference to FIGS. 8A to 8E.
 図8Aにおいて、太枠は64×64画素の基本ブロックを示し、太枠を四分木分割した細枠は32×32画素のサブブロックを示している。図8B乃至8Eは、符号化対象の注目サブブロック(C:Current)と、その周辺{左下、左、左上、上、右上}に位置する5つのサブブロック{BL:Bottom Left、L:Left、UL:Upper Left、U:Upper、UR:Upper Right}との関係性を示している。 In FIG. 8A, the thick frame shows a basic block of 64 × 64 pixels, and the thin frame obtained by dividing the thick frame into quadtrees shows a subblock of 32 × 32 pixels. 8B to 8E show a subblock of interest (C: Current) to be encoded and five subblocks {BL: Bottom Left, L: Left, located in the periphery {lower left, left, upper left, upper, upper right}. It shows the relationship with UL: Upper Left, U: Upper, UR: Upper Right}.
 図8Bは、注目サブブロック(C)が注目基本ブロック内の左上に位置している場合の周辺の5つのサブブロックとの位置関係を示している。なお、注目サブブロック(C)が注目基本ブロック内の左上に位置しているかどうかは、注目サブブロック(C)が注目基本ブロック内の左上端の画素を含んでいるか否かで判断することができる。図8Bでは、符号化対象サブブロック(C)の予測処理時には、5つのサブブロックUL、U,UR,L、BLの符号化処理が完了しているため、これら5つのサブブロックを用いてイントラ予測処理を行うことが可能である。予測の方法に応じて、これら5つのサブブロックの全てを用いて注目サブブロック(C)のイントラ予測処理を行うこともできるし、5つのサブブロックの内の一部のみを用いて注目サブブロック(C)のイントラ予測処理を行ってもよい。 FIG. 8B shows the positional relationship with the five surrounding subblocks when the attention subblock (C) is located at the upper left of the attention basic block. Whether or not the attention subblock (C) is located at the upper left of the attention basic block can be determined by whether or not the attention subblock (C) includes the upper left pixel of the attention basic block. it can. In FIG. 8B, since the coding processing of the five subblocks UL, U, UR, L, and BL is completed at the time of the prediction processing of the coding target subblock (C), these five subblocks are used for the intra. It is possible to perform prediction processing. Depending on the prediction method, the intra-prediction processing of the attention subblock (C) can be performed using all of these five subblocks, or the attention subblock using only a part of the five subblocks. The intra prediction process of (C) may be performed.
 図8Cは、注目サブブロック(C)が注目基本ブロック内の右上に位置している場合の周辺の5つのサブブロックとの位置関係を示している。注目サブブロック(C)が注目基本ブロック内の右上に位置しているかどうかは、注目サブブロック(C)が注目基本ブロック内の右上端の画素を含んでいるか否かで判断することができる。図8Cでは、符号化対象サブブロック(C)の予測処理時には、5つのサブブロックのうち左下(BL)のサブブロックは符号化処理が完了していない。このため、サブブロック(BL)は、イントラ予測処理に用いることができない。 FIG. 8C shows the positional relationship with the five surrounding subblocks when the attention subblock (C) is located in the upper right of the attention basic block. Whether or not the attention subblock (C) is located at the upper right of the attention basic block can be determined by whether or not the attention subblock (C) includes the pixel at the upper right end of the attention basic block. In FIG. 8C, at the time of the prediction processing of the coding target subblock (C), the coding processing of the lower left (BL) subblock among the five subblocks is not completed. Therefore, the subblock (BL) cannot be used for the intra prediction process.
 また、右上(UR)のサブブロックは、符号化処理を逐次的に行っている場合には符号化が完了していることになる。ここで、符号化処理の速度を上げるため、符号化処理を基本ブロックの行単位で並列に実行する場合、特に各基本ブロック行(ブロックライン)間を1基本ブロック分の遅延で並列に実行する場合を考察する。つまり、ブロック行ごとに別々の符号化部を用いて、それぞれ基本ブロック1つ分だけ遅延させて符号化処理を開始する場合について考察する。図9は、4つの並列符号化処理が、4つの基本ブロック行を左から右方向に、1基本ブロック分ずつ遅延して行われる様を示している。図示の斜線部分で示される4つが、並列で符号化されている基本ブロックを示している。この中で、最上の基本ブロック行の符号化処理を除く、2乃至4行目の基本ブロックの1つを、図8Cに当てはめると、注目サブブロック(C)の予測処理時には、その右上のサブブロック(UR)の符号化処理が完了(符号化中)していないことになるのがわかる。 In addition, the upper right (UR) subblock is coded when the coding process is sequentially performed. Here, in order to increase the speed of the coding process, when the coding process is executed in parallel in units of basic blocks, in particular, each basic block line (block line) is executed in parallel with a delay of one basic block. Consider the case. That is, consider a case where a separate coding unit is used for each block line and the coding process is started with a delay of one basic block. FIG. 9 shows that the four parallel coding processes are performed by delaying the four basic block lines from left to right by one basic block. The four shaded areas in the figure indicate the basic blocks encoded in parallel. When one of the basic blocks in the 2nd to 4th lines, excluding the coding process of the top basic block line, is applied to FIG. 8C, the sub in the upper right of the subblock (C) of interest is predicted. It can be seen that the block (UR) coding process is not completed (during coding).
 ここで、符号化処理を上述のように並列に実行している場合であって、注目サブブロックが注目基本ブロック内の右上に位置するサブブロックの場合は、注目サブブロックの右上に位置するサブブロック(UR)を用いずに予測処理を行うことが考えられる。しかしながら、このような場合に限って、予測処理において注目サブブロックの右上に位置するサブブロック(UR)を用いることを禁止(制限)すると、その分、当該符号化方法を実装する際の難易度が高くなってしまったり、符号化処理が複雑になってしまうといった問題や、符号化処理の速度の低下や、メモリ使用量の増加、といった問題が発生する。 Here, in the case where the coding process is executed in parallel as described above and the attention subblock is a subblock located in the upper right of the attention basic block, the sub is located in the upper right of the attention subblock. It is conceivable to perform prediction processing without using a block (UR). However, only in such a case, if the use of the subblock (UR) located at the upper right of the subblock of interest in the prediction processing is prohibited (restricted), the difficulty level in implementing the coding method is correspondingly increased. There are problems such as high speed, complicated coding process, slowdown of coding process, and increase of memory usage.
 そこで、本実施形態の予測部103は、符号化処理を並列に実行しているか否かに関わらず、注目サブブロックが注目基本ブロック内の右上に位置するサブブロックの場合、常に、注目サブブロックの右上に位置するサブブロック(UR)を用いずに注目サブブロックの予測処理を行うものとする。言い換えれば、注目サブブロックの右上のサブブロックが、注目基本ブロックの右上に位置する基本ブロック内にある場合は、右上のサブブロックを予測処理で用いるサブブロックから除外する。これにより、符号化処理を並列に実行しているか否かに関わらず、右上基本ブロックの参照により生じていた画素値の保持などの実装コストを低下させることができる。要するに、実施形態では、符号化対象のサブブロック(C)が図8Cの状態に合致するとき、予測部103は、その予測処理時に、右上(UR)、左下(BL)を除外し(これらのブロックを使用しないように制限し)、左(L)、左上(UL)、上(U)の3つのサブブロックを用いてイントラ予測処理を行う。 Therefore, the prediction unit 103 of the present embodiment always considers the attention subblock when the attention subblock is a subblock located at the upper right of the attention basic block, regardless of whether or not the coding processing is executed in parallel. It is assumed that the prediction process of the subblock of interest is performed without using the subblock (UR) located at the upper right of. In other words, if the upper right subblock of the attention subblock is in the basic block located at the upper right of the attention basic block, the upper right subblock is excluded from the subblocks used in the prediction process. As a result, it is possible to reduce the mounting cost such as holding the pixel value caused by the reference of the upper right basic block regardless of whether or not the coding processing is executed in parallel. In short, in the embodiment, when the subblock (C) to be encoded matches the state of FIG. 8C, the prediction unit 103 excludes the upper right (UR) and the lower left (BL) during the prediction processing (these Intra-prediction processing is performed using three sub-blocks (restricted from using blocks), left (L), upper left (UL), and upper (U).
 同様に、図8Dは、注目サブブロック(C)が、基本ブロック内の左下に位置している場合の周辺の5つのサブブロックとの位置関係を示している。注目サブブロック(C)が注目基本ブロック内の左下に位置しているかどうかは、注目サブブロック(C)が注目基本ブロック内の左下端の画素を含んでいるか否かで判断することができる。図8Dでは、注目サブブロック(C)の予測処理時には、左下(BL)のサブブロックは符号化処理が完了していない。そのため、サブブロック(BL)は、イントラ予測処理に用いることができない。しかし、残りの左(L)、左上(UL)、上(U)、右上(UR)の4つのサブブロックは符号化済みである。よって、予測部103は、左下(BL)のサブブロックは用いずに、これら左(L)、左上(UL)、上(U)、右上(UR)の4つのサブブロックを参照してイントラ予測処理を行う。 Similarly, FIG. 8D shows the positional relationship between the attention subblock (C) and the surrounding five subblocks when it is located at the lower left of the basic block. Whether or not the attention subblock (C) is located at the lower left in the attention basic block can be determined by whether or not the attention subblock (C) includes the pixel at the lower left end in the attention basic block. In FIG. 8D, at the time of the prediction processing of the attention subblock (C), the coding processing of the lower left (BL) subblock is not completed. Therefore, the subblock (BL) cannot be used for the intra prediction process. However, the remaining four subblocks, left (L), upper left (UL), upper (U), and upper right (UR), have been encoded. Therefore, the prediction unit 103 does not use the lower left (BL) subblock, but refers to these four subblocks of left (L), upper left (UL), upper (U), and upper right (UR) for intra-prediction. Perform processing.
 最後に、図8Eは注目サブブロック(C)が、基本ブロック内の右下に位置している場合の周辺の5つのサブブロックとの位置関係を示している。注目サブブロック(C)が注目基本ブロック内の右下に位置しているかどうかは、注目サブブロック(C)が注目基本ブロック内の右下端の画素を含んでいるか否かで判断することができる。図8Eでは、注目サブブロック(C)の予測処理時には、左下(BL)および右上(UR)のサブブロックは符号化処理が完了していない。このため、サブブロック(BL)及びサブブロック(UR)は、イントラ予測処理に用いることができない。よって、同図の場合、予測部103は、左下(BL)および右上(UR)のサブブロックは用いずに、残りの左(L)、左上(UL)、上(U)の3つのサブブロックを用いてイントラ予測処理を行う。 Finally, FIG. 8E shows the positional relationship between the attention subblock (C) and the surrounding five subblocks when it is located at the lower right of the basic block. Whether or not the attention subblock (C) is located at the lower right of the attention basic block can be determined by whether or not the attention subblock (C) includes the lower right pixel in the attention basic block. .. In FIG. 8E, at the time of the prediction processing of the attention subblock (C), the coding processing of the lower left (BL) and upper right (UR) subblocks is not completed. Therefore, the subblock (BL) and the subblock (UR) cannot be used for the intra prediction process. Therefore, in the case of the figure, the prediction unit 103 does not use the lower left (BL) and upper right (UR) subblocks, and the remaining three subblocks, left (L), upper left (UL), and upper (U). Intra-prediction processing is performed using.
 一方、インター予測は符号化済フレーム(符号化対象のサブブロックが属するフレームとは異なるフレーム)の画素を参照して、注目ブロック(符号化対象サブブロック)の画素を予測する処理である。例えば、参照対象の符号化済フレームと符号化対象フレームとの間で動きが無い場合は、符号化対象サブブロックの画素は参照対象の符号化済フレームの同一位置の画素を用いて予測される。このような場合、動きが無いことを示す(0、0)動きベクトルが生成される。一方で符号化対象サブブロックに対して、フレーム間で動きが発生している場合にはその動きを示す動きベクトル(MVx、MVy)を生成する。 On the other hand, inter-prediction is a process of predicting the pixels of the block of interest (sub-block to be encoded) by referring to the pixels of the encoded frame (frame different from the frame to which the sub-block to be encoded belongs). For example, if there is no movement between the coded frame of the reference target and the coded frame of the reference target, the pixels of the coded target subblock are predicted using the pixels at the same position of the coded frame of the reference target. .. In such a case, a motion vector (0, 0) indicating that there is no motion is generated. On the other hand, when motion is generated between frames for the subblock to be encoded, a motion vector (MVx, MVy) indicating the motion is generated.
 HEVCをはじめとする画像符号化標準ではこの動きベクトルに関するデータ量をさらに削減するため、「動きベクトル予測」と呼ばれる技術が採用されている。これは符号化済の他のサブブロックの動きベクトルを用いて符号化対象サブブロックの動きベクトルを予測する技術であり、動きベクトルのデータ量を削減する効果がある。例えば、図8BのサブブロックCが動いている物体の一部であった場合、サブブロックCの周辺のサブブロックL、U、UR、L、BLなどを動きベクトル予測子(Motion vector predictor)の候補として選択し、その中で、サブブロックCの動きベクトルと最も近い動きベクトルを動きベクトル予測子とする。そして、例えば、この動きベクトル予測子と、符号化対象サブブロックの動きベクトルとの差分を符号化する。 Image coding standards such as HEVC employ a technique called "motion vector prediction" in order to further reduce the amount of data related to this motion vector. This is a technique for predicting the motion vector of the subblock to be encoded by using the motion vector of another encoded subblock, and has the effect of reducing the amount of data of the motion vector. For example, when the sub-block C in FIG. 8B is a part of a moving object, the sub-blocks L, U, UR, L, BL, etc. around the sub-block C are moved by a motion vector predictor. It is selected as a candidate, and the motion vector closest to the motion vector of the subblock C is used as the motion vector predictor. Then, for example, the difference between the motion vector predictor and the motion vector of the subblock to be encoded is encoded.
 本実施形態の予測部103は、イントラ予測の場合と同様、符号化対象の注目サブブロックCと、その周辺のサブブロックとの位置関係に応じて、動きベクトル予測に用いるサブブロックを制限する。言い換えると、動きベクトル予測子として動きベクトルを選択することができる(利用可能とする)サブブロックを、周辺のサブブロックとの位置関係に応じて異ならせる。 As in the case of intra-prediction, the prediction unit 103 of the present embodiment limits the sub-blocks used for motion vector prediction according to the positional relationship between the sub-block C of interest to be encoded and the sub-blocks around it. In other words, the subblocks from which the motion vector can be selected (enabled) as the motion vector predictor are made different according to the positional relationship with the surrounding subblocks.
 例えば、図8Bの場合、すなわち符号化対象サブブロック(C)が基本ブロックの左上に位置している場合、左下(BL)、左(L)、左上(UL)、上(U)、右上(UR)の5つ全てのサブブロックは符号化済みであるので、それらの動きベクトル(動きベクトルメモリ112に格納されている)が動きベクトル予測子の候補として選択可能である。予測部103は、これら5つ全てのサブブロックの動きベクトルを動きベクトル予測子の候補として動きベクトル予測を行う。ただし、これらのサブブロックは動きベクトルを有していない場合もあり、その場合は、そのサブブロックの動きベクトルは用いることができない。例えば、あるサブブロックがイントラ予測を用いて符号化されている場合は、そのブロックには動きベクトルを有していないこととなる。このことは、以下の図8C乃至8Eの説明でも同様である。 For example, in the case of FIG. 8B, that is, when the coded subblock (C) is located at the upper left of the basic block, the lower left (BL), left (L), upper left (UL), upper (U), upper right ( Since all five subblocks of UR) are encoded, their motion vectors (stored in the motion vector memory 112) can be selected as motion vector predictors. The prediction unit 103 performs motion vector prediction using the motion vectors of all five subblocks as candidates for the motion vector predictor. However, these sub-blocks may not have a motion vector, in which case the motion vector of that sub-block cannot be used. For example, if a subblock is encoded using intra-prediction, that block does not have a motion vector. This also applies to the following description of FIGS. 8C to 8E.
 また、本実施形態では、状況によっては、これら5つ全てのサブブロックの動きベクトルを動きベクトル予測子の候補として動きベクトル予測を行うことが可能なことがある場合について説明するが、動きベクトル予測に用いることができるサブブロックの最大数はこれら5つのサブブロックに限らず、5つのサブブロックの内の一部でもよいし、他のサブブロックを加えてもよい。ただし、いずれにしても、後述するように符号化対象サブブロック(C)の位置に応じて、使用可能なサブブロックは制限を受けることとなる。 Further, in the present embodiment, a case where it is possible to perform motion vector prediction using the motion vectors of all five subblocks as candidates for the motion vector predictor will be described depending on the situation. The maximum number of subblocks that can be used for is not limited to these five subblocks, but may be a part of the five subblocks, or other subblocks may be added. However, in any case, as will be described later, the subblocks that can be used are limited depending on the position of the subblock (C) to be encoded.
 一方、図8Cの場合、すなわち符号化対象サブブロック(C)が基本ブロックの右上に位置している場合、予測部103は、イントラ予測の場合と同様、符号化済でない左下(BL)のサブブロックの動きベクトルと、現在の基本ブロックの右上の基本ブロックに属する右上(UR)のサブブロックの動きベクトルは、常に、当該符号化対象サブブロック(C)の動きベクトル予測に用いない。言い換えると、この場合、左下(BL)のブロックの動きベクトルを動きベクトル予測子の候補とすることは禁止(制限)される。また、右上(UR)のブロックの動きベクトルを動きベクトル予測子の候補とすることも禁止(制限)される。 On the other hand, in the case of FIG. 8C, that is, when the coded subblock (C) is located at the upper right of the basic block, the prediction unit 103 uses the unencoded lower left (BL) sub as in the case of intra prediction. The motion vector of the block and the motion vector of the upper right (UR) subblock belonging to the upper right basic block of the current basic block are not always used for the motion vector prediction of the coded subblock (C). In other words, in this case, it is prohibited (restricted) that the motion vector of the lower left (BL) block is a candidate for the motion vector predictor. It is also prohibited (restricted) to use the motion vector of the upper right (UR) block as a candidate for the motion vector predictor.
 よって、予測部103は、残りの左(L)、左上(UL)、上(U)の3つのサブブロックの動きベクトルを動きベクトル予測子の候補として動きベクトル予測を行う。これにより、イントラ予測の場合と同様、符号化処理を並列に実行しているか否かに関わらず、左下(BL)のサブブロックの動きベクトルと、右上(UR)のサブブロックの動きベクトルとは、動きベクトル予測子の候補とすることは禁止するため、右上基本ブロックの参照により生じていた画素値の保持などの実装コストを低下させることができる。 Therefore, the prediction unit 103 performs motion vector prediction using the motion vectors of the remaining three sub-blocks (L), upper left (UL), and upper (U) as candidates for the motion vector predictor. As a result, as in the case of intra prediction, the motion vector of the lower left (BL) subblock and the motion vector of the upper right (UR) subblock are different regardless of whether or not the coding processing is executed in parallel. Since it is prohibited to be a candidate for a motion vector predictor, it is possible to reduce the implementation cost such as holding the pixel value caused by the reference of the upper right basic block.
 同様に、図8Dの場合、すなわち符号化対象サブブロック(C)が基本ブロックの左下に位置している場合、予測部103は、符号化済でない左下(BL)の動きベクトルは動きベクトル予測に用いない。つまり、この場合、左下(BL)の動きベクトルを、動きベクトル予測子の候補とすることは禁止(制限)される。よって、予測部103は、残りの左(L)、左上(UL)、上(U)、右上(UR)の4つのサブブロックの動きベクトルを動きベクトル予測子の候補として動きベクトル予測を行う。 Similarly, in the case of FIG. 8D, that is, when the coded subblock (C) is located at the lower left of the basic block, the prediction unit 103 uses the unencoded lower left (BL) motion vector to predict the motion vector. Not used. That is, in this case, it is prohibited (restricted) that the motion vector at the lower left (BL) is a candidate for the motion vector predictor. Therefore, the prediction unit 103 performs motion vector prediction using the motion vectors of the remaining four sub-blocks (L), upper left (UL), upper (U), and upper right (UR) as candidates for the motion vector predictor.
 最後に、図8Eの場合、すなわち符号化対象サブブロック(C)が基本ブロックの右下に位置している場合、予測部103は、符号化済でない左下(BL)の動きベクトルおよび右上(UR)の動きベクトルは動きベクトル予測に用いない。つまり、この場合、左下(BL)のブロックの動きベクトルを動きベクトル予測子の候補とすることは禁止(制限)される。また、右上(UR)のブロックの動きベクトルを動きベクトル予測子の候補とすることも禁止(制限)される。よって、予測部103は、残りの左(L)、左上(UL)、上(U)の3つのサブブロックの動きベクトルを動きベクトル予測子の候補として用いて動きベクトル予測を行う。 Finally, in the case of FIG. 8E, that is, when the coded subblock (C) is located at the lower right of the basic block, the prediction unit 103 uses the unencoded lower left (BL) motion vector and upper right (UR). ) Motion vector is not used for motion vector prediction. That is, in this case, it is prohibited (restricted) that the motion vector of the lower left (BL) block is a candidate for the motion vector predictor. It is also prohibited (restricted) to use the motion vector of the upper right (UR) block as a candidate for the motion vector predictor. Therefore, the prediction unit 103 uses the motion vectors of the remaining three sub-blocks (L), upper left (UL), and upper (U) as candidates for the motion vector predictor to perform motion vector prediction.
 予測部103は、上記のようにして決定したイントラ予測モードや動きベクトルおよび符号化済の画素から予測画像データを生成し、さらに入力された画像データと前記予測画像データから予測誤差を生成し、変換・量子化部104に出力する。また、予測部103は、サブブロック分割やイントラ予測モード、動きベクトルなどの情報は予測情報として、符号化部109、画像再生部106、動きベクトルメモリ112に出力する。 The prediction unit 103 generates prediction image data from the intra prediction mode determined as described above, the motion vector, and the encoded pixels, and further generates a prediction error from the input image data and the prediction image data. Output to the conversion / quantization unit 104. Further, the prediction unit 103 outputs information such as subblock division, intra prediction mode, and motion vector as prediction information to the coding unit 109, the image reproduction unit 106, and the motion vector memory 112.
 変換・量子化部104は、入力された予測誤差に直交変換・量子化を行い、量子化係数を生成する。具体的には、変換・量子化部104は、まず、サブブロックのサイズに対応した直交変換処理を施して、直交変換係数を生成する。次に、変換・量子化部104は、直交変換係数を量子化し、量子化係数を生成する。そして、変換・量子化部104は、生成した量子化係数を符号化部109および逆量子化・逆変換部105に出力する。 The conversion / quantization unit 104 performs orthogonal conversion / quantization on the input prediction error and generates a quantization coefficient. Specifically, the conversion / quantization unit 104 first performs an orthogonal conversion process corresponding to the size of the subblock to generate an orthogonal conversion coefficient. Next, the conversion / quantization unit 104 quantizes the orthogonal conversion coefficient and generates the quantization coefficient. Then, the conversion / quantization unit 104 outputs the generated quantization coefficient to the coding unit 109 and the inverse quantization / inverse conversion unit 105.
 逆量子化・逆変換部105は、入力した量子化係数を逆量子化して変換係数を再生し、さらに再生された変換係数を逆直交変換して予測誤差を再生する。そして、逆量子化・逆変換部105は、再生した予測誤差を画像再生部106に出力する。 The inverse quantization / inverse conversion unit 105 inversely quantizes the input quantization coefficient to reproduce the conversion coefficient, and further performs inverse orthogonal conversion of the reproduced conversion coefficient to reproduce the prediction error. Then, the inverse quantization / inverse conversion unit 105 outputs the reproduced prediction error to the image reproduction unit 106.
 画像再生部106は、予測部103から入力される予測情報に基づいて、フレームメモリ107や動きベクトルメモリ112を適宜参照し、予測画像を再生する。イントラ予測が用いられている場合には、画像再生部106はフレームメモリ107に格納されている周辺の符号化済サブブロックの画素を用いて予測画像を再生する。この場合、符号化対象サブブロックと周辺の符号化済サブブロックとの位置関係に応じて、イントラ予測に用いるサブブロックが制限されるが、その制限方法は予測部103の予測処理における制限方法と同様であるため、ここでの説明は省略する。同様に、インター予測が用いられている場合は、画像再生部106は、予測部103で決定した動きベクトルに基づいて、フレームメモリ107に格納されている他のフレームの符号化済サブブロックの画素を用いて予測画像を生成する。この場合、符号化対象サブブロックと周辺の符号化済サブブロックとの位置関係に応じて、動きベクトル予測に用いるサブブロックが制限されるが、その制限方法は予測部103の予測処理における制限方法と同様であるため、ここでの説明は省略する。画像再生部106は、そして再生された予測画像と、逆量子化・逆変換部105から入力された再生された予測誤差から画像データを再生し、再生した画像データをフレームメモリ107に格納する。 The image reproduction unit 106 appropriately refers to the frame memory 107 and the motion vector memory 112 based on the prediction information input from the prediction unit 103, and reproduces the predicted image. When intra-prediction is used, the image reproduction unit 106 reproduces the predicted image using the pixels of the peripheral encoded subblocks stored in the frame memory 107. In this case, the subblocks used for intra-prediction are limited according to the positional relationship between the coded subblock and the peripheral coded subblocks, and the limiting method is the limiting method in the prediction processing of the prediction unit 103. Since the same is true, the description here will be omitted. Similarly, when inter-prediction is used, the image reproduction unit 106 uses the pixels of the encoded subblocks of other frames stored in the frame memory 107 based on the motion vector determined by the prediction unit 103. Is used to generate a predicted image. In this case, the subblocks used for motion vector prediction are limited according to the positional relationship between the coded subblock and the peripheral coded subblocks, and the limiting method is the limiting method in the prediction process of the prediction unit 103. Since it is the same as the above, the description here is omitted. The image reproduction unit 106 then reproduces the image data from the reproduced predicted image and the reproduced prediction error input from the inverse quantization / inverse conversion unit 105, and stores the reproduced image data in the frame memory 107.
 インループフィルタ部108は、フレームメモリ107から再生画像を読み出し、デブロッキングフィルタなどのインループフィルタ処理を行う。そして、インループフィルタ部108は、フィルタ処理された画像データをフレームメモリ107に再格納する。 The in-loop filter unit 108 reads the reproduced image from the frame memory 107 and performs in-loop filter processing such as a deblocking filter. Then, the in-loop filter unit 108 re-stores the filtered image data in the frame memory 107.
 符号化部109は、ブロック単位で、変換・量子化部104で生成された量子化係数、予測部103から入力された予測情報をエントロピー符号化し、符号データを生成する。エントロピー符号化の方法は特に問わないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。符号化部109は、生成した符号データを統合符号化部110に出力する。 The coding unit 109 entropy-encodes the quantization coefficient generated by the conversion / quantization unit 104 and the prediction information input from the prediction unit 103 in block units to generate code data. The method of entropy coding is not particularly limited, but Golomb coding, arithmetic coding, Huffman coding and the like can be used. The coding unit 109 outputs the generated code data to the integrated coding unit 110.
 統合符号化部110は、復号側でビットストリームの復号に必要となる、シーケンスやピクチャのヘッダ部分に符号化されるヘッダ符号データを生成する。統合符号化部110は、さらに、ヘッダ符号データに後続するように、符号化部109から入力された符号データなどを多重化(統合)してビットストリームを形成する。そして、符号化部109は、形成したビットストリームを、出力端子111を介して外部に出力する。 The integrated coding unit 110 generates header code data encoded in the header part of the sequence or picture, which is necessary for decoding the bit stream on the decoding side. The integrated coding unit 110 further multiplexes (integrates) the code data and the like input from the coding unit 109 so as to follow the header code data to form a bit stream. Then, the coding unit 109 outputs the formed bit stream to the outside via the output terminal 111.
 図6は第1の実施形態で出力されるビットストリームのデータ構造の一例を示している。ピクチャ単位の符号化データであるピクチャデータに先立ち、シーケンス単位でのヘッダ情報が含まれるシーケンスヘッダやピクチャ単位でのヘッダ情報が含まれるピクチャヘッダが存在する。 FIG. 6 shows an example of the data structure of the bitstream output in the first embodiment. Prior to the picture data, which is the coded data for each picture, there are a sequence header that includes header information for each sequence and a picture header that includes header information for each picture.
 図3は、実施形態の画像符号化装置における制御部150の1フレーム分の符号化処理を示すフローチャートである。 FIG. 3 is a flowchart showing the coding process for one frame of the control unit 150 in the image coding device of the embodiment.
 まず、画像の符号化に先立ち、S301にて、制御部150は、統合符号化部110を制御し、画像のサイズ(1フレームの水平、垂直方向の画素数)や基本ブロックの大きさなど、画像データの符号化や復号側でのビットストリームの復号に必要なヘッダ情報を符号化させ、出力させる。 First, prior to image coding, in S301, the control unit 150 controls the integrated coding unit 110 to determine the size of the image (the number of pixels in the horizontal and vertical directions of one frame), the size of the basic block, and the like. The header information necessary for encoding the image data and decoding the bit stream on the decoding side is encoded and output.
 S302にて、制御部150はブロック分割部102を制御し、入力したフレーム画像を基本ブロック単位に分割し、その1つを予測部103に出力させる。 In S302, the control unit 150 controls the block division unit 102, divides the input frame image into basic block units, and outputs one of them to the prediction unit 103.
 S303にて、制御部150は予測部103を制御し、S302にて生成された基本ブロック単位の画像データに対する予測処理を実行させ、サブブロック分割情報や予測モードなどの予測情報および予測画像データを生成させる。予測部103は、さらに入力された画像データと前記予測画像データから予測誤差を算出し、出力する。 In S303, the control unit 150 controls the prediction unit 103 to execute prediction processing on the image data of the basic block unit generated in S302, and performs prediction information such as subblock division information and prediction mode and prediction image data. Generate. The prediction unit 103 further calculates a prediction error from the input image data and the predicted image data, and outputs the prediction error.
 S304にて、制御部150は変換・量子化部104を制御し、直交変換、量子化を行わせる。これにより、変換・量子化部104は、S303で算出された予測誤差に対する直交変換を実行し、変換係数を生成する。そして、変換・量子化部104は、その変換係数に対する量子化を行い、量子化係数を生成する。 In S304, the control unit 150 controls the conversion / quantization unit 104 to perform orthogonal conversion and quantization. As a result, the conversion / quantization unit 104 executes orthogonal conversion with respect to the prediction error calculated in S303 and generates a conversion coefficient. Then, the conversion / quantization unit 104 performs quantization with respect to the conversion coefficient to generate a quantization coefficient.
 S305にて、制御部150は逆量子化・逆変換部105を制御し、逆量子化、逆直交変換を行わせる。これにより、逆量子化・逆変換部105は、S304にて生成された量子化係数を逆量子化し、変換係数を再生する。更に、逆量子化・逆変換部105は、その変換係数に対して逆直交変換し、予測誤差を再生する。 In S305, the control unit 150 controls the inverse quantization / inverse conversion unit 105 to perform inverse quantization and inverse orthogonal conversion. As a result, the inverse quantization / inverse conversion unit 105 dequantizes the quantization coefficient generated in S304 and reproduces the conversion coefficient. Further, the inverse quantization / inverse conversion unit 105 performs inverse orthogonal conversion with respect to the conversion coefficient and reproduces the prediction error.
 S306にて、制御部150は画像再生部106を制御し、画像を再生させる。具体的には、画像再生部106は、S303で生成された予測情報に基づいて予測画像を再生する。更に、画像再生部106は、再生された予測画像と、S305で生成された予測誤差から画像データを再生し、フレームメモリ107に格納する。 In S306, the control unit 150 controls the image reproduction unit 106 to reproduce the image. Specifically, the image reproduction unit 106 reproduces the predicted image based on the prediction information generated in S303. Further, the image reproduction unit 106 reproduces the image data from the reproduced predicted image and the prediction error generated in S305, and stores the image data in the frame memory 107.
 S307にて、制御部150は符号化部109を制御し、画像の符号化を行わせる。具体的には、符号化部109は、S303で生成された予測情報およびS304で生成された量子化係数を符号化し、符号データを生成する。また、符号化部109は他の符号データも含め、ビットストリームを生成する。 In S307, the control unit 150 controls the coding unit 109 to encode the image. Specifically, the coding unit 109 encodes the prediction information generated in S303 and the quantization coefficient generated in S304 to generate code data. In addition, the coding unit 109 generates a bit stream including other code data.
 S308にて、制御部150は、注目フレーム内の全ての基本ブロックの符号化が終了したか否かの判定を行い、終了していればS309に処理を進め、未符号化の基本ブロックがあると判定した場合は、その基本ブロックを符号化するため処理をS302に戻す。 In S308, the control unit 150 determines whether or not the coding of all the basic blocks in the frame of interest is completed, and if so, proceeds to S309 if the coding is completed, and there is an uncoded basic block. If it is determined, the process is returned to S302 in order to encode the basic block.
 S309にて、制御部150はインループフィルタ部108を制御し、フィルタ処理を実行させる。具体的には、インループフィルタ部108は、フレームメモリ107に格納された画像(S306で再生された画像データ)に対し、インループフィルタ処理を行い、フィルタ処理された画像データをフレームメモリ107に再格納し、本処理を終える。 In S309, the control unit 150 controls the in-loop filter unit 108 to execute the filter processing. Specifically, the in-loop filter unit 108 performs in-loop filter processing on the image (image data reproduced in S306) stored in the frame memory 107, and transfers the filtered image data to the frame memory 107. Restore and finish this process.
 以上の構成と動作、特にS303において、複数の基本ブロックで構成されるブロック行ごとに並列に符号化するか否かに関わらずに、符号化対象のサブブロック(注目サブブロック)が属する基本ブロックの右上に隣接する基本ブロックに属するサブブロックを参照せずに予測処理を行うことで、実装の複雑度を低減し、さらには符号化の並列処理の実現性も高めることができる。 In the above configuration and operation, especially in S303, the basic block to which the subblock to be encoded (the subblock of interest) belongs regardless of whether or not each block line composed of a plurality of basic blocks is encoded in parallel. By performing the prediction processing without referring to the subblocks belonging to the basic block adjacent to the upper right of the above, the complexity of implementation can be reduced and the feasibility of parallel processing of coding can be improved.
 図2は、実施形態における上記画像符号化装置で生成された符号化画像データから、サブブロック単位に、イントラ予測復号、インター予測復号を行う画像復号装置のブロック構成図である。以下、同図を参照し、復号処理に係る構成とその動作を説明する。なお、当該符号化画像データを復号する復号処理においても、上述のイントラ予測において用いることができるサブブロックに関する制限や、インター予測において動きベクトル予測子として選択できるサブブロックに関する制限は同様である。 FIG. 2 is a block configuration diagram of an image decoding device that performs intra-predictive decoding and inter-predictive decoding in sub-block units from the coded image data generated by the image coding device in the embodiment. Hereinafter, the configuration and its operation related to the decoding process will be described with reference to the figure. In the decoding process for decoding the coded image data, the restrictions on the subblocks that can be used in the above-mentioned intra-prediction and the restrictions on the sub-blocks that can be selected as the motion vector predictor in the inter-prediction are the same.
 画像復号装置は、装置全体の制御を司る制御部250を有する。この制御部250は、CPU、CPUが実行するプログラムを格納するROM、CPUのワークエリアとして利用するRAMを有する。また、画像復号装置は、入力端子201、分離復号部202、復号部203、逆量子化・逆変換部204、画像再生部205、フレームメモリ206、インループフィルタ部207、出力端子208、及び、動きベクトルメモリ209を有する。 The image decoding device has a control unit 250 that controls the entire device. The control unit 250 has a CPU, a ROM for storing a program executed by the CPU, and a RAM used as a work area of the CPU. Further, the image decoding device includes an input terminal 201, a separation decoding unit 202, a decoding unit 203, an inverse quantization / inverse conversion unit 204, an image reproduction unit 205, a frame memory 206, an in-loop filter unit 207, an output terminal 208, and the like. It has a motion vector memory 209.
 入力端子201は、符号化されたビットストリームを入力するものであり、入力源は例えば符号化ストリームを格納した記憶媒体であるが、ネットワークから入力しても良く、その種類は問わない。 The input terminal 201 inputs a coded bit stream, and the input source is, for example, a storage medium storing the coded stream, but it may be input from a network, and the type thereof does not matter.
 分離復号部202は、ビットストリームから復号処理に関する情報や係数に関する符号データに分離し、またビットストリームのヘッダ部に存在する符号データを復号する。分離復号部202は、図1の統合符号化部110と逆の動作を行う。 The separation / decoding unit 202 separates the bitstream into code data related to information related to decoding processing and coefficients, and decodes the code data existing in the header part of the bitstream. The separation / decoding unit 202 performs the reverse operation of the integrated coding unit 110 of FIG.
 復号部203は、分離復号部202から出力された符号データを復号し、量子化係数および予測情報を再生する。そして、復号部203は、得られた量子化係数や予測情報を逆量子化・逆変換部204、画像再生部205に出力する。また、復号部203は、予測情報に含まれる動きベクトルの情報を、動きベクトルメモリ209に出力し、格納する。 The decoding unit 203 decodes the code data output from the separation decoding unit 202 and reproduces the quantization coefficient and the prediction information. Then, the decoding unit 203 outputs the obtained quantization coefficient and prediction information to the inverse quantization / inverse conversion unit 204 and the image reproduction unit 205. Further, the decoding unit 203 outputs and stores the motion vector information included in the prediction information in the motion vector memory 209.
 逆量子化・逆変換部204は、復号部203から入力した量子化係数に対して逆量子化を行って変換係数を得る。更に、逆量子化・逆変換部204は、変換係数に対して逆直交変換を行い、予測誤差を再生する。 The inverse quantization / inverse conversion unit 204 performs inverse quantization on the quantization coefficient input from the decoding unit 203 to obtain a conversion coefficient. Further, the inverse quantization / inverse conversion unit 204 performs inverse orthogonal transformation on the conversion coefficient and reproduces the prediction error.
 画像再生部205は、入力した予測情報に基づいてフレームメモリ206を適宜参照して予測画像データを生成する。そして、画像再生部205は、この予測画像データと逆量子化・逆変換部204で再生された予測誤差から再生画像データを生成し、フレームメモリに出力(格納)する。 The image reproduction unit 205 appropriately refers to the frame memory 206 based on the input prediction information to generate the prediction image data. Then, the image reproduction unit 205 generates the reproduction image data from the predicted image data and the prediction error reproduced by the inverse quantization / inverse conversion unit 204, and outputs (stores) the reproduced image data to the frame memory.
 インループフィルタ部207は、図1のインループフィルタ部108と同様、再生画像(フレームメモリ206に格納されている)に対し、デブロッキングフィルタなどのインループフィルタ処理を行い、フィルタ処理された画像を出力する。 Similar to the in-loop filter unit 108 of FIG. 1, the in-loop filter unit 207 performs an in-loop filter process such as a deblocking filter on the reproduced image (stored in the frame memory 206), and the filtered image. Is output.
 出力端子208は、フレームメモリ206に格納されたフレーム画像を順次、外部に出力する。出力先は表示装置が一般的であるが、他のデバイスであっても構わない。 The output terminal 208 sequentially outputs the frame images stored in the frame memory 206 to the outside. The output destination is generally a display device, but other devices may be used.
 上記実施形態の画像復号装置の画像の復号に係る動作を、更に詳しく説明する。本実施形態では、符号化されたビットストリームをフレーム単位で入力する構成となっている。 The operation related to image decoding of the image decoding device of the above embodiment will be described in more detail. In the present embodiment, the encoded bit stream is input in frame units.
 図2において、分離復号部202は、入力端子201を介して、1フレーム分のビットストリームを入力もしくは受信する。分離復号部202は、入力したビットストリームから復号処理に関する情報や係数に関する符号データに分離し、ビットストリームのヘッダ部に存在する符号データを復号する。続いて、分離復号部202は、ピクチャデータの基本ブロック単位の符号データを再生し、復号部203に出力する。 In FIG. 2, the separation / decoding unit 202 inputs or receives a bit stream for one frame via the input terminal 201. The separation / decoding unit 202 separates the input bit stream into information related to the decoding process and code data related to the coefficient, and decodes the code data existing in the header unit of the bit stream. Subsequently, the separation / decoding unit 202 reproduces the code data of the basic block unit of the picture data and outputs the code data to the decoding unit 203.
 復号部203は、符号データを復号し、量子化係数および予測情報を再生する。そして、復号部203は、量子化係数を逆量子化・逆変換部204に、予測情報を画像再生部205にそれぞれ出力する。また、復号部203は、予測情報における動きベクトルをサブブロックの位置と対応付けるように、動きベクトルメモリ209に出力し、格納する。 The decoding unit 203 decodes the code data and reproduces the quantization coefficient and the prediction information. Then, the decoding unit 203 outputs the quantization coefficient to the inverse quantization / inverse conversion unit 204 and the prediction information to the image reproduction unit 205, respectively. Further, the decoding unit 203 outputs and stores the motion vector in the prediction information to the motion vector memory 209 so as to correspond to the position of the subblock.
 逆量子化・逆変換部204は、入力された量子化係数に対し、逆量子化を行って直交変換係数を生成する。更に、逆量子化・逆変換部204は、生成した直交変換係数に対して逆直交変換を施して予測誤差を再生する。そして、逆量子化・逆変換部204は、再生した予測誤差を画像再生部205に出力する。 The inverse quantization / inverse conversion unit 204 performs inverse quantization on the input quantization coefficient to generate an orthogonal conversion coefficient. Further, the inverse quantization / inverse conversion unit 204 performs inverse orthogonal transformation on the generated orthogonal transformation coefficient to reproduce the prediction error. Then, the inverse quantization / inverse conversion unit 204 outputs the reproduced prediction error to the image reproduction unit 205.
 画像再生部205は、復号部203から入力された予測情報及び動きベクトルメモリ209を参照し、フレームメモリ206を適宜参照し、予測画像を再生する。本実施形態では、画像符号化装置の予測部103と同様、イントラ予測およびインター予測の2種類の予測方法が用いられる。復号対象サブブロックと周辺の復号済サブブロックとの位置関係に応じて予測処理に用いるサブブロックを制限するが、具体的な予測画像の再生処理については、画像符号化装置における画像再生部106と同様であるため、説明を省略する。画像再生部205は、この予測画像と逆量子化・逆変換部204から入力された予測誤差から画像データを再生し、その再生画像データをフレームメモリ206に格納する。格納された画像データは予測の際の参照に用いられることになる。 The image reproduction unit 205 reproduces the predicted image by referring to the prediction information and the motion vector memory 209 input from the decoding unit 203 and appropriately referring to the frame memory 206. In this embodiment, two types of prediction methods, intra-prediction and inter-prediction, are used as in the prediction unit 103 of the image coding apparatus. The subblocks used for the prediction processing are limited according to the positional relationship between the decoding target subblock and the peripheral decoded subblocks. However, for specific prediction image reproduction processing, the image reproduction unit 106 in the image coding apparatus Since the same is true, the description thereof will be omitted. The image reproduction unit 205 reproduces the image data from the predicted image and the prediction error input from the inverse quantization / inverse conversion unit 204, and stores the reproduced image data in the frame memory 206. The stored image data will be used as a reference when making a prediction.
 なお、画像再生部205においても、画像符号化装置の予測部103と同じように、イントラ予測において用いることができるサブブロックが制限される。そのため、不要なデータを他のブロックにおいて参照するために記憶しておく必要がなく、また、他のブロックのためにデータを記憶しておくかどうかの判断が簡易となるため、メモリ使用量の低減や、実装の複雑度の低減を実現することができる。また、画像符号化装置の予測部103と同じように、インター予測において動きベクトル予測子として選択できるサブブロックについても制限される。このことも、実装の複雑度の低減や、メモリ使用量の低減に寄与する。 Note that the image reproduction unit 205 also limits the sub-blocks that can be used in the intra-prediction, as in the prediction unit 103 of the image coding device. Therefore, it is not necessary to store unnecessary data for reference in other blocks, and it is easy to determine whether to store data for other blocks, so that the memory usage amount It is possible to reduce the complexity of implementation and reduce the complexity of implementation. Further, similarly to the prediction unit 103 of the image coding device, the subblocks that can be selected as the motion vector predictor in the inter-prediction are also limited. This also contributes to the reduction of implementation complexity and the reduction of memory usage.
 インループフィルタ部207は、画像符号化装置のインループフィルタ部108と同様、フレームメモリ206から再生画像データを読み出し、デブロッキングフィルタなどのインループフィルタ処理を行う。そして、インループフィルタ部207は、フィルタ処理された画像を再びフレームメモリ206に格納する。フレームメモリ206に格納され、フィルタ処理された再生画像は、最終的には端子208から外部(ディスプレイなど)に出力される。 Like the in-loop filter unit 108 of the image coding device, the in-loop filter unit 207 reads the reproduced image data from the frame memory 206 and performs in-loop filter processing such as a deblocking filter. Then, the in-loop filter unit 207 stores the filtered image in the frame memory 206 again. The reproduced image stored in the frame memory 206 and filtered is finally output from the terminal 208 to the outside (display or the like).
 図4は、実施形態に係る画像復号装置における制御部250の1フレームの画像の復号処理を示すフローチャートである。以下同図を参照して、復号処理を説明する。 FIG. 4 is a flowchart showing a one-frame image decoding process of the control unit 250 in the image decoding device according to the embodiment. The decoding process will be described below with reference to the same figure.
 S401にて、制御部250は、分離復号部202を制御し、ビットストリームから復号処理に関する情報や画像データの符号データに分離し、復号の際に必要となる情報の取得と、画像の符号データを復号部203に出力させる。 In S401, the control unit 250 controls the separation / decoding unit 202 to separate the bit stream into information related to the decoding process and code data of the image data, acquire information required for decoding, and code data of the image. Is output to the decoding unit 203.
 S402にて、制御部250は復号部203を制御し、S401で分離された符号データを復号させ、量子化係数および予測情報を再生させる。 In S402, the control unit 250 controls the decoding unit 203, decodes the code data separated in S401, and reproduces the quantization coefficient and the prediction information.
 S403にて、制御部250は逆量子化・逆変換部204を制御し、逆量子化、逆直交変換を行わせる。具体的には、逆量子化・逆変換部204は、制御部250の制御下にて、各サブブロックの量子化係数に対し逆量子化を行って変換係数を得て、更に、その変換係数に対して逆直交変換を行うことで、予測誤差を再生する。 In S403, the control unit 250 controls the inverse quantization / inverse conversion unit 204 to perform inverse quantization and inverse orthogonal conversion. Specifically, the inverse quantization / inverse conversion unit 204 performs inverse quantization on the quantization coefficient of each subblock under the control of the control unit 250 to obtain a conversion coefficient, and further, the conversion coefficient is obtained. The prediction error is reproduced by performing the inverse orthogonal transformation on the.
 S404にて、制御部250は画像再生部205を制御し、画像データを再生させる。具体的には、画像再生部205は、予測情報に基づき予測画像を再生する。そして、画像再生部205は、予測画像に、S404で生成された予測誤差を加算することで、画像データを再生する。 In S404, the control unit 250 controls the image reproduction unit 205 to reproduce the image data. Specifically, the image reproduction unit 205 reproduces the predicted image based on the predicted information. Then, the image reproduction unit 205 reproduces the image data by adding the prediction error generated in S404 to the predicted image.
 S405にて、制御部250は、注目フレームの復号処理を終えたか否か、つまり、注目フレーム内の全ての基本ブロックおよびその内部の全サブブロックの復号が終了したか否かの判定を行う。そして、制御部250は、注目フレームに対する復号が完了した場合には、処理をS406に進め、未復号の基本ブロックやサブブロックが存在する場合は、次の基本ブロックもしくはサブブロックの復号を行うため、処理をS402に戻す。 In S405, the control unit 250 determines whether or not the decoding process of the frame of interest has been completed, that is, whether or not the decoding of all the basic blocks in the frame of interest and all the subblocks inside the frame has been completed. Then, when the decoding of the frame of interest is completed, the control unit 250 proceeds to S406, and if there is an undecrypted basic block or subblock, the control unit 250 decodes the next basic block or subblock. , The process is returned to S402.
 S406にて、制御部250はインループフィルタ部207を制御し、フレームメモリ206に格納された画像データ(S404で再生された画像データ)に対し、インループフィルタ処理を行い、フィルタ処理された画像を生成し、処理を終了する。 In S406, the control unit 250 controls the in-loop filter unit 207, performs in-loop filter processing on the image data (image data reproduced in S404) stored in the frame memory 206, and filters the image. Is generated and the process ends.
 以上説明したように本実施形態の画像復号装置によれば、ブロック行ごとに並列に符号化されたか否かに関わらずに、復号対象のサブブロック(注目サブブロック)が属する基本ブロックの右上に隣接する基本ブロックに属するサブブロックを参照せずに予測処理を行ったビットストリームを復号することができる。結果として、実装の複雑度が低減されるため、復号の並列処理の実現性も高めることができる。 As described above, according to the image decoding apparatus of the present embodiment, regardless of whether or not each block line is encoded in parallel, the subblock to be decoded (the subblock of interest) belongs to the upper right of the basic block. It is possible to decode a bitstream that has undergone prediction processing without referring to subblocks that belong to adjacent basic blocks. As a result, the complexity of implementation is reduced, and the feasibility of parallel processing of decoding can be improved.
 [第2の実施形態]
 上記実施形態の画像符号化装置及び画像復号装置が有する各処理部は、ハードウェアでもって構成しているものとして説明した。しかし、これらの図に示した各処理部で行う処理を、コンピュータプログラムでもって構成しても良い。
[Second Embodiment]
Each processing unit included in the image coding device and the image decoding device of the above embodiment has been described as being configured by hardware. However, the processing performed by each processing unit shown in these figures may be configured by a computer program.
 図5は、上記実施形態に係る画像符号化装置、画像復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。 FIG. 5 is a block diagram showing a configuration example of computer hardware applicable to the image coding device and the image decoding device according to the above embodiment.
 CPU501は、RAM502やROM503に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU501は、図1、図2に示した各処理部として機能することになる。 The CPU 501 controls the entire computer by using the computer programs and data stored in the RAM 502 and the ROM 503, and executes each of the above-described processes as performed by the image processing device according to the above embodiment. That is, the CPU 501 functions as each processing unit shown in FIGS. 1 and 2.
 RAM502は、外部記憶装置506、I/F(インターフェース)507を介して外部から取得したプログラムやデータなどを一時的に記憶するためのエリアを有する。更に、RAM502は、CPU501が各種の処理を実行する際に用いるワークエリアとしても利用される。RAM502は、例えば、フレームメモリとして割り当てたり、その他の各種のエリアを適宜提供したりすることができる。 The RAM 502 has an area for temporarily storing programs and data acquired from the outside via the external storage device 506 and the I / F (interface) 507. Further, the RAM 502 is also used as a work area used by the CPU 501 when executing various processes. The RAM 502 can be allocated as a frame memory, for example, or various other areas can be provided as appropriate.
 ROM503には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部504は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU501に対して入力することができる。表示部505は、CPU501による処理結果を表示する。また表示部505は例えば液晶ディスプレイで構成される。 The ROM 503 stores the setting data of this computer, the boot program, and the like. The operation unit 504 is composed of a keyboard, a mouse, and the like, and can be operated by a user of the computer to input various instructions to the CPU 501. The display unit 505 displays the processing result by the CPU 501. The display unit 505 is composed of, for example, a liquid crystal display.
 外部記憶装置506は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置506には、OS(オペレーティングシステム)や、図1、図2に示した各部の機能をCPU501に実現させるためのコンピュータプログラム(アプリケーションプログラム)が保存されている。更には、外部記憶装置506には、処理対象としての各画像データが保存されていても良い。 The external storage device 506 is a large-capacity information storage device represented by a hard disk drive device. The external storage device 506 stores an OS (operating system) and a computer program (application program) for realizing the functions of the respective parts shown in FIGS. 1 and 2 in the CPU 501. Further, each image data as a processing target may be stored in the external storage device 506.
 外部記憶装置506に保存されているコンピュータプログラムやデータは、CPU501による制御に従って適宜、RAM502にロードされ、CPU501による処理対象となる。I/F507には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F507を介して様々な情報を取得したり、送出したりすることができる。508は上述の各部を繋ぐバスである。 The computer programs and data stored in the external storage device 506 are appropriately loaded into the RAM 502 according to the control by the CPU 501, and are processed by the CPU 501. A network such as a LAN or the Internet, or other devices such as a projection device or a display device can be connected to the I / F 507, and the computer acquires and sends various information via the I / F 507. Can be done. Reference numeral 508 is a bus connecting the above-mentioned parts.
 上記構成において、本装置に電源が投入されると、CPU501はROM503に格納されたブートプログラムを実行し、外部記憶装置506に格納されたOSをRAM502にロードし実行する。そして、CPU501は、OSの制御下にて、外部記憶装置506から符号化、或いは、復号に係るアプリケーションプログラムをRAM502にロードし、実行する。この結果、CPU501は、図1或いは図2の各処理部として機能し、本装置が画像符号化装置、或いは、画像復号装置として機能することになる。 In the above configuration, when the power is turned on to the present device, the CPU 501 executes the boot program stored in the ROM 503, loads the OS stored in the external storage device 506 into the RAM 502, and executes the boot program. Then, under the control of the OS, the CPU 501 loads the application program related to encoding or decoding from the external storage device 506 into the RAM 502 and executes it. As a result, the CPU 501 functions as each processing unit of FIG. 1 or 2, and the present device functions as an image coding device or an image decoding device.
 (その他の実施例)
 本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other Examples)
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
 本発明は静止画・動画の符号化・復号を行う符号化装置・復号装置に用いられる。特に、イントラ予測やインター予測を使用する符号化方式および復号方式に適用が可能である。 The present invention is used in a coding device / decoding device that encodes / decodes still images / moving images. In particular, it can be applied to coding methods and decoding methods that use intra-prediction and inter-prediction.
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。 The present invention is not limited to the above embodiments, and various modifications and modifications can be made without departing from the spirit and scope of the present invention. Therefore, in order to make the scope of the present invention public, the following claims are attached.
 本願は、2019年6月20日提出の日本国特許出願特願2019-114933を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。 This application claims priority based on Japanese Patent Application No. 2019-114933 submitted on June 20, 2019, and all the contents thereof are incorporated herein by reference.

Claims (9)

  1.  画像を符号化する画像符号化装置であって、
     符号化対象のフレーム画像を、所定のサイズの基本ブロックに分割し、当該基本ブロックを更に複数のサブブロックに分割する分割手段と、
     該分割手段で得たサブブロックに対して、イントラ予測、または、インター予測を実行する予測手段とを有し、
     前記予測手段は、
       注目基本ブロック内の注目サブブロックに対してイントラ予測を実行する場合であって、前記注目サブブロックの右上に位置するサブブロックが前記注目基本ブロックの右上に位置する基本ブロック内にある場合においては常に、前記注目サブブロックの右上に位置するサブブロックを、前記注目サブブロックに対するイントラ予測における参照対象から除外して、当該イントラ予測を行う
     ことを特徴とする画像符号化装置。
    An image coding device that encodes an image.
    A division means for dividing a frame image to be encoded into basic blocks of a predetermined size and further dividing the basic block into a plurality of subblocks.
    It has a prediction means for executing intra-prediction or inter-prediction for the subblocks obtained by the division means.
    The prediction means is
    In the case where the intra prediction is executed for the attention subblock in the attention basic block, and the subblock located at the upper right of the attention subblock is in the basic block located at the upper right of the attention basic block. An image coding apparatus characterized in that a subblock located at the upper right of the attention subblock is always excluded from the reference target in the intra prediction for the attention subblock to perform the intra prediction.
  2.  前記予測手段は、
     前記注目サブブロックが、前記注目基本ブロックにおいて第1の位置にある場合は、
     前記注目サブブロックの左上に隣接するサブブロックの画素、前記注目サブブロックの上に隣接するサブブロックの画素、前記注目サブブロックの右上に隣接するサブブロックの画素、及び、前記注目サブブロックの左に隣接するサブブロックの画素を参照して予測画像を生成する
     ことを特徴とする請求項1に記載の画像符号化装置。
    The prediction means is
    When the attention subblock is in the first position in the attention basic block,
    Pixels of a subblock adjacent to the upper left of the attention subblock, pixels of a subblock adjacent to the attention subblock, pixels of a subblock adjacent to the upper right of the attention subblock, and left of the attention subblock. The image coding apparatus according to claim 1, wherein a predicted image is generated by referring to pixels of a subblock adjacent to the image.
  3.  前記予測手段は、
     前記注目サブブロックが、前記注目基本ブロックにおいて前記第1の位置とは異なる第2の位置にある場合は、
     前記注目サブブロックの左上に隣接するサブブロック、前記注目サブブロックの上に隣接するサブブロック、及び、前記注目サブブロックの左に隣接するサブブロックを参照して予測画像を生成する
     ことを特徴とする請求項1又は2に記載の画像符号化装置。
    The prediction means is
    When the attention subblock is in a second position different from the first position in the attention basic block,
    It is characterized in that a prediction image is generated by referring to a subblock adjacent to the upper left of the attention subblock, a subblock adjacent to the attention subblock, and a subblock adjacent to the left of the attention subblock. The image coding apparatus according to claim 1 or 2.
  4.  フレーム画像を所定のサイズの基本ブロックに分割し、当該基本ブロックを更に複数のサブブロックに分割し、当該サブブロック単位に符号化することによって生成されたビットストリームから画像データを復号する画像復号装置であって、
     前記サブブロックの符号化データおよび復号済の画像データを用いて、イントラ予測、または、インター予測を実行することによって当該サブブロックの画像データを再生する再生手段とを有し、
     前記再生手段は、
       注目サブブロックにおいてイントラ予測を実行する場合であって、当該注目サブブロックの右上に位置するサブブロックが、前記注目サブブロックが属する基本ブロックの右上に位置する基本ブロック内にある場合においては常に、前記注目サブブロックの右上に位置するサブブロックを、前記注目サブブロックに対するイントラ予測における参照対象から除外して、当該イントラ予測を行う
     ことを特徴とする画像復号装置。
    An image decoding device that decodes image data from a bit stream generated by dividing a frame image into basic blocks of a predetermined size, further dividing the basic block into a plurality of subblocks, and encoding each subblock. And
    It has a reproduction means for reproducing the image data of the sub-block by executing intra-prediction or inter-prediction using the coded data of the sub-block and the decoded image data.
    The regeneration means
    Whenever an intra prediction is executed in a attention subblock and the subblock located at the upper right of the attention subblock is within the basic block located at the upper right of the basic block to which the attention subblock belongs. An image decoding apparatus characterized in that a subblock located at the upper right of the attention subblock is excluded from the reference target in the intra prediction for the attention subblock to perform the intra prediction.
  5.  前記再生手段は、
       前記注目サブブロックが、前記注目基本ブロックにおいて第1の位置にある場合は、
       前記注目サブブロックの左上に隣接するサブブロックの画素、前記注目サブブロックの上に隣接するサブブロックの画素、前記注目サブブロックの右上に隣接するサブブロックの画素、及び、前記注目サブブロックの左に隣接するサブブロックの画素を参照して予測画像を生成する
     ことを特徴とする請求項4に記載の画像復号装置。
    The regeneration means
    When the attention subblock is in the first position in the attention basic block,
    Pixels of a subblock adjacent to the upper left of the attention subblock, pixels of a subblock adjacent to the attention subblock, pixels of a subblock adjacent to the upper right of the attention subblock, and left of the attention subblock. The image decoding apparatus according to claim 4, wherein a predicted image is generated by referring to pixels of a subblock adjacent to the image.
  6.  前記再生手段は、
       前記注目サブブロックが、前記注目基本ブロックにおいて前記第1の位置とは異なる第2の位置にある場合は、
       前記注目サブブロックの左上に隣接するサブブロックの画素、前記注目サブブロックの上に隣接するサブブロックの画素、及び、前記注目サブブロックの左に隣接するサブブロックの画素を参照して予測画像を生成する
     ことを特徴とする請求項4又は5に記載の画像復号装置。
    The regeneration means
    When the attention subblock is in a second position different from the first position in the attention basic block,
    The predicted image is obtained by referring to the pixels of the subblock adjacent to the upper left of the attention subblock, the pixels of the subblock adjacent to the attention subblock, and the pixels of the subblock adjacent to the left of the attention subblock. The image decoding apparatus according to claim 4 or 5, characterized in that it is generated.
  7.  画像を符号化する画像符号化方法であって、
     符号化対象のフレーム画像を、所定のサイズの基本ブロックに分割し、当該基本ブロックを更に複数のサブブロックに分割する分割工程と、
     該分割工程で得たサブブロックに対して、イントラ予測、または、インター予測を実行する予測工程とを有し、
     前記予測工程では、
       注目基本ブロック内の注目サブブロックに対してイントラ予測を実行する場合であって、前記注目サブブロックの右上に位置するサブブロックが前記注目基本ブロックの右上に位置する基本ブロック内にある場合においては常に、前記注目サブブロックの右上に位置するサブブロックを、前記注目サブブロックに対するイントラ予測における参照対象から除外して、当該イントラ予測を行う
     ことを特徴とする画像符号化方法。
    An image coding method that encodes an image.
    A division step of dividing a frame image to be encoded into basic blocks of a predetermined size and further dividing the basic block into a plurality of sub-blocks.
    It has a prediction step of executing intra-prediction or inter-prediction for the sub-blocks obtained in the division step.
    In the prediction process,
    In the case where the intra prediction is executed for the attention subblock in the attention basic block, and the subblock located at the upper right of the attention subblock is in the basic block located at the upper right of the attention basic block. An image coding method characterized in that a subblock located at the upper right of the attention subblock is always excluded from the reference target in the intra prediction for the attention subblock, and the intra prediction is performed.
  8.  フレーム画像を所定のサイズの基本ブロックに分割し、当該基本ブロックを更に複数のサブブロックに分割し、当該サブブロック単位に符号化することによって生成されたビットストリームから画像データを復号する画像復号方法であって、
     前記サブブロックの符号化データおよび復号済の画像データを用いて、イントラ予測、または、インター予測を実行することによって当該サブブロックの画像データを再生する再生工程とを有し、
     前記再生工程では、
       注目サブブロックにおいてイントラ予測を実行する場合であって、当該注目サブブロックの右上に位置するサブブロックが、前記注目サブブロックが属する基本ブロックの右上に位置する基本ブロック内にある場合においては常に、前記注目サブブロックの右上に位置するサブブロックを、前記注目サブブロックに対するイントラ予測における参照対象から除外して、当該イントラ予測を行う
     ことを特徴とする画像復号方法。
    An image decoding method for decoding image data from a bit stream generated by dividing a frame image into basic blocks of a predetermined size, further dividing the basic block into a plurality of subblocks, and encoding each subblock. And
    It has a reproduction step of reproducing the image data of the sub-block by executing intra-prediction or inter-prediction using the coded data of the sub-block and the decoded image data.
    In the regeneration step,
    Whenever an intra prediction is executed in a attention subblock and the subblock located at the upper right of the attention subblock is within the basic block located at the upper right of the basic block to which the attention subblock belongs. An image decoding method characterized in that a subblock located at the upper right of the attention subblock is excluded from the reference target in the intra prediction for the attention subblock, and the intra prediction is performed.
  9.  コンピュータが読み込み実行することで、前記コンピュータに、請求項7又は8に記載の方法の各工程を実行させるためのプログラム。 A program for causing the computer to execute each step of the method according to claim 7 or 8 by being read and executed by the computer.
PCT/JP2020/021614 2019-06-20 2020-06-01 Image encoding device, image decoding device and method, and program WO2020255688A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-114933 2019-06-20
JP2019114933A JP2021002722A (en) 2019-06-20 2019-06-20 Image encoding device, image decoding device, method, and program

Publications (1)

Publication Number Publication Date
WO2020255688A1 true WO2020255688A1 (en) 2020-12-24

Family

ID=73994300

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/021614 WO2020255688A1 (en) 2019-06-20 2020-06-01 Image encoding device, image decoding device and method, and program

Country Status (2)

Country Link
JP (1) JP2021002722A (en)
WO (1) WO2020255688A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109790A1 (en) * 2022-11-25 2024-05-30 京东方科技集团股份有限公司 Video data processing method and apparatus, and display apparatus and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008182527A (en) * 2007-01-25 2008-08-07 Matsushita Electric Ind Co Ltd Image coding device and method, and imaging system
WO2013069557A1 (en) * 2011-11-10 2013-05-16 ソニー株式会社 Image processing device and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147846B (en) * 2014-07-07 2022-03-11 寰发股份有限公司 Video coding method using intra block copy mode coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008182527A (en) * 2007-01-25 2008-08-07 Matsushita Electric Ind Co Ltd Image coding device and method, and imaging system
WO2013069557A1 (en) * 2011-11-10 2013-05-16 ソニー株式会社 Image processing device and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109790A1 (en) * 2022-11-25 2024-05-30 京东方科技集团股份有限公司 Video data processing method and apparatus, and display apparatus and storage medium

Also Published As

Publication number Publication date
JP2021002722A (en) 2021-01-07

Similar Documents

Publication Publication Date Title
WO2020184229A1 (en) Image encoding device, image encoding method, and program
JP7545556B2 (en) Image encoding device, image decoding device, and control method and program thereof
WO2020246125A1 (en) Image coding device, image decoding device, method, and program
WO2020255688A1 (en) Image encoding device, image decoding device and method, and program
WO2020184223A1 (en) Image decoder, image decoding method, and program
WO2020255689A1 (en) Image coding device, image decoding device, method, and program
TWI788268B (en) Image encoding device, image decoding device, control method and program thereof
KR102599267B1 (en) Image encoding device, image encoding method and program, image decoding device, image decoding method and program
WO2020003740A1 (en) Image coding device, image decoding device, control methods therefor, and program
WO2020184227A1 (en) Image decoder, image decoding method, and program
KR20220051022A (en) Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and non-transitory computer-readable storage medium
WO2020255820A1 (en) Image encoding device, image decoding device, method, and computer program
JP7536484B2 (en) Image encoding device, image encoding method and program, image decoding device, image decoding method and program
WO2021049277A1 (en) Image coding device and image decoding device
WO2020179365A1 (en) Image encoding device, image encoding method, image decoding device, and image decoding method
WO2020183859A1 (en) Image coding device, image decoding device, image coding method, image decoding method, and program
KR20220055495A (en) Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and computer program

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: 20826935

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20826935

Country of ref document: EP

Kind code of ref document: A1