Encoding device, decoding device, and program

By determining encoding and decoding processing orders to generate intra prediction mode candidates, the encoding device and decoding device improve encoding efficiency and reduce calculation time in the H.265/HEVC system, addressing issues of reference pixel unavailability and mode probability bias.

JP7602609B2Active Publication Date: 2024-12-18NIPPON HOSO KYOKAI
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023215558
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-08-20
Filing Date
2023-12-21
Publication Date
2024-12-18
Estimated Expiration
2039-08-20

AI Technical Summary

Technical Problem

In the H.265/HEVC video encoding system, the accuracy of intra prediction decreases when the encoding processing order is selected, leading to increased calculation time and reduced encoding efficiency due to the unavailability of reference pixels and biased probability of intra prediction modes.

Method used

An encoding device and decoding device that determine the encoding and decoding processing orders to generate intra prediction mode candidates based on these orders, reducing the amount of information transmitted and improving efficiency by selecting appropriate intra prediction modes and controlling the scan order.

Benefits of technology

The solution reduces the amount of information transmitted and calculation time, enhancing encoding efficiency by ensuring accurate intra prediction using available reference pixels and optimizing the selection of intra prediction modes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007602609000005
    Figure 0007602609000005
  • Figure 0007602609000006
    Figure 0007602609000006
  • Figure 0007602609000007
    Figure 0007602609000007
Patent Text Reader

Abstract

To provide an encoding device, a decoding device, and a program which achieve improvement of encoding efficiency while reducing a calculation time on the encoding device by reducing the amount of information to be transmitted by the encoding device.SOLUTION: An encoding device includes: an encoding processing order determination unit (11) configured to determine encoding processing order of blocks to be encoded; an intra-prediction mode candidate generation unit (12) configured to generate intra-prediction mode candidates of the blocks to be encoded, based on the encoding processing order; an intra-prediction mode determination unit (13) configured to determine intra-prediction modes to be applied to the blocks to be encoded from among the intra-prediction mode candidates; an intra prediction unit (14) configured to perform intra-prediction processing on the blocks to be encoded, based on the determined encoding processing order and the intra-prediction modes; and an entropy encoding unit (15) configured to perform entropy encoding processing on the encoding processing order and the intra-prediction modes.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an encoding device, a decoding device, and a program. [Background technology]

[0002] In the H.265 / HEVC (High Efficiency Video Coding) video (image) coding method, which is a representative next-generation video compression technology, a residual signal is generated by switching between two types of prediction: inter-prediction, which utilizes temporal correlation between frames, and intra-prediction, which utilizes spatial correlation within a frame. Then, orthogonal transform processing, loop filter processing, and entropy coding processing are performed. The stream obtained by this entropy coding processing is output.

[0003] A total of 35 types of intra prediction modes are available for intra prediction in HEVC, including planar prediction, DC prediction, and directional prediction. In the decoding device, intra prediction is performed using adjacent decoded reference pixels according to the intra prediction mode determined by the encoding device (encoder) to generate a predicted image. Hereinafter, unless otherwise specified, "reference pixels" refers to decoded reference pixels.

[0004] Conventional HEVC divides the original frame-by-frame images that make up a video sequence into multiple blocks of fixed size (hereafter referred to as CTUs: Coding Tree Units), and then encodes each CTU by applying hierarchical quadtree division.

[0005] The encoding device performs encoding processing on the divided encoding target blocks (hereinafter referred to as CUs: coding units) while switching between intra prediction and inter prediction. This encoding processing is performed in a predefined encoding processing order from the upper left to the lower right (an encoding processing order such as upper left CU → upper right CU → lower left CU → lower right CU, hereinafter referred to as Z scan).

[0006] As described above, the intra prediction mode generates a predicted image using reference pixels. However, in this intra prediction mode, the order of the encoding process is advanced by Z scan, which will be described later, so that the reference pixels at the upper right or lower left of the CU may not have been decoded.

[0007] In such a case, a predicted image is generated using a value obtained by performing zero-order extrapolation on the closest decoded reference pixel as the reference pixel (see, for example, Non-Patent Document 1).

[0008] In addition, in HEVC, in blocks where there are no adjacent decoded reference pixels, such as the block located in the upper left corner of a frame, reference pixels to be used when generating a predicted image are created by a process of filling in a specified value (for example, ``512'' for a 10-bit video image).

[0009] As described above, when there are undecoded reference pixels, performing directional prediction from the direction in which the undecoded reference pixels are located reduces prediction accuracy, resulting in reduced coding efficiency.

[0010] Therefore, in intra prediction, in addition to Z scan, techniques are known that allow freedom in the encoding process order, such as inverse N scan (an encoding process order such as upper right CU → lower right CU → upper left CU → lower left CU) and inverse Z scan (an encoding process order such as lower left CU → lower right CU → upper left CU → upper right CU) to improve prediction accuracy (see non-patent document 2).

[0011] In the technique defined in Non-Patent Document 2, a flag indicating what encoding process order is to be used for each CU is transmitted, and then a flag indicating an intra prediction mode applicable to each CU is transmitted.

[0012] In addition, in the technology defined in Non-Patent Document 2, the intra prediction mode of each CU is configured to be selected from a fixed set of 35 intra prediction modes, similar to HEVC, and the entropy encoding process of the intra prediction mode to be transmitted is also similar to HEVC. [Prior art documents] [Non-patent literature]

[0013] [Non-Patent Document 1] Edited by Eiichiro Okubo, "Impress Standard Textbook Series H.265 / HEVC Textbook" [Non-Patent Document 2] Xiulian Peng et al., “Improved intra frame coding by PU / TU reordering”, JVTVC-C275, October 2010 Summary of the Invention [Problem to be solved by the invention]

[0014] However, as in Non-Patent Document 2, when the encoding process order (scan order) is selectable, there is a problem that the accuracy of intra prediction may decrease even when inverse Z scan or N scan is selected.

[0015] For example, as shown in Figure 14, when inverse Z scan is selected as the encoding processing order for the divided CUs, intra prediction processing is performed in the order of CU#3 (lower left CU) → CU#4 (lower right CU) → CU#1 (upper left CU) → CU#2 (upper right CU).

[0016] Here, as in the example of Figure 14, when the intra prediction mode of each CU is an intra prediction mode that uses adjacent reference pixels on the left or upper side, the encoding process is performed by inverse Z scan. Therefore, in CU #4 (CU at the lower right) and CU #3 (CU at the lower left), the upper reference pixels that can be referenced in the case of Z scan cannot be used.

[0017] That is, when the inverse Z scan is selected as in the example of FIG. 14, the intra prediction mode that uses reference pixels located on the left or upper side is less likely to be selected.

