Dynamic image decoding apparatus, dynamic image decoding method, and storage medium

By using a quadtree or binary tree structure to segment the blocks containing image ends in the dynamic image coding device, generating prediction blocks and attaching segmentation information, the problem of reduced coding efficiency is solved, and efficient coding is achieved when image ends are present.

CN116320470BActive Publication Date: 2026-03-17FUJITSU LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2017-10-20
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

Existing technologies suffer from reduced coding efficiency and increased coding complexity when encoding dynamic image data, especially when the image edges are contained within the encoding processing block.

Method used

A dynamic image coding device is used to segment blocks containing image ends using a quadtree or binary tree structure, generate prediction blocks, and append segmentation information to the coding data to ensure that sub-blocks do not contain ends, thereby improving coding efficiency.

Benefits of technology

Even when the block contains image ends, it can improve coding efficiency, reduce coding volume, and enhance the effect of coding processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116320470B_ABST
    Figure CN116320470B_ABST
Patent Text Reader

Abstract

A moving image decoding device, a moving image decoding method, and a storage medium are provided. The moving image decoding device decodes a decoding target image included in encoded moving image data, and has: a division mode determination section that, when an image end block includes an end in a horizontal direction of the decoding target image and an end in a vertical direction of the decoding target image, performs quad-division on the image end block in accordance with a quad-tree structure, when the image end block still includes the end in the horizontal direction or the end in the vertical direction after performing binary-division, performs binary-division, when the image end block still includes the end in the horizontal direction or the end in the vertical direction after performing quad-division on a block including the image end block, performs quad-division in accordance with the quad-tree structure or performs binary-division, and divides the image end block into a plurality of sub-blocks so that the end of the decoding target image is not included in any one of the sub-blocks; a prediction block generation section that generates a prediction block for each of the plurality of sub-blocks; and a decoding section that decodes the image end block.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is filed in accordance with Article 42 of the Implementing Regulations of the Patent Law and is a divisional application of the invention patent application "Dynamic Image Encoding Apparatus, Dynamic Image Encoding Method, Computer Program for Dynamic Image Encoding, Dynamic Image Decoding Apparatus, Dynamic Image Decoding Method and Computer Program for Dynamic Image Decoding" filed on October 20, 2017, with application number 201780095955.1 (International Application No.: PCT / JP2017 / 038062). Technical Field

[0002] The present invention relates, for example, to a motion image encoding apparatus, a motion image encoding method, a motion image decoding apparatus, a motion image decoding method, and a storage medium for encoding motion image data. Background Technology

[0003] Moving image data typically has a very large data volume. Therefore, when a device processing moving image data needs to send the moving image data to other devices or store the moving image data in a storage device, the moving image data is compressed by encoding. As representative moving image coding standards, Advanced Video Coding (MPEG-4 AVC | ITU-T H.264) and High Efficiency Video Coding (HEVC | ITU-T H.265) have been developed (see, for example, Non-Patent Literature 1).

[0004] In this coding standard, the image of the object to be coded is segmented into blocks. Moreover, for each block that is the object to be coded, a prediction block is generated based on the already encoded regions of other images or the image of the object to be coded. Redundancy is reduced by encoding the difference between the block that is the object to be coded and the prediction block.

[0005] For example, in HEVC, the images contained in the motion picture data are segmented in multiple stages. Therefore, the segmentation of images in HEVC will be explained first.

[0006] Figure 1 This is a diagram illustrating an example of HEVC image segmentation. (See diagram for example.) Figure 1As shown, the image 100 is segmented according to the coding tree unit (CTU) (or, also called the largest coding unit (LCU)) as the unit of encoding processing. Each CTU 101 is encoded in the order of raster scanning. The size of the CTU 101 can be selected from 64x64 to 16x16 pixels.

[0007] CTU 101 is further divided into multiple coding units (CUs) 102 according to a four-part tree structure. Each CU 102 within a CTU 101 is encoded in Z-scan order. The size of the CU 102 is variable, selected from CU segmentation patterns of 8x8 to 64x64 pixels. The CU 102 serves as the unit for selecting the intra-frame predictive coding scheme and the inter-frame predictive coding scheme as the coding mode. Intra-frame predictive coding is a coding scheme that generates prediction blocks by referencing already encoded regions of the target image. Inter-frame predictive coding is a coding scheme that generates prediction blocks by referencing a reference image (also called a locally decoded image) obtained by decoding other encoded images.

[0008] CU 102 is processed either in units of Prediction Unit (PU) 103 or Transform Unit (TU) 104. PU 103 is the unit for generating prediction blocks that performs predictions corresponding to the coding mode. For example, in intra-frame prediction coding, PU 103 becomes the unit for applying the prediction mode, which specifies the pixels referenced when generating prediction blocks and the method for generating prediction blocks. On the other hand, in inter-frame prediction coding, PU 103 becomes the unit for motion compensation. For example, when applying inter-frame prediction coding, the size of PU 103 can be selected from 2Nx2N, NxN, 2NxN, Nx2N, 2NxU, 2NxnD, nRx2N, nLx2N (N is the CU size / 2). On the other hand, TU 104 is the unit for orthogonal transformation, and orthogonal transformation is performed for each TU. The size of TU 104 is selected from 4x4 pixels to 32x32 pixels. TU 104 is segmented according to a quadtree structure and processed in Z-scan order.

[0009] Furthermore, CTU is an example of a block obtained by segmenting an image. Additionally, CU is another example of a block. Moreover, CU is also an example of a sub-block obtained by segmenting a block.

[0010] In HEVC, the CTU is divided into CUs that are square. However, when the horizontal or vertical dimensions of the image are not integer multiples of the horizontal or vertical dimensions of the CTU, the image ends are included within the right or bottom CTU. In this case, to encode the CTU without including information outside the image, the CTU is preferably divided so that the boundaries between the CUs coincide with the image ends, i.e., the image ends are not included in any CU. However, sometimes it is necessary to reduce the size of the CUs and increase the number of CUs contained within the CTU to divide the CTU so that no image ends are included in any CU. In such cases, the syntax information contained in the encoded data of the CTU increases, thus reducing coding efficiency.

[0011] On the other hand, to further improve coding efficiency, it is proposed to determine each CU by further dividing the CTU into multiple sub-blocks according to a quarter-tree structure and then dividing each sub-block into a binary tree structure (e.g., see Non-Patent Document 2). In this case, the CU is sometimes rectangular.

[0012] However, even when a binary tree structure is applied as described above, the sub-blocks that have been divided into square shapes are not connected to each other. Therefore, sometimes it is not possible to segment the CTU, which contains the image ends, in order to increase the CU size.

[0013] Furthermore, a technique for identifying edge blocks smaller than the macroblock size has been proposed. In this technique, the size of the non-square region identified as an edge block can be detected, or the size of the multiple non-square regions obtained by segmenting the edge block in either the horizontal or vertical direction, is the one with the higher coding efficiency (for example, see Patent Document 1).

[0014] Existing technical documents

[0015] Patent documents

[0016] Patent Document 1: Japanese Patent Application Publication No. 2011-223303

[0017] Non-patent literature

[0018] Non-patent literature 1: ITU-T Recommendation H.265 | ISO / IEC 23008-2 "High Efficiency Video Coding", April 2013

[0019] Non-patent document 2: J. An (Other), "Block partitioning structure for next-generation video coding", ITU-T SG16 Doc.COM16-C966, September 2015 Summary of the Invention

[0020] The problem the invention aims to solve

[0021] However, even when edge blocks are encoded as non-square regions, the motion picture coding device still includes the syntax of the segmentation pattern representing the edge blocks in the encoded motion picture data. Therefore, the more types of segmentation patterns for edge blocks as non-square regions there are, the more coding complexity increases, resulting in decreased coding efficiency.

[0022] In one aspect, the present invention provides a dynamic image encoding apparatus that can improve encoding efficiency even when the image ends are included within a block that is a unit of encoding processing.

[0023] means for solving problems

