Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method, image decoding program, storage method, and transmission method

Optimized block division in image encoding and decoding methods enhance coding efficiency and reduce processing loads by prohibiting further division in the same direction for smaller blocks and allowing it for larger blocks, addressing inefficiencies in existing technologies.

JP2025170400APending Publication Date: 2025-11-18JVC KENWOOD CORP
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
JP2025145275
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-09-02
Publication Date
2025-11-18

AI Technical Summary

Technical Problem

Existing image encoding and decoding methods suffer from decreased coding efficiency and increased processing requirements due to inappropriate block sizes and shapes.

Method used

An image coding and decoding method that recursively divides images into blocks of fixed sizes, prohibiting further division in the same direction when blocks are smaller than a predetermined size, and allowing division in the same direction when blocks are larger, optimizing block division for efficient coding.

Benefits of technology

Improves coding efficiency and reduces processing requirements by ensuring optimal block division, leading to better coding rates and reduced processing loads.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025170400000001_ABST
    Figure 2025170400000001_ABST
Patent Text Reader

Abstract

To provide an image encoding apparatus, method, and program that improve encoding efficiency by performing block division suitable for image encoding and decoding.SOLUTION: There is provided an image encoding apparatus 100 that divides an image into blocks and performs encoding in a divided-block unit. A block division unit 101 recursively divides an image into rectangular shapes of a predetermined size to generate blocks to be encoded. An encoded bit string generation unit 105 encodes block division information of each block to be encoded. The block division unit further includes: a four-way division part that divides a target block in recursive division into four pieces horizontally and vertically to generate four blocks; and a two-way division part that divides a target block in recursive division into two pieces horizontally or vertically to generate two blocks. When the previous recursive division was two-way division, the two-way division part prohibits dividing the target block in the current recursive division in the same direction as the direction in which the block was divided in the previous recursive division.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention divides an image into blocks and performs encoding and decoding on a block-by-block basis. This relates to technology. [Background technology]

[0002] In image encoding and decoding, an image is divided into blocks, which are groups of a predetermined number of pixels, and the blocks are Encoding and decoding are performed in block units. By dividing the blocks appropriately, intra-frame prediction (intra-frame prediction) is possible. Efficiency of intra-prediction, inter-prediction, orthogonal transformation, entropy coding, etc. , which results in improved coding efficiency. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Special Publication No. 2015-526008 Summary of the Invention [Problem to be solved by the invention]

[0004] If the blocks are not divided into appropriate sizes and shapes, the coding efficiency will decrease. If the blocks are not divided into appropriate sizes and shapes, the amount of processing required for subsequent encoding and decoding will increase. increases.

[0005] The present invention has been made in view of the above circumstances, and its object is to provide an image encoding and decoding method. To provide a technology for improving coding efficiency by dividing a signal into blocks suitable for coding. is located. [Means for solving the problem]

[0006] In order to solve the above problem, an image coding apparatus according to one aspect of the present invention divides an image into blocks. An image coding apparatus for dividing an image into blocks and coding the divided blocks, a block division unit that recursively divides the image into rectangles of a fixed size to generate blocks to be coded; a coding unit that codes block division information of a block to be coded, In this part, the target block in the recursive division is divided into four blocks horizontally and vertically. The four-division part generates blocks, and the target block in the recursive division is divided horizontally or vertically. a bisection unit for dividing the data into two blocks to generate two blocks, the bisection unit being If the division is two and the block to be coded is equal to or smaller than a predetermined size, The target block of this recursive division is divided in the same direction as the block that was divided in the recursive division. The previous recursive division is prohibited and the block to be decoded is divided into two. If a block is larger than the given size, the block is split into smaller blocks in the previous recursive split. Allows you to do so.

[0007] Yet another aspect of the present invention is an image coding method, which comprises dividing an image into blocks. an image coding method for dividing the image into blocks and coding the divided blocks, a block division step of recursively dividing the image into rectangles of the same size to generate blocks to be coded; and an encoding step of encoding block division information of the block to be encoded, The lock splitting step divides the target block in the recursive splitting into four parts horizontally and vertically. The 4-partition step divides the data into four blocks, and the target block in the recursive division is a bisection step of dividing the image into two blocks horizontally or vertically to generate two blocks; The bisection step is performed when the previous recursive division is bisection and the block to be coded is a bisection. If the block is smaller than a certain size, the block is divided in the same direction as the previous recursive division. Prohibits splitting the target block of this recursive split in one direction and prevents splitting of the target block of the previous recursive split. is divided into two and the block to be decoded is larger than a predetermined size, The target block of this recursive division is divided in the same direction as the block that was divided in the recursive division. Allows locks to be split.

[0008] Yet another aspect of the present invention is an image encoding program, comprising: dividing an image into blocks; An image encoding program for encoding divided blocks, a block division step of recursively dividing the image into rectangles of the same size to generate blocks to be coded; an encoding step of encoding block division information of the block to be encoded, The block division step divides the target block in the recursive division into a horizontal direction. The 4-division step divides the image vertically into 4 blocks to generate 4 blocks, and the recursive division step divides the image vertically into 4 blocks to generate 4 blocks. Divide the target block horizontally or vertically to generate two blocks. and the bisection step is performed when the previous recursive division is bisection and the encoding If the block of the target block is smaller than the predetermined size, the block is It is prohibited to split the target block of this recursive split in the same direction as the split direction. If the previous recursive division was into two and the block to be decoded is smaller than the predetermined size, If it is larger, the block is split in the same direction as in the previous recursive split. Allows splitting of target blocks for recursive splitting.