[0018] As described above, in Non-Patent Document 2, even though there is a bias in the probability of the intra prediction mode being selected depending on the encoding process order, the entropy coding of the flag indicating the intra prediction mode is the same as that of HEVC, and the above-mentioned bias in the probability of the intra prediction mode is not taken into consideration.

[0019] Furthermore, in Non-Patent Document 2, the encoding device needs to try all combinations to determine which intra prediction mode to select for each CU in all selectable encoding process orders, which results in an increase in the calculation time on the encoding device side.

[0020] Therefore, the present invention has been made to solve the above-mentioned problems, and aims to provide an encoding device, a decoding device, and a program that can improve encoding efficiency while reducing the amount of information transmitted by the encoding device and reducing the calculation time on the encoding device side. [Means for solving the problem]

[0021] The first feature of the present invention is to provide an encoding device that divides an original image of a frame unit that constitutes a moving image into a plurality of blocks and encodes the divided original image, the encoding device comprising: an encoding process order determination unit that determines an encoding process order for a target block for encoding; a generation unit that generates intra-prediction mode candidates for the target block based on the determined encoding process order; an intra-prediction mode determination unit that determines an intra-prediction mode to be applied to the target block from among the generated intra-prediction mode candidates; an intra-prediction unit that performs intra-prediction processing on the target block based on the determined encoding process order and the determined intra-prediction mode; and an entropy encoding unit that performs entropy encoding processing on the determined encoding process order and the determined intra-prediction mode.

[0022] A second feature of the present invention is a decoding device that decodes frame-based images that constitute a moving image into individual blocks, and includes a decoding process order acquisition unit that acquires a decoding process order for a block to be decoded by performing an entropy decoding process on a stream output from an encoding device, a generation unit that generates intra-prediction mode candidates for the target block based on the acquired decoding process order, an intra-prediction mode acquisition unit that acquires an intra-prediction mode to be applied to the target block by performing an entropy decoding process on the stream based on the generated intra-prediction mode candidates, and an intra prediction unit that performs intra-prediction processing on the target block based on the acquired decoding process order and the acquired intra-prediction mode.

[0023] A third aspect of the present invention is summarized as a program for causing a computer to function as the encoding device according to the first aspect.

[0024] A fourth aspect of the present invention is summarized as a program for causing a computer to function as the decoding device according to the second aspect. Effect of the Invention

[0025] According to the present invention, it is possible to provide an encoding device, a decoding device, and a program that can reduce the amount of information transmitted by the encoding device and improve encoding efficiency while reducing the calculation time on the encoding device side. [Brief description of the drawings]

[0026] [Figure 1] FIG. 1 is a diagram illustrating an example of a functional block configuration of an encoding device according to the first embodiment. [Diagram 2] FIG. 2 is a diagram showing an example of a scan order used in the encoding device and the decoding device according to the first embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of an encoding process order (scan order) used in the encoding device and the decoding device according to the first embodiment. [Figure 4] FIG. 4 is a diagram showing an example of the entire range of intra prediction modes used in the encoding device and decoding device according to the first embodiment. [Diagram 5] FIG. 5 is a diagram showing an example of intra prediction processing in the encoding device and decoding device according to the first embodiment. [Figure 6] FIG. 6 is a diagram illustrating an example of a functional block configuration of the decoding device according to the first embodiment. As illustrated in FIG. [Figure 7] FIG. 7 is a diagram for explaining a modification of the first embodiment. [Figure 8] FIG. 8 is a diagram illustrating an example of a functional block configuration of a coding process order determination unit in the coding device according to the second embodiment. [Figure 9] FIG. 9 is a diagram illustrating an example of the operation of the adjacent block detection unit according to the second embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a functional block configuration of a decoding order acquisition unit in the decoding device according to the second embodiment. [Figure 11] FIG. 11 is a diagram illustrating an example of a functional block configuration of an intra-prediction mode candidate generation unit in the encoding device according to the third embodiment. [Figure 12] FIG. 12 is a diagram showing an example of intra prediction modes used in the encoding device and the decoding device according to the third embodiment. [Figure 13] FIG. 13 is a diagram illustrating an example of a functional block configuration of an intra-prediction mode candidate generation unit in a decoding device according to the third embodiment. [Figure 14] FIG. 14 is a diagram for explaining the conventional technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0027] (First embodiment) Hereinafter, an encoding device 1 and a decoding device 3 according to a first embodiment of the present invention will be described with reference to FIGS.

[0028] Here, the encoding device 1 and the decoding device 3 according to the present embodiment are compatible with intra prediction in a video encoding method such as HEVC. Note that the encoding device 1 and the decoding device 3 according to the present embodiment can be compatible with any video encoding method as long as the video encoding method performs intra prediction.

[0029] The encoding device 1 according to this embodiment divides original images of frames constituting a moving image into encoding target CUs and encodes them. Hereinafter, this embodiment will be described taking as an example a case in which original images of frames constituting a moving image are hierarchically divided into quadtrees and encoded.

[0030] As shown in Figure 1, the encoding device 1 of this embodiment includes an encoding process order determination unit 11, an intra-prediction mode candidate generation unit 12, an intra-prediction mode determination unit 13, an intra-prediction unit 14, and an entropy encoding unit 15.

[0031] The coding process order determination unit 11 determines (selects) the coding process order (hereinafter, scan order) of the current CU (current block to be coded). Specifically, the coding process order determination unit 11 determines the order in which each divided CU is to be coded. Note that the decoding device 3 decodes each CU according to the scan order determined by the coding process order determination unit 11. Therefore, in the decoding device 3, the scan order corresponds to the decoding process order.

[0032] Fig. 2 shows examples of scan orders selectable by the encoding process order determination unit 11. The scan order shown in Fig. 2(a) is called Z scan (upper left CU → upper right CU → lower left CU → lower right CU), the scan order shown in Fig. 2(b) is called reverse Z scan (lower left CU → lower right CU → upper left CU → upper right CU), and the scan order shown in Fig. 2(b) is called N scan (upper right CU → lower right CU → upper left CU → lower left CU).

[0033] In the following description of the present specification, a case will be described in which the encoding process order determination unit 11 can select Z scan, inverse Z scan, or N scan, but the present invention can be applied to the scan order shown in Fig. 3 in addition to the scan order shown in Fig. 2. Here, when the scan order shown in Fig. 3(a) is applied, processing similar to that of the N scan can be applied, and when the scan order shown in Fig. 3(b) is applied, processing similar to that of the inverse Z scan can be applied.