[0024] According to one embodiment, a motion picture encoding apparatus is provided for encoding a coded object image contained in motion picture data. This motion picture encoding apparatus includes: a segmentation mode determination unit that performs quadrilateral segmentation on an image end block (containing either a horizontal or vertical end of the coded object image) from a plurality of blocks obtained by segmenting the coded object image, according to a quadrilateral tree structure, or performs bilateral segmentation in a direction perpendicular to the end of the coded object image contained in the image end block, dividing the image end block into a plurality of sub-blocks such that no sub-block contains the end of the coded object image; a prediction block generation unit that generates a prediction block for each of the plurality of sub-blocks, referring to encoded regions of other encoded images or the coded object image; an encoding unit that calculates the prediction error between corresponding pixels of the sub-block and the corresponding prediction block for each of the plurality of sub-blocks, and encodes the prediction error; and an appending unit that appends segmentation information indicating whether quadrilateral segmentation or bilateral segmentation was performed on the image end block to the encoded motion picture data.

[0025] In addition, according to other embodiments, a motion picture decoding apparatus may be provided for decoding a decoded object image contained in encoded motion picture data. The motion picture decoding apparatus includes: a segmentation mode determination unit, which divides the image end block into multiple sub-blocks by referring to segmentation information contained in the encoded motion picture data, indicating whether the image end block is divided into four segments according to a four-segment tree structure or into two segments, or by dividing it into two segments in a direction perpendicular to the end of the decoded object image contained in the image end block, so that no sub-block contains the end of the decoded object image, wherein the image end block is a block among the multiple blocks obtained by segmenting the decoded object image that contains either the horizontal end or the vertical end of the decoded object image; a prediction block generation unit, which generates prediction blocks for each of the multiple sub-blocks by referring to the decoded regions of other decoded images or the decoded object image; and a decoding unit, which decodes the image end block by adding the prediction error between the corresponding pixel of the sub-block contained in the encoded motion picture data and the corresponding pixel value of the prediction block to the prediction block for each of the multiple sub-blocks.

[0026] Invention Effects

[0027] In one aspect, even when the image end is included within a block that serves as a unit for encoding processing, the motion image encoding apparatus disclosed in this specification can improve encoding efficiency. Attached Figure Description

[0028] Figure 1 This is a diagram illustrating an example of HEVC image segmentation.

[0029] Figure 2 This is a diagram illustrating an example of CTU segmentation including the image end.

[0030] Figure 3 This is a schematic structural diagram illustrating one embodiment of a motion image encoding apparatus.

[0031] Figure 4 This is a diagram illustrating an example of CTU segmentation, including the lower end of the image.

[0032] Figure 5 This is a diagram illustrating an example of CTU segmentation, including the right end of the image.

[0033] Figure 6 This is a diagram illustrating an example of CTU segmentation, including both the lower and right ends of the image.

[0034] Figure 7 This is a flowchart illustrating the segmentation mode and encoding mode determination process of the encoding mode determination unit.

[0035] Figure 8 This is a flowchart of the dynamic image encoding process.

[0036] Figure 9 This is a schematic diagram of the dynamic image decoding device.

[0037] Figure 10 This is a flowchart of the segmentation mode determination process in the segmentation mode determination unit.

[0038] Figure 11 This is a flowchart of the dynamic image decoding process.

[0039] Figure 12 This is a structural diagram of a computer that functions as a motion image encoding device or motion image decoding device by operating a computer program that enables the functions of each part of the motion image encoding device or motion image decoding device that implements the embodiments or variations thereof. Detailed Implementation

[0040] The motion image encoding apparatus will now be described with reference to the accompanying drawings.

[0041] First, the segmentation of CTUs including the image ends will be explained.

[0042] Figure 2 This diagram illustrates an example of segmentation of a CTU containing the image endpoint. In this example, since neither the horizontal nor vertical dimension of image 200 is an integer multiple of the CTU size, the right and bottom ends of image 200 are contained within the right or bottom CTU, respectively. When focusing on CTU 201, which contains the bottom end of image 200, as shown in segmentation mode 210, CTU 201 is segmented so that no image endpoint 220 is contained within any CU 202. Using a quarter-tree structure, to segment CTU 201 such that the boundaries of image endpoint 220 and CU 202 are consistent with each other, CU 202s of 1 / 4 the size of CTU 201 can be used. As a result, in this example, CTU 201 is segmented by 6 CU 202s. Furthermore, after using a quartic tree structure to segment CTU 201, even if a binary tree structure is used to further segment each CU 202, more CUs can be used to segment CTU 201.

[0043] On the other hand, when a binary tree structure is applied from the beginning to segment the CTU 201 containing the image ends, the CTU 201 can be segmented using a non-square CU 203 as shown in segmentation mode 211. However, in the prior art, where a binary tree structure is applied to each sub-block after the CTU is segmented into multiple sub-blocks using a quadrature tree structure, the CTU 201 is initially segmented into square sub-blocks. Therefore, segmenting the CTU 201 as in segmentation mode 211 is not permissible.

[0044] Therefore, in this embodiment, the motion picture encoding apparatus uses the sub-block with lower encoding cost from either the right or bottom edge of the image-containing block to segment the image. Then, the motion picture encoding apparatus appends a syntax indicating whether a quarter-tree structure or a binary-tree structure was applied to the encoded motion picture data.

[0045] In addition, such as Figure 2 As shown, when applying a bipartite tree structure to the block containing the lower end of the image and dividing the block into multiple sub-blocks, it is preferable to divide the block along a direction perpendicular to the end of the image to reduce the number of sub-blocks. That is, the block containing the lower end of the image is preferably divided so that the boundary lines between the sub-blocks are parallel to the end of the image. Therefore, it is preferable to divide the block containing the lower end of the image along a vertical direction such that the boundary lines between the sub-blocks are horizontal. Similarly, when applying a bipartite tree structure to the block containing the right end of the image, it is preferable to divide the block along a horizontal direction such that the boundary lines between the sub-blocks are vertical. Therefore, the motion picture encoding apparatus may not include the division direction of the block to which the bipartite tree structure is applied in the encoded motion picture data. Furthermore, the motion picture encoding apparatus may also apply a quadruple tree structure to the blocks containing both the lower and right ends of the image for segmentation.

[0046] Alternatively, an image can be either a frame or a field. A frame is a static image within dynamic image data, while a field is a static image that can be obtained by extracting only the odd or even rows of data from a frame.

[0047] Furthermore, in this embodiment, it is assumed that the motion picture coding apparatus, such as HEVC, segments and encodes the image in units of CTUs. However, the motion picture coding apparatus may also encode motion picture data based on other coding standards that divide the image into multiple blocks and encode each block separately.

[0048] Figure 3This is a schematic structural diagram of a motion image encoding apparatus according to one embodiment. The motion image encoding apparatus 1 includes a motion search unit 11, an encoding mode determination unit 12, a prediction block generation unit 13, a prediction encoding unit 14, a decoding unit 15, a storage unit 16, and an entropy encoding unit 17.

[0049] The motion image encoding apparatus 1 encodes each CTU in a raster scan sequence for the image to be encoded. Therefore, the following description will focus on the processing of one CTU as an example for each part of the motion image encoding apparatus 1.

[0050] When the encoded object image containing the encoded object CTU is a P-image or B-image that can apply inter-frame predictive coding, the motion search unit 11 calculates motion vectors for each PU that can be applied to the encoded object CTU. Additionally, the luminance component is an example of the first component. Furthermore, the category of the encoded object image is determined, for example, based on the structure of the Group of Pictures (GOP) of the motion image data applied to the encoded object by the control unit (not shown) and the position of the encoded object image within the GOP.

[0051] The motion search unit 11 performs block matching on reference regions of at least one local decoded image for each PU of interest in the coding target CTU, and determines the reference block that best matches the PU of interest. Furthermore, the motion search unit 11 calculates a vector representing the amount of movement between the PU of interest and the reference block as a motion vector. Additionally, if the coding target image is a B-image capable of applying a bidirectional predictive coding mode, the motion search unit 11 calculates motion vectors for both L0 and L1 predictions. The motion search unit 11 stores the motion vectors representing each PU and information about the local decoded image referenced by these motion vectors in the storage unit 16, and notifies the coding mode determination unit 12.