[0009] Yet another aspect of the present invention is an image decoding device. An image decoding device that performs decoding in units of blocks, a decoding unit for decoding division information, and a decoding unit for decoding the division information based on the decoded recursive block division information. a block division unit that generates a block to be decoded, and the block division unit Divide the target block in the objective division into four horizontally and vertically to generate four blocks. The four-part division, and the recursive division, which divides the target block into two parts horizontally or vertically. a bisection unit for generating two blocks, the bisection unit being configured to divide the previous recursive division into two blocks. If the block to be decoded is smaller than a predetermined size, the previous recursive division Divide the target block of this recursive division in the same direction as the block was divided in The previous recursive division is prohibited, and the block of the block to be decoded is divided into two. If the block is larger than the given size, the direction in which the block was divided in the previous recursive division is Allows the current target block of recursive division to be divided in the same direction.

[0010] Yet another aspect of the present invention is an image decoding method, which comprises: An image decoding method for decoding in units of blocks, a decoding step of decoding division information, and and a block division step for generating a block to be decoded based on the block division. The division step divides the target block in the recursive division into four parts horizontally and vertically. The four-division step generates four blocks, and the target block in the recursive division is divided horizontally. or a bisection step of dividing the image vertically into two blocks to generate two blocks, The division step is performed when the previous recursive division is divided into two and the block to be decoded is the desired block. If the size is less than the specified size, the block is split in the same direction as the previous recursive split. prohibits splitting the target block of this recursive split, and the previous recursive split is split into two. If the block to be decoded is larger than the predetermined size, The target block of this recursive division is divided in the same direction as the block divided in the previous division. Allow to split.

[0011] Yet another aspect of the present invention is an image decoding program. An image decoding program that decodes an image in divided block units, a decoding step of decoding block division information of the block; A block division step for generating a block to be decrypted based on the block division information. The block division step is performed by a computer. A 4-division step divides the horizontal and vertical dimensions into 4 blocks, and a recursive Divide the target block in the objective division into two blocks horizontally or vertically to generate two blocks. and a bisection step for dividing the previous recursive division into two parts, If the block to be decoded is equal to or smaller than a predetermined size, The target block for this recursive division is divided in the same direction as the block that was divided. and if the previous recursive division was in two and the block to be decoded is a predetermined If the size is larger than the size, the block is split in the same direction as the previous recursive split. This allows the target block of this recursive split to be split in the same direction.

[0012] Any combination of the above components, and the expression of the present invention may be used as a method, an apparatus, a system, a recording medium, Conversions between the body, computer program, etc. are also valid aspects of the present invention. be. [Effects of the Invention]

[0013] According to the present invention, block division suitable for image coding and decoding becomes possible, and coding efficiency is improved. It is possible to improve the coding rate and provide image coding and decoding with less processing. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 1 is a configuration diagram of an image encoding device according to a first embodiment. [Figure 2] FIG. 1 is a configuration diagram of an image decoding device according to a first embodiment. [Figure 3] 10 is a flowchart illustrating division into tree blocks and division within tree blocks. [Figure 4] FIG. 10 is a diagram illustrating how an input image is divided into tree blocks. [Figure 5] FIG. 1 is a diagram illustrating a z-scan. [Figure 6] This is a diagram showing a treeblock divided into four horizontally and vertically. [Figure 7] This is a diagram showing a treeblock divided into two horizontally. [Figure 8] This is a diagram showing a treeblock divided into two vertically. [Figure 9] 10 is a flowchart illustrating processing of each divided block when a tree block is divided into four blocks in the horizontal and vertical directions. [Figure 10] 10 is a flowchart illustrating processing of each divided block when a tree block is divided into two blocks in the horizontal direction. [Figure 11] FIG. 10 is a diagram showing how a divided block is re-divided when a tree block is divided into two blocks horizontally. [Figure 12] 10 is a flowchart illustrating processing of each divided block when a tree block is divided into two vertically. [Figure 13] FIG. 10 is a diagram showing how a divided block is re-divided when a tree block is divided into two vertically. [Figure 14] FIG. 2 illustrates an example of syntax related to block division according to the first embodiment. [Figure 15] FIG. 1 is a diagram illustrating intra prediction. [Figure 16] FIG. 1 is a diagram illustrating inter prediction. [Figure 17] FIG. 10 is a diagram illustrating an example of syntax related to block division according to the second embodiment. [Figure 18] FIG. 10 is a diagram illustrating another example of syntax related to block division according to the second embodiment. [Figure 19] FIG. 13 is a diagram illustrating an example of syntax related to block division according to the third embodiment. [Figure 20] FIG. 10 is a diagram showing how the inside of a block that has been divided into two in the horizontal or vertical direction is further divided in the same direction. [Figure 21] FIG. 13 is a diagram illustrating an example of syntax related to block division according to the fourth embodiment. [Figure 22] FIG. 10 is a diagram showing the division of a tree block into four parts when the tree block is divided into two parts. DETAILED DESCRIPTION OF THE INVENTION