[0034] The intra prediction mode candidate generation unit 12 generates intra prediction mode candidates for the current CU to be coded, based on the scan order determined (selected) by the coding process order determination unit 11. Hereinafter, an intra prediction mode applicable to HEVC will be described as an example.

[0035] As shown in Fig. 4, the 35 intra prediction modes are categorized into categories A, B, and C according to the reference direction. Note that, although the present embodiment will be described taking the HEVC intra prediction mode as an example, the present invention is applicable to any encoding process that performs intra prediction using adjacent decoded reference pixels.

[0036] In HEVC, a total of nine intra prediction modes from mode 2 to mode 10 are classified as category A, a total of 15 intra prediction modes from mode 11 to mode 25 are classified as category B, and a total of nine intra prediction modes from mode 26 to mode 34 are classified as category C.

[0037] In addition, in systems other than HEVC, for modes that perform directional prediction among applicable intra prediction modes, intra prediction modes that do not use reference pixels located on the upper side are set as category A, intra prediction modes that do not use reference pixels located on the left side are set as category C, and intra prediction modes that use reference pixels both located on the upper and left sides are set as category B.

[0038] The intra-prediction mode candidate generation unit 12 generates intra-prediction mode candidates for the current CU based on the scan order determined by the coding process order determination unit 11.

[0039] For example, when the scan order determined by the encoding processing order determination unit 11 is Z scan, the intra-prediction mode candidate generation unit 12 determines three categories, A, B, and C, DC mode, and Planar mode as intra-prediction mode candidates selectable for each CU, as in the case of HEVC.

[0040] On the other hand, when the order of the encoding process determined by the encoding process order determination unit 11 is inverse Z scan, the intra-prediction mode candidate generation unit 12 determines the intra-prediction modes, DC mode, and Planar mode belonging to category A as intra-prediction mode candidates selectable for each CU.

[0041] Furthermore, when the scan order determined by the encoding processing order determination unit 11 is N scan, the intra-prediction mode candidate generation unit 12 determines the intra-prediction modes, DC mode, and Planar mode belonging to category C as intra-prediction mode candidates selectable for each CU.

[0042] The intra-prediction mode determination unit 13 determines an intra-prediction mode to be applied to a current CU from among the intra-prediction mode candidates generated by the intra-prediction mode candidate generation unit 12. For example, the intra-prediction mode determination unit 13 determines an intra-prediction mode to be applied to each CU from among the intra-prediction modes belonging to a category determined by the intra-prediction mode candidate generation unit 12 by optimization on the encoding device 1 side or the like.

[0043] The intra prediction unit 14 performs intra prediction processing on the current CU to be coded, based on the scan order determined by the coding processing order determination unit 11 and the intra prediction mode determined by the intra prediction mode determination unit 13. Specifically, the intra prediction unit 14 performs intra prediction processing on the current CU to be coded, depending on the intra prediction mode applied to each CU and the positions of decoded reference pixels adjacent to each CU.

[0044] Hereinafter, an example of the intra prediction process according to this embodiment will be described with reference to FIG.

[0045] As described above, when the scan order determined by the encoding processing order determination unit 11 is reverse Z scan, the intra-prediction mode candidate generation unit 12 determines the intra-prediction modes, DC mode, and Planar mode belonging to category A as intra-prediction mode candidates selectable for each CU.

[0046] 5(a) and 5(b), the intra prediction unit 14 performs intra prediction processing for CU#3 (the lower left CU) and CU#4 (the lower right CU) in the same manner as in conventional HEVC. In HEVC, when intra prediction processing is performed, decoded images are generated sequentially, so that the decoded images can be reused in intra prediction processing in a CU that performs subsequent encoding processing.

[0047] Therefore, as shown in Figures 5(c) and 5(d), when the intra prediction unit 14 performs intra prediction for CU#1 (the CU in the upper left) and CU#2 (the CU in the upper right), the decoded images of the CUs located below (CU#3 and CU#4) have already been decoded, and so the intra prediction unit 14 can reuse these CUs as reference pixels.

[0048] Therefore, when the scan order of each CU is inverse Z scan, the intra prediction unit 14 performs intra prediction processing for a CU whose lower CU has already been decoded, using at least adjacent reference pixels below and to the left, instead of the intra prediction processing performed in normal HEVC.

[0049] Similarly, when the scan order of each CU is N scan, the intra prediction unit 14 performs intra prediction processing for a CU whose right-hand side has already been decoded, using adjacent reference pixels at least to the right and above, instead of the intra prediction processing performed in normal HEVC.

[0050] The entropy coding unit 15 performs entropy coding processing on the scan order determined by the coding processing order determination unit 11 and the intra prediction mode determined by the intra prediction mode determination unit 13. Specifically, as shown in FIG. 1, the entropy coding unit 15 includes a coding processing order coding unit 151 and an intra prediction mode coding unit 152.

[0051] The coding process order coding unit 151 performs entropy coding on the scan order determined by the coding process order determination unit 11 .

[0052] The intra-prediction mode encoding unit 152 performs entropy encoding processing on the intra-prediction mode based on the intra-prediction mode candidates generated by the intra-prediction mode candidate generation unit 12 and the intra-prediction mode determined by the intra-prediction mode determination unit 13 .

[0053] In conventional HEVC, 5-bit flag information is streamed for 32 intra prediction modes, excluding the three intra prediction modes registered in the Most Probable Modes (MPM), which are arranged in order of the probability of being selected, out of the 35 intra prediction modes.

[0054] Furthermore, in conventional HEVC, the intra prediction mode applied to the upper or left block adjacent to the current CU is registered as the MPM.

[0055] On the other hand, in this embodiment, when the intra-prediction mode candidate generation unit 12 determines that only intra-prediction modes belonging to category A, DC mode, and planar mode are selectable (i.e., when it is determined that an inverse Z scan is applied to the encoding target CU), or when the intra-prediction mode candidate generation unit 12 determines that only intra-prediction modes belonging to category C, DC mode, and planar mode are selectable (i.e., when it is determined that an N scan is applied to the encoding target CU), the intra-prediction mode encoding unit 152 may select 10 intra-prediction modes in total. In this case, it can be configured to stream output 3-bit flag information for 7 modes excluding the 3 intra-prediction modes registered in the MPM. With this configuration, it is possible to reduce the amount of information required for encoding the intra-prediction mode, thereby improving encoding efficiency.

[0056] In this embodiment, not only the blocks above and to the left of the current CU to be coded, but also the blocks adjacent to the top and right may have been decoded. Therefore, the intra prediction mode coding unit 152 determines the position of the coded CU to be referenced for registration in the MPM according to the scan order applied to the current CU to be coded.