[0052] The coding mode determination unit 12 is an example of a segmentation mode determination unit, which determines the segmentation modes of the CUs, PUs, and TUs that are segmented to encode the CTU, and the coding mode applied to each CU. For example, the coding mode determination unit 12 determines the coding mode that can be applied to the CTU based on information obtained from a control unit (not shown) indicating the type of the image containing the CTU. Furthermore, the coding mode determination unit 12 selects the actual coding mode to be applied from the applicable coding modes. If the type of the image of the encoding object is an I-image, which can only be applied using intra-frame prediction coding, the coding mode determination unit 12 selects intra-frame prediction coding as the applied coding mode. Furthermore, if the type of the image of the encoding object is a P-image or a B-image, the coding mode determination unit 12 selects either inter-frame prediction coding or intra-frame prediction coding as the applied coding mode.

[0053] The coding mode determination unit 12 calculates the evaluation value, i.e., the coding cost, of the encoded data volume for the coding target CTU for each applicable coding mode, on a CU basis. For example, the coding mode determination unit 12 calculates the coding cost for each combination of inter-frame predictive coding methods, including CU segmentation mode, PU segmentation mode, and vector mode of a method for generating prediction vectors of specified motion vectors. In addition, the coding mode determination unit 12 can, for example, use either the Advanced Motion Vector Prediction (AMVP) mode or the Merge mode as the vector mode.

[0054] Furthermore, for intra-frame predictive coding schemes, the coding mode determination unit 12 calculates the coding cost for each combination of the CU segmentation mode, PU segmentation mode and the prediction mode of the reference direction within the specified image for segmenting the CTU.

[0055] The encoding mode determination unit 12 calculates the prediction error, i.e., the absolute value of pixel difference and SAD, for example, for the PU of interest, according to the following formula to calculate the encoding cost.

[0056] SAD = Σ|OrgPixel-PredPixel|

[0057] Here, OrgPixel is the value of the pixel contained in the PU of interest, and PredPixel is the value of the pixel contained in the prediction block corresponding to the block of interest, generated according to the encoding pattern that serves as the computational object for encoding cost.

[0058] Furthermore, the encoding mode determination unit 12 calculates the encoding cost (Cost) for the CU of interest, for example, according to the following formula.

[0059] Cost = ΣSAD + λ*B

[0060] Here, ΣSAD is the sum of the SADs calculated for each PU contained in the CU of interest. Furthermore, B is an estimate of the amount of code for items other than prediction error, such as motion vectors and flags representing the prediction pattern. And λ is the Lagrange uncertainty multiplier.

[0061] Alternatively, the coding mode determination unit 12 can replace SAD to calculate the absolute value of the Hadamard coefficient and SATD of each pixel after performing Hadamard transformation on the difference image between the PU of interest and the prediction block.

[0062] The coding mode determination unit 12, for example, sequentially sets the CUs of interest starting from the largest of the available CU sizes, for the CUs of interest. Furthermore, for each CU of interest, the coding mode determination unit 12 selects the prediction mode with the lowest cost for each PU segmentation mode within that CU, regarding intra-frame predictive coding. Additionally, for each CU of interest, the coding mode determination unit 12 selects the vector mode with the lowest cost for each PU segmentation mode within that CU, regarding inter-frame predictive coding. Moreover, for each CU of the same size, the coding mode determination unit 12 selects the coding mode with the lower coding cost between intra-frame and inter-frame predictive coding methods as the coding mode applied to that CU.

[0063] Furthermore, when the CU of interest does not include the image end, the coding mode determination unit 12 sequentially treats each CU of interest after it has been divided into four parts according to the quad-tree structure as a CU of interest, and performs the same processing to calculate the minimum coding cost. Moreover, if the sum of the minimum coding costs calculated for each of the divided CUs is less than the minimum coding cost for the CU of interest, the coding mode determination unit 12 performs a quad-tree division on the CU of interest. The coding mode determination unit 12 repeats the above processing until no further division of the CUs is performed, thereby determining the CU segmentation mode and PU segmentation mode applied to the coding target CTU.

[0064] Furthermore, when the CTU or CU of interest (hereinafter referred to as the block of interest) contains both the right and bottom edges of the image, the coding mode determination unit 12 performs a four-part segmentation of the block of interest according to a four-part tree structure. This is because, when the block of interest contains both the right and bottom edges of the image, in order to ensure that no CU contains both the right and bottom edges of the image, it is required to segment the block of interest along both the horizontal and vertical directions.

[0065] Furthermore, when the block of interest includes the right end of the image but not the bottom end, the encoding pattern determination unit 12 divides the block of interest into four sub-blocks according to a quartet tree structure. Also, the encoding pattern determination unit 12 divides the block of interest into two sub-blocks horizontally according to a binary tree structure. Similarly, when the block of interest includes the bottom end of the image but not the right end, the encoding pattern determination unit 12 divides the block of interest into four sub-blocks according to a quartet tree structure and also divides the block of interest into two sub-blocks vertically.

[0066] Furthermore, if any sub-block obtained by segmenting the block of interest contains an image edge, the encoding mode determination unit 12 further performs quad-segmentation or bi-segmentation on the sub-block containing the image edge as described above. The encoding mode determination unit 12 repeats the above process until no image edge is contained in any sub-block.

[0067] However, for a block that is temporarily divided by a binary tree structure and split horizontally, the encoding mode determination unit 12 further divides the sub-blocks containing the image ends of each sub-block obtained by dividing the block according to the binary tree structure and horizontally. Similarly, for a block that is temporarily divided by a binary tree structure and split vertically, the encoding mode determination unit 12 further divides the sub-blocks containing the image ends of each sub-block obtained by dividing the block according to the binary tree structure and vertically.

[0068] The encoding mode determination unit 12 performs the same processing as described above for each combination of obtained sub-blocks to calculate the encoding cost. Then, the encoding mode determination unit 12 selects the combination of sub-blocks with the minimum encoding cost, assuming that each sub-block contained in the selected combination is a CU.

[0069] Figure 4 This is a diagram illustrating an example of CTU segmentation, including the lower end of the image. In Figure 4 In the example shown, the bottom edge 401 of the image is included in CTU400. Therefore, the encoding mode determination unit 12 applies a quadtree structure to CTU 400 to divide it into four squares CU 410-1 to 410-4, or applies a binary tree structure to divide it into two CUs 420-1 and 420-2 in the vertical direction. Furthermore, the encoding mode determination unit 12 can also perform quad-segmentation on CU 410-1 and CU 410-2, since the bottom edge 401 of the image is not included in CU 410-1 and CU 410-2, according to the quadtree structure. The encoding mode determination unit 12 determines whether to perform quad-segmentation on CU 410-1 and CU 410-2 based on the encoding cost. Furthermore, for CU 410-3 and CU 410-4, since the lower end 401 of the image is contained in CU 410-3 and CU 410-4, the encoding mode determination unit 12 performs quadrilateral segmentation according to the quadrilateral tree structure or bilateral segmentation in the vertical direction according to the bilateral tree structure.

[0070] The encoding mode determination unit 12 may also further divide CU 420-1 (which does not contain an image) in the lower part 401 into two parts in the vertical direction according to the binary tree structure. The encoding mode determination unit 12 can determine whether to divide CU 420-1 into two parts based on the encoding cost. In addition, the encoding mode determination unit 12 further divides CU 420-2 (which contains an image) in the lower part 401 into two parts in the vertical direction into CU 421-1 and CU 421-2 according to the binary tree structure.

