Image Decryption Device, Image Decryption Method, and Image Decryption Program
By restricting block division based on picture boundaries and using specific division techniques, the encoding efficiency is enhanced by ensuring appropriate block sizes and shapes, reducing unnecessary encoding of minor pixel changes.
Patent Information
- Application Number
- JP2024172479
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-11-30
- Filing Date
- 2024-10-01
- Publication Date
- 2025-07-23
- Estimated Expiration
- 2039-10-01
AI Technical Summary
Inefficient image encoding due to inappropriate block division, particularly at picture edges, leading to decreased encoding efficiency.
Implementing a block division technique that restricts division based on the position of blocks relative to the picture boundary, using quadruple and 2-3 division units to ensure appropriate block sizes and shapes, and limiting division depth or number of pixels beyond the boundary.
Improves encoding efficiency by ensuring blocks are divided into suitable shapes, reducing the need to encode minor pixel changes and minimizing code amount.
Smart Images

Figure 0007711827000001 
Figure 0007711827000002 
Figure 0007711827000003
Abstract
Description
Technical Field
[0001] The present invention relates to a technique for encoding and decoding an image in divided block units.
Background Art
[0002] In image encoding and decoding, an image is divided into blocks, which are sets of a predetermined number of pixels, and processing is performed in block units. At this time, by dividing into appropriate block units, the efficiency of intra prediction, inter prediction, orthogonal transformation, entropy encoding, etc. is improved, and as a result, the encoding efficiency is improved.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Non-Patent Documents
[0004]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005]
[0006] If the block is not divided into an appropriate size and shape, the encoding efficiency will decrease. In particular, at the picture edge, a block including pixels at positions exceeding the picture boundary has an inappropriate size and shape, resulting in a decrease in encoding efficiency. To provide a technique for improving the encoding efficiency by performing block division suitable for encoding. lies in.
Means for Solving the Problem
[0007] In one aspect of the present invention for solving the above problems, the block division unit includes a quadruple division unit that divides the target block in the recursive division into four blocks by dividing it into four equal parts in the horizontal and vertical directions, respectively, and a 2-3 division unit that divides the target block in the recursive division into two or three blocks by dividing it into two or three equal parts in the horizontal or vertical direction. When the 2-3 division unit divides the target block horizontally, if the divided target block exceeds the right side of the picture boundary, dividing the target block horizontally is prohibited. When the target block is divided vertically, if the divided target block exceeds the lower side of the picture boundary, dividing the target block vertically is prohibited. When the target block is divided into four equal parts in the horizontal and vertical directions respectively to generate four blocks and a 2-3 division unit that divides the target block in the recursive division into two or three blocks by dividing it into two or three equal parts in the horizontal or vertical direction. including, when the 2-3 division unit divides the target block horizontally, if the divided target block exceeds the right side of the picture boundary, dividing the target block horizontally is prohibited. When the target block is divided vertically, if the divided target block exceeds the lower side of the picture boundary, dividing the target block vertically is prohibited. If the target block is divided horizontally, when the divided target block exceeds the right side of the picture boundary, dividing the target block horizontally is prohibited. When the target block is divided vertically, if the divided target block exceeds the lower side of the picture boundary, dividing the target block vertically is prohibited. If the divided target block exceeds the right side of the picture boundary, dividing the target block horizontally is prohibited. When the target block is divided vertically, if the divided target block exceeds the lower side of the picture boundary, dividing the target block vertically is prohibited. If the divided target block exceeds the lower side of the picture boundary, dividing the target block vertically is prohibited. If the divided target block exceeds the lower side of the picture boundary, dividing the target block vertically is prohibited.
Advantages of the Invention
[0008] According to the present invention, block division suitable for image encoding and decoding becomes possible, and the encoding efficiency can be improved. The encoding efficiency can be improved.
Brief Description of the Drawings
[0009]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Best Mode for Carrying Out the Invention
[0010] Embodiments of the present invention provide a technique for encoding and decoding an image in divided block units. (First Embodiment) An image encoding apparatus 100 and an image decoding apparatus 200 according to a first embodiment of the present invention will be described. In the first embodiment, when dividing a block into two or three parts, block division is restricted.
[0011] FIG. 1 is a block diagram of an image encoding apparatus 100 according to the first embodiment. FIG. 1 shows only the data flow regarding the image signal, and does not show the data flow regarding additional information other than the image signal such as a motion vector and a prediction mode. At least an image signal for one screen is input to the image encoding apparatus 100.
[0012] A block division unit 101 divides an image into encoding target blocks that are encoding processing units, and supplies the image signal within the encoding target blocks to a residual signal generation unit 103. Also, the block division unit 101 supplies the image signal of the encoding target block to a predicted image generation unit 102 in order to evaluate the degree of match of the predicted image.
[0013] The block division unit 101 recursively divides an image into rectangles of a predetermined size to generate encoding target blocks. The block division unit 101 includes a four-division unit that divides a target block in recursive division into four parts to generate four blocks, and a 2-3 division unit that divides a target block in recursive division into two or three parts to generate two or three blocks. Details of the operation of the block division unit 101 will be described later.
[0014] The prediction image generation unit 102 receives the image signal of the block to be encoded from the block division unit 101 and the decoded image signal from the decoded image memory 108. The prediction image generation unit 102 uses the supplied signals to perform intra prediction (intra-frame prediction) or inter prediction ( inter-frame prediction) based on the prediction mode, and generates a prediction image signal. In intra prediction, the image signal of the encoded block adjacent to the block to be encoded in the same picture (encoded picture) as the block to be encoded is supplied from the decoded image memory 108 to the prediction image generation unit 102. Then, the prediction image generation unit 102 uses this image signal and the image signal of the block to be encoded supplied from the block division unit 101 to generate a prediction image signal. In inter prediction , the image signal of the encoded picture (reference picture) that is temporally before or after the encoded picture is supplied from the decoded image memory 108 to the prediction image generation unit 102. Then, the prediction image generation unit 102 uses this image signal and the block to be encoded supplied from the block division unit 101 to evaluate the degree of match by block matching or the like, and obtains a motion vector indicating the amount of motion. The prediction image generation unit 102 performs motion compensation from the reference image based on this motion vector and generates a prediction image signal. The prediction image generation unit 102 supplies the thus generated prediction image signal to the residual signal generation unit 103.
[0015] The residual signal generation unit 103 subtracts the prediction signal generated by the prediction image generation unit 102 from the image signal to be encoded to generate a residual signal, and supplies it to the orthogonal transform and quantization unit 104.
[0016] The orthogonal transformation / quantization unit 104 orthogonally transforms and quantizes the residual signal supplied from the residual signal generation unit 103. The orthogonal transformation / quantization unit 104 supplies the orthogonally transformed and quantized residual signal to the encoding unit 105 and the inverse quantization / inverse orthogonal transformation unit 106. The encoding unit 105 generates an encoded bitstream corresponding to the orthogonally transformed and quantized residual signal supplied from the orthogonal transformation / quantization unit 104. Also, the encoding unit 105 generates a corresponding encoded bitstream for additional information such as motion vectors, prediction modes, and block division information supplied from each component. Then, the encoding unit 105 outputs the encoded bitstream from the image encoding apparatus 100.
[0017]
[0018] The inverse quantization / inverse orthogonal transformation unit 106 inverse quantizes and inverse orthogonally transforms the orthogonally transformed and quantized residual signal supplied from the orthogonal transformation / quantization unit 104 to obtain a residual signal. The inverse quantization / inverse orthogonal transformation unit 106 supplies the residual signal to the decoded image signal superposition unit 107.
[0019] The decoded image signal superposition unit 107 superimposes the predicted image signal generated by the prediction image generation unit 102 and the residual signal obtained by the inverse quantization / inverse orthogonal transformation unit 106 to generate a decoded image, and stores it in the decoded image memory 108. Note that the decoded image signal superposition unit 107 may perform filtering processing to reduce block distortion and the like due to encoding on the decoded image, and store it in the decoded image memory 108.
[0020] FIG. 2 is a block diagram of the image decoding apparatus 200 according to Embodiment 1. FIG. 2 shows only the data flow related to the image signal, and does not show image signals such as motion vectors and prediction modes. The data flow regarding additional information other than this is not illustrated. The image decoding device 200 receives a coded bit stream.
[0021] The decoding unit 201 decodes the supplied coded bit stream and supplies the orthogonally transformed and quantized residual signal to the block division unit 202. Also, the decoding unit 201 supplies additional information such as motion vectors, prediction modes, and block division information to each component and uses them for processing corresponding to the additional information.
[0022] Based on the decoded block division information, the block division unit 202 determines the shape of the block to be decoded, and supplies the orthogonally transformed and quantized residual signal of the determined block to be decoded to the inverse quantization and inverse orthogonal transformation unit 203.
[0023] Based on the decoded block division information, the block division unit 202 recursively divides the image into rectangles of a predetermined size to generate blocks to be decoded. The block division unit 202 includes a four-division unit that divides the target block in the recursive division into four blocks to generate four blocks, and a 2-3 division unit that divides the target block in the recursive division into two or three blocks to generate two or three blocks. The detailed operation of the block division unit 202 will be described later.
[0024] The inverse quantization and inverse orthogonal transformation unit 203 performs inverse quantization and inverse orthogonal transformation on the supplied orthogonally transformed and quantized residual signal
[0025] to obtain a residual signal, and supplies it to the decoded image signal superposition unit 205. The predicted image generation unit 204 generates a predicted image signal from the decoded image signal
[0026] The decoded image signal superposition unit 205 superimposes the predicted image signal generated by the predicted image generation unit 204 and the residual signal obtained by the inverse quantization and inverse orthogonal transformation unit 203 to generate a decoded image signal. Also, the decoded image signal superposition unit 205 stores the decoded image signal in the decoded image memory 206. Note that the decoded image signal superposition unit 205 may perform filtering processing to reduce block distortion or the like due to encoding on the decoded image and store it in the decoded image memory 206. And, the decoded image signal superposition unit 205 outputs the decoded image from the image decoding device 200.
[0027] Next, the operation of the block division unit 101 in the image encoding device 100 will be described with reference to FIG. 3. FIG. 3 shows the operation in which the block division unit 101 divides an image into tree blocks and further divides the inside thereof into blocks.
[0028] First, the input image is divided into tree blocks of a predetermined size (S1000). Here, the tree blocks are 128×128 pixels. However, the tree blocks are not limited to this size, and any size and aspect ratio may be used as long as they are rectangular. Also, the size of the tree blocks may be determined in advance between the encoding device and the decoding device. Furthermore, a configuration may be adopted in which the encoding device determines the size of the tree blocks and records it in the encoded bit stream, and the decoding device uses the size of the tree blocks recorded in the encoded bit stream.
[0029] The tree blocks are encoded in raster scan order, that is, from left to right and from top to bottom.
[0029] Further divide the inside of the tree block into rectangular blocks. The inside of the tree block is encoded in the z-scan order shown in Fig. 5. The z-scan order indicates the order of top-left, top-right, bottom-left, bottom-right, . The division of the inside of the tree block can be into 4 parts, 2 parts, or 3 parts. .
[0030] The division of the block into 4 parts is done by dividing the horizontal and vertical directions in half as shown in Fig. 6(a) to create 4 blocks. .
[0031] The division of the block into 2 or 3 parts is done by dividing it horizontally or vertically. When dividing the block horizontally into 2 parts, it is divided in half as shown in Fig. 6(b) to create 2 blocks. Also, when dividing the block horizontally into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(c) to create 3 blocks. On the other hand, when dividing the block vertically into 2 parts, it is divided in half as shown in Fig. 6(d) to create 2 blocks. Also, when dividing the block vertically into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(e) to create 3 blocks. When dividing the block horizontally into 2 parts, it is divided in half as shown in Fig. 6(b) to create 2 blocks. Also, when dividing the block horizontally into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(c) to create 3 blocks. On the other hand, when dividing the block vertically into 2 parts, it is divided in half as shown in Fig. 6(d) to create 2 blocks. Also, when dividing the block vertically into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(e) to create 3 blocks. When dividing the block horizontally into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(c) to create 3 blocks. On the other hand, when dividing the block vertically into 2 parts, it is divided in half as shown in Fig. 6(d) to create 2 blocks. Also, when dividing the block vertically into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(e) to create 3 blocks. When dividing the block vertically into 2 parts, it is divided in half as shown in Fig. 6(d) to create 2 blocks. Also, when dividing the block vertically into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(e) to create 3 blocks. When dividing the block vertically into 2 parts, it is divided in half as shown in Fig. 6(d) to create 2 blocks. Also, when dividing the block vertically into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(e) to create 3 blocks. When dividing the block vertically into 3 parts, it is divided as 1:2:1 as shown in Fig. 6(e) to create 3 blocks. .
[0032] Referring to Fig. 3 again, the operation of the block division unit 101 will be described. First, it is determined whether to divide the inside of the tree block into 4 parts by dividing the horizontal and vertical directions in half (S1001 ). .
[0033] To determine the optimal case from multiple conditions, including whether to divide the block into 4 parts, there is an existing method called Rate-Distortion Optimization (R-D optimization). In R-D optimization, the encoding cost is calculated from the amount of code and the encoding distortion. Then, among multiple conditions . For the case of symbolization, calculate the respective symbolization costs and select the case where the symbolization cost is minimized. That is, the determination of whether to divide the block into four parts is made by calculating the symbolization cost when the block is divided into four parts and the symbolization cost when the block is not divided into four parts, and selecting the case where the symbolization cost is minimized. To determine the optimal case from multiple conditions, methods other than R-D optimization may be used. If it is determined that the inside of the tree block is to be divided into four parts (S1001: YES), divide the inside of the tree block into four parts (S1002). The re-division process of the divided blocks will be described later (Figure 7). If it is determined that the inside of the tree block is not to be divided into four parts (S1001: NO), determine whether to divide the inside of the tree block into two or three parts (S1003). If it is determined that the inside of the tree block is to be divided into two or three parts (S1003: YES), determine whether the division direction is the vertical direction (S1004). If it is determined that the division direction is the vertical direction (S1004: YES), determine whether to divide the inside of the tree block into two parts (S1005).
[0034] If it is determined that the inside of the tree block is to be divided into two parts (S1005: YES), divide the inside of the tree block vertically into two parts (S1006). On the other hand, if it is determined that the inside of the tree block is to be divided into three parts (S1005: NO), divide the inside of the tree block vertically into three parts (S1007). The re-division process of the blocks divided vertically into two or three parts will be described later. If it is determined that the inside of the tree block is not to be divided into two or three parts (S1003: NO), the process ends. (Figure 7)
[0035] If it is determined that the inside of the tree block is not to be divided into two or three parts (S1003: NO), the process ends. If it is determined that the division direction is not the vertical direction (S1004: NO), determine whether to divide the inside of the tree block into two parts (S1008).
[0036] If it is determined that the inside of the tree block is to be divided into two parts (S1008: YES), divide the inside of the tree block horizontally into two parts (S1009). If it is determined that the inside of the tree block is not to be divided into two parts (S1008: NO), the process ends.
[0037] If it is determined that the division direction is the vertical direction (S1004: YES), determine whether to divide the inside of the tree block into two parts (S1005). If it is determined that the inside of the tree block is to be divided into two parts (S1005: YES), divide the inside of the tree block vertically into two parts (S1006). On the other hand, if it is determined that the inside of the tree block is to be divided into three parts (S1005: NO), divide the inside of the tree block vertically into three parts (S1007). The re-division process of the blocks divided vertically into two or three parts will be described later.
[0038] If it is determined that the inside of the tree block is to be divided into two parts (S1005: YES), divide the inside of the tree block vertically into two parts (S1006). On the other hand, if it is determined that the inside of the tree block is to be divided into three parts (S1005: NO), divide the inside of the tree block vertically into three parts (S1007). The re-division process of the blocks divided vertically into two or three parts will be described later. If it is determined that the inside of the tree block is to be divided into two parts (S1005: YES), divide the inside of the tree block vertically into two parts (S1006). On the other hand, if it is determined that the inside of the tree block is to be divided into three parts (S1005: NO), divide the inside of the tree block vertically into three parts (S1007). The re-division process of the blocks divided vertically into two or three parts will be described later. If it is determined that the inside of the tree block is to be divided into three parts (S1005: NO), divide the inside of the tree block vertically into three parts (S1007). The re-division process of the blocks divided vertically into two or three parts will be described later. If it is determined that the inside of the tree block is not to be divided into two or three parts (S1003: NO), the process ends. as described (Fig. 8).
[0039] When it is determined that the splitting direction is the horizontal direction (S1004: NO), it is determined whether to split the inside of the tree block into two parts (S1008).
[0040] When it is determined that the inside of the tree block is to be split into two parts (S1008: YES), the inside of the tree block is split into two parts in the horizontal direction (S1009). On the other hand, when it is determined that the inside of the tree block is to be split into three parts (S1008: NO), the inside of the tree block is split into three parts in the horizontal direction ( S1010). The re-splitting process of the blocks split into two or three parts in the horizontal direction will be described later (Fig. 8).
[0041] When it is determined that the inside of the tree block is not to be split into two or three parts (S1003: NO) , the block splitting process is terminated without splitting the inside of the tree block (S1011 ).
[0042] Subsequently, the processing of each of the divided blocks when the tree block is divided into four equal parts in the horizontal and vertical directions will be described using the flowchart of Fig. 7 .
[0043] First, it is determined whether to divide the inside of the block into four equal parts again in the horizontal and vertical directions (S1101).
[0044] When it is determined that the inside of the block is to be divided into four equal parts again (S1101: YES), the inside of the block is divided into four equal parts again (S1102).
[0045] When it is determined that the inside of the block is not to be divided into four equal parts again (S1101: NO), it is determined whether to divide the inside of the block into two or three parts (S1103).
[0046] If it is determined that the inside of the block is to be divided into two or three parts (S1103: YES), it is determined whether the division direction is the vertical direction (S1104).
[0047] If it is determined that the division direction is the vertical direction (S1104: YES), it is determined whether to divide the inside of the block into two parts (S1105).
[0048] If it is determined that the inside of the block is to be divided into two parts (S1105: YES), the inside of the block is divided into two parts in the vertical direction (S1106). On the other hand, if it is determined that the inside of the block is to be divided into three parts ( S1105: NO), the inside of the block is divided into three parts in the vertical direction (S1107).
[0049] If it is determined that the division direction is the horizontal direction (S1104: NO), it is determined whether to divide the inside of the block into two parts (S1108).
[0050] If it is determined that the inside of the block is to be divided into two parts (S1108: YES), the inside of the block is divided into two parts in the horizontal direction (S1109). On the other hand, if it is determined that the inside of the block is to be divided into three parts ( S1108: NO), the inside of the block is divided into three parts in the horizontal direction (S1110).
[0051] If it is determined that the inside of the block is not to be divided into two or three parts (S1103: NO), the block division process is terminated without re - dividing the inside of the block (S1111).
[0052] For each of the blocks divided into four parts, the processing shown in the flowchart of FIG. 7 is recursively executed The inside of the block divided into four parts is encoded in the z - scan order.
[0053] Subsequently, when the tree block is divided into two or three parts in the vertical direction, each divided block The processing of the hook will be described with reference to the flowchart of FIG. 8.
[0054] When the tree block is divided vertically into two or three parts, for each of the divided blocks, it is determined whether to divide the inside of the block again into two or three parts (S1201).
[0055] If it is determined to divide the inside of the block into two or three parts (S1201: YES), it is determined whether the dividing direction is the vertical direction (S1202).
[0056] If it is determined that the dividing direction is the vertical direction (S1202: YES), it is determined whether to divide the inside of the block into two parts (S1203).
[0057] If it is determined to divide the inside of the block into two parts (S1203: YES), the inside of the block is divided vertically into two parts (S1204). On the other hand, if it is determined to divide the inside of the block into three parts ( S1203: NO), the inside of the block is divided vertically into three parts (S1205).
[0058] If it is determined that the dividing direction is the horizontal direction (S1202: NO), it is determined whether to divide the inside of the block into two parts (S1206).
[0059] If it is determined to divide the inside of the block into two parts (S1206: YES), the inside of the block is divided horizontally into two parts (S1207). On the other hand, if it is determined to divide the inside of the block into three parts ( S1206: NO), the inside of the block is divided horizontally into three parts (S1208).
[0060] If it is determined not to divide the inside of the block again into two or three parts (S1201: NO), the block division process is terminated without re-dividing the inside of the block (S1209).
[0061] For each divided block when divided into two or three parts in the vertical direction, the processing shown in the flowchart of FIG. 8 is recursively executed. The inside of the block divided into two or three parts is encoded in the order from left to right. For each divided block when divided into two or three parts in the vertical direction, the processing shown in the flowchart of FIG. 8 is recursively executed. The inside of the block divided into two or three parts is encoded in the order from left to right. For each divided block when divided into two or three parts in the vertical direction, the processing shown in the flowchart of FIG. 8 is recursively executed. The inside of the block divided into two or three parts is encoded in the order from left to right.
[0062] Similarly, for each divided block when divided into two or three parts in the horizontal direction, the processing shown in the flowchart of FIG. 8 is recursively executed. The inside of the block divided into two or three parts is encoded in the order from top to bottom. Similarly, for each divided block when divided into two or three parts in the horizontal direction, the processing shown in the flowchart of FIG. 8 is recursively executed. The inside of the block divided into two or three parts is encoded in the order from top to bottom. Similarly, for each divided block when divided into two or three parts in the horizontal direction, the processing shown in the flowchart of FIG. 8 is recursively executed. The inside of the block divided into two or three parts is encoded in the order from top to bottom.
[0063] Note that the re - division of the divided blocks when the tree block is divided has been described, and the parent block does not have to be a tree block. For example, when a tree block (128x128 pixels) is divided into four parts and the divided blocks (64x64 pixels) are further divided, the above - mentioned processing is also applied to the division of the re - divided blocks. Note that the re - division of the divided blocks when the tree block is divided has been described, and the parent block does not have to be a tree block. For example, when a tree block (128x128 pixels) is divided into four parts and the divided blocks (64x64 pixels) are further divided, the above - mentioned processing is also applied to the division of the re - divided blocks. Note that the re - division of the divided blocks when the tree block is divided has been described, and the parent block does not have to be a tree block. For example, when a tree block (128x128 pixels) is divided into four parts and the divided blocks (64x64 pixels) are further divided, the above - mentioned processing is also applied to the division of the re - divided blocks. Note that the re - division of the divided blocks when the tree block is divided has been described, and the parent block does not have to be a tree block. For example, when a tree block (128x128 pixels) is divided into four parts and the divided blocks (64x64 pixels) are further divided, the above - mentioned processing is also applied to the division of the re - divided blocks.
[0064] The recursive block division may determine the number of divisions and limit the number of divisions. Also, the number of divisions may be predetermined between the encoding device and the decoding device. Further, the encoding device may determine the number of divisions and record it in the encoded bitstream, and the decoding device may use the number of divisions recorded in the encoded bitstream. The recursive block division may determine the number of divisions and limit the number of divisions. Also, the number of divisions may be predetermined between the encoding device and the decoding device. Further, the encoding device may determine the number of divisions and record it in the encoded bitstream, and the decoding device may use the number of divisions recorded in the encoded bitstream. The recursive block division may determine the number of divisions and limit the number of divisions. Also, the number of divisions may be predetermined between the encoding device and the decoding device. Further, the encoding device may determine the number of divisions and record it in the encoded bitstream, and the decoding device may use the number of divisions recorded in the encoded bitstream. The recursive block division may determine the number of divisions and limit the number of divisions. Also, the number of divisions may be predetermined between the encoding device and the decoding device. Further, the encoding device may determine the number of divisions and record it in the encoded bitstream, and the decoding device may use the number of divisions recorded in the encoded bitstream.
[0065] Next, the block division at the screen edge will be described. FIG. 9 shows the relationship with the picture boundary when the image is divided into tree blocks. As shown in this FIG. 9, since the size of the image is not necessarily an integer multiple of the size of the tree block, the tree blocks at the screen edge are Next, the block division at the screen edge will be described. FIG. 9 shows the relationship with the picture boundary when the image is divided into tree blocks. As shown in this FIG. 9, since the size of the image is not necessarily an integer multiple of the size of the tree block, the tree blocks at the screen edge are Next, the block division at the screen edge will be described. FIG. 9 shows the relationship with the picture boundary when the image is divided into tree blocks. As shown in this FIG. 9, since the size of the image is not necessarily an integer multiple of the size of the tree block, the tree blocks at the screen edge are It may include parts inside and outside the screen separated by a picture boundary. The tree branches at the screen edge As locks, tree blocks 1001, 1002, and 1003 are shown. In this case, as shown in FIG. 10 As shown, the part outside the screen beyond the picture boundary is treated as the same as the outermost pixel inside the screen Pixels 1011, 1012, and 1013 are shown as the outermost pixels inside the screen.
[0066] Pixel 1011 is inside tree block 1001 and is the pixel located at the uppermost right in the screen Pixels outside the screen beyond the picture boundary to the right of pixel 1011 are treated as the same as pixel 101 1.
[0067] Pixel 1012 is inside tree block 1002 and is the pixel located at the lowermost left in the screen Pixels outside the screen beyond the picture boundary below pixel 1012 are treated as the same as pixel 101 2.
[0068] Pixel 1013 is inside tree block 1003 and is the pixel located at the lowermost right in the screen Pixels outside the screen beyond the picture boundary to the right, below, and diagonally below pixel 1013 are treated as the same as pixel 1013.
[0069] And when dividing the block into two or three parts, the block division is restricted. Thereby the blocks at the screen edge can be divided into appropriate shapes, and the coding efficiency can be improved .
[0070] The restriction of block division is applied when dividing the block into two or three parts at the screen edge That is, the two - or three - division process (from S1004 to S1010) in FIG. 3 , is replaced by the process described below. Also, the two-way or three-way splitting process (from S 1104 to S1110) in FIG. 7 is replaced by the process described below. Furthermore, the two-way or three-way splitting process (from S1202 to S1208) in FIG. 8 is replaced by the process described below.
[0071] The block splitting restriction will be described with reference to FIG. 11. First, for all combinations of block splitting, it is determined whether to restrict block splitting (S1301). All combinations of block splitting refer to four cases: when the block is split into two horizontally, when the block is split into two vertically, when the block is split into three horizontally, and when the block is split into three vertically. Also, whether to restrict block splitting is determined by whether the pixels at positions exceeding the picture boundary are split. For example, when the block is split into two horizontally, if the pixels at positions exceeding the picture boundary are split, then splitting the block into two horizontally is restricted. When the block is split into three horizontally, when the block is split into three vertically, there are four such cases. Also, whether to restrict block splitting is determined by whether the pixels at positions exceeding the picture boundary are split. For example, when the block is split into two horizontally, if the pixels at positions exceeding the picture boundary are split, then splitting the block into two horizontally is restricted. Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Similarly, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three. For example, if the block is split into two horizontally and the pixels at positions exceeding the picture boundary are split, then splitting the block into two horizontally is restricted. When the block is split into two horizontally, if the pixels at positions exceeding the picture boundary are split, then splitting the block into two horizontally is restricted. When the block is split into two horizontally, if the pixels at positions exceeding the picture boundary are split, then splitting the block into two horizontally is restricted.
[0072] Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Also, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three. Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Also, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three. Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Also, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three. Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Also, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three. Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Also, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three. Here, restricting the horizontal splitting of the block means prohibiting the horizontal splitting of the block. Also, restricting the vertical splitting of the block means prohibiting the vertical splitting of the block. Similarly, restricting the splitting of the block into two means prohibiting the splitting of the block into two. Also, restricting the splitting of the block into three means prohibiting the splitting of the block into three.
[0073] Next, it is determined whether to restrict block splitting for all combinations of block splitting. S1302). If restricting block division in all combinations (S1302: YES) , do not divide the block (S1314). On the other hand, if not restricting block division in all combinations (S1302: NO), determine whether to restrict horizontal block division (S1303).
[0074] If restricting horizontal block division (S1303: YES), proceed to the next process (S 1306). On the other hand, if not restricting horizontal block division (S1303: NO), determine whether to restrict vertical block division (S1304).
[0075] If restricting vertical block division (S1304: YES), proceed to the next process (S 1310). On the other hand, if not restricting vertical block division (S1304: NO), determine whether to divide the block vertically (S1305).
[0076] If determining that the direction of block division is vertical (S1305: YES), determine whether to restrict the block to be divided into three parts (S1306). On the other hand, if determining that the direction of block division is horizontal (S1305: NO), proceed to the next process (S1310).
[0077] If restricting the block to be divided into three parts (S1306: YES), divide the block vertically into two parts (S1308). On the other hand, if not restricting the block to be divided into three parts (S1306: NO) , determine whether to divide the block into two parts (S1307).
[0078] If determining to divide the block into two parts (S1307: YES), divide the block vertically Divide into two (S1308). On the other hand, if it is determined to divide the block into three (S1307: NO), divide the block into three in the vertical direction (S1309).
[0079] When restricting the division in the vertical direction (S1304: YES), and when determining that the direction of dividing the block is the horizontal direction (S1305: NO), determine whether to restrict the division of the block into three (S1310). Determine (S1310).
[0080] When restricting the division of the block into three (S1310: YES), divide the block into two in the horizontal direction (S1312). On the other hand, when not restricting the division of the block into three (S1310: NO) , determine whether to divide the block into two (S1311). Determine whether to divide the block into two (S1311).
[0081] When it is determined to divide the block into two (S1311: YES), divide the block into two in the horizontal direction (S1312). On the other hand, when it is determined to divide the block into three (S1311: NO), divide the block into three in the horizontal direction (S1313). NO), divide the block into three in the horizontal direction (S1313).
[0082] That is, when pixels at positions exceeding the picture boundary are divided by block division, the block division in that direction is restricted.
[0083] Here, a specific example will be described. Now, at the lower end of the screen, the tree block is not divided into four (S1001: NO), and the inside of the tree block is divided into two or three (S1003: Y ES). Fig. 12(a) shows a state where the tree block includes parts inside and outside the screen with the picture boundary in between. At this time, for all combinations of dividing the tree block, determine whether to restrict the block division (S1301). parts inside and outside the screen with the picture boundary in between. At this time, for all combinations of dividing the tree block, determine whether to restrict the block division (S1301). Determine whether to restrict the block division (S1301).
[0084] When the tree blocks are divided in all combinations, they are shown in FIGS. 12(a) to 12(d), respectively. As shown in FIG. 12(a), when the block is divided vertically into two parts, the pixels at positions exceeding the picture boundary are divided, so this block division is restricted. Similarly, as shown in FIG. 12(b), when the block is divided vertically into three parts, the pixels at positions exceeding the picture boundary are divided, so this block division is restricted. On the other hand, as shown in FIG. 12(c), when the block is divided horizontally into two parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Similarly, as shown in FIG. 12(d), when the block is divided horizontally into three parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Therefore, block division is not restricted for all combinations of block division (S1302: NO). Also, horizontal block division is not restricted (S1303: NO), and vertical block division is restricted (S1304: YES). And the three-way division of the block is not restricted (S1310: NO). Therefore, it is determined whether to divide the block into two parts (S1311). Now, if it is determined to divide the block into two parts (S1311: YES), the block is divided horizontally into two parts (S1312). Due to such restrictions on block division, the block becomes an appropriate shape. Because in a block containing pixels outside the screen, the pixel values of the part outside the screen are constant. Therefore, the change in the pixel values of the part inside the screen of that block is relative to a block that does not include pixels outside the screen. As shown in FIG. 12(c), when the block is divided horizontally into two parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Similarly, as shown in FIG. 12(d), when the block is divided horizontally into three parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Therefore, block division is not restricted for all combinations of block division (S1302: NO). Also, horizontal block division is not restricted (S1303: NO), and vertical block division is restricted (S1304: YES). And the three-way division of the block is not restricted (S1310: NO). Therefore, it is determined whether to divide the block into two parts (S1311). Now, if it is determined to divide the block into two parts (S1311: YES), the block is divided horizontally into two parts (S1312).
[0085] Due to such restrictions on block division, the block becomes an appropriate shape. Because in a block containing pixels outside the screen, the pixel values of the part outside the screen are constant. Therefore, the change in the pixel values of the part inside the screen of that block is relative to a block that does not include pixels outside the screen. As shown in FIG. 12(c), when the block is divided horizontally into two parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Similarly, as shown in FIG. 12(d), when the block is divided horizontally into three parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Therefore, block division is not restricted for all combinations of block division (S1302: NO). Also, horizontal block division is not restricted (S1303: NO), and vertical block division is restricted (S1304: YES). And the three-way division of the block is not restricted (S1310: NO). Therefore, it is determined whether to divide the block into two parts (S1311). Now, if it is determined to divide the block into two parts (S1311: YES), the block is divided horizontally into two parts (S1312). Now, if it is determined that the block is to be divided into two parts (S1311: YES), the block is divided horizontally into two parts (S1312). As shown in FIG. 12(c), when the block is divided horizontally into two parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted. Similarly, as shown in FIG. 12(d), when the block is divided horizontally into three parts, the pixels at positions exceeding the picture boundary are not divided, so this block division is not restricted.
[0086] Due to such restrictions on block division, the block becomes an appropriate shape. Because in a block containing pixels outside the screen, the pixel values of the part outside the screen are constant. Therefore, the change in the pixel values of the part inside the screen of that block is relative to a block that does not include pixels outside the screen. In a block containing pixels outside the screen, the pixel values of the part outside the screen are constant. Therefore, the change in the pixel values of the part inside the screen of that block is relative to a block that does not include pixels outside the screen. In a block containing pixels outside the screen, the pixel values of the part outside the screen are constant. Therefore, the change in the pixel values of the part inside the screen of that block is relative to a block that does not include pixels outside the screen. is small. Therefore, there is little need to encode minute pixel changes. Thus, the amount of code can be reduced and the encoding efficiency can be improved by making blocks that group together pixels outside the screen as much as possible.
[0087] The same restrictions on this block division apply at the right edge of the screen. For all combinations of splitting the tree block, they are shown in FIGS. 12(e) to 12(h) respectively. In this case, when the block is split horizontally into two as shown in FIG. 12(e), pixels at positions beyond the picture boundary are split. Also, when the block is split horizontally into three as shown in FIG. 12(f), pixels at positions beyond the picture boundary are split. Therefore, these block divisions are restricted. By such restrictions on block division, the encoding efficiency can be improved.
[0088] Next, the operation of the block division unit 202 of the image decoding apparatus 200 will be described. The block division unit 202 divides blocks by the same processing procedure as the block division unit 101 in the aforementioned image encoding apparatus 100. In the block division unit 101, a block division pattern is selected and the selected block division information is output. On the other hand, the block division unit 202 divides blocks using the block division information decoded from the encoded bit stream. The restrictions on block division are the same as those in the aforementioned image encoding apparatus 100.
[0089] The syntax (syntax rules of the encoded bit stream) regarding the block division in the first embodiment is shown in FIG. 13. In FIG. 13, QT() represents the syntax for the four-way division process of a block, and MTT() represents the syntax for the two-way or three-way division process of a block. 。The image encoding device 100 encodes according to this syntax, and the image decoding device 200 decodes according to this syntax.
[0090] First, whether to divide a block into four parts is represented by QTflag. When dividing into four parts, QTflag = 1, when not dividing into four parts, QTflag = 0. When dividing into four parts (QTflag = 1), if each of the divided blocks can be further divided into four parts (QTvalid = 1), the four - division process is performed recursively. When not dividing into four parts (QTflag = 0), whether to divide into two or three parts is represented by MTTflag. When dividing into two or three parts (MTTflag = 1), whether to divide vertically is represented by vertical_flag, and whether to divide into two parts is represented by BTflag. When dividing vertically, vertical_flag = 1, and when dividing horizontally vertical_flag = 0. Also, when dividing into two parts, BTflag = 1, and when dividing into three parts, BTflag = 0. For each of the blocks divided into two or three parts, if it can be further divided into two or three parts (MTTvalid = 1), the two - or three - division process is performed recursively.
[0091] Here, the variable QTvalid indicating whether each of the blocks divided into four parts can be further divided into four parts will be explained. QTvalid is defined for each of the blocks divided into four parts. If a block divided into four parts does not contain pixels within the screen, QTvalid = 0. In other cases, QTvalid = 1.
[0092] Also, whether each of the blocks divided into two or three parts can be further divided into two or three parts The variable MTTvalid to be shown will be described. MTTvalid is defined for each block divided into two or three parts as follows. When the block to be divided into two or three parts does not contain pixels within the screen, MTTvalid = 0. In other cases, MTTvalid = 1.
[0093] In this embodiment, since the direction of block division is restricted, vertical_flag becomes unnecessary. Therefore, it may be in a form where vertical_flag in FIG. 13 is omitted.
[0094] Due to such restrictions on block division, the blocks at the screen edge can be divided into appropriate shapes and the coding efficiency can be improved. Also, block division suitable for image coding and decoding can be performed. (Second Embodiment) The image coding device and the image decoding device according to the second embodiment of the present invention will be described . In the second embodiment, when the depth of block division reaches the limit depth, block division is restricted. Since the other configurations are the same as those in the first embodiment, the description is omitted.
[0095] Here, the depth of block division will be described. In the first embodiment, after dividing a block into two or three parts, the process of recursively dividing each of the two - or three - divided blocks into two or three parts was described. In this process, the first two - or three - division process is defined as depth 0. Also, the second two - or three - division process for each block divided by the first two - or three - division process is defined as depth 1, and the third two - or three - division process for each block divided by the second two - or three - division process is defined as depth 2 or three - division process. Define the cutting process as depth 2, and define the depth in the same way as follows. Also, limit the block division to a predetermined depth, and define this as the limit depth.
[0096] The limitation of block division is applied when dividing a block into two or three parts at the screen edge. That is, the two-division or three-division process (from S1004 to S1010) in FIG. 3 is replaced by the process described below. Also, the two-division or three-division process (S 1104 to S1110) in FIG. 7 is replaced by the process described below. Furthermore, the two-division or three-division process (from S1202 to S1208) in FIG. 8 is replaced by the process described below. replaced.
[0097] The limitation of block division will be described with reference to FIG. 14. First, when dividing a block into two or three parts, determine whether the depth of block division has reached the limit depth (S1 401).
[0098] If the limit depth has not been reached (S1401: NO), it is determined not to limit the block division (S1402). On the other hand, if the limit depth has been reached (S1401: YES), for all combinations of block division, determine whether to limit the block division (S13 01). Since S1301 is the same as that in the first embodiment, the description is omitted.
[0099] Next, determine whether to limit the block division for all combinations of block division ([[]] S1302). The processes below S1302 are the same as those in the first embodiment, so the description is omitted .
[0100] That is, pixels at positions exceeding the picture boundary are divided by block division, and the block When the depth of block division reaches the limit depth, block division is restricted.
[0101] Here, a specific example will be described. Now, at the lower end of the screen, the tree block is not divided into 4 parts (S1001: NO), and the inside of the tree block is divided into 2 or 3 parts (S1003: YES ES). Also, the limit depth is set to 1. Figure 12(a) shows the state where the tree block includes parts inside and outside the screen with a picture boundary in between. When this tree block is divided into 2 or 3 parts, pixels at positions beyond the picture boundary are divided by vertical division . However, the depth is 0 and has not reached the limit depth of 1 (S1401: NO). Therefore, it is determined not to restrict block division (S1402). Thus, all block divisions are not restricted (S1302: NO), horizontal block division is not restricted (S1303 : NO), and vertical block division is not restricted (S1304: NO). Then, it is determined whether to divide the block vertically (S1305). Now, if it is determined to divide the block vertically (S1305: YES), 3 - way division of the block is not restricted (S1306: NO), and it is determined whether to divide the block into 2 parts (S1307). Now , if it is determined to divide the block into 2 parts (S1307: YES), the block is divided into 2 parts vertically (S1308). This state is shown in Figure 12(a).
[0102] Subsequently, among the blocks divided into 2 parts vertically, the left - hand block is divided into 2 or 3 parts. At this time, the depth is 1 and has reached the limit depth of 1 (S1401: YES) . Therefore, for all combinations of block division, it is determined whether to restrict block division (S1301).
[0103] Regarding the case where all combinations of blocks are divided, they are shown in FIGS. 15(a) to 1 5(d), respectively. As shown in FIG. 15(a), when the block is divided vertically into two parts, pixels at positions beyond the picture boundary are divided, so this block division is restricted. Similarly, as shown in FIG. 15(b), when the block is divided vertically into three parts, pixels at positions beyond the picture boundary are divided, so this block division is restricted. On the other hand, as shown in FIG. 15(c), when the block is divided horizontally into two parts, pixels at positions beyond the picture boundary are not divided , so this block division is not restricted. Similarly, as shown in FIG. 15(d), when the block is divided horizontally into three parts, pixels at positions beyond the picture boundary are not divided, so this block division is not restricted.
[0104] Therefore, block division is not restricted for all combinations of block division (S1302: NO). Also, horizontal block division is not restricted (S1303: NO), and vertical block division is restricted (S1304: YES). And 3 - division of the block is not restricted (S1310: NO). Therefore, it is determined whether to divide the block into two parts (S1311) . Now, if it is determined that the block is to be divided into two parts (S1311: YES), the block is divided horizontally into two parts (S1312).
[0105] Due to such restrictions on block division, the block becomes an appropriate size and shape. Because in a block including pixels outside the screen, the pixel values of the part outside the screen are constant. Therefore, the change in pixel values of the part inside the screen of that block is the same as that of a block not including pixels outside the screen is relatively small compared to. Therefore, there is little need to encode fine pixel changes. Thus , by making the pixels outside the screen into blocks grouped together as much as possible, the amount of code can be reduced, and the encoding efficiency can be improved.
[0106] This limitation on block division is the same at the right end of the screen. When dividing the tree block into two or three parts, the depth is 0 and the limit depth of 1 is not reached, so the block is divided into two or three parts without restricting the block division. When further dividing the divided block, the depth is 1 and the limit depth of 1 is reached, so it is determined whether to restrict the block division. Then, when the block is divided into two parts horizontally and when the block is divided into three parts horizontally, the pixels at positions beyond the picture boundary are divided. Therefore, these block divisions are restricted. By such restrictions on block division, the encoding efficiency can be improved.
[0107] In this embodiment, the depth of block division is defined for division into two or three parts. This may also be defined for division into four parts. Also, in this embodiment, the depth of block division restricts the block division. This may be restricted by the number or ratio of pixels at positions beyond the picture boundary included in the block. That is, when these values are larger than the predetermined values , the block division is configured to be restricted. In addition, these values may be different values for each depth of block division. Thus, blocks with a small number or ratio of pixels outside the screen are divided, and blocks with a large number or ratio of pixels outside the screen are not divided in this way. The limit depth of block division and the pixels at positions beyond the picture boundary included in the block Values related to restrictions on block splitting, such as the number or ratio, are recorded by the encoding device in the encoding bit stream and the decoding device may use the values recorded in the encoding bit stream. This may be the case.
[0108] In the first embodiment, block splitting is restricted regardless of the depth of block splitting. On the other hand, in this embodiment, block splitting is restricted according to the depth of block splitting. As a result, blocks with a small ratio of out-of-screen pixels are split, and blocks with a large ratio of out-of-screen pixels are not split. Therefore, blocks at the screen edge can be split into appropriate sizes and shapes, improving the encoding efficiency. Also, block splitting suitable for image encoding and decoding can be performed. (Third Embodiment) The image encoding device and image decoding device according to the third embodiment of the present invention will be described. In the third embodiment, block splitting is controlled based on the number of pixels at positions exceeding the picture boundary. Since the other configurations are the same as those in the first embodiment, the description will be omitted.
[0109] The control of block splitting is applied when splitting a block into two or three parts at the screen edge. That is, the two-way or three-way splitting process (from S1004 to S1010) in FIG. 3 is replaced with the process described below. Also, the two-way or three-way splitting process (from S 1104 to S1110) in FIG. 7 is replaced with the process described below. Further, the two-way or three-way splitting process (from S1202 to S1208) in FIG. 8 is replaced with the process described below. replaced.
[0110] The control of block splitting will be described with reference to FIG. 16. First, for all For a combination, count the number of pixels at positions beyond the picture boundary (S1601). All combinations of block division mean that when the block is divided into two horizontally, the block when divided into two vertically, when the block is divided into three horizontally, and when the block is divided into three vertically, there are four cases.
[0111] Then, for each of the cases where the block is divided into two and where the block is divided into three, determine the division direction in which the number of pixels at positions beyond the picture boundary is maximized (S1602).
[0112] Next, determine whether to divide the block into two (S1603).
[0113] If it is determined to divide into two (S1603: YES), divide into two in the division direction determined in S1602 (S1604). On the other hand, if it is determined to divide into three (S1603: NO), divide into three in the division direction determined in S1602 (S1605).
[0114] That is, the block division direction is controlled so that the pixels at positions beyond the picture boundary are most contained within the block.
[0115] Here, a specific example will be described. Now, assume the image is 1920x1080 pixels and the tree block is 128x128 pixels. Also, assume that the tree block is not divided into four (S1101: NO), and the inside of the block is divided into two or three (S1103: YES). Then, as shown in Fig. 17(a ), 72 pixels exist vertically beyond the picture boundary at the lower end of the screen. At this time, for each block when the tree block is divided in all combinations, the number of pixels Count the number of pixels at positions beyond the picture boundary (S1601).
[0116] Regarding the case where all combinations of tree blocks are divided, they are shown in FIGS. 17(a) to 17(d), respectively. As shown in FIG. 17(a), when the block is divided vertically into two, the left side (500) and the right side (501) of the divided block are each 4,608 pixels. On the other hand, when the block is divided horizontally into two as shown in FIG. 17(b), the upper side (510) of the divided block is 1,024 pixels and the lower side (511) is 8,192 pixels. That is, the number of pixels at positions beyond the picture boundary is maximized at 8,192 pixels on the lower side in the case of horizontal division. Therefore, the division direction in which the number of pixels is maximized is the horizontal direction (S1602). Similarly, assuming that the block is divided vertically into three as shown in FIG. 17(c), the left side (520) and the right side (522) of the divided block are each 2,304 pixels, and the center (52 1) is 4,608 pixels. On the other hand, assuming that the block is divided horizontally into three as shown in FIG. 17(d), the upper side of the divided block is 0 pixels, the center (531) is 5,120 pixels, and the lower side (532) is 4,096 pixels. That is, the number of pixels at positions beyond the picture boundary is maximized at 5,120 pixels in the center in the case of horizontal division. Therefore, the division direction in which the number of pixels is maximized is the horizontal direction (S1602). Finally, determine whether to divide the block into two (S1603). If it is determined to divide into two (S1603: YES), divide the block into two in the horizontal direction, which is the determined division direction (S1604). On the other hand, if it is determined to divide into three (S1603: NO), the determined
[0117]
[0118] The block is divided into three parts in the horizontal direction, which is the division direction (S1605).
[0119] In this embodiment, when dividing the block into two or three parts, the division direction of the block is controlled so that the pixels at positions exceeding the picture boundary are most included in the block. This is because, in a block including pixels outside the screen, the pixel values of the parts outside the screen are constant, so there is little need to encode the changes of fine pixels. Therefore, by making the block that can put together such pixels into one as much as possible, the amount of code can be reduced and the coding efficiency can be improved.
[0120] Furthermore, not only the division direction of the block but also the number of divisions of the block may be determined. As described above, the maximum number of pixels at positions exceeding the picture boundary is 8192 pixels in the case of two divisions and 5120 pixels in the case of three divisions. That is, since the number of pixels at positions exceeding the picture boundary is larger in the block when divided into two parts, the block is divided into two parts.
[0121] This is because, compared with two divisions, in three divisions, the block is divided at a position closer to the edge of the block. In three divisions, the number of pixels at positions exceeding the picture boundary tends to be smaller than in two divisions. Therefore, at the edge of the screen, it is possible to determine the direction of dividing the block into two parts without dividing it into three parts. As a result, the processing for dividing the block into three parts can be reduced and the processing of block division can be speeded up.
[0122] The control of block division is applied when dividing the block into two or three parts at the edge of the screen. That is, the process of dividing into two or three parts (from S1004 to S1010) in FIG. 3 is , is replaced by the process described below. Also, the two-division or three-division process (from S 1104 to S1110) in FIG. 7 is replaced by the process described below. Further, the two-division or three-division process (from S1202 to S1208) in FIG. 8 is replaced by the process described below. replaced.
[0123] The control of block division will be described with reference to FIG. 18. First, for all combinations of block division, the number of pixels at positions exceeding the picture boundary is counted (S1651) . All combinations of block division refer to two cases: when the block is divided into two horizontally and when the block is divided into two vertically.
[0124] Next, for the case where the block is divided into two, the division direction in which the number of pixels at positions exceeding the picture boundary is maximized is determined (S1652). Then, the block is divided into two in the determined division direction (S1654).
[0125] The syntax regarding block division in this embodiment is in a form where vertical_flag in FIG. 13 is omitted. This is because in this embodiment, the direction of block division is controlled, and vertical_flag becomes unnecessary. Further, in this embodiment, the number of divisions of the block may be determined, or the block may not be divided into three. In that case, since BTflag becomes unnecessary, it may also be in an omitted form. The syntax regarding block division in this embodiment may be the same as that in FIG. 13.
[0126] In the case of 1920x1080 pixels, the pixels at positions exceeding the picture boundary at the right end of the screen does not exist. However, if the width of the image is not an integer multiple of the size of the tree block, there are pixels at positions exceeding the picture boundary, and block division is controlled in the same manner as described above. Since there are pixels at positions exceeding the picture boundary, block division is controlled as described above.
[0127] In this embodiment, the direction of block division is controlled according to the number of pixels at positions exceeding the picture boundary. This may also control the direction of block division according to the ratio of pixels at positions exceeding the picture boundary.
[0128] By controlling block division in this way, the blocks at the screen edge can be divided into appropriate sizes and shapes, improving the coding efficiency. Also, block division suitable for image coding and decoding can be achieved. (Fourth Embodiment) The image coding device and the image decoding device according to the fourth embodiment of the present invention will be described. In the fourth embodiment, a case where the picture boundary is different from that in the previous embodiment will be described. Since the other configurations are the same as those in the first embodiment, the description thereof will be omitted.
[0129] Here, consider a pattern where the picture boundary is different from that in FIG. 12. However, patterns where the judgment result on whether to limit block division does not change from the case of FIG. 12 are excluded even if the picture boundary is different. For example, in FIG. 12(a), assume that the picture boundary is slightly higher. Even in that case, since the pixels at positions exceeding the picture boundary are divided, block division is limited. That is, in FIG. 12(a), even if the picture boundary changes in the vertical direction, the judgment result of limiting block division does not change. The same applies to FIG. 12(b). Similarly, even in FIGS. 12(e) and 12(f), even if the picture boundary changes in the horizontal direction, the judgment result of limiting block division does not change. The judgment result of restricting the cut remains unchanged.
[0130] Ultimately, the patterns where the picture boundaries are different from those in Fig. 12 are from Fig. 19(a) to Fig. 19(d). The picture boundary in Fig. 19(a) is located above Fig. 12(c). Similarly, the picture boundary in Fig. 19(b) is located above Fig. 12(d). Likewise, the picture boundaries in Fig. 19(c) and Fig. 19(d) are located to the left of Fig. 12(g) and Fig. 12(h).
[0131] Both Fig. 19(a) and Fig. 19(b) are horizontal splits. However, when split into two parts, the pixels at positions beyond the picture boundary are not split, while when split into three parts, the pixels at positions beyond the picture boundary are split. That is, only when split into three parts, the block split is restricted.
[0132] Both Fig. 19(c) and Fig. 19(d) are vertical splits. However, when split into two parts, the pixels at positions beyond the picture boundary are not split, while when split into three parts, the pixels at positions beyond the picture boundary are split. That is, only when split into three parts, the block split is restricted.
[0133] That is, the judgment of restricting the block split differs between splitting into two parts and splitting into three parts. This is because when splitting into three parts, the block is split at a position closer to the edge of the block compared to splitting into two parts. When splitting into three parts, there is a tendency for the pixels at positions beyond the picture boundary to be split more than when splitting into two parts. Therefore, at the edge of the screen, it is possible to determine whether to restrict the direction of splitting into two parts instead of splitting into three parts. This can reduce the processing involved in splitting the block into three parts and speed up the processing of the block split.
[0134] The block division restriction is applied when dividing a block into two or three parts at the screen edge. That is, the two- or three-division process (from S1004 to S1010) in FIG. 3 is replaced by the process described below. Also, the two- or three-division process (S 1104 to S1110) in FIG. 7 is replaced by the process described below. Further, the two- or three-division process (S1202 to S1208) in FIG. 8 is replaced by the process described below.
[0135] The block division restriction will be described with reference to FIG. 20. FIG. 20 is in a form in which some processes in FIG. 11 are omitted. Therefore, the description may be omitted by attaching the same step numbers as in FIG. 11.
[0136] First, for all combinations of block division, it is determined whether to restrict block division (S1901). All combinations of block division refer to two cases: when the block is divided into two parts horizontally and when the block is divided into two parts vertically. Also, whether to restrict block division is determined by whether the pixels at positions exceeding the picture boundary are divided. For example, when the block is divided into two parts horizontally, if the pixels at positions exceeding the picture boundary are divided, the horizontal two-division of the block is restricted. Since the processes after S1302 are the same as in FIG. 11 except that the process for three-division disappears, the description is omitted.
[0137] Here, a specific example will be described with reference to FIG. 19(a). In the case of FIG. 19(a), for all combinations of block division, it is determined whether to restrict block division (S1 901). Now, when the block is divided into two horizontally, the pixels at positions beyond the picture boundary are not divided, so horizontal division is not restricted. Also, when the block is divided into two vertically, the pixels at positions beyond the picture boundary are divided, so vertical division is restricted. Therefore, for all combinations of block divisions, block division is not restricted (S1302: NO). And since horizontal block division is not restricted (S1303: NO) and vertical block division is restricted (S1304: YES), that is, the block is divided into two horizontally (S1312). Here, consider a pattern where the picture boundary is even closer to the top or left compared to FIG. 19. Then, in any pattern, the pixels at positions beyond the picture boundary are divided. Therefore, at the screen edge, it may always be restricted to divide the block into two or three parts. By such control of block division, the blocks at the screen edge can be divided into appropriate sizes and shapes, and the coding efficiency can be improved. Also, block division suitable for image coding and decoding can be achieved. (Fifth Embodiment) The image coding apparatus and the image decoding apparatus according to the fifth embodiment of the present invention will be described. In the fifth embodiment, the restriction of block division at the lower right end of the screen will be described. Since the other configurations are the same as those in the first embodiment, the description will be omitted. As shown in FIG. 9, the tree blocks at the screen edge may include parts inside and outside the screen with the picture boundary in between. In particular, the tree block 1001 at the right end of the screen and the picture
[0138] Now, when the block is divided into two horizontally, the pixels at positions beyond the picture boundary are not divided, so horizontal division is not restricted. Also, when the block is divided into two vertically, the pixels at positions beyond the picture boundary are divided, so vertical division is restricted. Therefore, for all combinations of block divisions, block division is not restricted (S1302: NO). And since horizontal block division is not restricted (S1303: NO) and vertical block division is restricted (S1304: YES), that is, the block is divided into two horizontally (S1312). Here, consider a pattern where the picture boundary is even closer to the top or left compared to FIG. 19. Then, in any pattern, the pixels at positions beyond the picture boundary are divided. Therefore, at the screen edge, it may always be restricted to divide the block into two or three parts. By such control of block division, the blocks at the screen edge can be divided into appropriate sizes and shapes, and the coding efficiency can be improved. Also, block division suitable for image coding and decoding can be achieved.
[0139] By such control of block division, the blocks at the screen edge can be divided into appropriate sizes and shapes, and the coding efficiency can be improved. Also, block division suitable for image coding and decoding can be achieved. Moreover, block division suitable for image coding and decoding can be performed. (Fifth Embodiment) The image coding apparatus and the image decoding apparatus according to the fifth embodiment of the present invention will be described. In the fifth embodiment, the restriction of block division at the lower right end of the screen will be described. Since the other configurations are the same as those in the first embodiment, the description will be omitted.
[0140] As shown in FIG. 9, the tree blocks at the screen edge may include parts inside and outside the screen with the picture boundary in between. Especially, the tree block 1001 at the right end of the screen and the picture Compared with the off-screen part included in the tree block 1002 at the lower end of the screen, the off-screen part included in the tree block 1003 at the lower right end of the screen tends to be larger. Therefore, due to the block splitting limitation, there is a large room for improving the coding efficiency. When the tree block is split, block splitting is restricted for the split blocks included in the tree block.
[0141] The limitation of block splitting at the lower right end of the screen will be described with reference to FIG. 20. The block at the lower right end of the screen corresponds to the tree block 1003 in FIG. 9.
[0142] First, for all combinations of block splitting, it is determined whether to restrict block splitting (S1901). All combinations of block splitting refer to two cases: when the block is split into two horizontally and when the block is split into two vertically. Also, whether to restrict block splitting is determined by whether the pixels at positions beyond the picture boundary are split. For example, if the pixels at positions beyond the picture boundary are split when the block is split into two horizontally, splitting the block into two horizontally is restricted. Since it is the block at the lower right end of the screen, the pixels at positions beyond the picture boundary are split for all combinations of block splitting. If block splitting is restricted for all combinations (S1302: YES), the block is not split (S1314).
[0143]
[0144] Here, a specific example will be described with reference to FIG. 21. FIGS. 21(a) and 21(b) show all combinations of block splitting in the tree block at the lower right end of the screen. Now, in both FIGS. 21(a) and 21(b), pixels at positions beyond the picture boundary are divided are. When restricting block division for all combinations (S1302: YES), the block is not divided (S1314).
[0145] FIG. 21(c) shows an example where the tree block is divided into four at the same picture boundary as in FIG. 21(a). For each of the four divided blocks, they are designated as blocks 601, 602, 6 03, 604 in the z-scan order. Each step of the block division for FIG. 21(c) will be described.
[0146] FIG. 21(c) is block-divided by the following steps. First, in the process of FIG. 3, the image is divided into tree blocks (S1000), and it is determined that the inside of the tree block is to be divided into four (S1001: YES), and the tree block is divided into four (S1002). For each of the four divided blocks 601, 602, 603, 604, the process of FIG. 7 is performed respectively.
[0147] In FIG. 7, it is determined that the inside of the divided block is not to be divided into four again (S1101: NO), and it is determined that the inside of the block is to be divided into two or three (S1103: YES). The process of dividing into two or three in FIG. 7 (from S1104 to S1110) is replaced by the process of FIG. 20. In FIG. 20, for all combinations of block division, it is determined whether to restrict block division (S1901). Now, since it is the block at the lower right end of the screen, for all combinations of block division, pixels at positions beyond the picture boundary are divided
[0148] If you want to restrict block division for all combinations (S1302: YES), No division is performed (S1314). This completes the block division process in FIG.
[0149] FIG. 21(d) shows a case where the tree block is divided into four parts at a different picture boundary than in FIG. 21(c). This example shows a complex block division that combines the above-mentioned embodiments. Of the four divided blocks, blocks 602 and 603 are further divided into blocks. After dividing the tree block into four (S1002), each of the four blocks is divided into 6 Each step of block division will be explained for 01, 602, 603, and 604.
[0150] Block 601 performs the process shown in FIG. 7. In FIG. 7, the inside of the divided block is reconstructed. It is determined that the block is not to be divided into four parts (S1101: NO), and the inside of the block is not to be divided into two or three parts. The block 601 is not divided into blocks (S1103: NO). The block division process ends (S1111).
[0151] Block 602 performs the process shown in FIG. 7. In FIG. 7, the inside of the divided block is reconstructed. It is determined that the block is not to be divided into four (S1101: NO), and the inside of the block is divided into two or three. (S1103: YES). 4 to S1110) are replaced with the processing of FIG.
[0152] In FIG. 20, block division is restricted for all combinations of block division. If the block is divided into two in the horizontal direction, the pixel count is determined (S1901). Since pixels beyond the boundary of the block will be split, splitting in the horizontal direction is limited. When the block is vertically divided into two parts, the pixels at positions beyond the picture boundary are not divided, so vertical division is not restricted. Therefore, for all combinations of block divisions, block division is not restricted (S1302: NO). Then, horizontal block division is restricted (S1303: YES). That is, the block is vertically divided into two parts (S13 08). Eventually, block 602 is vertically divided by division 612.
[0153] Block 603 performs the processing of FIG. 7. In FIG. 7, it is determined that the inside of the divided block is not divided again into four parts (S1101: NO), and it is determined that the inside of the block is divided into two or three parts (S1103: YES). The processing of dividing into two or three parts in FIG. 7 (S110 4 to S1110) is replaced by the processing of FIG. 18.
[0154] In FIG. 18, for all combinations of block divisions, the number of pixels at positions beyond the picture boundary is counted (S1651). All combinations of block divisions refer to two cases: when the block is horizontally divided into two parts and when the block is vertically divided into two parts .. Now, in block 603, as shown in FIGS. 17(a) and 17(b), the number of pixels at positions beyond the picture boundary is maximized when divided horizontally. Therefore, for the case where the block is divided into two parts, the division direction in which the number of pixels at positions beyond the picture boundary is maximized is determined to be the horizontal direction (S1652). Then, the block is divided into two parts in the determined division direction (S1654). Eventually, block 603 is horizontally divided by division 623.
[0155] Block 604 performs the process of FIG. 7. In FIG. 7, if it is determined not to further divide the inside of the divided block into four (S1101: NO), it is determined to divide the inside of the block into two or three (S1103: YES). The process of dividing into two or three in FIG. 7 (from S1104 to S1110) is replaced by the process of FIG. 20. In FIG. 20, for all combinations of block division, it is determined whether to limit the block division (S1901). Now, when the block is horizontally divided into two by division 624, pixels at positions exceeding the picture boundary are divided, so horizontal division is limited. Also, when the block is vertically divided into two by division 614, pixels at positions exceeding the picture boundary are divided, so vertical division is limited. That is, for all combinations of block division, pixels at positions exceeding the picture boundary are divided. If it is determined to limit block division for all combinations (S1302: YES), the block is not divided (S1314). By controlling such block division, the blocks at the screen edge can be divided into an appropriate size and shape, and the coding efficiency can be improved. Also, block division suitable for image coding and decoding can be performed.
[0156] In all the embodiments described above, the object of controlling block division is the position exceeding the picture boundary. This may be done by defining an arbitrary boundary and controlling block division for positions exceeding it. Also, as an arbitrary boundary, pixels with a higher importance than surrounding pixels can be defined, and the positions exceeding that boundary can be made the object of controlling block division.
[0157]
[0158] This is also acceptable. Furthermore, the position beyond any boundary is not necessarily the lower or right end of the screen, but may also be the upper or left end of the screen or not at the end at all. In that case, even if it is not at the screen edge, the block can be divided into an appropriate size and shape, and the coding efficiency can be improved.
[0159] All of the embodiments described above may be combined in multiple ways.
[0160] In all of the embodiments described above, the coded bit stream output by the image coding apparatus is specified to have a data format that can be decoded according to the coding method used in the embodiment. The coded bit stream may be recorded and provided on a recording medium readable by a computer such as an HDD, SSD, flash memory, optical disk, etc., or may be provided from a server through a wired or wireless network. Accordingly, an image decoding apparatus corresponding to this image coding apparatus can decode the coded bit stream of this specific data format regardless of the providing means.
[0161] When a wired or wireless network is used to exchange the coded bit stream between the image coding apparatus and the image decoding apparatus, the coded bit stream may be converted into a data format suitable for the transmission form of the communication path and transmitted. In that case, a transmission apparatus that converts the coded bit stream output by the image coding apparatus into coded data in a data format suitable for the transmission form of the communication path and transmits it to the network, and a receiving apparatus that receives the coded data from the network, restores it to the coded bit stream, and supplies it to the image decoding apparatus are provided.
[0162] The transmission device includes a memory that buffers the encoded bit stream output by the image encoding device a packet processing unit that packetizes the encoded bit stream, and a transmission unit that transmits the packetized encoded data via a network The receiving device includes a receiving unit that receives the packetized encoded data via a network, a memory that buffers the received encoded data, and a packet processing unit that packet-processes the encoded data to generate an encoded bit stream and provides it to the image decoding device and provides it to the image decoding device. When a wired or wireless network is used to exchange the encoded bit stream between the image encoding device and the image decoding device, in addition to the transmission device and the receiving device, a relay device that receives the encoded data transmitted by the transmission device and supplies it to the receiving device may be provided The relay device includes a receiving unit that receives the packetized encoded data transmitted by the transmission device, a memory that buffers the received encoded data, and a transmission unit that transmits the packetized encoded data to the network
[0163] Furthermore, the relay device may include a receiving packet processing unit that packet-processes the packetized encoded data to generate an encoded bit stream, a recording medium that stores the encoded bit stream, and a transmission packet processing unit that packetizes the encoded bit stream Alternatively, by adding a display unit that displays the image decoded by the image decoding device to the configuration, it can also be used as a display device In that case, the display unit reads out the decoded image signal generated by the decoded image signal superimposing unit 205 and stored in the decoded image memory 206 and displays it on the screen The relay device includes a receiving unit that receives the packetized encoded data transmitted by the transmission device, a memory that buffers the received encoded data, and a transmission unit that transmits the packetized encoded data to the network and a transmission unit that transmits the packetized encoded data to the network. Furthermore, the relay device may include a receiving packet processing unit that packet-processes the packetized encoded data to generate an encoded bit stream, a recording medium that stores the encoded bit stream, and a transmission packet processing unit that packetizes the encoded bit stream The relay device includes a receiving unit that receives the packetized encoded data transmitted by the transmission device, a memory that buffers the received encoded data, and a transmission unit that transmits the packetized encoded data to the network Furthermore, the relay device may include a receiving packet processing unit that packet-processes the packetized encoded data to generate an encoded bit stream, a recording medium that stores the encoded bit stream, and a transmission packet processing unit that packetizes the encoded bit stream The relay device may further include a receiving packet processing unit that packet-processes the packetized encoded data to generate an encoded bit stream, a recording medium that stores the encoded bit stream, and a transmission packet processing unit that packetizes the encoded bit stream
[0164] Also, by adding a display unit that displays the image decoded by the image decoding device to the configuration, it can also be used as a display device In that case, the display unit reads out the decoded image signal generated by the decoded image signal superimposing unit 205 and stored in the decoded image memory 206 and displays it on the screen The display unit reads out the decoded image signal generated by the decoded image signal superimposing unit 205 and stored in the decoded image memory 206 and displays it on the screen
[0165] In addition, by adding an imaging unit to the configuration and inputting the captured image into the image encoding device, it can also be used as an imaging device. In that case, the imaging unit inputs the captured image signal to the block division unit 101. Force it.
[0166] Fig. 22 shows an example of the hardware configuration of the encoding / decoding device of the present application. The encoding / decoding device includes the configurations of the image encoding device and the image decoding device according to the embodiments of the present invention. The encoding / decoding device 9000 includes a CPU 9001, a codec IC 9002, an I / O interface 9003, a memory 9004, an optical disk drive 9005, a network interface 9006, and a video interface 9009, and each part is connected by a bus 9010. Connected by.
[0167] The image encoding unit 9007 and the image decoding unit 9008 are typically implemented as the codec IC 9002. The image encoding process of the image encoding device according to the embodiments of the present invention is executed by the image encoding unit 9007, and the image decoding process in the image decoding device according to the embodiments of the present invention is executed by the image encoding unit 9007. The I / O interface 9003 is realized by, for example, a USB interface and is connected to an external keyboard 9104, a mouse 9 105, etc. The CPU 9001 controls the encoding / decoding device 9 000 to execute the operations desired by the user based on the user operations input through the I / O interface 9003. Examples of user operations using the keyboard 9104, the mouse 9105, etc. include selection of which function of encoding or decoding to execute, setting of encoding quality, input / output destination of the encoding stream , input / output destination of the image, etc. Based on the user operations input through the I / O interface 9003, the CPU 9001 controls the encoding / decoding device 9 000 to execute the operations desired by the user. Examples of user operations using the keyboard 9104, the mouse 9105, etc. include selection of which function of encoding or decoding to execute, setting of encoding quality, input / output destination of the encoding stream , input / output destination of the image, etc.
[0168] When the user desires to perform an operation to play back an image recorded on the disk recording medium 9100 , the optical disk drive 9005 reads out an encoded bit stream from the inserted disk recording medium 9100, and sends the read encoded stream to the image decoding unit 9008 of the codec IC 9002 via the bus 9010. The image decoding unit 9008 performs image decoding processing in the image decoding apparatus according to the embodiment of the present invention on the input encoded bit stream, and sends the decoded image to an external monitor 9103 via the video interface 9009. Also, the encoding / decoding apparatus 9000 has a network interface 9006 and can be connected to an external distribution server 9106 or a mobile terminal 9107 via the network 9101. When the user desires to play back an image recorded on the distribution server 9106 or the mobile terminal 9107 instead of the image recorded on the disk recording medium 9100, the network interface 9006 obtains an encoded stream from the network 9101 instead of reading out the encoded bit stream from the input disk recording medium 9100. Also, when the user desires to play back an image recorded in the memory 9004, the image decoding processing in the image decoding apparatus according to the embodiment of the present invention is performed on the encoded stream recorded in the memory 9004. When the user desires to perform an operation of encoding an image captured by the external camera 9102 and recording it in the memory 9004 , the video interface 9009 receives an image from the camera 9102 and sends it to the image encoding unit 9007 of the codec IC 9002 via the bus 9010.
[0169] The image symbolization unit 9007 performs the image encoding process in the image encoding apparatus according to the embodiment of the present invention, and creates an encoded bit stream. Then, the encoded bit stream is sent to the memory 9004 via the bus 9010. When the user desires to record the encoded stream on the disk recording medium 9100 instead of the memory 9004, the optical disk drive 9005 writes the encoded stream to the inserted disk recording medium 9100. It is also possible to realize a hardware configuration having an image encoding apparatus and not having an image decoding apparatus, or a hardware configuration having an image decoding apparatus and not having an image encoding apparatus. Such a hardware configuration is realized, for example, by replacing the codec IC 9002 with the image encoding unit 9007 or the image decoding unit 9008, respectively.
[0170] The above processes related to encoding and decoding may of course be realized by a transmission, storage, and reception apparatus using hardware, or may be realized by firmware stored in a ROM (Read Only Memory), flash memory, or the like, or software such as a computer. The firmware program and software program may be recorded and provided on a recording medium readable by a computer or the like, may be provided from a server through a wired or wireless network, or may be provided as digital broadcast data of terrestrial or satellite digital broadcast. As described above, the present invention has been described based on the embodiments. The embodiments are examples, and each of their constituents ...
[0171] The above processes related to encoding and decoding may of course be realized by a transmission, storage, and reception apparatus using hardware, or may be realized by firmware stored in a ROM (Read Only Memory), flash memory, or the like, or software such as a computer. The firmware program and software program may be recorded and provided on a recording medium readable by a computer or the like, may be provided from a server through a wired or wireless network, or may be provided as digital broadcast data of terrestrial or satellite digital broadcast. As described above, the present invention has been described based on the embodiments. The embodiments are examples, and each of their constituents ... The firmware program and software program may be recorded and provided on a recording medium readable by a computer or the like, may be provided from a server through a wired or wireless network, or may be provided as digital broadcast data of terrestrial or satellite digital broadcast. As described above, the present invention has been described based on the embodiments. The embodiments are examples, and each of their constituents
[0172] As described above, the present invention has been described based on the embodiments. The embodiments are examples, and each of their It is understood by those skilled in the art that various modifications are possible for the combination of constituent elements and each processing process, and such modifications are also within the scope of the present invention.
Explanation of Reference Numerals
[0173] 100 Image encoding device, 101 Block division unit, 102 Predicted image generation unit, 103 Residual signal generation unit, 104 Orthogonal transformation / quantization unit, 105 Encoding unit, 10 6 Inverse quantization / inverse orthogonal transformation unit, 107 Decoded image signal superposition unit, 108 Decoded image memory Li, 200 Image decoding device, 201 Decoding unit, 202 Block division unit, 2 03 Inverse quantization / inverse orthogonal transformation unit, 204 Predicted image generation unit, 205 Decoded image signal superposition Unit, 206 Decoded image memory.
Claims
1. An image decoding apparatus that decodes an image in units of divided blocks, comprising: a decoding unit that decodes block division information including a first flag indicating whether to divide a target block into four parts and a second flag indicating whether to divide the target block by a horizontal division line or a vertical division line; a block division unit that recursively divides the image into rectangles of a predetermined size based on the block division information to generate the target block, wherein the block division unit includes a four-division unit that divides the target block in the recursive division into four equal parts in the horizontal and vertical directions to generate four blocks; a two-three division unit that divides the target block in the recursive division into two or three equal parts in the horizontal or vertical direction to generate two or three blocks, wherein when the two-three division unit divides the target block by a horizontal division line, if the divided target block exceeds the right side of the picture boundary, it prohibits dividing the target block by the horizontal division line and permits dividing it by the vertical division line; when the two-three division unit divides the target block by a vertical division line, if the divided target block exceeds the lower side of the picture boundary, it prohibits dividing the target block by the vertical division line and permits dividing it by the horizontal division line; the decoding unit does not decode the second flag under the condition that when the first flag is decoded to be false and dividing the target block by a horizontal or vertical division line is prohibited; An image decoding apparatus characterized by the above.
2. An image decoding method for decoding an image in units of divided blocks, comprising: a decoding step of decoding block division information including a first flag indicating whether to divide a target block into four parts and a second flag indicating whether to divide the target block by a horizontal division line or a vertical division line; a block division step of recursively dividing the image into rectangles of a predetermined size based on the block division information to generate the target block, wherein the block division step includes a four-division step of dividing the target block in the recursive division into four equal parts in the horizontal and vertical directions to generate four blocks; A 2-3 splitting step of splitting the target block in the recursive splitting into two or three blocks by splitting the target block horizontally or vertically into two or three parts, If the 2-3 splitting step splits the target block into two with a horizontal splitting line, when the split target block exceeds the right side of the picture boundary, splitting the target block with a horizontal splitting line is prohibited and splitting with a vertical splitting line is permitted. If the 2-3 splitting step splits the target block into two with a vertical splitting line, when the split target block exceeds the lower side of the picture boundary, splitting the target block with a vertical splitting line is prohibited and splitting with a horizontal splitting line is permitted. When the decoding step decodes the first flag and it is false, and under the condition of prohibiting splitting the target block with a horizontal or vertical splitting line, the second flag is not decoded. An image decoding method characterized by the above.
3. An image decoding program for decoding an image in units of split blocks, A decoding step of decoding block splitting information including a first flag indicating whether to split the target block into four and a second flag indicating whether to split the target block with a horizontal splitting line or a vertical splitting line, A block splitting step of recursively splitting the image into rectangles of a predetermined size based on the block splitting information to generate the target block, and causing a computer to execute, The block splitting step is A 4-splitting step of splitting the target block in the recursive splitting into four blocks by splitting the target block horizontally and vertically in half respectively, A 2-3 splitting step of splitting the target block in the recursive splitting into two or three blocks by splitting the target block horizontally or vertically into two or three parts, If the 2-3 splitting step splits the target block into two with a horizontal splitting line, when the split target block exceeds the right side of the picture boundary, splitting the target block with a horizontal splitting line is prohibited and splitting with a vertical splitting line is permitted. Assuming that in the 2-3 splitting step, the target block is split into two by a vertical splitting line, if the split target block exceeds the lower side of the picture boundary, splitting the target block by a vertical splitting line is prohibited and splitting by a horizontal splitting line is permitted. In the decoding step, when the first flag is decoded and found to be false, and under the condition that splitting the target block by a horizontal or vertical splitting line is prohibited, the second flag is not decoded. An image decoding program characterized by the above.
4. An image encoding device that encodes an image in units of divided blocks, A block splitting unit that recursively splits the image into rectangles of a predetermined size to generate target blocks, An encoding unit that encodes block splitting information including a first flag indicating whether to split the target block into four and a second flag indicating whether to split the target block by a horizontal splitting line or a vertical splitting line, The block splitting unit A four-splitting unit that splits the target block in the recursive splitting into four equal parts in the horizontal and vertical directions to generate four blocks, A 2-3 splitting unit that splits the target block in the recursive splitting into two or three equal parts in the horizontal or vertical direction to generate two or three blocks, Assuming that in the 2-3 splitting unit, the target block is split into two by a horizontal splitting line, if the split target block exceeds the right side of the picture boundary, splitting the target block by a horizontal splitting line is prohibited and splitting by a vertical splitting line is permitted. Assuming that in the 2-3 splitting unit, the target block is split into two by a vertical splitting line, if the split target block exceeds the lower side of the picture boundary, splitting the target block by a vertical splitting line is prohibited and splitting by a horizontal splitting line is permitted. In the encoding unit, when the first flag is encoded and found to be false, and under the condition that splitting the target block by a horizontal or vertical splitting line is prohibited, the second flag is not encoded. An image encoding device characterized by the above.
5. An image encoding method that encodes an image in units of divided blocks, A block splitting step that recursively splits the image into rectangles of a predetermined size to generate target blocks, An encoding step of encoding block division information including a first flag indicating whether to divide the target block into four parts and a second flag indicating whether to divide the target block with a horizontal division line or a vertical division line. The block division step includes: A four-division step of dividing the target block in the recursive division into four equal parts in both the horizontal and vertical directions to generate four blocks. A 2-3 division step of dividing the target block in the recursive division into two or three equal parts in the horizontal or vertical direction to generate two or three blocks. In the 2-3 division step, if the target block is divided by a horizontal division line, when the divided target block exceeds the right side of the picture boundary, dividing the target block by a horizontal division line is prohibited and dividing by a vertical division line is permitted. In the 2-3 division step, if the target block is divided by a vertical division line, when the divided target block exceeds the lower side of the picture boundary, dividing the target block by a vertical division line is prohibited and dividing by a horizontal division line is permitted. In the encoding step, when encoding the first flag and in the case of false, where dividing the target block by a horizontal or vertical division line is prohibited, the second flag is not encoded. An image encoding method characterized by the above.
6. An image encoding program for encoding an image in units of divided blocks, comprising: A block division step of recursively dividing the image into rectangles of a predetermined size to generate target blocks. Causing a computer to execute an encoding step of encoding block division information including a first flag indicating whether to divide the target block into four parts and a second flag indicating whether to divide the target block with a horizontal division line or a vertical division line. The block division step includes: A four-division step of dividing the target block in the recursive division into four equal parts in both the horizontal and vertical directions to generate four blocks. A 2-3 division step of dividing the target block in the recursive division into two or three equal parts in the horizontal or vertical direction to generate two or three blocks. Assuming that in the 2-3 splitting step, the target block is split into two by a horizontal splitting line, if the split target block exceeds the right side of the picture boundary, splitting the target block by a horizontal splitting line is prohibited and splitting by a vertical splitting line is permitted. Assuming that in the 2-3 splitting step, the target block is split into two by a vertical splitting line, if the split target block exceeds the lower side of the picture boundary, splitting the target block by a vertical splitting line is prohibited and splitting by a horizontal splitting line is permitted. In the encoding step, when encoding the first flag to be false and prohibiting splitting the target block by a horizontal or vertical splitting line, the second flag is not encoded. An image encoding program characterized by the above.
7. A storage method for storing a bit stream generated according to the image encoding method described in Claim 5 in a recording medium.
8. A transmission method for transmitting a bit stream generated according to the image encoding method described in Claim 5.
Citation Information
Patent Citations
A method, encoding apparatus, and corresponding computer program for encoding a current block of a first image component with respect to at least one reference block of a second image component.
JP2015526008A
Method and device for encoding or decoding encoding unit of picture outline
WO2018070550A1
Image decoding device and image coding device
WO2018110600A1
Methods and apparatus for picture encoding and decoding
WO2018177741A1
Apparatus and method for encoding and decoding a picture using picture boundary handling
WO2019185456A1