WO2026009352A1 - 符号化装置 - Google Patents
符号化装置Info
- Publication number
- WO2026009352A1 WO2026009352A1 PCT/JP2024/024130 JP2024024130W WO2026009352A1 WO 2026009352 A1 WO2026009352 A1 WO 2026009352A1 JP 2024024130 W JP2024024130 W JP 2024024130W WO 2026009352 A1 WO2026009352 A1 WO 2026009352A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- size
- blocks
- unit
- division
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
Definitions
- VVC Versatile Video Coding
- each video frame to be coded is first divided into basic coding units called CTUs (Coding Tree Units). These correspond to MBs (Macro Blocks) in MPEG-2 and H.264/AVC.
- CTUs Coding Tree Units
- each CTU is not only divided into quadtree blocks, but also into binary tree block partitioning (hereinafter referred to as "BT partitioning”), which divides a block into two equal halves horizontally or vertically, and ternary tree block partitioning (hereinafter referred to as "TT partitioning”), which divides a block into thirds horizontally or vertically with a side ratio of 1:2:1.
- BT partitioning binary tree block partitioning
- TT partitioning ternary tree block partitioning
- CUs in VVC are divided into variable-sized CUs, including not only squares but also rectangles, by recursively repeating QT partitioning for each CU generated after that, and then repeating BT partitioning or TU partitioning horizontally or vertically.
- VVC the number of block patterns in VVC is significantly larger than in HEVC, so the encoder that performs the encoding must evaluate and compare all of the division patterns and determine the size of the CU, which requires a huge amount of processing.
- the disclosed technology was developed in light of these circumstances, and aims to provide an encoding device that performs encoding while reducing the amount of processing required to determine block division during encoding, while maintaining a prediction mode that corresponds to the characteristics of the original image, for an encoding processing architecture that assumes a constant processing time.
- a first aspect of the present disclosure is a coding device that codes an image in units of blocks obtained by dividing the image, and includes an acquisition unit that acquires an original image to be coded, a narrowing-down unit that recursively divides the image into square or rectangular blocks, a derivation unit that derives a predicted intra-screen prediction mode and cost value for each block, and a determination unit that determines a final block division shape by repeating the procedure of adding up the cost values of a combined block obtained by combining first blocks and the cost value of a second block of the same size as the combined block, selecting the combined block as the block shape for the size of the combined block if the added up value is smaller, and selecting the second block as the block shape for the size of the combined block if the cost value of the second block is smaller, for the first block size from the smallest block size to the largest block size among the recursively divided blocks.
- FIG. 1 is a block diagram showing an example of the configuration of an encoding device.
- FIG. 10 is a diagram illustrating an example of block division.
- FIG. 10 is a diagram illustrating an intra-screen prediction mode.
- FIG. 2 is a block diagram illustrating an example of the configuration of a division unit according to the first embodiment.
- 10A and 10B are diagrams for explaining an example of an operation of a narrowing-down unit.
- FIG. 10 is a diagram illustrating an example of timing of a size determination process.
- FIG. 10 is a diagram illustrating an example of a size determination process.
- FIG. 10 is a diagram illustrating an example in which divided regions do not match.
- FIG. 10 is a diagram illustrating an example in which divided areas match.
- FIG. 10 is a diagram illustrating an example in which divided areas match.
- FIG. 2 is a block diagram showing an example of a hardware configuration of an encoding device.
- 10 is a flowchart showing an example of the flow of an encoding process executed in a division unit of an encoding device.
- FIG. 10 is a block diagram illustrating an example of the configuration of a dividing unit according to a second embodiment.
- FIG. 10 is a diagram illustrating an example of a size determination process according to the second embodiment.
- Figure 1 is a block diagram showing an example of the functional configuration of an encoding device 1 used to explain the process of encoding a video.
- the encoding device 1 includes a division unit 10, a residual signal generation unit 11, a frequency transformation unit 12, a quantization unit 13, an encoding unit 14, an inverse quantization unit 15, an inverse frequency transformation unit 16, a decoded image generation unit 17, a loop filter processing unit 18, a reference image buffer unit 19, and a predicted image generation unit 20.
- the division unit 10 divides the CTUs of the original image to be encoded into CUs, and determines the size of the CUs and the prediction mode for each CU.
- Figure 2 shows an example of block division in VVC. As shown in Figure 2, the original image is divided into CTUs, each of which has a range of 128 pixels in the horizontal and vertical directions. The CTUs are further divided into CUs, which are blocks divided recursively, and the CUs are encoded as a single unit.
- the size of a CTU and CU is defined as "(number of pixels in the horizontal direction) x (number of pixels in the vertical direction)."
- a CTU with a range of 128 pixels in the horizontal and vertical directions is expressed as 128 x 128.
- a CTU is divided into QT blocks at least once, so the maximum size of a CU is 64 x 64.
- the division unit 10 shown in FIG. 1 acquires an original image to be coded and a decoded image from the reference image buffer unit 19, which will be described later, and divides each CTU related to the original image into the above-mentioned CUs.
- the division unit 10 outputs the original image divided into each CU size to the residual signal generation unit 11.
- the division unit 10 also outputs the CU size and the prediction mode of that CU to the predicted image generation unit 20. Note that a method for determining the size of the CUs divided by the division unit 10 will be described later. Also, as an example, in this embodiment, a form in which intra-screen prediction mode is applied as the prediction mode will be described.
- the intra-screen prediction mode is a value for determining pixels to reference for coding from blocks in an image that have been coded earlier than the block to be coded, and the direction in which the referenced pixels are located is predetermined by the value (number) of the intra-screen prediction mode.
- the prediction mode will be determined using pixels different from the reference pixels used when decoding on the decoder side, which may result in lower prediction accuracy, but it can simplify the implementation on the encoder side because there is no need to actually encode and decode to generate reference pixels.
- FIG 3 shows the intra-screen prediction modes in VVC.
- VVC has a total of 67 prediction modes: a mode that makes predictions by referencing neighboring pixels of the CU in question from 65 directions between 45 degrees diagonally downward to the left (mode number 2) and 45 degrees diagonally upward to the right (mode number 66); a planar mode (mode number 0) that makes predictions using four neighboring pixels; and a DC mode (mode number 1) that makes predictions using the average of neighboring pixels.
- wide-angle prediction has been introduced for rectangular prediction blocks, which shifts the allocation of prediction directions according to the ratio of the short side to the long side (applies to mode numbers 67 and above in Figure 3, or negative mode numbers).
- the residual signal generation unit 11 obtains the original image divided into each CU from the division unit 10, and obtains the predicted image corresponding to each CU from the predicted image generation unit 20.
- the residual signal generation unit 11 outputs the difference between the CU in the obtained original image and the CU in the predicted image corresponding to the CU in the original image as a predicted residual signal to the frequency conversion unit 12.
- the frequency transform unit 12 acquires the predicted residual signal from the residual signal generation unit 11 and performs frequency transform using a discrete cosine transform or a discrete sine transform on each of the horizontal and vertical directions of the predicted image.
- the frequency transform unit 12 outputs a group of derived transform coefficients as a result of the frequency transform to the quantization unit 13.
- the quantization unit 13 acquires the group of transform coefficients from the frequency transformation unit 12 and quantizes the transform coefficients using a predetermined quantization parameter.
- the quantization unit 13 outputs the quantized transform coefficients to the encoding unit 14 and the inverse quantization unit 15.
- the encoding unit 14 obtains the quantized transform coefficients from the quantization unit 13 and encodes the quantized transform coefficients to derive a bitstream.
- the encoding unit 14 outputs the bitstream derived as a result of the encoding to an external device (not shown).
- the inverse quantization unit 15 obtains the quantized transform coefficients from the quantization unit 13 and performs inverse quantization on the quantized transform coefficients to generate transform coefficients.
- the inverse quantization unit 15 outputs the transform coefficients to the inverse frequency transform unit 16 as a result of the inverse quantization process.
- the inverse frequency transform unit 16 obtains the transform coefficients from the inverse quantization unit 15 and performs an inverse frequency transform on the transform coefficients to generate a prediction residual signal.
- the inverse frequency transform unit 16 outputs the prediction residual signal to the decoded image generation unit 17.
- the decoded image generation unit 17 obtains a prediction residual signal from the inverse frequency transform unit 16, and obtains a prediction image of the original image from the prediction image generation unit 20, which will be described later.
- the decoded image generation unit 17 generates a decoded image of the original image for each CU by adding the prediction residual signal to the prediction image for each CU.
- the decoded image generation unit 17 outputs the decoded image of the original image to the loop filter processing unit 18 and the reference image buffer unit 19.
- the loop filter processing unit 18 obtains the decoded image from the decoded image generation unit 17 and performs filter processing on the decoded image to reduce encoding distortion.
- the loop filter processing unit 18 outputs the decoded image after filter processing to the reference image buffer unit 19.
- the reference image buffer unit 19 acquires the decoded image before filtering from the decoded image generation unit 17, and acquires the decoded image after filtering from the loop filter processing unit 18.
- the reference image buffer unit 19 stores the acquired decoded image before filtering and the decoded image after filtering as reference images. In other words, the reference image buffer unit 19 stores the decoded image obtained by decoding a past original image as a reference image.
- the predicted image generation unit 20 obtains the prediction mode of the CU related to the original image from the division unit 10, and obtains a previously decoded image stored as a reference image from the reference image buffer unit 19.
- the predicted image generation unit 20 generates a predicted image of the original image based on the prediction mode of the original image and the previously decoded image data.
- the predicted image generation unit 20 outputs the predicted image to the residual signal generation unit 11 and the decoded image generation unit 17.
- Figure 4 shows a block diagram illustrating an example of the functional configuration of the splitting unit 10 in this embodiment.
- the division unit 10 divides the CTU of the original image to be coded into CUs, and determines the CU division shape within the CTU, the size of each CU, and the intra-frame prediction mode for each CU.
- the splitting unit 10 has, as its functional configuration, an acquisition unit 41, a narrowing down unit 42, a derivation unit 43, and a determination unit 44.
- the acquisition unit 41 acquires the CTU to be coded in the current frame from the original image to be coded or a reference image that was coded in the past and stored in the reference image buffer unit.
- the acquisition unit 41 outputs the acquired CTU to the narrowing down unit 42.
- the narrowing-down unit 42 narrows down the square-sized CUs obtained from a certain QT division by size, determining whether to divide the rectangular (BT, TT) division vertically or horizontally, and whether to perform BT division or TT division.
- Figure 5 shows an example of a narrowing-down method.
- texture pattern refers to the pixel value arrangement pattern within a certain area.
- a so-called vertical striped pattern is expressed as a vertical texture pattern
- a horizontal striped pattern is expressed as a horizontal texture pattern.
- the pixel value difference between horizontally adjacent pixels that is, the value obtained by differentiating the pixel value in the horizontal direction exceeds a certain threshold
- the pixel value difference between vertically adjacent pixels that is, the value obtained by differentiating the pixel value in the vertical direction exceeds a certain threshold
- the texture is in direction B, which is shifted 90 degrees from direction A (the direction in which the difference between adjacent pixels is greatest) of the pixel edge extracted using an edge extraction filter, etc.
- the difference value between adjacent pixels obtained when deriving the direction of the texture pattern or the value after a differential filter is referred to as texture intensity.
- the narrowing down unit 42 divides the CU vertically if it has a vertical texture pattern, divides it horizontally if it has a horizontal texture pattern, or does not divide it vertically or horizontally if it cannot be determined which.
- the narrowing down unit 42 determines which direction the texture of the CU to be coded is and whether its strength is equal to or greater than a threshold. Specifically, for vertical or horizontal division, the narrowing down unit 42 compares the absolute sums of the vertical or horizontal texture strengths of each pixel in the CU that are equal to or greater than a threshold.
- step S52 or step S53 the process proceeds to step S52 or step S53 to narrow down the division to either BT or TT.
- step S52 the narrowing-down unit 42 calculates the average pixel value for each of the four regions (1) to (4) obtained by vertically dividing the CU into four rectangular regions, and performs a determination using the following (Equation 3).
- Equation 3 The intention of the above (Equation 3) is that if regions (2) and (3) have similar pixel values (i.e., if the value on the left side is close to 0), then TT partitioning (i.e., TTV partitioning) is performed so that regions (2) and (3) are in the same CU. Also, if the difference between regions (1) and (2) is smaller, then BT partitioning (i.e., BTv partitioning) is performed so that regions (1) and (2) become the same region, and if the difference between regions (3) and (4) is smaller, then BT partitioning (i.e., BTv partitioning) is performed so that regions (3) and (4) become the same region.
- TT partitioning i.e., TTV partitioning
- step S53 is the horizontal application of the processing of step S52 described above.
- the narrowing-down unit 42 calculates the average pixel value for each of the four regions (1) to (4) obtained by dividing the CU horizontally into four strips, and performs a judgment using the above (Equation 3). If regions (2) and (3) have similar pixel values (i.e., if the value on the left side is close to 0), TT division (i.e., TTh division) is performed so that regions (2) and (3) become the same CU. Furthermore, if the difference between regions (1) and (2) is smaller, BT division (i.e., BTh division) is performed so that regions (1) and (2) become the same region. If the difference between regions (3) and (4) is smaller, BT division (i.e., BTh division) is performed so that regions (3) and (4) become the same region.
- the above process completes the narrowing-down process in the narrowing-down unit 42 to determine whether to perform vertical or horizontal BT (BTv, BTh) or TT (TTv, TTh) division, or whether to perform no division at all, and the subsequent processing is performed using the CU information based on the shape determined here.
- the narrowing-down unit 42 outputs the CU information and texture pattern information to the derivation unit 43.
- the derivation unit 43 performs intra-frame prediction for each CU of each size obtained from the quadtree and for each rectangular CU narrowed down by the narrowing down unit 42, derives an encoding cost based on the residual and the amount of code used for the prediction, and determines the prediction mode that will yield the optimal cost.
- the encoding cost derivation and optimal cost described here are derived by a method that calculates the minimum cost value (cost J) obtained using Equation 4 below, such as RD (Rate-Distortion) optimization, to select encoding parameters (prediction modes, etc.) that minimize encoding distortion for a target amount of code.
- RD optimization is a process that maximizes image quality for a target amount of code by selecting optimal encoding parameters that minimize the cost value, which is an index obtained by linearly combining the amount of code R and the amount of encoding distortion D. Therefore, in this embodiment as well, the smaller the cost value, the better the image quality.
- the determination unit 44 outputs the cost value of the target CU (target cost value) and the sum of the cost values of the divided CUs (summed cost value) to the determination unit 44.
- the determination unit 44 compares the cost values calculated for each CU size, from small CU sizes to large CU sizes, to determine the CU size.
- Figure 6 shows an example of the timing of the size determination process.
- Figure 6 shows the progression of time as you move to the right.
- the solid-line blocks represent CU sizes obtained by quadtree partitioning, which, in order from smallest to largest, are a 4x4 pixel CU, an 8x8 pixel CU, a 16x16 pixel CU, a 32x32 pixel CU, and a 64x64 pixel CU.
- the dashed-line blocks represent CU sizes obtained by binary tree (BT) or ternary tree (TT) partitioning.
- BT binary tree
- TT ternary tree
- 16x16TTh indicates a CU obtained by further partitioning a 16x16 pixel CU horizontally using a ternary tree.
- Each size can have four possible values: BTh, BTv, TTh, and TTv, but the CU sizes for which cost calculations are actually performed are narrowed down to a few by the narrowing-down unit 42 described above.
- the processing time for a 16x16 pixel CU is four times longer than that for an 8x8 pixel CU. This is because 16x16 pixels has an area equal to four 8x8 pixels. The relationship between other CU sizes is similar, and processing times corresponding to the area are required.
- the thick vertical lines in Figure 6 indicate the timing at which mode/size determination processing is performed. For example, from times t1 to t3, the size of an 8x8 CU is determined. Next, at time t4, size determination is performed for at least three patterns of CU: a 16x16 CU, a rectangular CU whose cost has been calculated by narrowing down the 16x16 CU using the division narrowing down unit, and a 16x16 pixel CU (consisting of four 8x8 CUs) made by combining four of the 8x8 CUs after mode/size determination selected at times t1 to t3.
- Figure 7 shows details of mode size determination for a 16x16 CU at time t4.
- the rectangular CU at this time is assumed to be a 16x16 BTh CU arranged in a horizontal binary tree.
- the determination unit 44 performs a mode size determination by comparing cost values for the upper CU ((b) in Figure 7) of the area after rectangular division and the two areas (two 8x8 CUs, (a) in Figure 7) on the upper side of the quadtree division that show the same range as that area.
- the cost value used for determination for the two areas on the upper side of the quadtree division is the sum of the cost values calculated for the two CUs plus a predetermined offset.
- the lower cost value is adopted as the mode size determination result for the upper side.
- Figure 7 shows a case where the cost value of (a) is smaller than the cost value of (b) ((a) ⁇ (b)).
- step 2 the determination unit 44 performs similar size determination on the lower CU ((d) in Figure 7) of the area after rectangular division and the two areas below the quadtree division side (two 8x8 CUs, (c) in Figure 7).
- the area with the lower cost value is then adopted as the mode size determination result for the lower area.
- Figure 7 shows a case where the cost value of (d) is smaller than the cost value of (c) ((d) ⁇ (c)).
- step 3 the determination unit 44 performs a size determination between the combined results of the comparisons in steps 1 and 2 (the combined side, (a) + (d) in Figure 7) and a 16x16 CU ((e) in Figure 7).
- the size determination is performed in the same way as in steps 1 and 2, and on the combined side, the sum of the cost values of the CUs obtained in each previous determination, plus a predetermined offset, is used as the cost value for determination.
- the 16x16 CU partition shape is determined as the determination result for the 16x16 pixel CU size.
- Figure 7 shows a case where the cost value of (a) + (d) is smaller than the cost value of (e) ((a) + (d) (e)).
- quadtree (QT) division and binary tree (BT) division but a comparison is similarly performed for each region when using quadtree (QT) division and ternary tree (TT) division.
- TT ternary tree
- the division ratios are different between QT division and TT division, it is not necessarily the case that the QT division obtains a range equal to each CU region obtained with TT division.
- the judgment is skipped and a single size judgment is made between the 16x16 CU and the CU using 16x16TTh or 16x16TTv.
- Figure 8A shows an example where the judgment is skipped because the division regions do not match.
- Figure 8B shows an example where the judgment is made (not skipped) because the division regions match.
- the determination unit 44 uses the determination result of 16x16 CUs to determine the size of 32x32 CUs. Similarly, the determination unit 44 uses the size determination result of 32x32 CUs to determine the size of 64x64 CUs. For example, the determination unit 44 determines the size of a 32x32 CU at time t16 using the size determination result of the 16x16 CU at time t4, the size determination result of the 16x16 CU at time t8, the size determination result of the 16x16 CU at time t12, and the size determination result of the 16x16 CU at time t16.
- the block division shape within a 64x64 CU i.e., the size of each CU, is determined by performing tournament processing based on a comparison of cost values, from smallest to largest CUs.
- the determination unit 44 outputs the original image obtained by dividing the determined CU size as division information to the residual signal generation unit 11 (see Figure 1).
- the determination unit 44 also outputs the determined CU size and the prediction mode of the CU as division information to the predicted image generation unit 20.
- the encoding device 1 of this embodiment makes it possible to reduce the amount of calculation required for the determination process, even when determining the size of a rectangular CU using hardware with a fixed processing time.
- FIG. 9 is a block diagram showing an example of the hardware configuration of the encoding device 1.
- the encoding device 1 includes a CPU (Central Processing Unit) 51, a ROM (Read Only Memory) 52, a RAM (Random Access Memory) 53, storage 54, an input unit 56, a display unit 57, and a communication I/F (Interface) 58.
- Each component is connected to each other so that they can communicate with each other via a bus 59.
- the CPU 51 is a central processing unit that executes various programs, such as the encoding program 55, stored in the storage 54, and controls each section. That is, the CPU 51 reads the program from the ROM 52 or the storage 54, and executes the program using the RAM 53 as a working area.
- the CPU 51 controls the above-mentioned components and performs various calculation processes in accordance with the program stored in the ROM 52 or the storage 54. That is, by executing the encoding program 55, the CPU 51 functions as the above-mentioned division section 10, residual signal generation section 11, frequency conversion section 12, quantization section 13, encoding section 14, inverse quantization section 15, inverse frequency conversion section 16, decoded image generation section 17, and loop filter processing section 18.
- ROM 52 stores various programs and data.
- RAM 53 temporarily stores programs or data as a working area.
- Storage 54 is composed of a storage device such as an HDD (Hard Disk Drive) or SSD (Solid State Drive), and stores various programs including the operating system and encoding program 55, as well as various data. Note that encoding program 55 may be a single program, or a group of programs consisting of multiple programs or modules. Storage 54 also functions as the reference image buffer unit 19 described above.
- the communication I/F 58 is an interface that allows the device to communicate with external devices. This communication may use a wired communication standard such as Ethernet (registered trademark) or FDDI (Fiber Distributed Data Interface), or a wireless communication standard such as 4G, 5G, or Wi-Fi (registered trademark).
- a wired communication standard such as Ethernet (registered trademark) or FDDI (Fiber Distributed Data Interface)
- FDDI Fiber Distributed Data Interface
- 4G, 5G, or Wi-Fi registered trademark
- the encoding device 1 of this embodiment is implemented as a general-purpose computer device such as a server computer or a personal computer (PC).
- a general-purpose computer device such as a server computer or a personal computer (PC).
- FIG. 10 shows a flowchart of an example of the processing executed in the division unit 10 in the encoding process executed in the encoding device 1 of this embodiment.
- the division unit 10 executes the encoding program 55 stored in the storage 54 to perform the encoding process shown in FIG. 10.
- step S100 of FIG. 10 the acquisition unit 41 acquires the CTU to be encoded as described above.
- the narrowing unit 42 divides the CTU into CUs as described above.
- the derivation unit 43 derives the cost values of the divided CUs and the sum of the cost values, as described above.
- step S106 the determination unit 44 performs size determination processing on the divided CUs as described above, and determines the CU size.
- step S106 the processing of step S106 is completed, the encoding processing for one CTU by the division unit 10 shown in FIG. 10 is completed. Note that the encoding processing shown in FIG. 10 is performed on all CTUs obtained by dividing the video (original image) to be encoded.
- the narrowing-down unit 42 narrows down the division direction (vertical or horizontal) and the division method (binary tree division, ternary tree division) based on which the derivation unit 43 derives the cost value of the rectangular CU, and then the determination unit 44 determines the size by comparing it with each CU.
- this embodiment describes a form in which the determination unit 44 performs size determination based on prediction mode information, with the aim of further increasing the number of rectangular block comparison candidates.
- FIG. 11 shows a block diagram illustrating an example of the functional configuration of the splitting unit 10 of this embodiment.
- the functions of the acquisition unit 41 and the narrowing down unit 42 are the same as those in the first embodiment (see Figure 4), so a description thereof will be omitted.
- the derivation unit 43 and determination unit 44 of this embodiment differ from those of the first embodiment (see FIG. 4), and will be described below. Unlike the first embodiment, the derivation unit 43 of this embodiment outputs to the determination unit 44 not only the derived cost values, but also prediction mode information used in deriving the cost values.
- the determination unit 44 of this embodiment includes an integration processing unit 45. Details of the determination unit 44 of this embodiment will be described with reference to FIG. 12.
- size determination processing may be performed only on square CUs without division (similar to the case where only the determination in step 3 of the tournament processing in Figure 7 is performed).
- the determination unit 44 combines those CUs to generate a rectangular CU and incorporates it into the size determination process.
- the judgment unit 44 judges the size of a CU ((a)) that is an accumulation of judgment results for small-sized CUs, and a 32x32 CU (no division, (b)). If the cost value of (b) is lower than the cost value of (a) ((b) ⁇ (a)), (b) is adopted as the 32x32 size result.
- the integration processing unit 45 determines whether adjacent small-size CUs can be integrated into a rectangular CU so that they share a single prediction mode, based on the prediction direction (prediction mode number) of each small-size CU that makes up (a).
- the integration method assumes that the division is BTh, BTv, TTh, or TTv ((1) to (10) in Figure 12). Then, it calculates whether the intra-screen prediction mode numbers of the CUs in (a) included in the assumed division area are within ⁇ ( ⁇ is a predetermined constant) of their average value, or whether the difference between each number is within ⁇ ( ⁇ and ⁇ are predetermined constants). If the result is True, the CUs are integrated.
- the prediction mode numbers of each CU before integration are used to derive the respective cost values before the timing of determining the next size, and the prediction mode number with the smallest cost value is used as the prediction mode number of the integrated CU. Note that if there are insufficient computing resources or this process cannot be completed in time before the determination timing, the most frequent or average value of the prediction mode numbers of each CU before the integration will be used as the prediction mode number of the CU after the integration, and the cost value will be the cost value of each CU before the integration plus a given offset.
- the above-mentioned size determination process is also performed using tournament processing based on cost value comparison, from smallest to largest size CUs, to determine the block division shape within a 64x64 CU, i.e., the size of each CU.
- the encoding device 1 in each of the above embodiments is an encoding device that encodes an image in units of blocks obtained by dividing the image, and includes a division unit 10 that includes an acquisition unit 41, a narrowing down unit 42, a derivation unit 43, and a determination unit 44.
- the acquisition unit 41 acquires the original image to be encoded.
- the narrowing down unit 42 recursively divides the image into square or rectangular blocks.
- the derivation unit 43 derives the intra-screen prediction mode and cost value predicted for each block.
- the determination unit 44 compares the combined block obtained by combining first blocks and the sum of the cost values of the first blocks with the cost value of a second block of the same size as the combined block, and selects the first block or the second block with the smaller cost value as the block shape for the combined block size. This procedure is repeated recursively from the smallest block size to the largest block size among the divided blocks, thereby determining the final block division shape.
- the division unit 10 configured as described above can perform encoding by obtaining a block division shape that includes square blocks and rectangular blocks, while maintaining a prediction mode that corresponds to the characteristics of the original image, for an encoding processing architecture that assumes a constant processing time, such as hardware with a pipeline processing configuration, and while reducing the amount of processing required for determining block division during encoding. Therefore, the encoding device 1 of each of the above embodiments can perform encoding by maintaining a prediction mode that corresponds to the characteristics of the original image, while reducing the amount of processing required for determining block division during encoding, for an encoding processing architecture that assumes a constant processing time.
- the encoding process executed by the CPU 51 after reading the encoding program 55 in the above embodiment may be executed by various processors other than the CPU 51.
- processors in this case include PLDs (Programmable Logic Devices) such as FPGAs (Field-Programmable Gate Arrays), whose circuit configuration can be changed after manufacture, and dedicated electrical circuits, such as ASICs (Application Specific Integrated Circuits), which are processors with circuit configurations designed specifically to execute specific processes.
- the encoding process may be executed by one of these various processors, or by a combination of two or more processors of the same or different types (e.g., multiple FPGAs, or a combination of a CPU and an FPGA).
- the hardware structure of these various processors is, more specifically, an electrical circuit that combines circuit elements such as semiconductor devices.
- the encoding program 55 is described as being pre-stored (also referred to as “installed") in the ROM 52 or storage 54, but this is not limiting.
- the encoding program 55 may also be provided in a form stored on a non-transitory storage medium such as a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), or a USB (Universal Serial Bus) memory.
- the encoding program 55 may also be downloaded from an external device via a network.
- An encoding device that encodes an image in units of blocks obtained by dividing the image, an acquisition unit that acquires an original image to be encoded; a narrowing-down unit that recursively divides the image into square or rectangular blocks; a derivation unit that derives an intra prediction mode and a cost value predicted for each block; a determination unit that determines a final block division shape by repeating a procedure in which, based on a sum of cost values of a combination block obtained by combining first blocks and a cost value of a second block of the same size as the combination block, if the sum is smaller, the combination block is selected as a block shape for the size of the combination block, and if the cost value of the second block is smaller, the second block is selected as a block shape for the size of the combination block, using the minimum block size to the maximum block size of the recursively divided blocks as the size of the first block;
- An encoding device comprising:
- the narrowing-down unit narrows down the division method or division direction for dividing the square block into the rectangular blocks based on texture or pattern information of pixel values within the square block, and when the square block is not to be divided into rectangular blocks, increases the number of narrowed-down candidates for rectangular blocks among square blocks that are one size smaller than the square block.
- Item 1 The encoding device according to item 1.
- the determination unit compares a combination of square blocks of a second size that is one size smaller than the first size with blocks obtained by rectangular block division, and then compares the blocks obtained after the determination with the square blocks of the first size.
- the determination unit obtains the block division shape for the first size from a plurality of candidates, if the candidates do not include a rectangular block, and if an intra-screen prediction mode of an included block smaller than the first size falls within a predetermined range, the determination unit integrates the small-sized block and treats the small-sized block as a rectangular block.
- Item 1 The encoding device according to item 1.
- a coding method for coding an image in units of blocks obtained by dividing the image comprising: Obtain an original image to be encoded; recursively dividing the image into square or rectangular blocks; Deriving a predicted intra prediction mode and a cost value for each of the blocks; An encoding method in which a final block division shape is determined by repeating a procedure of adding up cost values of a combination block obtained by combining first blocks and a cost value of a second block of the same size as the combination block, selecting the combination block as a block shape for the size of the combination block if the sum is smaller, and selecting the second block as a block shape for the size of the combination block if the cost value of the second block is smaller, from the smallest block size to the largest block size in the recursively divided blocks, using the size of the first block as the size of the first block.
- An encoding device that encodes an image in units of blocks obtained by dividing the image, Memory and at least one processor coupled to said memory; Including, The processor: Obtain an original image to be encoded; recursively dividing the image into square or rectangular blocks; Deriving a predicted intra prediction mode and a cost value for each of the blocks; a combined block obtained by combining first blocks, a sum of cost values of the first blocks, and the cost value of a second block having the same size as the combined block are compared, and the first block or the second block having the smaller cost value is selected as the block shape for the size of the combined block. This procedure is repeated recursively from the smallest block size to the largest block size among the divided blocks, thereby determining the final block division shape.
- a coding device configured to:
- a non-transitory storage medium storing a program executable by a computer to perform an encoding process for encoding an image in units of blocks obtained by dividing the image,
- the encoding process includes: Obtain an original image to be encoded; recursively dividing the image into square or rectangular blocks; Deriving a predicted intra prediction mode and a cost value for each of the blocks; a combined block obtained by combining first blocks, a sum of cost values of the first blocks, and the cost value of a second block having the same size as the combined block are compared, and the first block or the second block having the smaller cost value is selected as the block shape for the size of the combined block.
- This procedure is repeated recursively from the smallest block size to the largest block size among the divided blocks, thereby determining the final block division shape.
- Non-transitory storage medium is repeated recursively from the smallest block size to the largest block size among the divided blocks, thereby determining the final block division shape.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
符号化装置は、画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、符号化対象の原画像を取得し、前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割し、前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する。
Description
開示の技術は、符号化装置に関する。
従来、ディジタル映像の伝送および配信においては、MPEG(Moving Picture Experts Group)-2、H.264/AVC(Advanced Video Coding)、及びH.265/HEVC(High Efficiency Video Coding)といった、映像符号化国際標準による映像符号化を行う事で、伝送や配信の際の映像データ量を削減し、多様なネットワーク環境下での高品質な映像伝送・配信を実現している。
近年、4K映像や8K映像といった超高精細映像や、360度映像やVR(Virtual Reality)による配信サービスなど多様な映像コンテンツの登場に向けて更なる高圧縮化を実現するため、新たな映像符号化国際標準であるVVC(Versatile Video Coding)が規格化されている。
H.265/HEVCやVVC等の映像符号化規格では、符号化対象の各映像フレームはまずCTU(Coding Tree Unit)と呼ばれる符号化基本単位に分割される。これはMPEG-2やH.264/AVCにおけるMB(Macro Block)に相当する。
また、各CTUは、更にCU(Coding Unit)と呼ばれる単位に分割される。H.265/HEVCでは、各CTUは、各ノードが4つの枝に分枝されたツリー構造である再帰的案4分木ブロック分割(Quad Tree:以下、「QT分割」という。)に基づいて分割される。このため、取りうるCUの大きさとして、8×8、16×16、32×32、及び64×64の候補があり、各々の大きさのCUの組み合わせによって、CTUが構成される。そして各CUについて、更に、予測処理単位であるPU(Prediction Unit)、及び変換処理単位であるTU(Transform Unit)が設定され、符号化における各処理が行われる。
一方、VVCでは、各CTUは、4分木ブロックだけでなく、ブロックを水平方向、または垂直方向に、2等分に2分割する2分木ブロック分割(Binary Tree分割、以下、「BT分割」という。)、ブロックを水平方向、または垂直方向に1:2:1の辺の比で3分割する3分木ブロック分割(Ternary Tree分割、以下「TT分割」という。)が追加されている。VVCにおけるCUは、CTUに対して、QT分割を再帰的に繰り返した後に生成された各CUについてBT分割、またはTU分割を、水平方向または垂直方向に繰り返すことで、正方形だけでなく長方形を含む可変サイズのCUに分割する。そのため、VVCにおけるCUの大きさは、32×4や8×16といった多くの種類の大きさを選択可能で、これらのCUの大きさの組み合わせでCTUが構成される。そのため、VVCでは、H.265/HEVCと比較してより符号化対象フレームの絵柄(テクスチャ)や特徴に合わせた複雑なブロック分割形状を取ることができ、高効率な符号化を行うことができる。なお、VVCでは、CU単位に予測処理、変換処理といった処理が行われるため(非特許文献1)、H.265/HEVCでのPUやTUという単位は存在しない。
Jianle Chen, Yan Ye, Seung Hwan Kim, " Algorithm description for Versatile Video Coding and Test Model 11 (VTM 11)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 20th Meeting, by teleconference, 7-16 October 2020, VTM algorithm description (JVET-N2002-v2) https://jvet-experts.org/doc_end_user/current_document.php?id=10541
しかしながら、VVCでのブロックパターンは、HEVCと比べて非常に膨大なため、符号化を行うエンコーダが全ての分割パターンに対して評価、及び比較を行い、CUの大きさを決定していくのには、膨大な処理量が必要となる。
なぜなら、CUの大きさを決定する際に、QT分割、BT分割(縦及び横方向)、TT分割(縦及び横方向)をそれぞれ試行して、予測処理、変換・量子化処理を行って、RD(Rate―Distortion)コストに基づいて評価を行い、最も効率の良いCUサイズおよび分割形状を決定していくことになるためである。また通常CUは大きなサイズから、再帰的に分割を繰り返していく過程において、これ以上分割を試行しなくても良いとして処理を打ち切ることで演算量を低減させる方法も考えられる。しかしながら、どの段階で処理を打ち切るかは、映像の絵柄や特徴に依存するところが多く、処理量が一定にならない。この符号化処理をパイプライン処理のように所与の一定時間内で処理を行うことを想定したアーキテクチャで実現しようとすると、パイプラインストールを起こさないためには最も時間がかかるケースを想定する必要があるため、処理を打ち切ることによる恩恵を十分に得ることができなくなってしまう。
開示の技術は、このような事情に鑑みてなされたもので、処理時間が一定なことが想定された符号化処理アーキテクチャに対して、原画像の特徴に応じた予測モードを維持しながら符号化におけるブロック分割決定の処理量を削減しつつ符号化を行う符号化装置を提供することを目的とする。
本開示の第1態様は、画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、符号化対象の原画像を取得する取得部と、前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割する絞込部と、前記ブロックごとに予測された画面内予測モード、及びコスト値を導出する導出部と、第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する判定部と、を備える。
開示の技術によれば、このような事情に鑑みてなされたもので、処理時間が一定なことが想定された符号化処理アーキテクチャに対して、原画像の特徴に応じた予測モードを維持しながら符号化におけるブロック分割決定の処理量を削減しつつ符号化を行うことができる。
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
[第1実施形態]
まず、図1~図3を参照して、符号化装置によって、映像を符号化する処理について説明する。図1は、映像を符号化する処理の説明に供する符号化装置1の機能構成の一例を示すブロック図である。
まず、図1~図3を参照して、符号化装置によって、映像を符号化する処理について説明する。図1は、映像を符号化する処理の説明に供する符号化装置1の機能構成の一例を示すブロック図である。
図1に示すように、符号化装置1は、分割部10、残差信号生成部11、周波数変換部12、量子化部13、符号化部14、逆量子化部15、逆周波数変換部16、復号画像生成部17、ループフィルタ処理部18、参照画像バッファ部19、及び予測画像生成部20を備えている。
分割部10は、符号化の対象である原画像のCTUをCUに分割して、CUの大きさの決定と各々のCUの予測モードの決定を行う。図2には、VVCにおけるブロック分割例が示されている。図2に示すように、原画像は、水平方向、垂直方向に128画素の範囲を1つのブロックとしたCTUに分割される。CTUは更に、再帰的に分割されたブロックであるCUにブロック分割され、CUを1つの単位として符号化する処理が行われる。なお、以下では、CTU及びCUの大きさを「(水平方向の画素数)×(垂直方向の画素数)」とする。例えば、水平方向及び垂直方向に128画素の範囲を1つのブロックとしたCTUは、128×128と表記する。またVVCの場合、CTUは、最低1度はQT分割されるため、CUの最大サイズは64×64となる。
また、図2に示すように、CTUを再帰的に4分割した64×64、32×32、16×16、及び8×8を1つのブロックとしたCUに分割されるだけでなく、更には、水平方向または垂直方向に2分割(BT)、または3分割(TT)されることがある。具体的には、分割形状は、図2に示すように、6通りとなる。このような柔軟なブロック分割パターンを持つことで、VVCでは従来のHEVCと比べて高効率な符号化処理を実現している。
図1に示す分割部10は、符号化の対象である原画像、および後述する参照画像バッファ部19から復号画像を取得して、原画像にかかわる各々のCTUを上述したCUに分割する。分割部10は、各々のCUの大きさに分割した原画像を残差信号生成部11に出力する。また、分割部10は、CUの大きさ、および当該CUの予測モードを予測画像生成部20に出力する。なお、分割部10が分割するCUの大きさの決定方法については後述する。また、一例として、本実施形態では、予測モードとして、画面内予測モードを適用した形態について説明する。画面内予測モードとは、符号化を行う対象のブロックよりも以前に符号化が終了している画像内のブロックから符号化を行うために参照する画素を決定するための値であり、画面内予測モードの値(番号)によって参照する画素が位置する方向が予め定められている。
なお、符号化においてCUの大きさや画面内予測モードを決定する際には、必ずしも符号化済の画像内のブロックを使う必要はなく、入力された原画像の画素を使って行ってもよい。この場合は、デコーダ側で復号する際に用いる参照画素とは異なる画素で予測モードを決めることになり、予測精度は劣る可能性があるが、実際に符号化・復号して参照画素を生成する必要はなくなるため、エンコーダ側の実装を簡略化することが可能となる。
図3に、VVCにおける画面内予測モードを示す。VVCでは、左斜下45度(モード番号2)から右斜上45度(モード番号66)の間で65通りの方向から、当該CUの隣接画素を参照して予測を行うモードと、隣接画素の4点を用いて予測を行うPlanarモード(モード番号0)、隣接画素の平均を用いて予測を行うDCモード(モード番号1)の合計67通りの予測モードが存在する。さらに、長方形の予測ブロック向けには短辺と長辺の比率に応じて予測方向の割り当てをシフトするWide angle予測が導入されている(図3のモード番号67以降、または負のモード番号が対象)。
残差信号生成部11は、分割部10から各々のCUに分割された原画像を取得し、予測画像生成部20から各々のCUに分割された原画像に対応する予測画像を取得する。残差信号生成部11は、取得した原画像におけるCUと、原画像のCUに対応する予測画像におけるCUとの差分を予測残差信号として周波数変換部12に出力する。
周波数変換部12は、残差信号生成部11から予測残差信号を取得し、離散コサイン変換または離散サイン変換による周波数変換を予測画像の水平方向および垂直方向の各々に対して実行する。周波数変換部12は、周波数変換の結果として、導出した変換係数群を量子化部13に出力する。
量子化部13は、周波数変換部12から変換係数群を取得し、所定の量子化パラメータを用いて、変換係数を量子化する。量子化部13は、量子化された変換係数を、符号化部14、及び逆量子化部15に出力する。
符号化部14は、量子化部13から量子化された変換係数を取得し、量子化された変換係数を符号化してビットストリームを導出する。符号化部14は、図示しない外部装置に符号化の結果として導出したビットストリームを出力する。
逆量子化部15は、量子化部13から量子化された変換係数を取得し、量子化された変換係数に対して逆量子化処理を実行して、変換係数を生成する。逆量子化部15は、逆量子化処理の結果として、変換係数を逆周波数変換部16に出力する。
逆周波数変換部16は、逆量子化部15から変換係数を取得し、変換係数に対して逆周波数変換を実行して、予測残差信号を生成する。逆周波数変換部16は、予測残差信号を復号画像生成部17に出力する。
復号画像生成部17は、逆周波数変換部16から予測残差信号を取得し、後述する予測画像生成部20から原画像の予測画像を取得する。復号画像生成部17は、CU毎に、予測残差信号を予測画像に加算することによって、原画像の復号画像をCU毎に生成する。復号画像生成部17は、原画像の復号画像をループフィルタ処理部18、及び参照画像バッファ部19に出力する。
ループフィルタ処理部18は、復号画像生成部17から復号画像を取得し、符号化の歪みを低減するためのフィルタ処理を復号画像に対して実行する。ループフィルタ処理部18は、フィルタ処理が実行された復号画像を参照画像バッファ部19に出力する。
参照画像バッファ部19は、復号画像生成部17からフィルタ処理前の復号画像を取得し、ループフィルタ処理部18からフィルタ処理後の復号画像を取得する。参照画像バッファ部19は、取得したフィルタ処理前の復号画像、及びフィルタ処理後の復号画像を参照用の画像として記憶する。すなわち、参照画像バッファ部19は、過去の原画像を復号した復号画像を参照用の画像として記憶する。
予測画像生成部20は、分割部10から原画像に係るCUの予測モードを取得し、参照用の画像として記憶されている過去の復号画像を参照画像バッファ部19から取得する。予測画像生成部20は、原画像の予測モード、及び過去の復号画像データに基づいて原画像の予測画像を生成する。予測画像生成部20は、予測画像を残差信号生成部11及び復号画像生成部17に出力する。
次に、図4を参照して、符号化装置1に係る分割部10の機能構成とデータの流れについて説明する。図4には、本実施形態の分割部10の機能構成の一例を表すブロック図が示されている。
上述したように、分割部10は、符号化対象である原画像のCTUをCUに分割して、CTU内のCU分割形状および各CUサイズ、各CUにおける画面内予測モードの決定を行う。
図4に示すように、分割部10は、機能構成として、取得部41、絞込部42、導出部43、及び判定部44を備えている。
一例として、取得部41は、符号化対象の原画像または過去に符号化され参照画像バッファ部に格納されている参照画像から、現フレームにおける符号化対象のCTUを取得する。取得部41は、取得したCTUを絞込部42に出力する。
絞込部42は、CTUを各サイズのCUに分割する際、あるQT分割の際に得られる正方形サイズのCUに対して、サイズ毎に、長方形(BT、TT)分割について縦方向に分割するのかまたは横方向に分割するのか、BT分割をするのかまたはTT分割するのかについて絞り込みを行う。
図5に、絞り込み方法の一例を示す。画面内予測では、周辺CUの隣接する画素値から自身のCUの画素を、予測モードが示す予測方向から画素値をコピーして生成する。そのため、自身のCUが周辺CUと似たようなテクスチャパターンであれば、周辺CUの画素として予測を行うことで、より良い予測画像が生成できる。ここで、テクスチャパターンとは、ある領域内の画素値配置パターンを意味する。所謂、縦縞模様となる場合、縦方向のテクスチャパターンと表現し、横縞模様となる場合は、横方向のテクスチャパターンと表現する。また同様に、横方向の隣接画素間の画素値差分を取得、つまり横方向に画素値を微分した際の値がある所定の閾値を上回る場合は、縦方向のテクスチャパターンを持つと表現し、また、縦方向の隣接画素間の画素値差分を取得、つまり縦方向に画素値を微分した際の値がある所定の閾値を上回る場合は、横方向のテクスチャパターンを持つと表現する。より一般的な表現としては、エッジ抽出フィルタ等で抽出した画素エッジの方向A(隣接画素間差分が一番大きくなる方向)に対して90度ずらした方向Bについて、B方向のテクスチャを持つ、と表現される。また、テクスチャパターンの方向を導出する際に取得した隣接画素間差分値や微分フィルタ後の値を、テクスチャ強度と表現する。
そこで、本実施形態の絞込部42では、自身のCUが縦方向のテクスチャパターンを持てば縦に分割、横方向のテクスチャパターンを持てば横に分割、もしくは、どちらとも言えない場合は、縦または横方向には分割しないこととする。
まず、図5のステップS51では、絞込部42は、符号化対象のCUのテクスチャ方向がいずれの方向であるかについて、及び強度が閾値以上であるかについて判定する。具体的には、絞込部42は、縦方向か横方向かの分割については、CU内の各画素が持つ縦または横方向のそれぞれのテクスチャ強度が閾値以上となったものの絶対値和を比較する。
Σ|横方向のテクスチャ強度|> Σ|縦方向のテクスチャ強度|+Th (式1)
Σ|横方向のテクスチャ強度|+Tv< Σ|縦方向のテクスチャ強度| (式2)
Σ|横方向のテクスチャ強度|+Tv< Σ|縦方向のテクスチャ強度| (式2)
上記(式1)を満たせば、横方向のテクスチャ強度の方が大きいとして、CUを縦方向に分割する。一方、上記(式2)を満たせば、縦方向のテクスチャ強度の方が大きいとして、CUを横方向に分割する。
ここで、「|横方向のテクスチャ強度|」は、横方向のテクスチャ強度が閾値以上のものを表し、「|縦方向のテクスチャ強度|」は、縦方向のテクスチャ強度が閾値以上のものを表し、「Σ」は和を表す。「Th」、「Tv」は、所与のオフセットである。
もし、(式1)及び式2)の両方が不成立であれば、縦方向にも横方向にも分割するのはそぐわないとして、分割は行わないものとする。なお、分割を行わない場合、そのサイズでは、QTのみで評価することとし、1つ下のサイズでの絞り込み候補数を増加(+1)する。例えば、対象のCUのサイズが2N×2Nであり、分割を行わないとなった場合、2N×2Nサイズでは、長方形分割試行は行わず、N×Nサイズでの長方形分割試行数を1だけ増加させる。
一方、縦方向または横方向の分割と判定された場合、次はBT分割またはTT分割かの絞り込みを行うため、ステップS52またはステップS53の判定に進む。
ステップS52では、絞込部42は、CUを短冊上に縦方向に4分割して得られた4つの領域(1)~(4)についてそれぞれの領域で画素値平均を算出し、下記の(式3)を用いた判定を行う。
|(2)画素値平均-(3)画素値平均|<Max(|(1)画素値平均-(2)画素値平均|,|(3)画素値平均-(4)画素値平均|) (式3)
上記の(式3)の意図するところとしては、領域(2)と領域(3)とが似たような画素値であるならば(つまり、左辺が0に近い値ならば)、領域(2)と領域(3)が同じCUになるようにTT分割(つまり、TTV分割)を行う。また、領域(1)と領域(2)の方が、差分が小さいならば、領域(1)と領域(2)が同領域になるよう、BT分割(つまりBTv分割)を行い、領域(3)と領域(4)の方が、差分が小さいならば、領域(3)と領域(4)が同領域になるよう、BT分割(つまりBTv分割)を行うこととする。
なお、上記の(式3)では画素値の平均を用いたが、比較する各領域の画素値のSAD(Sum of Absolute Difference:差分絶対値)を計算し、より値が小さくなる領域が同一領域になるようなBT/TT分割形状を選ぶようにしてもよい。
一方、ステップS53は、上記のステップS52の処理を横方向に対して適用したものである。絞込部42は、CUを短冊上に横方向に4分割して得られた4つの領域(1)~(4)についてそれぞれの領域で画素値平均を算出し、上記の(式3)を用いた判定を行う。領域(2)と領域(3)とが似たような画素値であるならば(つまり、左辺が0に近い値ならば)、領域(2)と領域(3)が同じCUになるようにTT分割(つまり、TTh分割)を行う。また、領域(1)と領域(2)の方が、差分が小さいならば、領域(1)と領域(2)が同領域になるよう、BT分割(つまりBTh分割)を行い、領域(3)と領域(4)の方が、差分が小さいならば、領域(3)と領域(4)が同領域になるよう、BT分割(つまりBTh分割)を行うこととする。
上記の処理により、絞込部42で、縦方向または横方向、BT(BTv、BTh)分割またはTT(TTv、TTh)分割のどれを行うか、または分割しないかの絞り込みを行う処理を終了し、ここで決定した形状に基づくCU情報を使って以降の処理を行う。絞込部42は、導出部43に、CU情報とテクスチャパターン情報と、を導出部43に出力する。
次に、導出部43では、4分木で得られる各サイズのCUと、絞込部42で絞り込んだ長方形CUそれぞれについて、画面内予測を実行し、残差とその予測を行う際の符号量に基づいて符号化コストを導出し、最適なコストが得られる予測モードを決定する。ここで述べる符号化コストの導出や最適なコストとは、RD(Rate―Distortion)最適化による方法のように、目標符号量に対して符号化歪みが最小となる符号化パラメータ(予測モード等)を選択するため、下記の(式4)により得られるコスト値(コストJ)が最小になるものを計算する方法で導出されるものとする。なお、RD最適化とは、符号量Rと符号化歪量Dとを線形結合した指標であるコスト値を最小化するように最適な符号化パラメータを選択することにより、目標符号量に対する画質を最大化する処理である。従って、本実施形態においても、コスト値が小さい方が、画質がよくなる。
コストJ=D+λ×R (D:Distortion、R:符号量、λ:ラグランジュの未定乗数) (式4)
判定部44は、対象のCUのコスト値(対象コスト値)と、分割したCUのコスト値の合算値(合算コスト値)を、判定部44に出力する。
判定部44では、各CUサイズで算出されたコスト値を小CUサイズから大CUサイズにかけて比較し、CUサイズ判定を行う。
図6に、サイズ判定処理のタイミングの一例を表す図を示す。図6は、右に進むにつれて時間が経過していることを表している。実線のブロックは、4分木分割により得られるCUサイズを表しており、小さいほうから順に、4×4画素のCU、8×8画素のCU、16×16画素のCU、32×32画素のCU、及び64×64画素のCUを表している。また、破線のブロックは、2分木(BT)や3分木(TT)分割で得られるCUサイズを表している。例えば、16×16TThは、16×16画素のCUを更に水平方向に3分木で分割するCUを示す。BTh、BTv、TTh、TTvと各サイズ4通りが取りうるが、上述の絞込部42により、実際にコスト算出を行うCUサイズはいくつかに絞られる。
また、16×16画素のCUの処理時間は、8×8画素のCUの処理時間の4倍の処理時間がかかる。これは16×16画素は、8×8画素4つ分と等しい面積を持つためである。他のCUサイズ間の関係性も同様であり、面積に応じた処理時間を要する。
図6の太い縦線部分は、モード・サイズ判定処理を行うタイミングを示す。例えば、時刻t1~t3では、8×8CUにおけるサイズを判定する。次に、時刻t4のタイミングでは、16×16CUと、16×16CUに対して分割絞込部で絞り込んでコスト算出をした長方形CUと、時刻t1~t3で選択したモード・サイズ判定後の8×8CUを4つ組み合わせて16×16画素のCU(4つの8×8CUで構成)としたものと、最低3つのパターンのCUでのサイズ判定を行う。
ここで一例として、時刻t4における16×16CUに対するモード・サイズ判定の詳細を図7に示す。このときの長方形CUは、水平方向に2分木された16×16BThのCUであるとする。
まず、ステップ1の判定として、判定部44は、長方形分割後の領域のうちの上側のCU(図7の(b))と、その領域と同じ範囲を示す、4分木分割側の上側の2領域(8×8CUが2つ分、図7の(a))についての、モード・サイズ判定をコスト値の比較により行う。ここで、4分木分割側の上側の2領域分の判定用コスト値は、2つのCUで算出したコスト値の合算値に、所定のオフセットを加算した値とする。そして、コスト値の比較の結果、コスト値が低い方を、上側のモード・サイズ判定結果として採用する。図7には、(a)のコスト値が、(b)のコスト値よりも小さい((a)<(b))場合が示されている。
次に、ステップ2の判定として、判定部44は、長方形分割後の領域のうちの下側のCU(図7の(d))と、4分木分割側の下側の2領域(8×8CUが2つ分、図7の(c))に対する、サイズ判定を同様に行う。そしてコスト値が低い方を、下側のモード・サイズ判定結果として採用する。図7には、(d)のコスト値が、(c)のコスト値よりも小さい((d)<(c))場合が示されている。
次に、ステップ3の判定として、判定部44は、ステップ1およびステップ2の比較結果を組み合わせたもの(統合側、図7の(a)+(d))と、16×16CU(図7の(e))とのサイズ判定を行う。サイズ判定の行い方はステップ1やステップ2と同様に、統合側では、以前のそれぞれの判定で得られたCUのコスト値の合算値に所定のオフセットを加えたものを判定用コスト値として用いる。ステップ3の判定後、16×16画素のCUサイズの判定結果として、16×16CU分割形状が決定される。図7には、(a)+(d)のコスト値が、(e)のコスト値よりも小さい(((a)+(d)(e))場合が示されている。
上記では4分木(QT)分割と2分木(BT)分割の場合の例について説明したが、4分木(QT)分割と3分木(TT)分割の場合でも、同様に領域ごとに比較を行っていく。ただし、QT分割とTT分割では分割比率が異なるため、必ずしもTT分割で得られる各CU領域と等しい範囲をQT分割側で得られる訳では無い。その場合は判定をスキップして、16×16CUと、16×16TThまたは16×16TTvによるCUとの1回のサイズ判定を行うこととする。図8Aには、分割領域が不一致であるため、判定をスキップする場合の例が示されている。また、図8Bには、分割領域が一致しているため、判定を行う(スキップしない)場合の例が示されている。
以上では、判定部44における16×16CUのサイズ判定について述べたが、同様に、判定部44は、16×16CUの判定結果を用いて、32×32CUのサイズ判定を行う。また同様に、判定部44は、32×32CUのサイズ判定結果を用いて、64×64CUのサイズ判定を行う。例えば、時刻t4における16×16CUのサイズ判定結果と、時刻t8における16×16CUのサイズ判定結果と、時刻t12における16×16CUのサイズ判定結果と、時刻t16における16×16CUのサイズ判定結果と、を用いて、判定部44は、時刻t16において、32×32CUサイズの判定を行う。
以上で述べた処理の通り、小さいサイズのCUから大きいサイズのCUにかけて、コスト値の比較に基づくトーナメント処理を行っていくことにより、64×64CU内のブロック分割形状、すなわち各CUサイズが決定される。判定部44は、残差信号生成部11(図1参照)に、決定したCUサイズを分割した原画像を分割情報として出力する。また、判定部44は、予測画像生成部20に、決定したCUサイズ、及び当該CUの予測モードを分割情報として出力する。
本実施形態の符号化装置1によれば、処理時間が固定化されたハードウェアで長方形のCUのサイズ判定を行う場合であっても、判定処理にかかる演算量を削減しながら実施することが可能となる。
なお、本実施形態の符号化装置1は、図9に示したハードウェア構成により実現できる。図9を参照して、符号化装置1のハードウェア構成について説明する。図9は、符号化装置1のハードウェア構成の一例を示すブロック図である。図9に示すように、符号化装置1は、CPU(Central Processing Unit)51、ROM(Read Only Memory)52、RAM(Random Access Memory)53、ストレージ54、入力部56、表示部57、及び通信I/F(InterFace)58を備える。各構成は、バス59を介して相互に通信可能に接続されている。
CPU51は、中央演算処理ユニットであり、ストレージ54に記憶されている符号化プログラム55等の各種プログラムを実行したり、各部を制御したりする。すなわち、CPU51は、ROM52又はストレージ54からプログラムを読み出し、RAM53を作業領域としてプログラムを実行する。CPU51は、ROM52又はストレージ54に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。すなわち、CPU51が、符号化プログラム55を実行することにより、上述の分割部10、残差信号生成部11、周波数変換部12、量子化部13、符号化部14、逆量子化部15、逆周波数変換部16、復号画像生成部17、及びループフィルタ処理部18として機能する。
ROM52は、各種プログラム及び各種データを格納する。RAM53は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ54は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶装置により構成され、オペレーティングシステムや符号化プログラム55を含む各種プログラム、及び各種データを格納する。なお、符号化プログラム55は、1つのプログラムであってもよいし、複数のプログラム又はモジュールで構成されるプログラム群であってもよい。また、ストレージ54は、上述した参照画像バッファ部19として機能する。
入力部56は、マウス等のポインティングデバイス、及びキーボードを含み、自装置に対して各種の入力を行うために使用される。表示部57は、例えば、液晶ディスプレイであり、各種の情報を表示する。なお、入力部56及び表示部57を一体化した、タッチパネル方式を採用してもよい。
通信I/F58は、自装置が外部の装置と通信するためのインタフェースである。当該通信には、例えば、イーサネット(登録商標)若しくはFDDI(Fiber Distributed Data Interface)等の有線通信の規格、又は、4G、5G、若しくはWi-Fi(登録商標)等の無線通信の規格が用いられる。
本実施形態の符号化装置1には、例えば、サーバコンピュータ、パーソナルコンピュータ(PC:Personal Computer)等の汎用的なコンピュータ装置が適用される。
さらに、図10を参照して、符号化装置1の分割部10の作用について説明する。
図10には、本実施形態の符号化装置1において実行される符号化処理において、分割部10において実行される処理の一例のフローチャートが示されている。分割部10では、ストレージ54に記憶されている符号化プログラム55を実行することにより、図010に示した符号化処理を実行する。
図10のステップS100で、取得部41は、上述したように符号化対象のCTUを取得する。
次のステップS102で、絞込部42は、上述したように、CTUをCUに分割する。
次のステップS104で、導出部43は、上述したように、分割したCUのコスト値、及びコスト値の合算値を導出する。
次のステップS106で、判定部44は、上述したように、分割したCUについて、サイズ判定処理を行い、CUサイズを決定する。ステップS106の処理が終了すると、図10に示した分割部10による、1つのCTUに対する符号化処理が終了する。なお、図10に示した符号化処理は。符号化の対象である映像(原画像)を分割することにより得られた全てのCTUに対して、実行される。
[第2実施形態]
第1実施形態では、絞込部42において、絞り込んだ分割方向(縦方向または横方向)、及び分割方法(2分木分割、3分木分割)に基づいて、導出部43が長方形CUのコスト値の導出を行った後、判定部44にて各CUとの比較によりサイズ決定を行った。
第1実施形態では、絞込部42において、絞り込んだ分割方向(縦方向または横方向)、及び分割方法(2分木分割、3分木分割)に基づいて、導出部43が長方形CUのコスト値の導出を行った後、判定部44にて各CUとの比較によりサイズ決定を行った。
これに対し、本実施形態では、更に長方形ブロックの比較候補を増やすことを目的として、判定部44において、予測モード情報に基づいてサイズ判定を行う形態について説明する。
なお、本実施形態における符号化装置1(図1、図9参照)、ブロック分割の説明図(図2参照)、及び画面内予測モードの図(図3参照)は、第1実施形態と同様であるため、説明を省略する。また、テクスチャパターン情報に基づく分割絞り込み方法(図5参照)、サイズ判定処理のタイミング(図6参照)についても説明を省略する。
図11を参照して、本実施形態の分割部10の構成について説明する。図11には、本実施形態の分割部10の機能構成の一例を表すブロック図が示されている。
取得部41、及び絞込部42の機能は、第1実施形態(図4参照)と同様のため、説明は省略する。
一方、本実施形態の導出部43及び判定部44は、第1実施形態(図4参照)と異なるため、これらについて説明する。本実施形態の導出部43は、第1実施形態と異なり、導出したコスト値の他、コスト値の導出における予測モード情報についても、判定部44に出力する。
また、本実施形態の判定部44は、図11に示すように、統合処理部45を含む。本実施形態の判定部44の詳細について、図12を参照しながら、説明する。
絞込部42の結果によっては、あるCUサイズにおける長方形ブロックを評価することは行われず、分割無しの正方形CUでのみサイズ判定処理が行われる場合がある(図7のトーナメント処理のステップ3の判定のみ行われるのと同様)。
一方、小サイズCUでのコスト値の導出の結果、同じような方向を指すようなCUが隣接している場合もある。そこで、このような条件の場合、判定部44は、それらのCUを統合して長方形CUを生成し、サイズ判定処理への組み込みを行う。
図12では、一例として、32×32サイズ判定例を示す。なお、16×16等のサイズ判定の場合も、基準となるCUのサイズが異なるだけで手順は同様である。
図12のステップ1の判定では、判定部44は、小サイズCUの判定結果を積上げたCU((a))と、32×32CU(分割なし、(b))のサイズ判定を行う。(b)のコスト値の方が、(a)のコスト値よりも低い((b)<(a))場合は、32×32サイズ結果として(b)を採用する。
一方、(a)のコスト値の方が(b)のコスト値よりも低い場合((a)<(b))は、ステップ2の判定の処理に進む。
ステップ2の判定では、統合処理部45は、(a)を構成する各小サイズCUの予測方向(予測モードの番号)を元に、隣接する小サイズCU同士を1つの予測モードとするよう長方形CUへの統合可能かの判定を行う。統合の方法は、分割がBTh、BTv、TTh、TTvそれぞれであった場合を仮定する(図12の(1)~(10))。そして、その仮定した分割領域内に含まれる(a)内CUの画面内予測モードの番号がそれらの平均値から±α(αは所定の定数)内に収まっているか、または各番号の差分値が±β(α、βは所定の定数)内に収まっているかを計算し、Trueであれば、CUの統合を行う。統合後のCUの予測モード番号およびコスト値については、次サイズの判定タイミングの前までに、統合前の各CUの予測モードの番号を使ってそれぞれコスト値の導出を行い、最もコスト値が小さい予測モードの番号を、統合後のCUの予測モードの番号とする。なお、演算リソース不足や判定タイミング前までにこの処理が間に合わなかった場合は、統合前の各CUの予測モードの番号の最頻値または平均値を、統合後のCUの予測モードの番号とし、コスト値は統合前の各CUのコスト値に所与のオフセットを加えたものとする。
本実施形態においても、上述したサイズ判定処理を、小さいサイズCUから大きいサイズのCUにかけて、コスト値比較に基づくトーナメント処理で行っていくことにより、64×64CU内のブロック分割形状、すなわち各CUサイズが決定される。
以上説明したように、上記各実施形態の符号化装置1は、画像を分割したブロック単位で画像の符号化を行う符号化装置であって、取得部41、絞込部42、導出部43、及び判定部44を含む分割部10を備える。取得部41は、符号化対象の原画像を取得する。絞込部42は、画像を再帰的に正方形ブロックまたは長方形ブロックに分割を行う。導出部43は、ブロックごとに予測された画面内予測モード、及びコスト値を導出する。判定部44は、第1のブロックを組み合わせて得られる組合ブロック、及び第1のブロックのコスト値の合算値と、組合ブロックと同じサイズである第2のブロックのコスト値とを比較し、第1のブロック及び第2のブロックのうち、コスト値が小さい方を組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックのうち最小ブロックサイズから最大ブロックサイズに繰り返していくことで、最終的なブロック分割形状を決定する。
上記構成の分割部10によれば、パイプライン処理構成のハードウェアのように処理時間が一定なことが想定された符号化処理アーキテクチャに対して、原画像の特徴に応じた予測モードを維持しながら符号化におけるブロック分割決定の処理量を削減しつつ、正方形ブロックおよび長方形ブロックを含んだブロック分割形状を得て符号化を行うことができる。従って、上記各実施形態の符号化装置1によれば、処理時間が一定なことが想定された符号化処理アーキテクチャに対して、原画像の特徴に応じた予測モードを維持しながら符号化におけるブロック分割決定の処理量を削減しつつ符号化を行うことができる。
また、上記実施形態でCPU51が符号化プログラム55を読み込んで実行した符号化処理を、CPU51以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、符号化処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
また、上記実施形態では、符号化プログラム55がROM52又はストレージ54に予め記憶(「インストール」ともいう)されている態様を説明したが、これに限定されない。符号化プログラム55は、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、符号化プログラム55は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記項1)
画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、
符号化対象の原画像を取得する取得部と、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割する絞込部と、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出する導出部と、
第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する判定部と、
を備えた符号化装置。
画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、
符号化対象の原画像を取得する取得部と、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割する絞込部と、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出する導出部と、
第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する判定部と、
を備えた符号化装置。
(付記項2)
前記絞込部は、正方形ブロック内の画素値のテクスチャまたはパターン情報から、前記正方形ブロックから前記長方形ブロックに分割する分割方法または分割方向の絞り込みを行い、前記正方形ブロックでは長方形ブロックに分割を行わない場合は、前記正方形ブロックよりも一段小さいサイズの正方形ブロックにおける長方形ブロックの絞り込み候補数を増加させる、
付記項1に記載の符号化装置。
前記絞込部は、正方形ブロック内の画素値のテクスチャまたはパターン情報から、前記正方形ブロックから前記長方形ブロックに分割する分割方法または分割方向の絞り込みを行い、前記正方形ブロックでは長方形ブロックに分割を行わない場合は、前記正方形ブロックよりも一段小さいサイズの正方形ブロックにおける長方形ブロックの絞り込み候補数を増加させる、
付記項1に記載の符号化装置。
(付記項3)
前記判定部は、第1のサイズにけるブロックサイズ判定の際には、前記第1のサイズに対して一段小さい第2のサイズの正方形ブロックの組み合わせと、長方形ブロック分割の場合のブロックの比較判定を行い、判定後に得られるブロックと、前記第1のサイズの正方形ブロックとの比較判定を行う、
付記項2に記載の符号化装置。
前記判定部は、第1のサイズにけるブロックサイズ判定の際には、前記第1のサイズに対して一段小さい第2のサイズの正方形ブロックの組み合わせと、長方形ブロック分割の場合のブロックの比較判定を行い、判定後に得られるブロックと、前記第1のサイズの正方形ブロックとの比較判定を行う、
付記項2に記載の符号化装置。
(付記項4)
前記判定部は、第1のサイズにおけるブロック分割形状を複数候補から得る際、その候補に長方形ブロックが存在しない場合は、内包する前記第1のサイズよりも小サイズのブロックの画面内予測モードが所定の範囲内に収まっている場合には、前記小サイズのブロックを統合して長方形ブロックとして扱う、
付記項1に記載の符号化装置。
前記判定部は、第1のサイズにおけるブロック分割形状を複数候補から得る際、その候補に長方形ブロックが存在しない場合は、内包する前記第1のサイズよりも小サイズのブロックの画面内予測モードが所定の範囲内に収まっている場合には、前記小サイズのブロックを統合して長方形ブロックとして扱う、
付記項1に記載の符号化装置。
(付記項5)
画像を分割したブロック単位で前記画像の符号化を行う符号化方法であって、
符号化対象の原画像を取得し、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割し、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、
第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する
符号化方法。
画像を分割したブロック単位で前記画像の符号化を行う符号化方法であって、
符号化対象の原画像を取得し、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割し、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、
第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する
符号化方法。
(付記項6)
コンピュータを、付記項1~付記項4のいずれか1項に記載の符号化装置の各部として機能させるための値域制御プログラム。
コンピュータを、付記項1~付記項4のいずれか1項に記載の符号化装置の各部として機能させるための値域制御プログラム。
(付記項7)
画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
符号化対象の原画像を取得し、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割を行い、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、
第1のブロックを組み合わせて得られる組合ブロック、及び第1のブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とを比較し、前記第1のブロック及び前記第2のブロックのうち、コスト値が小さい方を前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックのうち最小ブロックサイズから最大ブロックサイズに繰り返していくことで、最終的なブロック分割形状を決定する、
ように構成されている符号化装置。
画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
符号化対象の原画像を取得し、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割を行い、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、
第1のブロックを組み合わせて得られる組合ブロック、及び第1のブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とを比較し、前記第1のブロック及び前記第2のブロックのうち、コスト値が小さい方を前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックのうち最小ブロックサイズから最大ブロックサイズに繰り返していくことで、最終的なブロック分割形状を決定する、
ように構成されている符号化装置。
(付記項8)
画像を分割したブロック単位で前記画像の符号化を行う符号化処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記符号化処理は、
符号化対象の原画像を取得し、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割を行い、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、
第1のブロックを組み合わせて得られる組合ブロック、及び第1のブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とを比較し、前記第1のブロック及び前記第2のブロックのうち、コスト値が小さい方を前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックのうち最小ブロックサイズから最大ブロックサイズに繰り返していくことで、最終的なブロック分割形状を決定する、
非一時的記憶媒体。
画像を分割したブロック単位で前記画像の符号化を行う符号化処理を実行するようにコンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記符号化処理は、
符号化対象の原画像を取得し、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割を行い、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出し、
第1のブロックを組み合わせて得られる組合ブロック、及び第1のブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とを比較し、前記第1のブロック及び前記第2のブロックのうち、コスト値が小さい方を前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックのうち最小ブロックサイズから最大ブロックサイズに繰り返していくことで、最終的なブロック分割形状を決定する、
非一時的記憶媒体。
1 符号化装置
10 分割部
41 取得部
42 絞込部
43 導出部
44 判定部
51 CPU
54 ストレージ
55 符号化プログラム
10 分割部
41 取得部
42 絞込部
43 導出部
44 判定部
51 CPU
54 ストレージ
55 符号化プログラム
Claims (4)
- 画像を分割したブロック単位で前記画像の符号化を行う符号化装置であって、
符号化対象の原画像を取得する取得部と、
前記画像を再帰的に正方形ブロックまたは長方形ブロックに分割する絞込部と、
前記ブロックごとに予測された画面内予測モード、及びコスト値を導出する導出部と、
第1のブロックを組み合わせて得られる組合ブロックのコスト値の合算値と、前記組合ブロックと同じサイズである第2のブロックのコスト値とに基づいて、前記合算値の方が小さい場合は、前記組合ブロックを前記組合ブロックのサイズにおけるブロック形状として選択し、前記第2のブロックのコスト値との方が小さい場合は、前記第2のブロックを前記組合ブロックのサイズにおけるブロック形状として選択する手順を、再帰的に分割されたブロックにおける最小ブロックサイズから最大ブロックサイズまでを、前記第1のブロックのサイズとして繰り返していくことで、最終的なブロック分割形状を決定する判定部と、
を備えた符号化装置。 - 前記絞込部は、正方形ブロック内の画素値のテクスチャまたはパターン情報から、前記正方形ブロックから前記長方形ブロックに分割する分割方法または分割方向の絞り込みを行い、前記正方形ブロックでは長方形ブロックに分割を行わない場合は、前記正方形ブロックよりも一段小さいサイズの正方形ブロックにおける長方形ブロックの絞り込み候補数を増加させる、
請求項1に記載の符号化装置。 - 前記判定部は、正方形ブロックである前記第1のブロックの組み合わせと、長方形ブロック分割の場合の前記第1のブロックの比較判定後に得られるブロックと、正方形ブロックである前記第2のブロックとの比較判定を行い、前記第2のブロックおけるブロックサイズを決定する
請求項2に記載の符号化装置。 - 前記判定部は、前記第2のブロックのブロック分割形状を複数候補から得る際に、その候補に長方形ブロックが存在しない場合は、内包する前記第2のブロックよりも小サイズのブロックの画面内予測モードが所定の範囲内に収まっている場合には、前記小サイズのブロックを統合して長方形ブロックとして扱う、
請求項1に記載の符号化装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/024130 WO2026009352A1 (ja) | 2024-07-03 | 2024-07-03 | 符号化装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2024/024130 WO2026009352A1 (ja) | 2024-07-03 | 2024-07-03 | 符号化装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2026009352A1 true WO2026009352A1 (ja) | 2026-01-08 |
Family
ID=98317922
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/024130 Pending WO2026009352A1 (ja) | 2024-07-03 | 2024-07-03 | 符号化装置 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2026009352A1 (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017208768A (ja) * | 2016-05-20 | 2017-11-24 | 日本電信電話株式会社 | 映像符号化装置、ブロック構造決定方法及びコンピュータプログラム |
| JP2019087985A (ja) * | 2017-11-01 | 2019-06-06 | 日本放送協会 | 画像符号化装置及び画像符号化プログラム |
| WO2021171360A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電信電話株式会社 | 符号化方法、符号化装置及びプログラム |
| JP7450078B1 (ja) * | 2023-02-15 | 2024-03-14 | Nttイノベーティブデバイス株式会社 | 映像符号化装置、および、映像符号化方法 |
-
2024
- 2024-07-03 WO PCT/JP2024/024130 patent/WO2026009352A1/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017208768A (ja) * | 2016-05-20 | 2017-11-24 | 日本電信電話株式会社 | 映像符号化装置、ブロック構造決定方法及びコンピュータプログラム |
| JP2019087985A (ja) * | 2017-11-01 | 2019-06-06 | 日本放送協会 | 画像符号化装置及び画像符号化プログラム |
| WO2021171360A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電信電話株式会社 | 符号化方法、符号化装置及びプログラム |
| JP7450078B1 (ja) * | 2023-02-15 | 2024-03-14 | Nttイノベーティブデバイス株式会社 | 映像符号化装置、および、映像符号化方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108605130B (zh) | 一种用于对与区块相关的符号进行熵编解码的方法和装置 | |
| CN111954894B (zh) | 用于视频压缩的基于深度学习的图像分区 | |
| JP6005087B2 (ja) | 画像復号装置、画像復号方法、画像符号化装置、画像符号化方法及び符号化データのデータ構造 | |
| JP5478740B2 (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 | |
| JP6789256B2 (ja) | 画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法 | |
| EP3560199A1 (en) | Low-complexity sign prediction for video coding | |
| CN108464006A (zh) | 在使用四叉树和二叉树分割的编码系统中色度分量的非正方形帧内预测的方法及装置 | |
| JP2015136150A (ja) | ビデオ符号化での分割ブロック符号化方法、ビデオ復号化での分割ブロック復号化方法及びこれを実現する記録媒体 | |
| TW201737709A (zh) | 視訊解碼方法 | |
| CN116830584A (zh) | 帧内预测方法、编码器、解码器以及存储介质 | |
| CN111586405B (zh) | 一种多功能视频编码中基于alf滤波的预测模式快速选择方法 | |
| CN109936742A (zh) | 对视频序列进行编码的方法、编码装置和存储介质 | |
| CN110662028B (zh) | 对图像的序列进行压缩的编码方法及装置、解码方法及装置 | |
| WO2013114992A1 (ja) | カラー動画像符号化装置、カラー動画像復号装置、カラー動画像符号化方法及びカラー動画像復号方法 | |
| CN110035288B (zh) | 对视频序列进行编码的方法、编码装置和存储介质 | |
| JP2014090326A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 | |
| JP2014090327A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 | |
| JP2013168913A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 | |
| CN115379222B (zh) | 影像编码/解码方法及装置 | |
| KR20210000689A (ko) | 영상 부호화/복호화 방법 및 장치 | |
| JP7147145B2 (ja) | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム | |
| JP7513184B2 (ja) | 映像符号化方法、映像符号化装置、及び映像符号化プログラム | |
| JP2013098715A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 | |
| JP2014007643A (ja) | 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法 | |
| KR20110118527A (ko) | 마크로 블록과 블록 파티셔닝 방법 |
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: 24946340 Country of ref document: EP Kind code of ref document: A1 |