[0015] In the embodiment of the present invention, an image is divided into rectangular blocks, and the divided blocks are coded. An image coding technique for decoding is provided.

[0016] (First embodiment) Regarding the image coding device 100 and the image decoding device 200 according to the first embodiment of the present invention: In the first embodiment, when the block division is performed recursively, the division is performed continuously in the same direction. Limit what you do.

[0017] FIG. 1 is a diagram showing the configuration of an image coding device 100 according to the first embodiment. represents only the flow of data related to the image signal, and does not include image information such as motion vectors and prediction modes. Regarding additional information other than the signal, each component element supplies it to the coded bitstream generator 105. The coded data is generated, but the flow of data relating to the additional information is not shown.

[0018] The block division unit 101 divides an image into blocks to be coded, which are units of coding processing. , the image signal in the block to be coded is supplied to the residual signal generator 103. The dividing unit 101 divides the image signal of the block to be coded into a predicted image signal in order to evaluate the degree of coincidence of the predicted image. The image is supplied to the image generation unit 102.

[0019] The block division unit 101 recursively divides an image into rectangles of a predetermined size to divide blocks to be coded. The block division unit 101 divides the target block in the recursive division into blocks in the horizontal direction. The quadrant divides the image vertically into four blocks, and the recursive division A bisection unit divides the elephant block horizontally or vertically to generate two blocks. The detailed operation of the block division unit 101 will be described later.

[0020] The predicted image generating unit 102 generates a predicted image from the decoded image signal supplied from the decoded image memory 108. Intra-prediction or inter-prediction based on the prediction mode The block division unit 101 divides the blocks to be coded into blocks to generate a predicted image signal. The image signal in the block is used for evaluation of intra-prediction and inter-prediction. The image signal of the block to be coded supplied from the block division unit 101 and the decoded image signal are The block to be coded that is supplied from the memory 108 is in the same picture as the block to be coded. A predicted image signal is generated using image signals of surrounding coded blocks adjacent to the block. In the inter prediction, the image of the block to be coded supplied from the block division unit 101 is The signal is sent to a picture (encoded picture) that contains the block to be coded. The coded picture stored in the decoded image memory 108 in Block matching is performed between the coded picture and the reference picture. A motion vector indicating the amount of motion is calculated, and motion compensation is performed from the reference picture based on this amount of motion. The predicted image generating unit 102 generates a predicted image signal using the predicted image signal thus generated. The signal is supplied to the residual signal generator 103 .

[0021] The residual signal generator 103 receives the image signal to be coded and the predicted image generated by the predictive image generator 102. A residual signal is generated by subtracting the predicted signal, and is supplied to the orthogonal transform and quantization unit 104 .

[0022] The orthogonal transform and quantization unit 104 performs orthogonal transformation on the residual signal supplied from the residual signal generation unit 103. The orthogonally transformed and quantized residual signal is then input to the coded bitstream generator 105 and the inverse quantizer 106. The resulting signal is supplied to the digitalization and inverse orthogonal transformation unit 106.

[0023] The coded bitstream generator 105 performs orthogonal transform and quantization on the data supplied from the orthogonal transform and quantization unit 104. The coded bitstream generator 1 generates a coded bitstream for the coded residual signal. 05 corresponds to additional information such as motion vectors, prediction modes, and block division information. Generate an encoded bit string.

[0024] The inverse quantization and inverse orthogonal transformation unit 106 receives the orthogonal transform signal supplied from the orthogonal transform and quantization unit 104. The quantized residual signal is inversely quantized and inversely orthogonally transformed, and the inversely quantized and inversely orthogonally transformed residual signal is The signal is supplied to a decoded image signal superimposing unit 107.

[0025] The decoded image signal superimposing unit 107 superimposes the predicted image signal generated by the predicted image generating unit 102. The residual signal that has been inversely quantized and inversely orthogonally transformed by the inverse quantization and inverse orthogonal transformation unit 106 is superimposed and decoded. The image is generated and stored in the decoded image memory 108. The image is subjected to filtering to reduce distortion and the like, and stored in the decoded image memory 108. This sometimes happens.

[0026] FIG. 2 is a diagram showing the configuration of an image decoding apparatus 200 according to the first embodiment. It only shows the flow of data related to the image signal, and does not include information about the image signal such as motion vectors and prediction modes. The bitstream decoding unit 201 supplies the additional information other than the above to each component for the corresponding processing. However, the data flow related to the additional information is not shown.

[0027] The bitstream decoding unit 201 decodes the supplied coded bitstream and performs orthogonal transformation and quantization. The resulting residual signal is supplied to the block division unit 202 .

[0028] The block division unit 202 divides the block to be decoded based on the decoded block division information. The shape of the orthogonally transformed and quantized residual signal of the determined block to be decoded is inversely The result is supplied to the quantization and inverse orthogonal transformation unit 203 .