[0071] Finally, the total coding cost calculated for each combination of CUs when the lower end 401 of the image is not included in all CUs can be calculated, and the CTU 400 is segmented according to the combination of CUs with the minimum total cost. For example, if the total coding cost of the combination of CU 420-1 and CU 421-1 is the minimum, the CTU 400 is segmented into CU420-1 and CU 421-1. Moreover, each time the CTU or CU is segmented, the coding mode determination unit 12 generates a syntax indicating which of the four-part tree structure and the two-part tree structure was applied to the CTU or CU, and informs the entropy coding unit 17 of the syntax. In addition, the syntax indicating which of the four-part tree structure and the two-part tree structure was applied is an example of segmentation information. However, for CUs obtained by applying the two-part tree structure, even if the CU is further segmented, the four-part tree structure is not applied, so it is not necessary to generate a syntax indicating which of the four-part tree structure and the two-part tree structure was applied.

[0072] Figure 5 This is a diagram illustrating an example of CTU segmentation, including the right end of the image. In Figure 5 In the example shown, the right end 501 of the image is included in CTU 500. Therefore, the encoding mode determination unit 12 applies a quadtree structure to CTU 500 to divide it into four squares CU 510-1 to 510-4, or applies a binary tree structure to divide it horizontally into two CUs 520-1 and 520-2. Furthermore, the encoding mode determination unit 12 can also perform quad-segmentation on CU 510-1 and CU 510-3, since the right end 501 of the image is not included in CU 510-1 and CU 510-3, according to the quadtree structure. The encoding mode determination unit 12 determines whether to perform quad-segmentation on CU 510-1 and CU 510-3 based on the encoding cost. Furthermore, for CU 510-2 and CU 510-4, since CU 510-2 and CU 510-4 contain the right end 501 of the image, the encoding mode determination unit 12 performs quadrilateral segmentation according to a quadrilateral tree structure, or performs bilateral segmentation in the horizontal direction according to a bilateral tree structure. Additionally, for CU 520-2, which contains the right end 501 of the image, the encoding mode determination unit 12 performs bilateral segmentation in the horizontal direction into CU521-1 and CU 521-2 according to a bilateral tree structure.

[0073] Finally, for each combination of CUs that do not contain the right end 501 of the image in all CUs, the total coding cost calculated for each CU can be calculated, and the CTU 500 can be segmented according to the combination of CUs that has the minimum total cost.

[0074] Figure 6This is a diagram illustrating an example of CTU segmentation, including both the lower and right ends of the image. Figure 6 In the example shown, CTU 600 includes the right end 601 and the bottom end 602 of the image. Therefore, the encoding mode determination unit 12 applies a quad-tree structure to CTU 600 and divides it into four squares CU 610-1 to 610-4. Furthermore, for CU 610-1, since CU 610-1 does not include both the right end 601 and the bottom end 602 of the image, it can also be further quad-segmented according to the quad-tree structure. The encoding mode determination unit 12 determines whether to quad-segment CU 610-1 based on the encoding cost. Additionally, for CU 610-3, since CU 610-3 includes the bottom end 602 of the image, it can be further quad-segmented according to the encoding mode determination unit 12. Figure 4 Similarly, the CTU 400 shown is repeatedly segmented according to a quartic tree structure or a binary tree structure until the lower end 602 of the CU no longer contains an image. In addition, since CU 610-2 and CU 610-4 do not contain images, they can be ignored.

[0075] Furthermore, the encoding mode determination unit 12 determines the TU segmentation mode for each CU that follows the CU segmentation mode determined as described above. At this time, the encoding mode determination unit 12 calculates the RD cost (Cost) for each applicable TU segmentation mode using the following formula.

[0076] [Formula 1]

[0077]

[0078] Where org(i) represents the pixel value contained in the CU of interest, and ldec(i) represents the decoded pixel value obtained by encoding the CU using the TU segmentation mode of interest and then further decoding it. Furthermore, bit represents the amount of encoding when encoding the CU using the TU segmentation mode of interest. The first term on the right-hand side of equation (1) represents the encoding distortion, and the second term represents the amount of encoding. Therefore, in the TU segmentation mode with the minimum RD cost, the optimal balance between encoding distortion and the amount of encoding is achieved.

[0079] Therefore, the encoding mode determination unit 12 selects the TU segmentation mode with the minimum RD cost.

[0080] The encoding mode determination unit 12 notifies the prediction block generation unit 13 of the combination of segmentation modes and encoding modes for the CUs and PUs selected for the encoding target CTU, and notifies the prediction coding unit 14 of the TU segmentation mode. Furthermore, the encoding mode determination unit 12 saves the combination of segmentation modes and encoding modes for the CUs, PUs, and TUs selected for the encoding target CTU to the storage unit 16. Additionally, the information indicating the segmentation mode for dividing the CTU into individual CUs includes, for example, information indicating whether the sub-blocks obtained by recursively segmenting the CTU have been segmented. Moreover, the encoding mode determination unit 12 generates a syntax indicating whether a 4-part tree structure or a 2-part tree structure is applied to the sub-blocks containing the image ends of the CTU and the sub-blocks obtained by recursively segmenting the CTU. The encoding mode determination unit 12 then transmits this syntax to the entropy coding unit 17.

[0081] Figure 7 This is a flowchart of the segmentation mode and encoding mode determination process of the encoding mode determination unit 12.

[0082] The encoding mode determination unit 12 determines whether the block of interest contains the end of the image (step S101). In addition, the first block of interest is the encoding object CTU.

[0083] If the block of interest does not contain the edges of the image (step S101 - No), the encoding mode determination unit 12 segments the block of interest to minimize the encoding cost (step S102). Alternatively, if the encoding cost is lower without segmenting the block of interest, further segmentation may not be necessary. On the other hand, if the block of interest contains the edges of the image (step S101 - Yes), the encoding mode determination unit 12 determines whether the block of interest contains both the right and bottom edges of the image (step S103).

[0084] If the block of interest contains both the right and bottom edges of the image (step S103 - Yes), the encoding mode determination unit 12 performs a four-part segmentation of the block of interest according to the four-part tree structure (step S104). On the other hand, if the edge of the image contained in the block of interest is either the right or bottom edge of the image (step S103 - No), the encoding mode determination unit 12 determines whether the block containing the block of interest has been divided into two parts (step S105).

[0085] If the block containing the block of interest is divided into two parts (step S105 - Yes), the encoding mode determination unit 12 also divides the block of interest into two sub-blocks (step S106). At this time, the encoding mode determination unit 12 also divides the block of interest in the same direction as the division direction of the block containing the block of interest.

[0086] On the other hand, if the block containing the block of interest is not divided into two parts (step S105 - No), the encoding mode determination unit 12 divides the block of interest into four parts, thereby generating four square sub-blocks. Furthermore, the encoding mode determination unit 12 divides the block of interest into two parts along a direction perpendicular to the edge of the image, thereby generating two rectangular sub-blocks (step S107).

[0087] After steps S102, S104, S106, or S107, the encoding mode determination unit 12 determines whether there is a sub-block containing an image end (step S108). If any sub-block contains an image end (step S108 - Yes), the encoding mode determination unit 12 sets each sub-block as a block of interest (step S109). Furthermore, the encoding mode determination unit 12 performs the processing after step S101 for each block of interest.

[0088] On the other hand, if no image end is contained in any sub-block (step S108 - No), the encoding mode determination unit 12 selects the combination with the lowest encoding cost from the obtained combinations of blocks. Furthermore, the encoding mode determination unit 12 determines the segmentation mode and the applied encoding mode for each of CU, PU, ​​and TU based on the selected combination (step S110). The encoding mode determination unit 12 then ends the segmentation mode and encoding mode determination process.

[0089] The prediction block generation unit 13 generates a prediction block for each PU according to the combination of the partitioning mode and encoding mode of the CU and PU selected for the encoding object CTU.

[0090] For example, when intra-frame predictive coding is performed on a PU of interest, the prediction block generation unit 13 generates a prediction block based on the pixel values ​​within the local decoded blocks surrounding the PU, as referenced according to the prediction mode selected for that PU. On the other hand, when inter-frame predictive coding is performed on a PU of interest, the prediction block generation unit 13 generates a prediction block by performing motion compensation on the local decoded image referenced for that PU, read from the storage unit 16, based on the motion vector calculated for that PU.