[0057] Specifically, when the scan order of the CU to be encoded is Z scan order, the intra prediction mode encoding unit 152 registers the intra prediction mode applied to the encoded CUs located to the left and above as the MPM; when the scan order of the CU to be encoded is reverse Z scan order, the intra prediction mode applied to the encoded CUs located to the left and below as the MPM; and when the scan order of the CU to be encoded is N scan order, the intra prediction mode applied to the encoded CUs located to the right and above as the MPM.

[0058] In the above example, 3 bits were used as an example of fixed-length coding, but when enpy coding is performed using variable-length coding or context-adaptive arithmetic coding (CABAC), the number of bits output from the stream is not limited to 3 bits.

[0059] The decoding device 3 according to this embodiment also decodes each of the frame-unit images constituting a moving image into blocks divided into CUs. Here, the decoding device 3 according to this embodiment decodes blocks obtained by hierarchically dividing the frame-unit images into quadtree blocks by the encoding device 1 according to this embodiment.

[0060] As shown in FIG. 6, the decoding device 3 according to this embodiment includes an entropy decoding unit 31, an intra-prediction mode candidate generating unit 32, and an intra-prediction unit 33.

[0061] The entropy decoding unit 31 obtains the scan order of the decoding target CU by performing entropy decoding processing on the stream output from the encoding device 1. Specifically, the entropy decoding unit 31 includes a decoding processing order obtaining unit 311 and an intra prediction mode obtaining unit 312.

[0062] The decoding order acquisition unit 311 performs entropy decoding on the stream output from the encoding device 1 to acquire flag information indicating the scan order for each CU.

[0063] The intra-prediction mode candidate generation unit 32 generates intra-prediction mode candidates for the decoding target CU, based on the scan order indicated by the flag information acquired by the decoding process order acquisition unit 311.

[0064] Specifically, the intra-prediction mode candidate generation unit 32, similar to the intra-prediction mode candidate generation unit 12 constituting the encoding device 1, generates intra-prediction mode candidates applicable to each CU from among categories A, B, C, DC mode, and Planar mode shown in Figure 4 based on the scan order to be applied to each CU.

[0065] The intra-prediction mode acquisition unit 312 acquires the intra-prediction mode to be applied to each CU by performing entropy decoding processing on the stream output from the encoding device 1 based on the intra-prediction mode candidates generated by the intra-prediction mode candidate generation unit 32.

[0066] The intra prediction unit 33 performs intra prediction processing on a decoding target CU based on the scan order acquired by the decoding processing order acquisition unit 311 and the intra prediction mode acquired by the intra prediction mode acquisition unit 312. Specifically, like the intra prediction unit 14 constituting the encoding device 1, the intra prediction unit 33 performs intra prediction processing according to the intra prediction mode to be applied to each CU and the positions of decoded reference pixels adjacent to each CU.

[0067] According to the encoding device 1 and decoding device 3 of this embodiment, the encoding device 1 controls the scan order, thereby improving intra-prediction efficiency, and also reducing the amount of information of the intra-prediction mode transmitted based on the applied scan order, thereby improving encoding efficiency.

[0068] (Modification of the first embodiment) Below, with reference to FIG. 7, an encoding device 1 and a decoding device 3 according to a modified example of the first embodiment of the present invention will be described, focusing on the differences from the encoding device 1 and the decoding device 3 according to the above-described first embodiment.

[0069] The encoding device 1 according to this modified example divides original images in units of frames constituting a moving image into CUs by hierarchical binary tree division and encodes the divided images.

[0070] In the first embodiment described above, the determination of the scan order for a CU divided by quadtree division, the generation of intra prediction mode candidates, and the entropy encoding process for the intra prediction mode and scan order are described. In this modified example, however, the case where binary tree division is applied to a CU is described.

[0071] When binary tree partitioning is applied to a CU, it is possible to further select from two partitioning methods: partitioning into two vertically long CUs, and partitioning into two horizontally long CUs.

[0072] Furthermore, when dividing into two vertically long CUs, two different scan orders can be selected: a left-right scan from CU#1 (the CU on the left) to CU#2 (the CU on the right) as shown in Figure 7(a), and an inverse left-right scan from CU#2 (the CU on the right) to CU#1 (the CU on the left) as shown in Figure 7(b).

[0073] On the other hand, when dividing into two horizontally long CUs, two different scan orders can be selected: a top-down scan from CU#1 (upper CU) to CU#2 (lower CU) as shown in Figure 7(c), and a top-down reversed scan from CU#2 (lower CU) to CU#1 (upper CU) as shown in Figure 7(d).

[0074] When a CU is divided into two vertically long CUs, the encoding process order determination unit 11 determines whether to apply an encoding process of left-right scanning or left-right reverse scanning.

[0075] On the other hand, when a CU is divided into two landscape-oriented CUs, the coding process order determination unit 11 determines which scan order to apply, either up-down scanning or up-down scanning.

[0076] The intra-prediction mode candidate generation unit 12 generates intra-prediction mode candidates applicable to each CU, based on the scan order determined by the coding process order determination unit 11.

[0077] The intra prediction process according to this modified example will be described below.

[0078] When the scan order determined by the encoding processing order determination unit 11 is left-right scan and top-bottom scan, the intra-prediction mode candidate generation unit 12 determines the three categories A, B, and C, DC mode, and Planar mode as selectable intra-prediction mode candidates for each CU (i.e., similar to the intra-prediction mode candidates in HEVC).

[0079] On the other hand, when the scan order determined by the encoding processing order determination unit 11 is left-right reverse scan, the intra-prediction mode candidate generation unit 12 sets the intra-prediction modes, DC mode, and Planar mode belonging to category C as selectable intra-prediction mode candidates for each CU.

[0080] Furthermore, when the scan order determined by the encoding processing order determination unit 11 is an upside-down scan order, the intra-prediction mode candidate generation unit 12 determines the intra-prediction modes, DC mode, and planar mode belonging to category A as selectable intra-prediction mode candidates for each CU.

[0081] In the above-mentioned first embodiment, the case of hierarchical quad-tree division has been described, and in this modified example, the case of hierarchical binary tree division has been described, but the present embodiment can be applied to a coding method capable of hierarchical division in which either of these can be selected, by switching depending on whether each CU selects quad-tree division or binary tree division. In other words, the coding target CU may be configured to be obtained by hierarchically applying at least one of quad-tree division and binary tree division to the original image.

[0082] Second Embodiment Below, with reference to Figures 8 to 10 and Table 1, the encoding device 1 and decoding device 3 according to the second embodiment of the present invention will be described, focusing on the differences from the encoding device 1 and decoding device 3 according to the first embodiment described above.