[0029] The block division unit 202 divides the image into blocks of a predetermined size based on the block division information obtained by decoding the image. The block division unit 202 recursively divides the image into rectangles to generate a block to be decoded. The target block in the recursive division is divided into four horizontally and vertically to generate four blocks. The four-part division is made up of a four-part division, and the target block in the recursive division is divided into two parts horizontally or vertically. The block division unit 202 includes a bisection unit that divides the data into two blocks. More details will be given later.

[0030] The inverse quantization and inverse orthogonal transformation unit 203 performs the following on the orthogonally transformed and quantized residual signal supplied thereto: Then, an inverse orthogonal transform and inverse quantization are performed to obtain an inverse orthogonal transformed and inverse quantized residual signal.

[0031] The predicted image generating unit 204 generates a predicted image from the decoded image signal supplied from the decoded image memory 206. An image signal is generated and supplied to a decoded image signal superimposing unit 205 .

[0032] The decoded image signal superimposing unit 205 superimposes the predicted image signal generated by the predicted image generating unit 204 and the inverse The quantization and inverse orthogonal transformation unit 203 superimposes the residual signal that has been inverse orthogonally transformed and inverse quantized on the signal. As a result, a decoded image signal is generated and output, and is also stored in the decoded image memory 206 . In addition, a filtering process is applied to the decoded image to reduce block distortion caused by encoding. The decoded image may be stored in the decoded image memory 206.

[0033] The operation of the block division unit 101 of the image coding device 100 will now be described in detail. 1 is a flowchart illustrating division into tree blocks and division within tree blocks. .

[0034] First, an input image is divided into tree blocks of a predetermined size (S1000). For example, the tree block is 128 pixels x 128 pixels. It is not limited to 128 pixels by 128 pixels, and any size and shape may be used as long as it is rectangular. The size and shape of the treeblock are fixed between the encoding device and the decoding device. However, the encoding device determines the bitstream and records it in the encoded bitstream before decoding. The device may be configured to use the recorded block size. The tree blocks are divided into blocks as shown in Figure 4. The tree blocks are sorted in raster scan order, i.e., The image is encoded and decoded from right to left and from top to bottom.

[0035] The inside of the tree block is further divided into rectangular blocks. Encoding and decoding are performed in the order of z-scanning. Figure 5 shows the order of z-scanning. In the scan, encoding and decoding are performed in the order of top left, top right, bottom left, and bottom right. The division of the part can be divided into 4 parts and 2 parts, and 4 parts are divided both horizontally and vertically. The division is done horizontally or vertically. Figure 6 shows how a tree block is divided into four parts horizontally and vertically. Fig. 7 shows a tree block divided into two horizontally. - A diagram of a block divided into two vertically.

[0036] Refer to Figure 3 again. We decide whether to divide the tree block into four parts horizontally and vertically. Make a judgment (S1001).

[0037] If it is determined that the inside of the tree block is to be divided into four (S1001: Yes), The block is divided into four parts (S1002), and each part is processed in the four parts horizontally and vertically. The process of re-dividing the blocks divided into four will be described later (FIG. 9).

[0038] If it is determined that the inside of the tree block is not to be divided into four (S1001: No), It is determined whether the inside of the block should be divided into two (S1004).

[0039] If it is determined that the inside of the tree block should be divided into two (S1004: Yes), the tree block is divided into two. It is determined whether the direction is horizontal (S1005).

[0040] If the direction of division into two is determined to be horizontal (S1005: Yes), The part is divided into two parts horizontally (S1006), and each process of the two divided parts is performed. (S1007). The process of re-dividing the blocks divided into two in the horizontal direction will be described later (see Fig. 10).

[0041] If the direction of division is determined to be vertical rather than horizontal (S1005: No), The inside of the lee block is divided vertically into two (S1008), and the divided block is The following processes are performed (S1009): will be discussed later (Figure 11).

[0042] If it is determined that the inside of the tree block is not to be divided into two (S1004: No), The block division process ends without dividing the inside of the block into blocks (S1010).

[0043] Next, the tree block is divided into four horizontally and vertically. The check processing will be described with reference to the flowchart in FIG.

[0044] It is determined whether the block is divided into four again horizontally and vertically (S1101). .

[0045] If it is determined that the block interior is to be divided into four again (S1101: Yes), is again divided into four (S1102), and each of the four blocks divided horizontally and vertically is processed. (S1103).

[0046] If it is determined that the block interior is not to be divided into four again (S1101: No), It is determined whether to divide it into two (S1104).

[0047] If it is determined that the block is to be divided into two (S1104: Yes), the direction of division is It is determined whether the direction is horizontal (S1105).

[0048] If the direction of division into two is determined to be horizontal (S1105: Yes), the inside of the block is divided into two by water. The image is divided into two blocks in the horizontal direction (S1106), and each block is processed (S1 107).

[0049] If the direction of division is determined to be vertical rather than horizontal (S1105: No), The inside of the block is divided into two vertically (S1108), and each process of the divided blocks is The process is performed (S1109).

[0050] If it is determined that the block interior is not to be divided into two (S1104: No), the block interior is The block division process ends without dividing the data into blocks (S1110).

[0051] The process shown in the flowchart of FIG. 9 is executed for each of the four divided blocks. The divided blocks are also coded and decoded in z-scan order.