[0091] The prediction block generation unit 13 transmits the generated prediction block to the prediction encoding unit 14 and the decoding unit 15.

[0092] The predictive coding unit 14 performs predictive coding on the coding object CTU.

[0093] The predictive coding unit 14 performs a difference operation between each pixel in the coding target CTU and the corresponding pixel in the prediction block. Furthermore, the predictive coding unit 14 sets the difference value obtained by the difference operation for each TU in the coding target CTU and the corresponding pixel in the TU as the prediction error signal for each pixel of that TU.

[0094] Furthermore, the predictive coding unit 14 generates a candidate list of prediction vectors for each PU undergoing inter-frame predictive coding, based on the vector mode determined by the coding mode determination unit 12. The predictive coding unit 14 also calculates the prediction error signal between the motion vector of the PU and each candidate prediction vector. For each PU undergoing inter-frame predictive coding, the predictive coding unit 14 determines a prediction vector from the candidates for each prediction vector based on the prediction error signal calculated for each candidate. Then, for each PU's motion vector, the predictive coding unit 14 transmits the information about determining the prediction vector from the candidate list and the prediction error signal between the motion vector and the prediction vector to the entropy coding unit 17.

[0095] Furthermore, the prediction coding unit 14 performs an orthogonal transformation on the prediction error signal of each TU within the coding target CTU to obtain orthogonal transformation coefficients representing the frequency components in the horizontal and vertical directions of the prediction error signal. For example, the prediction coding unit 14 performs a Discrete Cosine Transform (DCT) on the prediction error signal as an orthogonal transformation process to obtain a set of DCT coefficients as orthogonal transformation coefficients.

[0096] Furthermore, the predictive coding unit 14 calculates the quantized quadrature transform coefficients by quantizing the quadrature transform coefficients of each TU in the coding object CTU according to quantization parameters including qp values ​​with a specified quantization width. Additionally, the quantized quadrature transform coefficients will sometimes be referred to simply as quantization coefficients below.

[0097] Predictive coding unit 14 outputs quantized orthogonal transform coefficients to decoding unit 15 and entropy coding unit 17.

[0098] The decoding unit 15 generates a local decoding block for comparison with the CUs following the TU in the encoding object CTU based on the quantization coefficients of each TU, and stores the local decoding block in the storage unit 16.

[0099] The decoding unit 15 recovers the orthogonal transform coefficients before quantization by inverse quantizing the quantized coefficients of each TU. For example, the decoding unit 15 performs an inverse orthogonal transform on the recovered orthogonal transform coefficients for each TU. For example, if the prediction coding unit 14 uses DCT as the orthogonal transform, the decoding unit 15 performs inverse DCT processing as an inverse orthogonal transform. Thus, for each TU, the decoding unit 15 recovers the prediction error signal with the same level of information as the prediction error signal before encoding.

[0100] For each TU, the decoding unit 15 adds the recovered prediction error signal to the pixel values ​​of the prediction block of that TU, thereby generating a local decoding block.

[0101] Each time a local decoding block is generated, the decoding unit 15 causes the storage unit 16 to store the local decoding block.

[0102] Furthermore, the decoding unit 15 writes the locally decoded image obtained by combining the local decoding blocks of an image according to the encoding order of each CTU into the storage unit 16.

[0103] The storage unit 16 temporarily stores the partial decoded blocks received from the decoding unit 15. The storage unit 16 supplies partial decoded images or partial decoded blocks to the motion search unit 11, the encoding mode determination unit 12, and the prediction block generation unit 13. In addition, the storage unit 16 stores a predetermined number of partial decoded images that may be referenced by the encoded target image. When the number of partial decoded images exceeds the predetermined number, they are discarded sequentially starting from the partial decoded images with the earliest encoding order.

[0104] Furthermore, the storage unit 16 stores motion vectors for each local decoded block after inter-frame predictive coding. In addition, the storage unit 16 stores combinations of segmentation and coding modes for each CTU, including the selected CU, PU, ​​and TU.

[0105] Entropy coding unit 17 is an example of an additional unit, which performs entropy coding on the quantization coefficients and various syntaxes of each TU of the coding object CTU. Furthermore, for each PU after inter-frame prediction coding, entropy coding unit 17 also performs entropy coding on information such as determining the prediction vector from the candidate list of prediction vectors. Additionally, in the syntax, for a CTU containing image ends, the following syntax is included: this syntax represents the application of either a four-part tree structure or a two-part tree structure for that CTU and each sub-block obtained by recursively segmenting the CTU and containing image ends.

[0106] In this embodiment, the entropy encoding unit 17 uses context-based adaptive binary arithmetic coding (CABAC) as the entropy encoding method. Then, the entropy encoding unit 17 outputs the bitstream obtained through entropy encoding.

[0107] The bitstreams of each CTU output by the entropy encoding unit 17 are combined in a prescribed order and supplemented with header information specified by HEVC, thereby obtaining an encoded bitstream containing encoded motion picture data. The motion picture encoding device 1 stores the encoded bitstream in a storage device (not shown) or outputs the encoded bitstream to other devices, such as magnetic recording media, optical recording media, or semiconductor memory.

[0108] Figure 8This is a flowchart of the motion image encoding process performed by the motion image encoding device 1. For each CTU, the motion image encoding device 1 performs motion image encoding processing according to the flowchart shown below.

[0109] The motion search unit 11 calculates motion vectors for each PU within the coding target CTU that is capable of applying inter-frame predictive coding (step S201). Then, the motion search unit 11 notifies the coding mode determination unit 12 of the motion vectors of each PU. Furthermore, if the coding target image including the coding target CTU is a B-image, motion vectors are calculated for both the L0 and L1 directions. Additionally, if the coding target image is an I-image, step S201 can be omitted.

[0110] The encoding mode determination unit 12 determines the segmentation mode and applied encoding mode of each of the CU, PU, ​​and TU for the encoding object CTU in a way that minimizes the encoding cost (step S202). Furthermore, the encoding mode determination unit 12 notifies the prediction block generation unit 13 of the segmentation mode and applied encoding mode of the CU and PU, and notifies the prediction coding unit 14 of the TU segmentation mode. In addition, the encoding mode determination unit 12 stores the segmentation mode and applied encoding mode of each of the CU, PU, ​​and TU in the storage unit 16.

[0111] The prediction block generation unit 13 generates a prediction block based on the determined CU and PU segmentation pattern and the applied encoding pattern (step S203). Then, the prediction block generation unit 13 transmits the generated prediction block to the prediction encoding unit 14 and the decoding unit 15.

[0112] The predictive coding unit 14 calculates the prediction error signal between the corresponding pixel of the coding target CTU and the prediction block (step S204). Then, the predictive coding unit 14 performs an orthogonal transform on the prediction error signal of each pixel for each TU, and calculates the orthogonal transform coefficients for each TU (step S205). Furthermore, the predictive coding unit 14 quantizes the orthogonal transform coefficients of each TU of the coding target CTU and calculates the quantization coefficients (step S206). Moreover, the predictive coding unit 14 outputs the quantization coefficients of each TU to the decoding unit 15 and the entropy coding unit 17.

[0113] The decoding unit 15 recovers the prediction error signal from the quantization coefficients of each TU for the encoded target CTU, and generates a local decoding block corresponding to the CTU based on the recovered prediction error signal and the corresponding prediction block (step S207). Then, the decoding unit 15 stores the local decoding block in the storage unit 16.

[0114] The entropy coding unit 17 performs entropy coding on the quantization coefficients and various syntaxes (step S208). Among the various syntaxes is a syntax indicating which structure, either a quadtree structure or a binary tree structure, is applied to the CTU or CU containing the image end. The entropy coding unit 17 outputs the obtained coded bitstream. Furthermore, the motion picture coding apparatus 1 completes the motion picture coding process for one CTU.