[0083] The encoding device 1 according to this embodiment divides original images, each of which is a frame that constitutes a moving image, into CUs by hierarchical quadtree division and encodes the divided images.

[0084] In the above-described first embodiment, the coding process order determination unit 11 determines which of three types of scan orders, Z scan, inverse Z scan, and N scan, to apply to a quadtree-divided CU, and the coding process order coding unit 151 entropy codes the determined scan order.

[0085] On the other hand, the coding process order determination unit 11 according to this embodiment generates process order candidates, which are scan orders selectable for child CUs (child blocks) obtained by quadtree dividing a CU to be coded, based on information on whether each block adjacent to the CU to be coded above, below, left, and right has already been coded, and determines which scan order to apply from the generated process order candidates. Furthermore, the coding process order encoding unit 151 according to this embodiment entropy codes the scan order determined by the coding process order determination unit 11.

[0086] Fig. 8 shows an example of a functional block configuration of the coding processing order determination unit 11 according to this embodiment. As shown in Fig. 8, the coding processing order determination unit 11 according to this embodiment includes an adjacent block detection unit 11a, a processing order candidate generation unit 11b, and a processing order determination unit 11c.

[0087] The adjacent block detection unit 11a detects whether the blocks located above, below, left, and right of the current CU have already been coded, and outputs an available_block flag to the processing order candidate generation unit 11b based on the detection result. Fig. 9 shows an example of the operation of the adjacent block detection unit 11a according to this embodiment. In Fig. 9, positions in the current CU that correspond to coded adjacent blocks are indicated by thick lines.

[0088] As shown in FIG. 9, the adjacent block detection unit 11a outputs the available_block flag as 0 when only the left side and the upper side of the encoding target CU have been encoded (similar to conventional HEVC). The adjacent block detection unit 11a outputs the available_block flag as 1 when only the left side of the CU has been encoded. The adjacent block detection unit 11a outputs the available_block flag as 2 when only the upper side of the CU has been encoded. The adjacent block detection unit 11a outputs the available_block flag as 3 when only the upper side, left side, and lower side of the CU have been encoded. The adjacent block detection unit 11a outputs the available_block flag as 4 when only the upper side, left side, and right side of the CU have been encoded. The adjacent block detection unit 11a outputs the available_block flag as 5 when only the left side and lower side of the CU have been encoded. The adjacent block detection unit 11a outputs the available_block flag as 6 if only the upper and right sides of the CU have been coded.

[0089] The processing order candidate generator 11b generates processing order candidates, which are scan order candidates that can be selected when the current CU to be coded is further divided into quadtrees, based on the available_block flag output by the adjacent block detector 11a.

[0090] Specifically, as shown in Table 1, when the available_block flag output by the adjacent block detection unit 11a is 0, the processing order candidate generation unit 11b outputs Z scan, inverse Z scan, and N scan as processing order candidates to the processing order determination unit 11c. When the available_block flag is 1, the processing order candidate generation unit 11b outputs Z scan and inverse Z scan as processing order candidates to the processing order determination unit 11c. When the available_block flag is 2, the processing order candidate generation unit 11b outputs Z scan and N scan as processing order candidates to the processing order determination unit 11c. When the available_block flag is 3, the processing order candidate generation unit 11b outputs Z scan and inverse Z scan as processing order candidates to the processing order determination unit 11c. When the available_block flag is 4, the processing order candidate generation unit 11b outputs Z scan and N scan as processing order candidates to the processing order determination unit 11c. If the available_block flag is 5, the processing order candidate generation unit 11b outputs Z scan and inverse Z scan as processing order candidates to the processing order determination unit 11c. If the available_block flag is 6, the processing order candidate generation unit 11b outputs Z scan and N scan as processing order candidates to the processing order determination unit 11c.

[0091] [Table 1]

[0092] However, the processing order that can be selected by the available_block flag is not limited to the example shown in Table 1, so long as it is predefined by the encoding device 1 and the decoding device 3.

[0093] The processing order determination unit 11c determines which scan order to apply from among the processing order candidates generated by the processing order candidate generation unit 11b.

[0094] Furthermore, the coding process order encoding unit 151 according to this embodiment entropy codes the scan order determined by the coding process order determination unit 11 (processing order determination unit 11c) based on the processing order candidates output by the processing order candidate generation unit 11b.

[0095] Specifically, when there are three types of processing order candidates output by the processing order candidate generation unit 11b, the coding processing order coding unit 151 first entropy codes a flag Zscan_flag indicating whether or not the processing order is the Z scan order. When the scan order of the divided coding target CU (child CU) is the Z scan order, the coding processing order coding unit 151 entropy codes Zscan_flag as 1 and ends the process. On the other hand, when the scan order of the divided coding target CU is not the Z scan order, the coding processing order coding unit 151 entropy codes Zscan_flag as 0 and further entropy codes a scan_mode_flag flag indicating which scan order, reverse Z scan or N scan, is to be applied.

[0096] On the other hand, when there are two types of processing order candidates output by the processing order candidate generation unit 11b, the coding processing order coding unit 151 entropy codes only Zscan_flag indicating whether or not it is the Z scan order. When the scan order of the divided coding target CU is the Z scan order, the coding processing order coding unit 151 entropy codes Zcan_flag as 1 and ends the process. On the other hand, the coding processing order coding unit 151 can uniquely determine the scan order to be applied even when the scan order of the divided coding target CU is not the Z scan order, so the coding processing order coding unit 151 ends the process without entropy coding scan_mode_flag.

[0097] 10 shows an example of a functional block configuration of a decoding order acquisition unit 311 in the decoding device 3 according to this embodiment. The decoding order acquisition unit 311 performs entropy decoding processing on the stream output from the encoding device 1 to acquire flag information indicating the scan order for each CU.

[0098] Specifically, as shown in FIG. 10, the decoding order acquisition unit 311 includes an adjacent block detection unit 311a, a processing order candidate generation unit 311b, and a processing order determination unit 311c.

[0099] The adjacent block detection unit 311a detects whether the blocks located above, below, left, and right of the current CU have already been decoded, and outputs an available_block flag to the processing order candidate generation unit 311b based on the detection result (see FIG. 9).

[0100] The processing order candidate generation unit 311b generates processing order candidates, which are scan order candidates that can be selected for the divided decoding target CU (child CU), based on the available_block flag output by the adjacent block detection unit 311a (see Table 1).

[0101] The processing order determination unit 311c determines, based on the processing order candidates generated by the processing order candidate generation unit 311b and the flag information transmitted from the encoding device 1, which scan order to apply from among the processing order candidates.