[0052] Next, we divide the tree block horizontally into two blocks and process each of them. This will be explained using the flowchart in FIG.

[0053] When a tree block is divided into two blocks horizontally, each block is first divided into two blocks. It is determined whether the inside of the block is divided into four parts horizontally and vertically (S1201).

[0054] If it is determined that the block is to be divided into four (S1201: Yes), The image is divided into four blocks (S1202), and each block is processed (S12 03).

[0055] If it is determined that the block interior is not to be divided into four (S1201: No), the block interior is re-divided. Then, it is determined whether to divide the image into two (S1204).

[0056] If it is determined that the block should be divided into two again (S1204: Yes), the block is divided vertically. The image is divided into two blocks vertically (S1205), and each block is processed (S1206).

[0057] If it is determined that the block should not be divided into two again (S1204: No), the block is not divided again. The block division process ends (S1207).

[0058] Figure 11 shows the split blocks when the tree block is split horizontally into two. Here, the parent tree block is divided into two blocks horizontally. In this case, the re-bisecting of the divided block allows bisecting only in the vertical direction, and automatically Divide it vertically into two. Also, if the parent tree block is divided into two, the child It is also possible to completely prohibit 4-way division in a block. This allows the same block as the parent block to be divided into 4-way divisions. This prevents blocks from being split in the horizontal direction, resulting in blocks that are more elongated and rectangular in the horizontal direction. This prevents lock splitting and makes encoding and decoding easier.

[0059] The process shown in the flowchart in Figure 10 is executed for each block divided into two horizontally. The inside of each divided block is also coded and decoded in the order of top and bottom.

[0060] Next, we divide the tree block vertically into two blocks and then process each block. This will be explained using the flowchart in FIG.

[0061] When a tree block is divided into two vertically, each divided block is first divided into two blocks. It is determined whether the inside of the block is divided into four parts horizontally and vertically (S1301).

[0062] If it is determined that the block interior is to be divided into four (S1301: Yes), The image is divided into four blocks (S1302), and each block is processed (S13 03).

[0063] If it is determined that the block interior is not to be divided into four parts (S1301: No), the block interior is re-divided. Then, it is determined whether to divide the image into two (S1304).

[0064] If it is determined that the block should be divided into two again (S1304: Yes), the block is divided horizontally. The image is divided into two blocks horizontally (S1305), and each block is processed (S1306).

[0065] If it is determined that the block should not be divided into two again (S1304: No), the block is not divided again. The block division process ends (S1307).

[0066] Figure 13 shows the split blocks when the tree block is split vertically into two. Here, the parent block, the tree block, is split vertically into two blocks. In this case, the re-bisecting of the divided block allows bisecting only in the horizontal direction, and automatically Divide it into two horizontally. Also, if the parent tree block is divided into two, the child It is also possible to completely prohibit 4-way division in a block. This allows the same block as the parent block to be divided into 4-way divisions. This prevents blocks from being split in the vertical direction, allowing blocks that are longer and thinner in the vertical direction to be split. This prevents lock splitting and makes encoding and decoding easier.

[0067] The process shown in the flowchart in Figure 12 is executed for each block divided vertically into two. The inside of each divided block is also coded and decoded in the order of left and right.

[0068] In addition, we have explained how to re-divide the divided blocks when the tree block is divided. However, the parent block does not have to be a treeblock. For example, a treeblock (128x1 28) was divided into four, and each of the four blocks (64x64) was further divided into four or two. In this case, the above process is also applied to the division of the re-divided blocks.

[0069] Next, the operation of the block division unit 202 of the image decoding device 200 will be described. The block division unit 101 divides the image data into blocks using the same processing procedure as that of the block division unit 101 of the image encoding device 100. The block division unit 101 of the encoding device 100 selects a block division pattern. The block division unit 202 of the image decoding device outputs the block division information. Dividing the blocks using block division information decoded from the coded bitstream In addition, when decoding block division information from the coded bit stream, In situations where subdivision into multiples is prohibited, non-optional information should not be transmitted in the bitstream. The difference is the syntax structure.