[0115] As explained above, this motion picture encoding apparatus segments blocks containing either the right or bottom edge of the image based on the smaller encoding cost of a quartet structure or a bipartite tree structure perpendicular to the image edge. Therefore, this motion picture encoding apparatus can apply a bipartite tree structure to blocks containing the image edge from the very beginning, thus preventing overly fine segmentation of these blocks. Furthermore, for blocks containing the image edge, the motion picture encoding apparatus appends the syntax representing the applied structures in both the quartet and bipartite tree structures to the encoded motion picture data. Conversely, for blocks using a bipartite tree structure, the syntax representing the segmentation direction can be omitted from the encoded motion picture data. Therefore, this motion picture encoding apparatus can reduce the amount of information encoded in the motion picture data representing the segmentation pattern of blocks containing the image edge. Thus, even when the image edge is included within a block, this motion picture encoding apparatus can improve encoding efficiency.

[0116] Figure 9 This is a schematic structural diagram of a motion image decoding apparatus that decodes motion image data encoded by the motion image encoding apparatus of the above-described embodiment. The motion image decoding apparatus 2 includes an entropy decoding unit 21, a segmentation mode determination unit 22, a prediction block generation unit 23, a decoding unit 24, and a storage unit 25.

[0117] Each of these components in the motion picture decoding device 2 is formed as a single circuit. Alternatively, each of these components in the motion picture decoding device 2 may be installed as an integrated circuit containing a corresponding circuit. Furthermore, each of these components in the motion picture decoding device 2 may also be a functional module implemented by a computer program executed on a processor in the motion picture decoding device 2.

[0118] The motion picture decoding device 2 acquires, for example, an encoded bitstream containing encoded motion picture data via a communication network and an interface circuit, which connects the motion picture decoding device 2 to the communication network. Then, the motion picture decoding device 2 stores the encoded bitstream in a buffer memory (not shown). The motion picture decoding device 2 reads the encoded data from the buffer memory in units of CTU and inputs this CTU-unit data to the entropy decoding unit 21.

[0119] The entropy decoding unit 21 performs entropy decoding on the data encoded in units of CTUs. Furthermore, the entropy decoding unit 21 decodes the quantization coefficients of each TU within a CTU. Additionally, for each CU after inter-frame prediction coding, the entropy decoding unit 21 performs entropy decoding on information used to determine motion vectors for each PU contained within that CU (e.g., information indicating the applied vector pattern and the prediction vector of the motion vector). Furthermore, for each CU after intra-frame prediction coding, the entropy decoding unit 21 performs entropy decoding on the prediction patterns for each PU contained within that CU. Furthermore, the entropy decoding unit 21 performs entropy decoding on various syntaxes including the applied segmentation pattern and coding pattern. Furthermore, the entropy decoding unit 21 transmits syntaxes representing the segmentation patterns of CUs, PUs, and TUs to the segmentation pattern determination unit 22 and the prediction block generation unit 23. Furthermore, the entropy decoding unit 21 transmits syntaxes indicating whether a quadtree structure or a binary tree structure is applied to each sub-block containing the image edge, obtained by recursively segmenting the CTU and containing the image edge. Furthermore, the entropy decoding unit 21 transmits various other syntaxes to the prediction block generation unit 23. Also, the entropy decoding unit 21 transmits quantization coefficients to the decoding unit 24.

[0120] The segmentation mode determination unit 22 segments the decoded object CTU into each CU. At this time, if the decoded object CTU does not contain the image end, the segmentation mode determination unit 22 refers to the syntax representing the segmentation mode of the decoded object CTU decoded by the entropy decoding unit 21 and segments the decoded object CTU into each CU.

[0121] On the other hand, if the decoded object CTU contains either the right end or the bottom end of the image, the segmentation mode determination unit 22 refers to the syntax indicating whether a quartic tree structure or a binary tree structure is applied, and performs quartic or binary segmentation on the decoded object CTU. That is, if a quartic tree structure is applied to the decoded object CTU, the segmentation mode determination unit 22 performs quartic segmentation on the decoded object CTU. On the other hand, if a binary tree structure is applied to the decoded object CTU, the segmentation mode determination unit 22 performs binary segmentation on the decoded object CTU. In this case, the segmentation mode determination unit 22 performs binary segmentation on the decoded object CTU along a direction perpendicular to the end of the image contained in the decoded object CTU. That is, if the right end of the image is contained in the decoded object CTU, the segmentation mode determination unit 22 performs binary segmentation on the decoded object CTU along a horizontal direction. On the other hand, if the bottom end of the image is contained in the decoded object CTU, the segmentation mode determination unit 22 performs binary segmentation on the decoded object CTU along a vertical direction.

[0122] Furthermore, when the decoding object CTU includes both the right and bottom ends of the image, the segmentation mode determination unit 22 performs four-segmentation on the decoding object CTU.

[0123] The segmentation mode determination unit 22 performs the same processing on each sub-block obtained by segmenting the decoding object CTU as it does on the decoding object CTU. Furthermore, for each sub-block, if it does not include the image end and the decoded syntax indicates that no further segmentation is required, the segmentation mode determination unit 22 sets each sub-block as a CU.

[0124] Figure 10 This is a flowchart of the segmentation mode determination process of the segmentation mode determination unit 22.

[0125] The segmentation mode determination unit 22 determines whether the block of interest contains the end of the image (step S301). In addition, the first block of interest is the decoding object CTU.

[0126] If the block of interest contains the ends of the image (step S301 - Yes), the segmentation mode determination unit 22 determines whether the block of interest contains both the right and bottom ends of the image (step S302).

[0127] If the block of interest contains both the right and bottom edges of the image (step S302 - Yes), the segmentation mode determination unit 22 performs a four-segmentation of the block of interest according to the four-segment tree structure (step S303). On the other hand, if the edge of the image contained in the block of interest is either the right or bottom edge of the image (step S302 - No), the segmentation mode determination unit 22 determines whether the block containing the block of interest has been divided into two (step S304).

[0128] If the block containing the block of interest is divided into two (step S304 - Yes), the segmentation mode determination unit 22 also divides the block of interest into two sub-blocks (step S305). At this time, the segmentation mode determination unit 22 also segments the block of interest in the same direction as the segmentation direction for the block containing the block of interest.

[0129] On the other hand, if the block containing the block of interest is not split into two (step S304 - No), the splitting mode determination unit 22 splits the block of interest according to the structure represented by the syntax in the quartic tree structure and the binary tree structure (step S306).

[0130] After steps S303, S305, or S306, the segmentation mode determination unit 22 sets each sub-block obtained by segmenting the block of interest as the block of interest (step S307). Then, for each block of interest, the segmentation mode determination unit 22 performs the processing after step S301.

[0131] On the other hand, if the block of interest does not contain the end of the image in step S301 (step S301-No), the segmentation mode determination unit 22 segments the block of interest into individual CUs according to the segmentation mode represented by the syntax (step S308). Then, when there is no block containing the end of the image, the segmentation mode determination unit 22 ends the segmentation mode determination process.

[0132] The segmentation mode determination unit 22 notifies the prediction block generation unit 23 of the information of each CU contained in the decoding object CTU.

[0133] For each CU contained in the decoding target CTU, the prediction block generation unit 23 generates prediction blocks for each PU contained in that CU, according to the applied encoding mode and the PU segmentation mode, and with reference to the decoded region of the decoded image or the decoding target image. At this time, the prediction block generation unit 23 also decodes the motion vector based on information representing the applied vector mode and the prediction error signal of the motion vector.

[0134] Similar to the prediction block generation unit 13 of the motion picture coding apparatus 1, the prediction block generation unit 23 generates prediction blocks for each PU of the target CTU according to the coding mode applied to that PU. That is, the prediction block generation unit 23 determines the reference region in the decoded reference image or the target image according to the coding mode after entropy decoding, and generates prediction blocks per PU based on the determined region. In this case, if inter-frame prediction coding is performed on the PU that is the target of decoding, the prediction block generation unit 23 can determine the reference region in the decoded reference image for that PU using the decoded motion vector. Furthermore, if intra-frame prediction coding is performed on the PU that is the target of decoding, the prediction block generation unit 23 can determine the reference region in the target image according to the decoded prediction mode.