[0102] Specifically, when the processing order candidate generation unit 311b outputs three types of processing order candidates, the processing order determination unit 311c first decodes a flag Zscan_flag indicating whether the Z scan order is selected. When Zscan_flag is 1, the processing order determination unit 311c determines that the scan order of the divided decoding target CU (child CU) is the Z scan order. On the other hand, when Zscan_flag is 0, the processing order determination unit 311c further decodes a scan_mode_flag flag indicating whether the inverse Z scan or N scan is to be applied.

[0103] On the other hand, when there are two types of processing order candidates output by the processing order candidate generation unit 311b, the processing order determination unit 311c decodes only Zscan_flag, which indicates whether the Z scan order is selected. When Zcan_flag is 1, the processing order determination unit 311c determines that the scan order of the divided decoding target CU (child CU) is the Z scan order. On the other hand, when Zscan_flag is 0, the processing order determination unit 311c can uniquely determine the scan order to be applied, and therefore ends the process without decoding scan_mode_flag.

[0104] According to the encoding device 1 and the decoding device 3 of this embodiment, the efficiency of intra prediction can be improved by controlling the scan order based on information on whether the surrounding blocks have been encoded by the encoding device 1. In addition, the amount of information on the scan order and the intra prediction mode to be transmitted can be reduced. Therefore, the encoding efficiency can be improved.

[0105] (Modification of the second embodiment) Below, with reference to Table 2, the encoding device 1 and the decoding device 3 according to a modified example of the second embodiment of the present invention will be described, focusing on the differences from the encoding device 1 and the decoding device 3 according to the first embodiment described above.

[0106] The encoding device 1 according to this modified example divides original images in units of frames constituting a moving image into CUs by hierarchical binary tree division and encodes the divided images.

[0107] In the above-mentioned second embodiment, the determination of the scan order for a CU divided by quadtree division, the generation of intra prediction mode candidates, and the entropy encoding process for the intra prediction mode and scan order are described. In this modified example, however, the case where binary tree division is applied to a CU is described.

[0108] When binary tree partitioning is applied to a CU, it is possible to further select from two partitioning methods: partitioning into two vertically long CUs, and partitioning into two horizontally long CUs.

[0109] Furthermore, when dividing into two vertically long CUs, two different scan orders can be selected: a left-right scan from CU#1 (the CU on the left) to CU#2 (the CU on the right) as shown in Figure 7(a), and an inverse left-right scan from CU#2 (the CU on the right) to CU#1 (the CU on the left) as shown in Figure 7(b).

[0110] On the other hand, when dividing into two horizontally long CUs, two different scan orders can be selected: a top-down scan from CU#1 (upper CU) to CU#2 (lower CU) as shown in Figure 7(c), and a top-down reversed scan from CU#2 (lower CU) to CU#1 (upper CU) as shown in Figure 7(d).

[0111] In this modified example, the adjacent block detection unit 11a shown in Figure 8 detects whether the blocks adjacent to the CU to be coded above, below, left, and right have already been coded, and outputs an available_block flag to the processing order candidate generation unit 11b based on the detection result (see Figure 9).

[0112] The processing order candidate generation unit 11b generates processing order candidates as shown in Table 2 based on the available_block flag output by the adjacent block detection unit 11a, and outputs the generated processing order candidates to the processing order determination unit 11c. However, the processing order selectable by the available_block flag is not limited to the example shown in Table 2 as long as it is predefined by the encoding device 1 and the decoding device 3.

[0113] [Table 2]

[0114] Specifically, when a CU to be coded is binary-tree partitioned into two vertically long CUs, the processing order candidate generation unit 11b generates processing order candidates as follows: When the available_block flag is 0, 2, 4, or 6, the processing order candidate generation unit 11b generates left-right scan and reverse left-right scan as processing order candidates, and when the available_block flag is 1, 3, or 5, the processing order candidate generation unit 11b generates only left-right scan as processing order candidate.

[0115] On the other hand, when a CU to be coded is binary-tree divided into two horizontally long CUs, the processing order candidate generation unit 11b generates processing order candidates as follows: When the available_block flag is 0, 2, 4, or 6, the processing order candidate generation unit 11b generates up-down scan and up-down reverse scan as processing order candidates, and when the available_block flag is 1, 3, or 5, the processing order candidate generation unit 11b generates only up-down scan as processing order candidate.

[0116] The processing order determination unit 11c determines which scan order to apply from the processing order candidates generated by the processing order candidate generation unit 11b, and outputs the determined scan order to the coding processing order coding unit 151.

[0117] The coding process order coding unit 151 entropy codes the scan order determined by the coding process order determination unit 11 (processing order determination unit 11c) based on the processing order candidates output by the processing order candidate generation unit 11b.

[0118] Specifically, when there are two types of processing order candidates output by the processing order candidate generation unit 11b, the coding processing order coding unit 151 entropy codes the flag scan_flag indicating whether or not it is forward scan. When the coding processing order of the divided coding target CU is forward scan, the coding processing order coding unit 151 sets scan_flag to 1, performs entropy coding, and ends the process. On the other hand, when the coding processing order of the divided coding target CU is not forward scan (reverse scan), the coding processing order coding unit 151 sets scan_flag to 0, performs entropy coding, and ends the process.

[0119] On the other hand, if the processing order candidate generation unit 11b outputs only one type of processing order candidate, there is no need to transmit a flag indicating the scan order to be applied, so the coding processing order encoding unit 151 terminates the processing without entropy encoding the scan_flag.

[0120] In the decoding device 3 according to this modified example, the adjacent block detection unit 311a shown in FIG. 10 detects whether the blocks located above, below, to the left, and to the right of the CU to be decoded have already been decoded, and outputs an available_block flag to the processing order candidate generation unit 311b based on the detection result (see FIG. 9).

[0121] The processing order candidate generation unit 311b generates processing order candidates, which are scan order candidates that can be selected for the divided decoding target CU (child CU), based on the available_block flag output by the adjacent block detection unit 311a (see Table 2).

[0122] The processing order determination unit 311c determines, based on the processing order candidates generated by the processing order candidate generation unit 311b and the flag information transmitted from the encoding device 1, which scan order to apply from among the processing order candidates.

[0123] Specifically, when the processing order candidate generation unit 311b outputs two types of processing order candidates, the processing order determination unit 311c decodes a flag scan_flag indicating whether or not forward scanning is performed. When scan_flag is 1, the processing order determination unit 311c determines that the scan order of the divided CU to be decoded (child CU) is forward scanning, and when scan_flag is 0, the processing order determination unit 311c determines that the scan order of the divided CU to be decoded (child CU) is reverse scanning.