[0070] The syntax for block division in the first embodiment (the structure of the coded bit stream) An example of a sentence rule is shown in Figure 14. The internal division of a tree block is first determined by whether to divide it into four parts. A flag (4_division_flag) is sent and received. When dividing into 4 (4_division_flag is 1), The tree block is divided into four parts and the process is completed. The inside is then re-divided using the syntax shown in Figure 14. If lag is 0, the flag (2_division_flag) indicating whether to divide into two is sent and received. If the division direction is 2 (2_division_flag is 1), the flag indicating the direction of division (2_division_d If 2_division_direction is 1, it indicates vertical division, and If _division_direction is 0, it indicates a horizontal division. Then, the divided blocks are The block is divided again using the syntax shown in Figure 14. (2_division_flag is 0) ends the process without dividing the tree block.

[0071] Here, a process for further dividing the inside of a block divided into four or two will be described. The process of re-dividing the inside of a block also uses the syntax shown in Figure 14, but the tree block The difference is that there are restrictions on the direction of division when dividing into two, compared to when dividing into two. If a tree block is divided into two, the inside of the divided block may be divided again. In this case, it is prohibited to divide the tree block in the same direction as the dividing direction in which the tree block was divided into two. This prevents the split blocks from becoming longer and thinner rectangles, and This prevents the increase in memory bandwidth required for frame rate prediction and inter-prediction. The prevention of this will be described in detail later.

[0072] In addition, the number of divisions in the same direction is counted, and if the number of divisions exceeds a predetermined number, the system divides the data in the same direction. For example, you can limit the number of times a file can be split into two in the same direction. From the third time onwards, splitting into two in the same direction is prohibited.

[0073] In Figure 14, dividing into four parts is selected as the priority, and the information on whether to divide into four parts or not is changed to whether to divide into two parts or not. On the other hand, when splitting into two is selected as the priority, In this case, the information on whether to divide into two or not is sent and received before the information on whether to divide into four or not. It is possible to use a system like this. It is better to send and receive events that are more likely to occur probabilistically first. This is because the amount of code to be transmitted as a bit stream is reduced. It is estimated which division is more likely to occur, and the division information that is more likely to occur is sent and received first. For example, you can specify whether to split the image into four parts or two parts in the image header information. By transmitting and receiving information on which division number to prioritize, the encoding device adaptively determines the number of divisions with the highest encoding efficiency. The decoder then generates a tree block with a syntax based on the selected priority division number. The interior can also be divided.

[0074] In the image encoding device 100 and the image decoding device 200, the divided blocks are used. Both intra-prediction and inter-prediction are performed from memory. It involves copying the pixels from the image.

[0075] An example of intra prediction is shown in Fig. 15(a) to Fig. 15(d). b) shows the prediction direction and mode number of intra prediction. As shown in Fig. 15(d), the coded / decoded blocks adjacent to the coding / decoding target block are A predicted image of the block to be coded or decoded is generated by copying pixels from one pixel to another. Intra prediction involves repeating the process of generating predicted images and encoding / decoding pixels on a block-by-block basis. Therefore, the processing order is sequential in block units, and the more the block is divided into smaller parts, the The larger the block shape, the larger the memory load. In addition, the coding and decoding process requires the orthogonal transformation of the residual signal. Therefore, the more different rectangle sizes there are, the more different orthogonal transformations are required. This results in an increase in the circuit size. Therefore, when dividing the inside of a block into two, By restricting the division into two blocks in the same direction as the division method of the parent block, the required This can prevent an increase in the required memory bandwidth.

[0076] An example of inter prediction is shown in Figure 16. Inter prediction is a method of predicting a frame that is included in an image that has already been coded and decoded. Prediction of the block to be coded / decoded by copying pixels from the pixels to be coded block by block. Inter prediction generates an image by copying pixels from a reference image block by block. In many cases, the device configuration requires acquisition in units of memory management containing the required pixels. Therefore, the smaller the blocks are divided, and the more elongated the shape of the blocks becomes, The larger the number of pixels, the heavier the overall processing load. When performing motion compensation with decimal precision, the number of pixels in the block plus a few pixels is The smaller the block size, the more pixels need to be copied. Therefore, if you divide the inside of a block into two, In addition, by restricting the division into two blocks in the same direction as the division direction of the parent block, This can prevent an increase in memory bandwidth required for measurement.

[0077] (Second embodiment) An image encoding device and an image decoding device according to a second embodiment of the present invention will be described. In the second embodiment, when a block is smaller than a predetermined size, the block is further divided. The difference from the first embodiment is that the number of times ... This means that the smaller the block is divided, the less the overall processing load is. Prevent it from getting bigger.

[0078] 17 and 18 show the syntax for block division in the second embodiment. The difference from the syntax of FIG. 14 of the embodiment is that the size of the block is initially set to a predetermined size. In the case of Figure 17, the block If the number of pixels in a block is greater than 64, the block can be divided into four or two.

[0079] In addition, when considering the difference in the number of pixels in the blocks divided into 4 and 2, the As shown above, 4-division is allowed when the number of pixels in a block is greater than 64, and 2-division is allowed when the number of pixels in a block is greater than 64. This allows the number of pixels in the divided block to be greater than 32. The limits can be precisely controlled.

[0080] (Third embodiment) An image encoding device and an image decoding device according to a third embodiment of the present invention will be described. In the third embodiment, the blocks divided vertically are further divided vertically. The difference from the first embodiment is that the restriction on the number of times ... It is the same as the state.

[0081] Typically, image pixel information is stored in a one-dimensional memory in raster scan order. In the original memory, pixels in the horizontal direction are stored relatively close to each other, and pixels in the vertical direction are stored relatively close to each other. Therefore, it is easy to access pixels in the horizontal direction, but it is difficult to access pixels in the vertical direction. For example, if you have a block of 16 pixels wide by 8 pixels high and a block of 16 pixels wide by 8 pixels high, you can access pixels in the horizontal direction. In the case of a block of 8 pixels x 16 pixels vertically, the number of pixels is the same, but the size is 8 pixels horizontally x 16 pixels vertically. The block has a larger area of ​​memory where pixels are stored than the 16 horizontal pixels by 8 vertical pixels block. Therefore, when using motion compensation, a large memory bandwidth is required for pixel transfer. It is essential.

