Encoding device, decoding device, and program
Patent Information
- Application Number
- JP2025023751
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-02-17
- Publication Date
- 2026-10-13
- Estimated Expiration
- 2036-05-24
AI Technical Summary
【0028】 本発明によれば、イントラ予測において、エントロピーを効率的に低減させ、符号化性能を向上させることができる符号化装置、復号装置及びプログラムを提供することができる。
Smart Images

Figure 0007933907000001 
Figure 0007933907000002 
Figure 0007933907000003
Abstract
Description
Technical Field
[0001] The present invention relates to an encoding device, a decoding device, and a program.
Background Art
[0002] In moving image (video) encoding schemes represented by H.265 / HEVC (High Efficiency Video Coding), prediction is performed while switching between two types of prediction, namely inter prediction that uses temporal correlation between frames and intra prediction that uses spatial correlation within a frame, to generate a residual signal, and then orthogonal transform processing, loop filter processing, and entropy encoding processing are performed, and the resulting stream is output.
[0003] In intra prediction in HEVC, a total of 35 types of intra prediction modes including Planar prediction, DC prediction, and directional prediction are prepared, and intra prediction is performed using adjacent decoded reference pixels according to the intra prediction mode determined by the encoder. Hereinafter, unless otherwise specified, the term "reference pixel" refers to a decoded reference pixel.
[0004] Here, in intra prediction in HEVC, for a CU that has no adjacent reference pixels, such as the coding target block (hereinafter referred to as "CU: Coding Unit") located at the top leftmost position in the frame, the reference pixels used when generating a prediction image are created by a process of filling a specified value ("512" for a 10-bit moving image).
[0005] Further, in conventional HEVC, since the encoding process is performed in raster scan order from the top left, the reference pixels may not be decoded. In such a case, a prediction image is generated using a value obtained by zero-order extrapolation of the nearest decoded reference pixel.
[0006] In particular, with conventional HEVC intra-prediction, the encoding process based on the raster scan order often results in reference pixels located on the lower left or upper right side of the CU not being decoded. In such cases, performing direction prediction from the direction where the undecoded reference pixels exist reduces prediction accuracy and lowers encoding efficiency, which is a problem.
[0007] To address these issues, a technique has been developed in intra prediction that allows for greater flexibility in the coding order of multiple transformation blocks (hereinafter referred to as "TU: Transform Unit") within a CU, such as U-type or X-type coding, in addition to the raster scan order (e.g., Z-type) (see Non-Patent Literature 1).
[0008] Furthermore, the intra-prediction used in HEVC is a prediction method that utilizes spatially adjacent reference pixels to the upper or left. Prediction pixels closer to the reference pixels tend to have higher accuracy, while prediction pixels farther from the reference pixels tend to have lower accuracy (see Figure 10).
[0009] In the diagrams of this specification, the arrow indicating the direction of the intra-prediction mode (prediction direction) shall point from the pixel targeted for intra-prediction to the reference pixel, as described in the HEVC standard (the same applies hereinafter).
[0010] Conventional HEVC utilizes this property by applying orthogonal transformations such as discrete sine transform (DST) or discrete cosine transform (DCT) horizontally and vertically from the left and above directions where the reference pixel is located, thereby reducing the entropy of the residual signal.
[0011] In particular, as shown in Figure 11, the shape of the DST impulse response is asymmetrical, with one endpoint closed and the other expanding. Therefore, as shown in Figure 12, by applying DST in accordance with the signal intensity of the residual signal, entropy can be effectively reduced.
[0012] Incidentally, Non-Patent Document 2 describes a technique for increasing the number of selectable bases for orthogonal transformations, in addition to the orthogonal transformations (DCT-II, DST-VII) used in conventional HEVC.
[0013] According to the technique described in Non-Patent Document 2, coding efficiency can be improved by selecting the optimal orthogonal transformation process that concentrates the energy of the residual signal (and reduces entropy).
[0014] On the other hand, increasing the number of base types for orthogonal transformation processing leads to a problem in that the amount of information required for transmitting and storing flag information indicating which orthogonal transformation processing was applied increases.
[0015] To prevent such problems, the technology described in Non-Patent Document 2 is configured to select an orthogonal transformation process for the residual signal obtained by intra-prediction, depending on the intra-prediction mode.
[0016] The reason for this is that the energy distribution of the residual signal has a statistical bias depending on the direction in which intra-prediction is performed. By limiting the options to orthogonal transformation processing, which has a statistically high entropy reduction effect, it becomes possible to reduce the amount of information required for transmitting and storing flag information that indicates the basis of the applied orthogonal transformation processing. [Prior art documents] [Non-patent literature]
[0017] [Non-Patent Document 1] Mochizuki et al., "Applicable Intra-Prediction Method Based on Mean Coordinates," Information Processing Society of Japan Research Report, vol. 2012-AVM-77, No. 12. [Non-Patent Document 2] X. Zhao, J. Chen, M. Karczewicz, "Mode-dependent non-separable secondary transform", ITU-T SG16 / Q6 Doc. COM16-C1044, October 2015 [Overview of the project] [Problems that the invention aims to solve]
[0018] However, the technology described in Non-Patent Document 2 is configured to determine the selectable basis group (orthogonal transformation group) of orthogonal transformation processes according to the intra-prediction mode, without considering the position of the reference pixel used in the intra-prediction mode.
[0019] Here, the characteristics of the residual signal obtained by intra-prediction using the right and lower reference pixels differ from those of the residual signal obtained by intra-prediction using the upper and left reference pixels.
[0020] Therefore, in the technology described in Non-Patent Document 2, when intra-prediction is performed using the right or lower reference pixels, switching the group of orthogonal transformation processes that can only be selected in intra-prediction mode results in selecting an orthogonal transformation process from options that do not statistically have a high entropy reduction effect, which may actually increase entropy and degrade coding performance.
[0021] 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 efficiently reduce entropy and improve encoding performance in intra prediction. [Means for solving the problem]
[0022] The first feature of the present invention is an encoding device that divides a frame-by-frame original image constituting a moving image into blocks and encodes them, comprising: an intra-prediction unit that generates a predicted image corresponding to a target block to be encoded using an intra-prediction mode that indicates the type of intra-prediction processing; a residual signal generation unit that generates a residual signal from the difference between the predicted image generated by the intra-prediction unit and the target block; and a conversion unit that selects a conversion process to be applied from a predetermined group of conversion processes according to the position of a reference pixel used to generate the predicted image and the intra-prediction mode, wherein the predetermined group of conversion processes includes DCT and DST. A second feature of the present invention is a decoding device that decodes a moving image in block units obtained by dividing a frame-by-frame original image, comprising: an entropy decoding unit that decodes an intra-prediction mode indicating the type of intra-prediction processing; an intra-prediction unit that generates a predicted image corresponding to the target block to be decoded using the intra-prediction mode; an inverse quantization unit that applies inverse quantization processing to the quantized conversion coefficients; and an inverse transformation unit that selects an inverse transformation processing to be applied from a predetermined group of inverse transformation processing processes according to the position of the reference pixel used to generate the predicted image and the intra-prediction mode, wherein the predetermined group of inverse transformation processing processes includes DCT and DST.The encoding device according to this embodiment is an encoding device configured to encode a frame-by-frame original image constituting a moving image by dividing it into encoding target blocks, and comprises: an intra-prediction unit configured to generate a predicted image using an intra-prediction mode; a residual signal generation unit configured to generate a residual signal from the difference between the predicted image generated by the intra-prediction unit and the original image; an inversion unit configured to invert the residual signal generated by the residual signal generation unit in at least one of the horizontal and vertical directions when the position of the reference pixel used to generate the predicted image includes at least one of the right and lower sides; and an orthogonal transformation unit configured to select an orthogonal transformation process to be applied from a predetermined group of orthogonal transformation processes according to the intra-prediction mode and the position of the reference pixel used to generate the predicted image, and to apply the selected orthogonal transformation process to the residual signal inverted by the inversion unit.
[0023] The decoding device according to the embodiment is a decoding device configured to decode a frame-by-frame original image constituting a moving image by dividing it into encoding target blocks, and comprises: an intra-prediction unit configured to generate a predicted image using an intra-prediction mode; an inverse quantization unit configured to perform inverse quantization processing on quantized conversion coefficients; an inverse orthogonal transformation unit configured to select an inverse orthogonal transformation processing to be applied from a predetermined group of inverse orthogonal transformation processing processes according to the intra-prediction mode and the position of the reference pixel used to generate the predicted image, and to apply the selected inverse orthogonal transformation processing to the signal output from the inverse quantization unit; and an inversion unit configured to invert the signal output from the inverse orthogonal transformation unit in at least one of the horizontal and vertical directions when at least one of the right and lower sides is included in the position of the reference pixel.
[0024] An encoding apparatus according to an embodiment is configured to divide an original image in frame units constituting a moving image into encoding target blocks and perform encoding, the encoding apparatus comprising: an intra prediction unit configured to generate a prediction image using an intra prediction mode; a residual signal generation unit configured to generate a residual signal from a difference between the prediction image generated by the intra prediction unit and the original image; and an orthogonal transform unit configured to select an orthogonal transform process to be applied from a predefined orthogonal transform process group according to the intra prediction mode and a position of a reference pixel used for generating the prediction image, wherein the orthogonal transform unit is configured to, when at least one of a right side and a lower side is included in the position of the reference pixel, invert at least one of a basis in a horizontal direction and a basis in a vertical direction for the residual signal generated by the residual signal generation unit, and then perform the selected orthogonal transform process. The gist of the present disclosure lies in the above configuration.
[0025] A decoding apparatus according to an embodiment is configured to divide an original image in frame units constituting a moving image into encoding target blocks and perform decoding, the decoding apparatus comprising: an intra prediction unit configured to generate a prediction image using an intra prediction mode; an inverse quantization unit configured to perform inverse quantization processing on quantized transform coefficients; and an inverse orthogonal transform unit configured to select an inverse orthogonal transform process to be applied from a predefined inverse orthogonal transform process group according to the intra prediction mode and a position of a reference pixel used for generating the prediction image, wherein the inverse orthogonal transform unit is configured to, when at least one of a right side and a lower side is included in the position of the reference pixel, invert at least one of a basis in a horizontal direction and a basis in a vertical direction for a signal output from the inverse quantization unit, and then perform the selected inverse orthogonal transform process. The gist of the present disclosure lies in the above configuration.
[0026] A program according to an embodiment is a program for causing a computer to function as the encoding apparatus described in the above first and third features. The gist of the present disclosure lies in the program.
[0027] The program according to this embodiment is, in essence, a program that causes a computer to function as a decoding device as described in the second and fourth features above. [Effects of the Invention]
[0028] According to the present invention, it is possible to provide an encoding device, a decoding device, and a program that can efficiently reduce entropy and improve encoding performance in intra prediction. [Brief explanation of the drawing]
[0029] [Figure 1] Figure 1 shows an example of the functional block of the encoding device 1 according to the first embodiment. [Figure 2] Figure 2 shows an example of the functional block of the orthogonal transform / quantization unit 14c of the encoding device 1 according to the first embodiment. [Figure 3] Figure 3 shows an example of the direction of the intra-prediction mode used in the first embodiment. [Figure 4] Figure 4 shows an example of a method for generating a predictive image in the first embodiment. [Figure 5] Figure 5 shows an example of a method for generating a predictive image in the first embodiment. [Figure 6] Figure 6 is a flowchart showing an example of the operation of the encoding device 1 according to the first embodiment. [Figure 7] Figure 7 shows an example of the functional block of the decoding device 3 according to the first embodiment. [Figure 8] Figure 8 shows an example of the functional block of the inverse quantization / inverse transformation unit 33b of the decoding device 3 according to the first embodiment. [Figure 9] Figure 9 is a flowchart showing an example of the operation of the decoding device 3 according to the first embodiment. [Figure 10] Figure 10 is a diagram illustrating the prior art. [Figure 11] Figure 11 is a diagram illustrating the prior art. [Figure 12] Figure 12 is a diagram illustrating the prior art. [Modes for carrying out the invention]
[0030] (First embodiment) The encoding device 1 and decoding device 3 according to the first embodiment of the present invention will be described below with reference to Figures 1 to 9.
[0031] Here, the encoding device 1 and decoding device 3 according to this embodiment are configured to support intra-prediction in video encoding schemes such as HEVC. Furthermore, the encoding device 1 and decoding device 3 according to this embodiment are configured to support any video encoding scheme that performs intra-prediction.
[0032] The encoding device 1 according to this embodiment is configured to encode the original image, which is a frame-by-frame representation of a moving image, by dividing it into CUs. The encoding device 1 according to this embodiment may also be configured to divide the CU into a plurality of TUs. In the following description of this embodiment, the case in which the CU is divided into a plurality of TUs will be used as an example, but the present invention is also applicable to cases in which the CU is not divided into a plurality of TUs, and the position of the reference pixel of the CU includes the lower or right side.
[0033] In this embodiment, for CUs to be encoded, such as the top-leftmost CU in the frame, where there are no adjacent decoded reference pixels, a process is performed to fill them with a specified value (512 for 10-bit video) to create reference pixels used when generating the predicted image. Therefore, all pixels adjacent to the left of the CU to be encoded can be used as reference pixels.
[0034] As shown in Figure 1, the encoding device 1 according to this embodiment comprises an intra-prediction mode determination unit 11, a TU division determination unit 12, an encoding order control unit 13, a sequential local decoding image generation unit 14, a memory 15, and an entropy encoding unit 16.
[0035] The intra-prediction mode determination unit 11 is configured to determine the optimal intra-prediction mode to apply to the CU.
[0036] The TU division determination unit 12 is configured to determine whether or not to divide the CU into multiple TUs. In this embodiment, the case of dividing the CU into multiple TUs is described using a four-part division as an example, but the number of divisions and the division shape when dividing the CU into multiple TUs are not limited to this case.
[0037] The coding order control unit 13 is configured to determine the coding order of TUs within CU based on the intra prediction mode (for example, the direction of the intra prediction mode).
[0038] For example, when the TU division determination unit 12 determines that a CU is to be divided into multiple TUs, the coding order control unit 13 may be configured to adopt a predetermined coding order from among the following, instead of the conventional raster scan order: the lower left TU in the CU → the lower right TU in the CU → the upper left TU in the CU → the upper right TU in the CU, or the lower left TU in the CU → the upper left TU in the CU → the lower right TU in the CU → the upper right TU in the CU.
[0039] The sequential local decoded image generation unit 14 is configured to generate local decoded images (decoded images for each TU) based on the coding order and the method of dividing CUs into TUs determined by the coding order control unit 13.
[0040] Specifically, the sequential local decoded image generation unit 14 is configured to generate local decoded images sequentially according to the encoding order determined by the encoding order control unit 13 when the TU division determination unit 12 has determined that the CU should be divided into multiple TUs.
[0041] As shown in Figure 1, the sequential local decoding image generation unit 14 comprises an intra prediction unit 14a, a residual signal generation unit 14b, an orthogonal transformation / quantization unit 14c, an inverse quantization unit / inverse orthogonal transformation unit 14d, and a local decoding image generation unit 14e.
[0042] The intra-prediction unit 14a is configured to generate a predicted image using the intra-prediction mode determined by the intra-prediction mode determination unit 11. Specifically, the intra-prediction unit 14a is configured to determine the position of the reference pixels used when generating the predicted image according to the intra-prediction mode, and to generate the predicted image using these reference pixels.
[0043] Furthermore, the intra-prediction unit 14a may be configured to generate a predicted image in the coding order determined by the coding order control unit 13.
[0044] The residual signal generation unit 14b is configured to generate a residual signal from the difference between the predicted image generated by the intra-prediction unit 14a and the original image.
[0045] The orthogonal transformation and quantization unit 14c is configured to perform orthogonal transformation and quantization processing on the residual signal generated by the residual signal generation unit 14b, thereby generating quantized transformation coefficients.
[0046] As shown in Figure 2, the orthogonal transformation / quantization unit 14c comprises an inversion unit 14c1, an orthogonal transformation unit 14c2, and a quantization unit 14c3.
[0047] The inversion unit 14c1 is configured to invert the residual signal generated by the residual signal generation unit 14b in at least one of the horizontal and vertical directions when the position of the reference pixel used to generate the predicted image includes at least one of the right and lower sides (when generating the predicted image using a reference pixel adjacent to at least one of the right and lower sides).
[0048] For example, the inversion unit 14c1 may be configured to invert the residual signal vertically when the lower side is included in the position of the reference pixel (when generating a predicted image using a reference pixel adjacent to the lower side).
[0049] Alternatively, the inversion unit 14c1 may be configured to invert the residual signal horizontally when the right side is included in the position of the reference pixel (when generating a predicted image using a reference pixel adjacent to the right side).
[0050] The orthogonal transformation unit 14c2 is configured to perform orthogonal transformation processing on the residual signal that has been inverted by the inversion unit 14c1.
[0051] Specifically, the orthogonal transformation unit 14c2 is configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformation processes (basis group of orthogonal transformations) according to the intra prediction mode and the position of the reference pixel used to generate the predicted image, and to apply the selected orthogonal transformation process to the residual signal inverted by the inversion unit 14c1.
[0052] Figure 3 shows an example of an intra-prediction mode used in this embodiment. As shown in Figure 3, in this embodiment, intra-prediction modes 2 to 9 are classified as Category A, intra-prediction modes 10 to 26 are classified as Category B, and intra-prediction modes 27 to 34 are classified as Category C.
[0053] In this embodiment, we will describe an example using the intra-prediction mode in HEVC shown in Figure 3, but the present invention is also applicable to examples where other intra-prediction modes are used.
[0054] Here, the residual signal obtained from the difference between the predicted image and the original image is converted into orthogonal transformation coefficients using orthogonal transformation processing. By concentrating the energy of the residual signal through orthogonal transformation processing, the encoding efficiency in the subsequent entropy coding process can be improved.
[0055] In HEVC, DCT and DST are available as orthogonal transformation processes, and the orthogonal transformation process is performed by switching between them depending on the block size and prediction mode.
[0056] Here, the orthogonal transformation process is not limited to DST or DCT, but any transformation process (including those that have been integerized for speed optimization) applied to the residual signal for the purpose of concentrating energy is acceptable.
[0057] Increasing the number of selectable orthogonal transformation processes increases the likelihood of selecting an orthogonal transformation process that concentrates energy more effectively for residual signals with various energy distributions. However, this also increases the amount of information required to transmit and store flag information indicating which orthogonal transformation process to apply.
[0058] Furthermore, the energy distribution of the residual signal is statistically correlated with the distance from the reference pixel used for intra-prediction. Therefore, the energy distribution of the residual signal differs between the intra-prediction mode that uses only the left reference pixel and the intra-prediction mode that uses both the left and upper reference pixels.
[0059] Therefore, the technology described in Non-Patent Literature 2 is configured to switch between selectable orthogonal transformation processing groups depending on the direction of the intra-prediction mode by utilizing the correlation between the bias of the energy distribution of the residual signal and the direction of the intra-prediction mode.
[0060] Figures 4(a) and 4(b) show, as examples of residual signal energy distributions, the difference in residual signal energy distributions in HEVC between intra-prediction mode 2 (an intra-prediction mode that uses only the reference pixels located on the left) and intra-prediction mode 18 (an intra-prediction mode that uses the reference pixels located on both the left and upper sides).
[0061] Thus, for residual signals with different energy distributions, the orthogonal transformation process that provides a statistically high entropy reduction effect differs.
[0062] Therefore, the technology described in Non-Patent Document 2 is configured to provide a group of orthogonal transformation processes that can be selected according to the direction of the intra-prediction mode, as described above, and to select the optimal orthogonal transformation process from among them.
[0063] According to this technology, by switching between applicable orthogonal transformation processing groups according to the direction of the intra-prediction mode, it becomes possible to efficiently concentrate the statistical energy distribution of the residual signal while reducing the amount of information in the flag indicating which orthogonal transformation processing was applied.
[0064] However, as shown in Figure 5, when performing direction prediction in intra-prediction mode 2 using reference pixels located on the left and lower sides, the energy distribution of the residual signal is different due to the different positions of the reference pixels compared to when performing direction prediction in intra-prediction mode 2 using only the reference pixels located on the left side.
[0065] The energy distribution of the residual signal obtained by direction prediction in intra-prediction mode 2 using reference pixels located on the left and lower sides (see Figure 5) is similar to the energy distribution obtained by vertically inverting the residual signal obtained by direction prediction in intra-prediction mode 18 using reference pixels located on the left and upper sides, as shown in Figure 4(b).
[0066] In other words, when performing direction prediction in intra-prediction mode 2, if the left and lower sides are included as the reference pixel positions, and the residual signal is inverted vertically before applying the orthogonal transformation process, the energy distribution of the orthogonal transformation coefficients obtained is the same as when performing direction prediction in intra-prediction mode 18, if the left and upper sides are included as the reference pixel positions, and the residual signal is not inverted horizontally or vertically before applying the orthogonal transformation process (see Figures 4(b) and 5).
[0067] The energy distribution of the orthogonal transformation coefficients obtained by the orthogonal transformation process on the residual signal from the direction prediction in intra-prediction mode 2 differs depending on the position of the reference pixel used for intra-prediction. Therefore, determining the applicable orthogonal transformation process set based solely on the intra-prediction mode may increase entropy and degrade coding performance.
[0068] Therefore, when the orthogonal transformation unit 14c2 inverts the residual signal in at least one of the horizontal and vertical directions depending on the position of the reference pixel in intra-prediction, it determines a selectable group of orthogonal transformation processes according to the direction of the applied intra-prediction mode and the position of the reference pixel.
[0069] In other words, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction of the intra-prediction mode when the intra-prediction mode belongs to category B.
[0070] For example, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction of the intra-prediction mode 18 when the intra-prediction mode is 18.
[0071] Alternatively, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction of the intra-prediction mode, when the intra-prediction mode belongs to category A and the lower side is not included as a reference pixel position.
[0072] For example, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction of intra-prediction mode 2 when the intra-prediction mode is 2 and the lower side is not included as the position of the reference pixel.
[0073] Alternatively, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction of the intra-prediction mode, when the intra-prediction mode belongs to category C and the right side is not included as a reference pixel position.
[0074] For example, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction of the intra-prediction mode 34, when the intra-prediction mode is 34 and the right side is not included as the position of the reference pixel.
[0075] Furthermore, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction obtained by vertically inverting the direction of the intra prediction mode when the lower side is included in the position of the reference pixel.
[0076] Here, "vertically reversing the direction of the intra-prediction mode" means, in the example in Figure 3, that the directions of intra-prediction modes 2-9 and intra-prediction modes 18-11 are converted, respectively. In other words, it means converting the direction of each intra-prediction mode to the direction of the intra-prediction mode that is in a symmetrical positional relationship with the direction of intra-prediction mode 10.
[0077] In other words, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction obtained by vertically inverting the direction of the intra prediction mode when the intra prediction mode belongs to category A and the lower side is included as the position of the reference pixel.
[0078] For example, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction obtained by vertically inverting the direction of intra-prediction mode 2 (the direction of intra-prediction mode 18) when the intra-prediction mode is 2 and the lower side is included as the position of the reference pixel.
[0079] Alternatively, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction obtained by horizontally inverting the direction of the intra-prediction mode when the right side is included in the position of the reference pixel.
[0080] Here, "reversing the direction of the intra-prediction mode horizontally" means, in the example in Figure 3, that the directions of intra-prediction modes 18-25 and intra-prediction modes 34-27 are converted, respectively. In other words, it means converting the direction of each intra-prediction mode to the direction of the intra-prediction mode that is in a symmetrical positional relationship with the direction of intra-prediction mode 26.
[0081] In other words, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction obtained by horizontally inverting the direction of the intra-prediction mode when the intra-prediction mode belongs to category C and the right side is included as the position of the reference pixel.
[0082] For example, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process to apply from a predetermined group of orthogonal transformations according to the direction obtained by horizontally inverting the direction of the intra-prediction mode 34 (the direction of the intra-prediction mode 18) when the intra-prediction mode is 34 and the right side is included as the position of the reference pixel.
[0083] The quantization unit 14c3 is configured to perform quantization processing on the signal output from the orthogonal transformation unit 14c2 and generate quantized transformation coefficients.
[0084] The inverse quantization unit / inverse orthogonal transformation unit 14d is configured to generate a residual signal by applying inverse quantization and inverse orthogonal transformation processing again to the quantized transformation coefficients generated by the orthogonal transformation unit 14c.
[0085] The local decoded image generation unit 14e is configured to generate a local decoded image by adding a predicted image generated by the intra-prediction unit 14a to the residual signal generated by the inverse quantization unit / inverse orthogonal transform unit 14d.
[0086] Memory 15 is configured to hold locally decoded images generated by the sequential local decoded image generation unit 14 so that they can be used as reference images.
[0087] The entropy coding unit 16 is configured to apply entropy coding to flag information, including the intra-prediction mode determined by the intra-prediction mode determination unit 11, and quantized conversion coefficients, and output them as a stream.
[0088] Figure 6 shows a flowchart illustrating an example of the operation of the encoding device 1 according to this embodiment.
[0089] As shown in Figure 6, in step S101, the encoding device 1 determines the position of the reference pixels to be used when generating the predicted image according to the determined intra-prediction mode, generates the predicted image using these reference pixels, and generates a residual signal from the difference between the predicted image and the original image.
[0090] In step S102, if the reference pixel position used to generate the predicted image includes at least one of the right and lower sides, the encoding device 1 inverts the residual signal generated by the residual signal generation unit 14b in at least one of the horizontal and vertical directions.
[0091] In step S103, the encoding device 1 selects an orthogonal transformation process to apply from a predetermined group of orthogonal transformation processes according to the intra prediction mode and the position of the reference pixel used to generate the predicted image, and applies the selected orthogonal transformation process to the inverted residual signal.
[0092] In step S104, the encoding device 1 performs a quantization process on the signal that has undergone orthogonal transformation processing to generate quantized transformation coefficients.
[0093] In step S105, the encoding device 1 applies entropy encoding to the flag information, including the intra prediction mode, and the quantized conversion coefficients, and outputs them as a stream.
[0094] Furthermore, the decoding device 3 according to this embodiment is configured to decode the original image, which is composed of frames, by dividing it into CUs. Also, the decoding device 3 according to this embodiment is configured to divide the CUs into multiple TUs, similar to the encoding device 1 according to this embodiment.
[0095] As shown in Figure 7, the decoding device 3 according to this embodiment comprises an entropy decoding unit 31, a decoding sequence control unit 32, a sequential decoding image generation unit 33, and a memory 34.
[0096] The entropy decoding unit 31 is configured to decode conversion coefficients, flag information, etc., from the stream output from the encoding device 1 by performing entropy decoding on the stream output from the encoding device 1. Here, the conversion coefficients are quantized conversion coefficients obtained as signals encoded by the encoding device 1 by dividing the original image on a frame-by-frame basis into CUs.
[0097] The decoding order control unit 32 is configured to determine the decoding order of TUs within the CU based on the intra prediction mode.
[0098] Specifically, the decoding order control unit 32 is configured to determine the decoding order of TUs within a CU according to a flag indicating whether or not TU splitting has been performed (whether or not a CU has been split into multiple TUs) output by the entropy decoding unit 31, and the direction of the intra prediction mode.
[0099] For example, the decoding order control unit 32 may be configured, similar to the coding order control unit 13, to perform decoding in a predetermined decoding order, such as the decoding order of the lower left TU in the CU → the lower right TU in the CU → the upper left TU in the CU → the upper right TU in the CU, or the decoding order of the lower left TU in the CU → the upper left TU in the CU → the lower right TU in the CU → the upper right TU in the CU, when the CU is divided into multiple TUs and the direction of the intra prediction mode is from the lower left to the upper right.
[0100] The sequential decoded image generation unit 33 is configured to generate decoded images (decoded images for each TU) based on the decoding order and the method of dividing CUs into TUs determined by the decoding order control unit 32.
[0101] Specifically, the sequential decoded image generation unit 33 is configured to generate a decoded image when the CU is divided into multiple TUs, by sequentially performing inverse quantization processing, inverse orthogonal transformation processing, and intra prediction on the quantized transformation coefficients output by the entropy decoding unit 31, according to the decoding order determined by the decoding order control unit 32.
[0102] As shown in Figure 7, the sequential decoded image generation unit 33 comprises an intra prediction unit 33a, an inverse quantization / inverse transformation unit 33b, and a decoded image generation unit 33c.
[0103] The intra-prediction unit 33a may be configured to generate a predicted image using the intra-prediction mode output by the entropy decoding unit 31, according to the decoding order determined by the decoding order control unit 32.
[0104] The inverse quantization / inverse transformation unit 33b is configured to generate a residual signal by applying inverse quantization and inverse transformation (for example, inverse orthogonal transformation) to the quantized transformation coefficients output by the entropy decoding unit 31.
[0105] As shown in Figure 8, the inverse quantization / inverse transformation unit 33b comprises an inverse quantization unit 33b1, an inverse orthogonal transformation unit 33b2, and an inverse orthogonal transformation unit 33b3.
[0106] The inverse quantization unit 33b1 is configured to perform inverse quantization on the quantized conversion coefficients output by the entropy decoding unit 31.
[0107] The inverse orthogonal transformation unit 33b2 is configured to perform an inverse orthogonal transformation on the signal (conversion coefficients) output from the inverse quantization unit 33b1.
[0108] Specifically, the inverse orthogonal transform unit 33b2, like the orthogonal transform unit 14c2, is configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the intra prediction mode and the position of the reference pixel used to generate the predicted image, and to apply the selected inverse orthogonal transform process to the signal output from the inverse quantization unit 33b1.
[0109] In other words, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction of the intra prediction mode when the intra prediction mode belongs to category B.
[0110] For example, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction of the intra prediction mode 18 when the intra prediction mode is 18.
[0111] Alternatively, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction of the intra prediction mode, when the intra prediction mode belongs to category A and the lower side is not included as a reference pixel position.
[0112] For example, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction of intra prediction mode 2, when the intra prediction mode is 2 and the lower side is not included as the position of the reference pixel.
[0113] Alternatively, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction of the intra prediction mode, when the intra prediction mode belongs to category C and the right side is not included as the position of the reference pixel.
[0114] For example, when the intra prediction mode is 34 and the right side is not included as the position of the reference pixel, the inverse orthogonal transform unit 33b2 performs the transformation according to the direction of the intra prediction mode 34. The system may be configured to select the inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms.
[0115] Furthermore, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction obtained by vertically inverting the direction of the intra prediction mode when the lower side is included in the position of the reference pixel.
[0116] In other words, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction obtained by vertically inverting the direction of the intra prediction mode when the intra prediction mode belongs to category A and the lower side is included as the position of the reference pixel.
[0117] For example, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction obtained by vertically inverting the direction of intra prediction mode 2 (the direction of intra prediction mode 18) when the intra prediction mode is 2 and the lower side is included as the position of the reference pixel.
[0118] Alternatively, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction obtained by horizontally inverting the direction of the intra prediction mode when the right side is included in the position of the reference pixel.
[0119] In other words, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction obtained by horizontally inverting the direction of the intra prediction mode when the intra prediction mode belongs to category C and the right side is included as the position of the reference pixel.
[0120] For example, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the direction obtained by horizontally inverting the direction of the intra prediction mode 34 (the direction of the intra prediction mode 18) when the intra prediction mode is 34 and the right side is included as the position of the reference pixel.
[0121] The inversion unit 33b3 is configured to invert the signal output from the inverse orthogonal transform unit 33b2 in at least one of the horizontal and vertical directions when the reference pixel position includes at least one of the right and lower sides.
[0122] Specifically, the inversion unit 33b3 may be configured to invert the signal output from the inverse orthogonal transform unit 33b2 in the vertical direction when the lower side is included in the position of the reference pixel.
[0123] Alternatively, the inversion unit 33b3 may be configured to invert the signal output from the inverse orthogonal transform unit 33b2 horizontally when the right side is included in the position of the reference pixel.
[0124] The decoded image generation unit 33c is configured to generate a decoded image by adding the predicted image generated by the intra prediction unit 33a and the residual signal generated by the inverse quantization / inverse transform unit 33b.
[0125] The memory 34 is configured to hold the decoded images generated by the sequential decoded image generation unit 33 so that they can be used as reference images for intra-prediction and inter-prediction.
[0126] Figure 9 shows a flowchart illustrating an example of the operation of the decoding device 3 according to this embodiment.
[0127] As shown in Figure 9, in step S201, the decoding device 3 generates a predicted image using the intra-prediction mode.
[0128] In step S202, the decoding device 3 performs inverse quantization on the quantized conversion coefficients.
[0129] In step S203, the decoding device 3 selects an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transforms according to the intra prediction mode and the position of the reference pixel used to generate the prediction image, and applies the selected inverse orthogonal transform process to the signal that has undergone inverse quantization.
[0130] In step S204, the decoding device 3 inverts the signal that has undergone the inverse orthogonal transformation in at least one of the horizontal and vertical directions if the reference pixel position includes at least one of the right and lower sides.
[0131] According to the encoding device 1 and decoding device 3 of this embodiment, it is possible to switch and use different orthogonal transformation processing groups for the residual signal obtained by intra-prediction, not only according to the direction of the intra-prediction mode but also according to the position of the reference pixel, thereby reducing entropy and improving encoding efficiency.
[0132] (Second embodiment) Hereinafter, 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.
[0133] The encoding device 1 according to this embodiment does not include an inversion unit 14c1, and the decoding device 3 according to this embodiment does not include an inversion unit 33b3.
[0134] In the encoding device 1 according to this embodiment, the orthogonal transformation unit 14c2 is configured to select the orthogonal transformation process to be applied from a predetermined group of orthogonal transformation processes according to the intra prediction mode and the position of the reference pixel used to generate the predicted image.
[0135] Here, the orthogonal transformation unit 14c2 is configured to perform the selected orthogonal transformation process on the residual signal generated by the residual signal generation unit 14b after inverting at least one of the horizontal and vertical bases when the reference pixel position includes at least one of the right and lower sides.
[0136] Specifically, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process from a predetermined group of orthogonal transformation processes according to the direction obtained by vertically inverting the direction of the intra-prediction mode when the lower side is included in the position of the reference pixel, and then apply the selected orthogonal transformation process after inverting the basis in the vertical direction with respect to the residual signal.
[0137] Alternatively, the orthogonal transformation unit 14c2 may be configured to select an orthogonal transformation process from a predetermined group of orthogonal transformation processes according to the direction in which the direction of the intra-prediction mode is horizontally inverted when the position of the reference pixel includes the right side, and then apply the selected orthogonal transformation process after inverting the horizontal basis of the residual signal.
[0138] In the decoding device 3 according to this embodiment, the inverse orthogonal transform unit 33b2 is configured to select an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transform processes, depending on the intra prediction mode and the position of the reference pixel used to generate the predicted image.
[0139] Here, the inverse orthogonal transform unit 33b2 is configured to perform a selected orthogonal transform process on the signal output from the inverse quantization unit 33b1 after inverting at least one of the horizontal and vertical bases when the reference pixel position includes at least one of the right and lower sides.
[0140] Specifically, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process from a predetermined group of inverse orthogonal transform processes according to the direction obtained by vertically inverting the direction of the intra prediction mode when the lower side is included in the position of the reference pixel, and then apply the selected inverse orthogonal transform process after inverting the vertical basis of the signal output from the inverse quantization unit 33b1.
[0141] Alternatively, the inverse orthogonal transform unit 33b2 may be configured to select an inverse orthogonal transform process from a predetermined group of inverse orthogonal transform processes according to the direction in which the direction of the intra-prediction mode is inverted horizontally when the position of the reference pixel includes the right side, and then invert the horizontal basis of the signal output from the inverse quantization unit 33b1 before applying the selected inverse orthogonal transform process.
[0142] (Other embodiments) As described above, the present invention has been explained by the embodiments described above, but the descriptions and drawings that constitute part of the disclosure in such embodiments should not be understood as limiting the present invention. Various alternative embodiments, examples, and operational techniques will become apparent to those skilled in the art from such disclosure.
[0143] Furthermore, although not specifically mentioned in the embodiments described above, a program may be provided that causes a computer to execute each of the processes performed by the encoding device 1 and decoding device 3 described above. Such a program may also be recorded on a computer-readable medium. Using a computer-readable medium, it is possible to install such a program on 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, but may be a recording medium such as a CD-ROM or DVD-ROM.
[0144] Alternatively, a chip may be provided comprising a memory for storing a program for implementing at least some of the functions in the encoding device 1 and decoding device 3 described above, and a processor for executing the program stored in the memory. [Explanation of Symbols]
[0145] 1...Encoding device 11…Intra prediction mode determination unit 12...TU division determination section 13…Coded Order Control Unit 14…Sequential local decoding image generation unit 14a...Intra prediction unit 14b...Residual signal generation section 14c...Orthogonal transformation / quantization section 14c1... Reversal section 14c2...Orthogonal transformation section 14c3...Quantization section 14d...Inverse quantization section / Inverse orthogonal transformation section 14e...Local decoding image generation unit 15…Memory 16... Entropy coding unit 3…Decoding device 31... Entropy Decoding Unit 32…Decoding sequence control unit 33...Sequential local decoding image generation unit 33a...Intra prediction unit 33b...Inverse quantization / inverse transformation section 33b1...Dequantization section 33b2...Inverse orthogonal transformation section 33b3... Reversal section 33c...Decoded image generation unit 34…Memory
Claims
1. An encoding device that divides the original image, which is a frame in a moving image, into blocks and encodes them, An intra-prediction unit that generates a predicted image corresponding to the target block for encoding using an intra-prediction mode that indicates the type of intra-prediction processing, A residual signal generation unit generates a residual signal based on the difference between the predicted image generated by the intra prediction unit and the target block, The system comprises a transformation unit that selects an orthogonal transformation process to apply from a predetermined group of orthogonal transformation processes based on the category to which the direction of the intra prediction mode belongs, The conversion unit is an encoding device that, separately from the category to which the direction of the intra prediction mode belongs, further selects an orthogonal transformation process to apply from the predetermined group of orthogonal transformation processes based on the positions of the decoded reference pixels available for generating the predicted image, which are determined according to the block coding order.
2. A decoding device that decodes a moving image in block units obtained by dividing the original image into frame units, An entropy decoding unit that decodes the intra prediction mode indicating the type of intra prediction processing, An intra-prediction unit that generates a predicted image corresponding to the target block for decoding using the intra-prediction mode, An inverse quantization unit that applies inverse quantization processing to the quantized transformation coefficients, The system comprises an inverse transform unit that selects an inverse orthogonal transform process to apply from a predetermined group of inverse orthogonal transform processes based on the category to which the direction of the intra prediction mode belongs, The inverse transform unit is a decoding device that, separately from the category to which the direction of the intra prediction mode belongs, further selects an inverse orthogonal transform process to apply from the predetermined group of inverse orthogonal transform processes based on the positions of the decoded reference pixels available for generating the prediction image, which are determined according to the block decoding order.
3. A program for causing a computer to function as the encoding device described in claim 1.
4. A program for causing a computer to function as the decoding device described in claim 2.
Citation Information
Patent Citations
Moving image encoder and moving image decoder
JP2015109695A
JPP7449253B
Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding / decoding device
WO2012096194A1