[0124] On the other hand, if the processing order candidate generation unit 311b outputs only one type of processing order candidate, the processing order determination unit 311c ends the process without decoding scan_flag.

[0125] According to the encoding device 1 and decoding device 3 of this modified example, the encoding device 1 controls the scan order based on information on whether or not surrounding blocks have already been encoded, thereby improving intra-prediction efficiency, and also reducing the amount of information on the scan order and intra-prediction mode to be transmitted, thereby improving encoding efficiency.

[0126] (Third embodiment) Below, with reference to Figures 11 to 13 and Table 3, the encoding device 1 and decoding device 3 according to the third embodiment of the present invention will be described, focusing on the differences from the encoding device 1 and decoding device 3 according to the third embodiment described above.

[0127] The encoding device 1 according to this embodiment divides original images, each of which is a frame that constitutes a moving image, into CUs by hierarchical quadtree division and encodes the divided images.

[0128] In the above-mentioned second embodiment, the processing order candidate generation unit 11b generates processing order candidates indicating which of three scan orders, Z scan, inverse Z scan, and N scan, can be selected for a quadtree-divided CU, depending on whether the adjacent blocks above, below, left, and right have already been coded. The processing order determination unit 11c determines which scan order to apply from the generated processing order candidates, and the intra-prediction mode candidate generation unit 12 determines intra-prediction mode candidates applicable to each divided CU (child CU) based on the determined scan order.

[0129] On the other hand, the encoding device 1 of this embodiment determines candidate intra prediction modes applicable to each divided CU based on information on whether each adjacent block above, below, left and right has already been encoded for each quadtree divided CU, and on the scan order to be applied.

[0130] Specifically, in the encoding device 1 according to this embodiment, the intra-prediction mode candidate generation unit 12 includes, as shown in FIG. 11, an adjacent block detection unit 12a and a child CU intra-mode candidate generation unit 12b.

[0131] The adjacent block detection unit 12a performs the same process as the adjacent block detection unit 11a of the second embodiment described above. However, while the adjacent block detection unit 11a of the second embodiment outputs an available_block flag indicating whether blocks located above, below, to the left, and to the right of the encoding target CU have been encoded, the adjacent block detection unit 12a of the present embodiment outputs an available_block flag indicating whether adjacent blocks have been encoded for each CU (child CU) obtained by further dividing the CU into quadtrees.

[0132] When the CU to be encoded is further divided into quadtrees, the child CU intra mode candidate generation unit 12b generates intra prediction mode candidates that can be selected by each divided child CU based on the scan order to be applied and the available_block flag input from the adjacent block detection unit 12a.

[0133] Here, the operation of the child CU intra mode candidate generation unit 12b will be described with reference to FIG.

[0134] In HEVC, as shown in Fig. 4, a total of 33 modes from mode 2 to mode 34 are assigned as directional prediction for intra prediction from the lower-left direction to the upper-right direction. In the first embodiment, the total of 33 modes are classified into three categories, A, B, and C, and according to the scan order determined by the coding process order determination unit 11, intra prediction modes corresponding to at least one or more categories of A, B, and C, as well as DC mode and Planar mode are generated as applicable intra prediction mode candidates.

[0135] On the other hand, the child CU intra mode candidate generation unit 12b in this embodiment generates, as applicable intra prediction mode candidates, intra prediction modes corresponding to at least one or more of the A category, B category, and C category, the FlipLR category which assigns a total of 33 modes clockwise from the upper left to the lower right as shown in FIG. 12(a), and the FlipUD category which assigns a total of 33 modes counterclockwise from the upper left to the lower right as shown in FIG. 12(b), as well as the DC mode and the Planar mode.

[0136] In the FlipLR category and the FlipUD category, the prediction direction and the number of modes applicable in HEVC are the same, but the prediction direction is different. The intra prediction mode indicating the prediction direction may be assigned in any way as long as it is predefined by the encoding device 1 and the decoding device 3.

[0137] Specifically, when the CU to be coded is further divided into quadtrees, the child CU intra mode candidate generation unit 12b generates intra prediction mode candidates that can be selected by each divided child CU, based on the available_block flag of the child CU input from the adjacent block detection unit 12a and the scan order of the CU determined by the coding processing order determination unit 11, and generates a group of intra prediction modes corresponding to a predefined category, as well as a DC mode and a Planar mode as intra prediction mode candidates.

[0138] As shown in Table 3, when the CU is divided into quadtrees, the child CU intra mode candidate generation unit 12b generates intra prediction mode candidates applicable to each child CU depending on the scan order of the divided child CUs and whether the blocks adjacent to each of the divided child CUs, above, below, left, and right, have already been decoded.

[0139] [Table 3]

[0140] For example, in Table 3, when the category description of applicable intra prediction mode candidates is "B, C," the intra prediction mode candidates are configured by the intra prediction modes, DC mode, and planar mode included in categories B and C. Also, when "FlipLR" is described, the intra prediction mode candidates are configured by the intra prediction modes, DC mode, and planar mode of the prediction directions assigned to a total of 33 modes clockwise from the upper left direction to the lower right direction.

[0141] Note that there is no CU in a state as described by "-" in Table 3. For example, when the CU is quadtree divided and the divided child CUs are encoded in reverse Z scan order, the two child CUs located on the lower side among the divided child CUs have no possibility of having their available_block flags set to 0, since the blocks adjacent to the upper side of the two child CUs located on the lower side are always already encoded. Also, the two child CUs located on the upper side have no possibility of having their available_block flags set to 0, since the blocks adjacent to the lower side of the two child CUs are always already encoded.

[0142] Moreover, in the decoding device 3 according to this embodiment, the intra-prediction mode candidate generation unit 32 is configured similarly to the intra-prediction mode candidate generation unit 12 of the encoding device 1. Specifically, as shown in Fig. 13, the intra-prediction mode candidate generation unit 32 includes a neighboring block detection unit 32a and a child CU intra-mode candidate generation unit 32b.

[0143] The adjacent block detection unit 32a outputs an available_block flag indicating whether or not an adjacent block has been decoded for each CU (child CU) obtained by further dividing the decoding target CU into quadtree parts.

[0144] When the CU to be decoded is further divided into quadtrees, the child CU intra mode candidate generation unit 32b generates intra prediction mode candidates that can be selected by each divided child CU based on the scan order to be applied and the available_block flag input from the adjacent block detection unit 32a (see Table 3).

[0145] According to the encoding device 1 and decoding device 3 of this embodiment, the encoding device 1 controls the scan order and applicable intra prediction mode candidates based on information on whether or not surrounding blocks have already been encoded, thereby improving intra prediction efficiency, and also reducing the amount of information on the scan order and intra prediction mode to be transmitted, thereby improving encoding efficiency.