[0082] FIG. 19 shows the syntax for block division in the third embodiment. The difference from the syntax in Figure 14 is that when the parent block is divided into two vertically, In other words, as shown in Figure 20, If the parent block is divided into two vertically, and the interior is further divided into two, There is no choice of direction or vertical direction, and horizontal division is automatically selected.

[0083] (Fourth embodiment) An image encoding device and an image decoding device according to a fourth embodiment of the present invention will be described. In the fourth embodiment, after dividing a block into two, the divided internal block is divided into four. In the first embodiment, further division of the inner block divided into four is prohibited. The other configuration is the same as that of the first embodiment.

[0084] FIG. 21 shows the syntax for block division in the fourth embodiment. If the parent block is divided into two and then the divided internal block is divided into four, 2_di vision_after_4_division_flag becomes 1, prohibiting all subsequent divisions.

[0085] This means that if you divide the image into two and then into four, the image will be divided into two and then into four. Since it is confirmed that the block has been divided into two and then into four, further block division is required. This is because the possibility is low. In such a case, you can choose to split into four parts from the beginning. If you divide it into 2 and then 4, the block shape is already rectangular, so it will be divided into 4 If you try to prohibit further division into two after dividing, the process becomes complicated. If a block is uniquely prohibited from subsequent block division, block division The process of determining whether it is possible or not is not complicated. By uniquely prohibiting subsequent block division, the choice not to divide the block is made This eliminates the need to send and receive data in a single bit stream, reducing the amount of code to be transmitted.

[0086] It should be noted that the block division restriction methods of the first to fourth embodiments may be combined. Of course, it is possible to combine them.

[0087] The coded bit stream of the image output by the image coding device of the above-described embodiment is Specific data can be decoded depending on the encoding method used in the embodiment. The image decoding device corresponding to the image coding device can read this specific data. The encoded bitstream in the data format can be decoded.

[0088] To exchange coded bitstreams between an image coding device and an image decoding device When a wired or wireless network is used, the coded bit stream is transmitted to the The image data may be converted into a data format suitable for the transmission format before transmission. The input coded bit stream is converted into coded data in a data format suitable for the transmission mode of the communication channel. A transmitting device converts the encoded data and transmits it to a network, and a transmitting device receives the encoded data from the network and transmits it to a A receiving device is provided for restoring the encoded bit stream to a coded bit stream and supplying it to an image decoding device.

[0089] The transmitting device includes a memory for buffering the coded bit stream output by the image coding device. a packet processing unit for packetizing the coded bit stream; and a transmitting unit that transmits the packetized data via a network. a receiving unit that receives the encoded data via a network; and a memory for packet processing of the coded data to generate a coded bit stream. and a packet processing unit that provides the packet to the image decoding device.

[0090] In addition, by adding a display unit that displays the image decoded by the image decoding device to the configuration, In this case, the display unit may be a display device. The decoded image signal is generated by the decoder 201 and stored in the decoded image memory 206, and is read out and displayed on the screen. do.

[0091] In addition, by adding an imaging unit to the configuration and inputting the captured image to the image encoding device, In this case, the imaging unit divides the captured image signal into blocks. Enter 101.

[0092] The above encoding and decoding processes are carried out by hardware-based transmission, storage, and reception devices. It can be realized as a ROM (Read Only Memory) or Flash memory. firmware stored in flash memory, etc., and software on computers, etc. This can be realized by using the firmware program, software program, The information may be provided by recording it on a computer-readable recording medium, or by wired or wireless means. It can also be provided from a server via a wired network, or via terrestrial or satellite digital broadcasting. It is also possible to provide it as data broadcasting.

[0093] The present invention has been described above based on the embodiments. The embodiments are merely examples, and the respective structures thereof are not intended to be limiting. The fact that various variations are possible in the combination of components and each treatment process, and that such variations It will be understood by those skilled in the art that such modifications are also within the scope of the present invention. [Explanation of symbols]

[0094] 100 image encoding device, 101 block division unit, 102 predicted image generation unit, 103 Residual signal generation unit, 104 Orthogonal transformation and quantization unit, 105 Encoded bitstream generation unit 106 inverse quantization and inverse orthogonal transformation unit; 107 decoded image signal superposition unit; 108 Decoded image memory, 200 image decoding device, 201 bit string decoding unit, 202 block Block division unit, 203 inverse quantization and inverse orthogonal transformation unit, 204 predicted image generation unit, 20 5 Decoded image signal superposition unit, 206 Decoded image memory.

Claims

1. An image coding device that divides an image into blocks and performs coding in units of the divided blocks. So, A block that recursively divides the image into rectangles of a predetermined size to generate a block to be coded. a block dividing section; a coding unit that codes block division information of a block to be coded, The block division unit The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant generating In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection unit for generating The bisection unit divides the previous recursive division into two blocks into the block to be coded. If is less than a predetermined size, the block is divided in the same direction as in the previous recursive division. It is prohibited to split the target block of this recursive split in the direction If the block to be decoded is larger than a predetermined size, The target block of this recursive division is divided in the same direction as the block divided in the previous division. Allows splitting of blocks, An image encoding device comprising:

2. This is an image coding method in which an image is divided into blocks and coded in units of the divided blocks. So, A block that recursively divides the image into rectangles of a predetermined size to generate a block to be coded. a block division step; an encoding step of encoding block division information of the encoding target block, The block division step includes: The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant step that generates In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection step to generate The bisection step is performed when the previous recursive division is bisection and the block to be coded is a bisection. If the lock is less than a certain size, the direction in which the block was split in the previous recursive split is It is prohibited to split the target block of this recursive split in the same direction, and the target block of the previous recursive split is If the division is two and the block to be decoded is larger than a predetermined size, In the recursive division of Allows splitting of blocks, 1. An image coding method comprising:

3. An image coding program that divides an image into blocks and encodes each divided block. It is A block that recursively divides the image into rectangles of a predetermined size to generate a block to be coded. a block division step; an encoding step of encoding block division information of the block to be encoded; Let it run, The block division step includes: The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant step that generates In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection step to generate The bisection step is performed when the previous recursive division is bisection and the block to be coded is a bisection. If the lock is less than a certain size, the direction in which the block was split in the previous recursive split is It is prohibited to split the target block of this recursive split in the same direction, and the target block of the previous recursive split is If the division is two and the block to be decoded is larger than a predetermined size, In the recursive division of Allows splitting of blocks, 1. An image encoding program comprising:

4. An image decoding device that decodes an image in units of blocks obtained by dividing the image, a decoding unit that decodes block division information of blocks into which an image is divided; A block to be decoded is generated based on the recursive block division information that has been decoded. a block dividing unit for dividing the data into blocks, The block division unit The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant generating In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection unit for generating The bisection unit divides the block to be decoded into two blocks in the previous recursive division. If is less than a predetermined size, the block is divided in the same direction as in the previous recursive division. It is prohibited to split the target block of this recursive split in the direction If the block to be decoded is larger than a predetermined size, The target block of this recursive division is divided in the same direction as the block divided in the previous division. Allows splitting of blocks, An image decoding device comprising:

5. An image decoding method for decoding an image in units of blocks obtained by dividing the image, comprising: a decoding step of decoding block division information of blocks into which the image is divided; A block to be decoded is generated based on the recursive block division information that has been decoded. and a block division step for dividing the data into blocks, The block division step includes: The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant step that generates In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection step to generate The bisection step is performed when the previous recursive division is bisection and the block to be decoded is bisection. If the lock is less than a certain size, the direction in which the block was split in the previous recursive split is It is prohibited to split the target block of this recursive split in the same direction, and the target block of the previous recursive split is If the division is two and the block to be decoded is larger than a predetermined size, In the recursive division of Allows splitting of blocks, 1. An image decoding method comprising:

6. An image decoding program for decoding an image in units of divided blocks, a decoding step of decoding block division information of blocks into which the image is divided; A block to be decoded is generated based on the recursive block division information that has been decoded. and causing a computer to execute a block division step, The block division step includes: The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant step that generates In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection step to generate The bisection step is performed when the previous recursive division is bisection and the block to be decoded is bisection. If the lock is less than a certain size, the direction in which the block was split in the previous recursive split is It is prohibited to split the target block of this recursive split in the same direction, and the target block of the previous recursive split is If the division is two and the block to be decoded is larger than a predetermined size, In the recursive division of Allows splitting of blocks, An image decoding program comprising:

7. A storage method for storing a bitstream generated by a video coding method on a recording medium. The video encoding method includes: A block that recursively divides an image into rectangles of a predetermined size to generate blocks to be coded. a block division step; an encoding step of encoding block division information of the encoding target block, The block division step includes: The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant step that generates In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection step to generate The bisection step is performed when the previous recursive division is bisection and the block to be coded is a bisection. If the lock is less than a certain size, the direction in which the block was split in the previous recursive split is It is prohibited to split the target block of this recursive split in the same direction, and the target block of the previous recursive split is If the division is two and the block to be decoded is larger than a predetermined size, In the recursive division of Allows splitting of blocks, A storage method characterized by:

8. A transmission method for transmitting a bitstream generated by a video encoding method, comprising: The image coding method is Recursively divide the image into rectangles of a predetermined size to generate blocks to be coded. With split steps, an encoding step of encoding block division information of the encoding target block, The block division step includes: The target block in the recursive division is divided into four blocks horizontally and vertically. a quadrant step that generates In recursive division, the target block is divided into two blocks horizontally or vertically. and a bisection step to generate The bisection step is performed when the previous recursive division is bisection and the block to be coded is a bisection. If the lock is less than a certain size, the direction in which the block was split in the previous recursive split is It is prohibited to split the target block of this recursive split in the same direction, and the target block of the previous recursive split is If the division is two and the block to be decoded is larger than a predetermined size, In the recursive division of Allows splitting of blocks, A transmission method characterized by:

Citation Information

Patent Citations

  • Video encoding device, video decoding device, video encoding method, and video decoding method

    JP2013098711A

  • Simplified non-square quadtree transformation for video coding

    JP2015516769A

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

    JP7276549B2

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

    JP7552777B2

  • Method of video coding using binary tree block partitioning

    WO2016091161A1