[0135] The prediction block generation unit 23 outputs the generated prediction block to the decoding unit 24.

[0136] The decoding unit 24 performs inverse quantization by multiplying the quantization coefficients of each TU received from the entropy decoding unit 21 by a predetermined number of quantization widths determined based on the quantization parameters obtained from the decoded header information. This inverse quantization recovers the quadrature transform coefficients of each TU. Then, the decoding unit 24 performs inverse quadrature transform processing on the quadrature transform coefficients for each TU. By performing inverse quantization and inverse quadrature transform processing on the quantization coefficients of each TU, the prediction error signal of each pixel of all CTUs can be reproduced.

[0137] The decoding unit 24 decodes each PU by adding the corresponding reconstructed prediction error signal to the pixel value of each prediction block of each PU. Furthermore, the decoding unit 24 decodes the CTU by combining the decoded PUs in the encoding order. The decoding unit 24 stores the decoded CTU in the storage unit 25. Additionally, the decoding unit 24 decodes the entire image by combining the decoded CTUs in the encoding order. The decoding unit 24 stores the decoded image in the storage unit 25 and also stores the decoded image in a buffer memory. The decoded images stored in the buffer memory are output to the display device (not shown) in display order via a control unit (not shown).

[0138] The storage unit 25 temporarily stores the decoded CTU and the decoded image received from the decoding unit 24. Furthermore, the storage unit 25 supplies the CTU as a reference region or the image as a reference image to the prediction block generation unit 23. Additionally, the storage unit 25 stores a predetermined number of images; when the amount of stored data exceeds the predetermined number, images from the earliest encoded image are discarded sequentially.

[0139] Figure 11 This is a flowchart of the motion image decoding process performed by the motion image decoding device 2. The motion image decoding device 2 performs the following steps for each CTU that is the target of decoding: Figure 11 The dynamic image decoding process shown.

[0140] The entropy decoding unit 21 performs entropy decoding on the data encoded in units of CTUs. Thus, the entropy decoding unit 21 decodes the quantization coefficients and various syntaxes of each TU of the target CTU (step S401).

[0141] The segmentation mode determination unit 22 determines each CU contained in the decoding object CTU (step S402). At this time, the segmentation mode determination unit 22 proceeds according to... Figure 10 The flowchart shown can be used to identify each CU.

[0142] The prediction block generation unit 23 generates a prediction block for each CU of the decoding object CTU, and for each PU contained in that CU, with reference to the applied encoding mode (step S403).

[0143] Decoding unit 24 performs inverse quantization by multiplying the quantization coefficients received from entropy decoding unit 21 by a predetermined number equivalent to the quantization width, wherein the quantization width is determined based on the quantization parameters obtained from the header information contained in the encoded bitstream. Then, decoding unit 24 performs inverse orthogonal transformation processing on the orthogonal transform signal in units of TUs to reproduce the prediction error signal of each pixel of the decoded target CTU. Then, decoding unit 24 reproduces the decoded target CTU by adding the reproduced prediction error signal corresponding to each pixel value of the prediction block (step S404). Decoding unit 24 stores the reproduced CTU in storage unit 25. Then, the dynamic image decoding apparatus 2 ends the dynamic image decoding processing for the decoded target CTU.

[0144] As explained above, even if the motion image encoding apparatus of the above-described embodiment applies a binary tree structure to the block containing the image ends, the motion image decoding apparatus is still able to decode the encoded motion image data.

[0145] Furthermore, according to a modified example, the encoding mode determination unit 12 of the motion picture encoding apparatus 1 can also generate a syntax indicating the segmentation direction for each block that is divided into two parts according to the binary tree structure. Moreover, the entropy encoding unit 17 can also append the syntax indicating the segmentation direction to the encoded motion picture data for each block that is divided into two parts according to the binary tree structure. Thus, the segmentation direction is explicitly transmitted to the motion picture decoding apparatus 2 for each block that is divided into two parts according to the binary tree structure. Therefore, the segmentation mode determination unit 22 of the motion picture decoding apparatus 2, referring to the syntax indicating the segmentation direction decoded by the entropy decoding unit 21, can perform binary segmentation along the segmentation direction for the block with the appended syntax indicating the application of the binary tree structure.

[0146] Furthermore, according to other variations, prediction blocks can also be generated on a CU-by-CU basis. Alternatively, orthogonal transformation can be performed on a CU-by-CU basis. In this case, the coding mode determination unit 12 of the motion picture coding apparatus 1 may not summarize the segmentation modes of the PU or the segmentation modes of the TU.

[0147] Alternatively, the determination of whether the CU includes an image end can be omitted. In this case, the encoding mode determination unit 12 of the motion picture encoding apparatus 1 can determine the segmentation mode for the PU that includes an image end, just like the CU in the above embodiment. Similarly, the encoding mode determination unit 12 can determine the segmentation mode for the TU that includes an image end, just like the CU in the above embodiment. In this case, the segmentation mode determination unit 22 of the motion picture decoding apparatus 2 also determines the segmentation mode when segmenting the decoding object CTU for each PU or each TU, just like in the above embodiment.

[0148] Furthermore, according to other variations, CTUs that do not include image ends can also be recursively bi-segmented according to a bi-tree structure. In this case, the encoding mode determination unit 12 of the motion picture encoding apparatus 1 can calculate the encoding cost when performing quad-segmentation according to a quartet structure for the CTU of interest or when performing bi-segmentation according to a bi-tree structure for each sub-block obtained by segmenting the CTU of interest. Moreover, the encoding mode determination unit 12 only needs to determine whether to apply a quartet structure or a bi-tree structure to minimize the encoding cost. In addition, in this case, the encoding mode determination unit 12 generates a syntax representing the structure applied in the quartet structure and the bi-tree structure for the CTU of interest or each sub-block obtained by recursively segmenting the CTU of interest. Furthermore, the encoding mode determination unit 12 generates a syntax representing the segmentation direction for the CTU or sub-block that applies the bi-tree structure. Moreover, the entropy encoding unit 17 of the motion picture encoding apparatus 1 includes the syntax representing the applied structure and the syntax representing the segmentation direction in the encoded motion picture data. Furthermore, the segmentation mode determination unit 22 of the dynamic image decoding device 2 can determine the segmentation mode of the CU of the decoding object CTU by referring to the syntax representing the applied structure and the syntax representing the segmentation direction.

[0149] Figure 12 This is a structural diagram of a computer that functions as a motion image encoding device or motion image decoding device by operating a computer program that enables the functions of each part of the motion image encoding device or motion image decoding device that implements the above-described embodiments or variations.

[0150] The computer 700 has a user interface 701, a communication interface 702, a memory 703, a storage medium access device 704, and a processor 705. The processor 705 is connected to the user interface 701, the communication interface 702, the memory 703, and the storage medium access device 704, for example, via a bus.

[0151] User interface 701 may include input devices such as a keyboard and mouse, and a display device such as a liquid crystal display. Alternatively, user interface 701 may also include a device that integrates the input device and the display device, such as a touch panel display. Furthermore, user interface 701 outputs an operation signal to processor 705 to select the motion image data to be encoded or decoded, based on user operation. Additionally, the motion image data to be encoded or decoded may also be determined by an application program running on processor 705.

[0152] The communication interface 702, for example, has a communication interface and its control circuit for connecting to a communication network according to communication standards such as Ethernet (registered trademark). Furthermore, the communication interface 702 obtains motion image data to be encoded from other devices connected to the communication network and transmits this data to the processor 705. Additionally, the communication interface 702 can also output encoded motion image data received from the processor 705 to other devices via the communication network. Furthermore, the communication interface 702 can also obtain a bitstream containing encoded motion image data to be decoded from other devices connected to the communication network and transmit this bitstream to the processor 705.

[0153] Memory 703 is an example of a storage unit, such as having a read / write semiconductor memory and a dedicated read / write semiconductor memory. Furthermore, memory 703 stores a computer program executed on processor 705 for performing motion image encoding processing or a computer program for performing motion image decoding processing. Additionally, memory 703 stores data generated during or as a result of motion image encoding or decoding processing.