[0146] (Modification of the third embodiment) Below, with reference to Table 4, an encoding device 1 and a decoding device 3 according to a modified example of the third embodiment of the present invention will be described, focusing on the differences from the encoding device 1 and the decoding device 3 according to the above-mentioned third embodiment.

[0147] The encoding device 1 according to this modified example divides original images in units of frames constituting a moving image into CUs by hierarchical binary tree division and encodes the divided images.

[0148] In the above-mentioned third embodiment, the determination of the scan order for a CU divided by quadtree division, the generation of intra prediction mode candidates, and the entropy encoding process for the intra prediction mode and scan order are described. In this modified example, however, the case where binary tree division is applied to a CU is described.

[0149] When binary tree partitioning is applied to a CU, it is possible to further select from two partitioning methods: partitioning into two vertically long CUs, and partitioning into two horizontally long CUs.

[0150] Furthermore, when dividing into two vertically long CUs, two different scan orders can be selected: a left-right scan from CU#1 (the CU on the left) to CU#2 (the CU on the right) as shown in Figure 7(a), and an inverse left-right scan from CU#2 (the CU on the right) to CU#1 (the CU on the left) as shown in Figure 7(b).

[0151] On the other hand, when dividing into two horizontally long CUs, two different scan orders can be selected: a top-down scan from CU#1 (upper CU) to CU#2 (lower CU) as shown in Figure 7(c), and a top-down reversed scan from CU#2 (lower CU) to CU#1 (upper CU) as shown in Figure 7(d).

[0152] In this modification, the adjacent block detection unit 12a shown in FIG. 10 outputs an available_block flag indicating whether or not an adjacent block has been coded, for each CU (child CU) obtained by further dividing the coding target CU into binary tree parts.

[0153] When the CU to be encoded is further divided into binary trees, the child CU intra mode candidate generation unit 12b generates intra prediction mode candidates that can be selected by each divided child CU based on the scan order to be applied and the available_block flag input from the adjacent block detection unit 12a.

[0154] As shown in Table 4, when the CU is divided into a binary tree, the child CU intra mode candidate generation unit 12b generates intra prediction mode candidates applicable to each child CU depending on the scan order of the divided child CU and whether the blocks adjacent to each of the divided child CUs, above, below, left, and right, have already been decoded.

[0155] [Table 4]

[0156] For example, in Table 4, when the category description of applicable intra prediction mode candidates is "B, C," the intra prediction mode candidates are composed of intra prediction modes included in categories B and C, DC mode, and planar mode. Also, when "FlipLR" is described, the intra prediction mode candidates are composed of intra prediction modes of prediction directions assigned to a total of 33 modes clockwise from the upper left to the lower right, DC mode, and planar mode.

[0157] Note that there is no CU in a state as described by "-" in Table Y. For example, when a CU is divided into two horizontally long CUs using a binary tree, if the divided child CUs are encoded in a top-down reverse scan order, the available_block flag of the lower child CU among the divided child CUs is never 0 because the block adjacent to the upper side is definitely not already encoded, and the available_block flag of the upper child CU is never 0 because the block adjacent to the lower side is definitely already encoded.

[0158] In addition, in the decoding device 3 according to this modified example, the adjacent block detection unit 32a shown in FIG. 13 outputs an available_block flag indicating whether or not an adjacent block has already been decoded for each CU (child CU) obtained by further dividing the decoding target CU into binary tree parts.

[0159] When the CU to be decoded is further divided into binary tree segments, the child CU intra mode candidate generation unit 32b generates intra prediction mode candidates that can be selected by each divided child CU based on the scan order to be applied and the available_block flag input from the adjacent block detection unit 32a (see Table 4).

[0160] According to the encoding device 1 and decoding device 3 of this modified example, the encoding device 1 controls the scan order and applicable intra prediction mode candidates based on information on whether or not surrounding blocks have already been encoded, thereby improving intra prediction efficiency, and also reducing the amount of information on the scan order and intra prediction mode to be transmitted, thereby improving encoding efficiency.

[0161] (Other embodiments) As described above, the present invention has been described by the above-mentioned embodiment, but the description and drawings forming a part of the disclosure of such embodiment should not be understood as limiting the present invention. From such disclosure, various alternative embodiments, examples and operating techniques will become apparent to those skilled in the art.

[0162] Although not specifically mentioned in the above embodiment, a program may be provided that causes a computer to execute each process performed by the encoding device 1 and the decoding device 3. Such a program may be recorded in a computer-readable medium. By using a computer-readable medium, such a program can be installed in a computer. Here, the computer-readable medium on which such a program is recorded may be a non-transient recording medium. The non-transient recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM.

[0163] Alternatively, a chip may be provided that is configured by a memory that stores a program for implementing at least some of the functions of the encoding device 1 and the decoding device 3 described above, and a processor that executes the program stored in the memory.

[0164] This application claims priority from Japanese Patent No. 2018-154249 (filed on August 20, 2018), the entire contents of which are incorporated herein by reference.

Claims

1. 1. An encoding device that divides an original image in units of frames constituting a moving image into a plurality of blocks and encodes the divided original images, a coding process order determination unit that determines a coding process order for a current block to be coded; a generation unit that determines positions of reference pixels to be used for prediction based on the determined encoding process order, and generates intra prediction mode candidates for the current block based on the positions of the reference pixels to be used; an intra prediction mode determination unit that determines an intra prediction mode to be applied to the current block from among the generated intra prediction mode candidates; and an intra prediction unit that performs intra prediction processing on the current block based on the determined intra prediction mode.

13. An encoding device comprising:

2. A decoding device that decodes images of frames constituting a moving image for each divided block, comprising: a decoding order acquisition unit that acquires a decoding order of a block to be decoded by performing an entropy decoding process on a stream output from the encoding device; a generation unit that determines positions of reference pixels to be used for prediction based on the acquired decoding process order, and generates intra prediction mode candidates for the current block based on the positions of the reference pixels to be used; and an intra-prediction mode acquisition unit that acquires an intra-prediction mode to be applied to the current block by performing an entropy decoding process on the stream based on the generated intra-prediction mode candidates. A decoding device comprising:

3. A program for causing a computer to function as the encoding device according to claim 1.

4. A program for causing a computer to function as the decoding device according to claim 2.

Citation Information

Patent Citations

  • Encoder, decoder and program

    JP2018121318A

  • Encoding device, decoding device, and program

    JP2019054517A

  • Encoding sequence encoding method and device thereof, and decoding method and device thereof

    WO2017090967A1