[0154] Storage medium access device 704 is another example of a storage unit, such as a device for accessing storage medium 706, like a disk, semiconductor memory card, or optical storage medium. Storage medium access device 704, for example, reads a computer program for dynamic image encoding or decoding stored in storage medium 706 and executes it on processor 705, and transmits it to processor 705.

[0155] The processor 705 includes, for example, any one of a central processing unit (CPU), a graphics processing unit (GPU), and a numerical processing processor. Furthermore, the processor 705 encodes the motion image data by executing a computer program for motion image encoding processing according to the above-described embodiments or variations. The processor 705 then saves the encoded motion image data to the memory 703 or outputs it to other devices via the communication interface 702. Alternatively, the processor 705 decodes the encoded motion image data by executing a computer program for motion image decoding processing according to the above-described embodiments or variations. The processor 705 then causes the display device of the user interface 701 to display the decoded image.

[0156] Alternatively, a computer program capable of executing the functions of each part of the motion picture encoding apparatus 1 on a processor can be provided in the form of a computer-readable medium. Similarly, a computer program capable of executing the functions of each part of the motion picture decoding apparatus 2 on a processor can be provided in the form of a computer-readable medium. However, such a recording medium does not contain a carrier wave.

[0157] All examples and specific terms listed herein are for illustrative purposes, intended to help the reader understand the invention and the inventive conception proposed by the inventors to advance the technology, and all exemplary structures in this specification related to illustrating the advantages and disadvantages of the invention should be interpreted as not being limited to such specific examples and conditions. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions, and modifications can be made thereto without departing from the spirit and scope of the invention.

[0158] Label Explanation

[0159] 1: Dynamic image encoding device; 11: Motion search unit; 12: Encoding mode determination unit; 13: Prediction block generation unit; 14: Predictive encoding unit; 15: Decoding unit; 16: Storage unit; 17: Entropy encoding unit; 2: Dynamic image decoding device; 21: Entropy decoding unit; 22: Segmentation mode determination unit; 23: Prediction block generation unit; 24: Decoding unit; 25: Storage unit; 700: Computer; 701: User interface; 702: Communication interface; 703: Memory; 704: Storage medium access device; 705: Processor; 706: Storage medium.

Claims

1. A dynamic image decoding apparatus which decodes a decoding target image included in encoded dynamic image data, wherein The dynamic image decoding apparatus has: a division mode determination section that, for an image end portion block including at least either one of a horizontal direction end portion and a vertical direction end portion of the decoding target image among a plurality of blocks obtained by dividing the decoding target image, performs quad-division on the image end portion block in accordance with a quad-tree structure when the image end portion block includes the horizontal direction end portion of the decoding target image and the vertical direction end portion of the decoding target image, performs bi-division on the image end portion block in a direction perpendicular to the end portion included in the image end portion block after bi-division is performed on a block including the image end portion block when the image end portion block also includes the horizontal direction end portion of the decoding target image or the vertical direction end portion of the decoding target image after bi-division is performed on the block including the image end portion block, and performs quad-division on the image end portion block in accordance with the quad-tree structure or performs bi-division on the image end portion block in a direction perpendicular to the end portion included in the image end portion block with reference to division information included in the encoded dynamic image data indicating whether the image end portion block is subjected to quad-division in accordance with the quad-tree structure or bi-division when the image end portion block includes the horizontal direction end portion of the decoding target image or the vertical direction end portion of the decoding target image without bi-division being performed on the block including the image end portion block, thereby dividing the image end portion block into a plurality of sub-blocks so that none of the sub-blocks includes an end portion of the decoding target image; a prediction block generation section that generates, for each of the plurality of sub-blocks, a prediction block with reference to a decoded other image or a decoded region of the decoding target image; a decoding section that decodes the image end portion block by adding a value of a corresponding pixel of the prediction block to a prediction error between a pixel of a given sub-block included in the encoded dynamic image data and the corresponding pixel of the prediction block for each of the plurality of sub-blocks.

2. The dynamic image decoding apparatus according to claim 1, wherein in a case where the image end portion block is bi-divided and a first sub-block among the plurality of sub-blocks obtained by dividing the image end portion block includes the horizontal direction end portion or the vertical direction end portion of the decoding target image, the division mode determination section further bi-divides the first sub-block in a direction perpendicular to the end portion included in the first sub-block.

3. A dynamic image decoding method of decoding a decoding target image included in encoded dynamic image data, wherein The dynamic image decoding method includes the steps of: For an image end portion block of a plurality of blocks obtained by dividing the decoding target image, which contains at least either one of an end portion in a horizontal direction of the decoding target image and an end portion in a vertical direction of the decoding target image, when the image end portion block contains an end portion in a horizontal direction of the decoding target image and an end portion in a vertical direction of the decoding target image, the image end portion block is quad-divided in accordance with a quad-tree structure; when the image end portion block contains an end portion in a horizontal direction of the decoding target image or an end portion in a vertical direction of the decoding target image after a block containing the image end portion block is bi-divided, the image end portion block is bi-divided in a direction perpendicular to the end portion contained in the image end portion block; and when the block containing the image end portion block is not bi-divided and the image end portion block contains an end portion in a horizontal direction of the decoding target image or an end portion in a vertical direction of the decoding target image, the image end portion block is quad-divided in accordance with the quad-tree structure or bi-divided in a direction perpendicular to the end portion contained in the image end portion block, based on division information contained in the encoded moving image data indicating whether the image end portion block is quad-divided in accordance with the quad-tree structure or bi-divided, thereby dividing the image end portion block into a plurality of sub-blocks so that none of the sub-blocks contains an end portion of the decoding target image; For each of the plurality of sub-blocks, a prediction block is generated based on a decoded other image or a decoded region of the decoding target image; For each of the plurality of sub-blocks, a prediction error between a pixel of a given sub-block contained in the encoded moving image data and a corresponding pixel in the prediction block corresponding to the given sub-block is added to a value of the corresponding pixel in the prediction block, thereby decoding the image end portion block.

4. A computer-readable storage medium storing a computer program for decoding a moving image, the computer program for decoding a decoding target image contained in encoded moving image data, the computer program for causing a computer to execute the steps of: For an image end portion block of a plurality of blocks obtained by dividing the decoding target image, which contains at least either one of an end portion in a horizontal direction of the decoding target image and an end portion in a vertical direction of the decoding target image, when the image end portion block contains an end portion in a horizontal direction of the decoding target image and an end portion in a vertical direction of the decoding target image, the image end portion block is quad-divided in accordance with a quad-tree structure; when the image end portion block contains an end portion in a horizontal direction of the decoding target image or an end portion in a vertical direction of the decoding target image after a block containing the image end portion block is bi-divided, the image end portion block is bi-divided in a direction perpendicular to the end portion contained in the image end portion block; and when the block containing the image end portion block is not bi-divided and the image end portion block contains an end portion in a horizontal direction of the decoding target image or an end portion in a vertical direction of the decoding target image, the image end portion block is quad-divided in accordance with the quad-tree structure or bi-divided in a direction perpendicular to the end portion contained in the image end portion block, based on division information contained in the encoded dynamic image data indicating whether the image end portion block is quad-divided in accordance with the quad-tree structure or bi-divided, thereby dividing the image end portion block into a plurality of sub-blocks so that none of the sub-blocks contains an end portion of the decoding target image; For each of the sub-blocks, a prediction block is generated based on a decoded other image or a decoded region of the decoding target image; For each of the sub-blocks, a prediction error between a pixel of a given sub-block contained in the encoded dynamic image data and a corresponding pixel in the prediction block corresponding to the given sub-block is added to a value of the corresponding pixel in the prediction block, thereby decoding the image end portion block.

Citation Information

Patent Citations

  • Image encoding device and image encoding method, and image decoding device and image decoding method

    JP2011223303A

  • Image prediction encoding / decoding device and method

    CN105847837A

  • Block-based video coding using a mixture of square and rectangular blocks

    US20160373766A1