Symbolizing device, decoding device, and program
By determining a conversion basis based on selected reference pixel columns within the encoding and decoding devices, the proposed solution addresses inefficiencies in existing video encoding techniques, enhancing coding efficiency and prediction accuracy.
Patent Information
- Application Number
- JP2024033825
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-03-06
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2039-12-10
AI Technical Summary
Existing video encoding techniques face inefficiencies due to increased code volume for flag transmission to switch transform bases and difficulties in applying suitable transform bases for prediction residuals, leading to decreased coding efficiency.
The proposed solution involves an encoding and decoding device that selects a reference pixel column from adjacent and non-adjacent columns for intra prediction, determining a conversion basis based on this selection, and transmitting only the reference pixel column information without a flag, thereby improving coding efficiency.
This approach enhances coding efficiency by allowing the application of a more suitable conversion basis for prediction residuals without the need for flag transmission, reducing processing amounts and improving prediction accuracy.
Smart Images

Figure 0007686106000002 
Figure 0007686106000003 
Figure 0007686106000004
Abstract
Description
Technical Field
[0001] The present invention relates to an encoding device, a decoding device, and a program.
Background Art
[0002] For data volume compression during transmission or storage of still images and moving images, research on video encoding methods has been conducted. In recent years, the spread of ultra-high-definition video such as 8K-SHV has been progressing, and encoding methods such as AVC / H.264 and HEVC / H.265 are known as methods for transmitting moving images with a huge amount of data.
[0003] In such an encoding technique, intra prediction using spatial correlation within a frame is used. In intra prediction, each pixel within an encoding target block is predicted with reference to decoded reference pixels adjacent to the encoding target block to generate a prediction block. The encoding device performs conversion processing on a prediction residual representing the difference (error) between the encoding target block and the prediction block to generate conversion coefficients, and quantizes and entropy-encodes the conversion coefficients to output encoded data.
[0004] In the standard proposal of VVC (Versatile Video Coding), which is a next-generation video coding method jointly standardized by MPEG (Moving Picture Experts Group) and ITU (International Telecommunication Union), MRL (Multi Reference Line) intra prediction that selects one from a plurality of candidate reference pixel sequences for use in intra prediction is adopted (see, for example, Non-Patent Document 1). The plurality of candidate reference pixel sequences include a reference pixel sequence adjacent to the encoding target block and a reference pixel sequence not adjacent to the encoding target block.
[0005] In addition, in the VVC standard proposal, Multiple Transform Selection (MTS) is adopted, which selectively applies a total of three transform bases, namely Discrete Cosine Transform (DCT) 2, Discrete Sine Transform (DST) 7, and DCT 8, to each block to be coded, enabling the application of a transform more suitable for the characteristics of the prediction residual. Regarding the switching of the transform base, it is possible to use a function that switches by transmitting a flag and a function that switches according to the block size of the block to be coded without transmitting a flag.
Prior Art Documents
Non-Patent Documents
[0006]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0007] As described above, when transmitting a flag to switch the transform base, the amount of code for the flag increases, resulting in a decrease in coding efficiency. At the same time, the number of trials for the coding device to determine an appropriate transform base increases, leading to an increase in the processing amount.
[0008] On the other hand, there is also a function to switch the transform base according to the block size of the block to be coded without transmitting a flag. However, it is difficult to apply a transform base suitable for the characteristics of the prediction residual, and it is difficult to improve the coding efficiency.
[0009] Therefore, an object of the present invention is to provide a coding device, a decoding device, and a program that improve coding efficiency by enabling the application of a transform base more suitable for the characteristics of the prediction residual even when not transmitting a flag to switch the transform base.
Means for Solving the Problems
[0010] The encoding device according to the first aspect is a device that block-divides and encodes an image. The encoding device includes an intra prediction unit that predicts the encoding target block by intra prediction using a reference pixel column selected from a plurality of reference pixel columns including a reference pixel column adjacent to the encoding target block and a reference pixel column not adjacent to the encoding target block, and a conversion unit that performs a conversion process on a prediction residual representing a difference between the prediction block output by the intra prediction unit and the encoding target block to output a conversion coefficient. The conversion unit has a conversion basis determination unit that determines a conversion basis used in the conversion process based on the reference pixel column selected from the plurality of reference pixel columns.
[0011] The decoding device according to the second aspect includes an entropy decoding unit that decodes encoded data and outputs a quantized conversion coefficient corresponding to the decoding target block, an intra prediction unit that predicts the decoding target block by intra prediction using a reference pixel column selected from a plurality of reference pixel columns including a reference pixel column adjacent to the decoding target block and a reference pixel column not adjacent to the decoding target block, an inverse quantization unit that performs an inverse quantization process on the quantized conversion coefficient output by the entropy decoding unit to output a conversion coefficient, and an inverse conversion unit that performs an inverse conversion process on the conversion coefficient output by the inverse quantization unit to output a prediction residual. The inverse conversion unit has a conversion basis determination unit that determines a conversion basis used in the inverse conversion process based on the reference pixel column selected from the plurality of reference pixel columns.
[0012] The program according to the third aspect causes a computer to function as the encoding device according to the first aspect or the decoding device according to the second aspect.
Effects of the Invention
[0013] According to the present invention, there are provided an encoding device, a decoding device, and a program that improve the encoding efficiency by making it possible to apply a conversion basis more suitable for the characteristics of a prediction residual even when a flag is not transmitted to switch the conversion basis.
Brief Description of the Drawings
[0014]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Mode for Carrying Out the Invention
[0015] With reference to the drawings, an encoding device and a decoding device according to the embodiment will be described. The encoding device and the decoding device according to the embodiment respectively perform encoding and decoding of moving images represented by MPEG. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals.
[0016] <Encoding Device> First, the configuration of the encoding device according to the present embodiment will be described. FIG. 1 is a diagram showing the configuration of the encoding device 1 according to the present embodiment.
[0017] As shown in FIG. 1, the encoding device 1 includes a block division unit 100, a prediction residual generation unit 110, a transform / quantization unit 120, an entropy encoding unit 130, a scan control unit 131, an inverse quantization / inverse transform unit 140, a synthesis unit 150, a memory 160, and a prediction unit 170.
[0018] The block division unit 100 divides an original image, which is an input image in units of frames (or pictures) constituting a moving image, into a plurality of image blocks, and outputs the image blocks obtained by the division to the prediction residual generation unit 110. The size of the image blocks is, for example, 32×32 pixels, 16×16 pixels, 8×8 pixels, or 4×4 pixels, etc. The shape of the image blocks is not limited to a square and may be a rectangle (non-square). The image blocks are units for the encoding device 1 to perform encoding (i.e., encoding target blocks), and are also units for the decoding device to perform decoding (i.e., decoding target blocks). Such image blocks are sometimes called CUs (Coding Units).
[0019] For example, the block division unit 100 outputs luminance blocks and color difference blocks by performing block division on the luminance signal and the color difference signal constituting the image. The division may be independently controllable for the luminance signal and the color difference signal. In the following, when the luminance blocks and the color difference blocks are not particularly distinguished, they are simply called encoding target blocks.
[0020] The prediction residual generation unit 110 calculates a prediction residual representing the difference (error) between the encoding target block output by the block division unit 100 and the prediction block obtained by the prediction unit 170 predicting the encoding target block. Specifically, the prediction residual generation unit 110 calculates the prediction residual by subtracting the pixel values of the prediction block from the pixel values of each block, and outputs the calculated prediction residual to the conversion and quantization unit 120.
[0021] The conversion and quantization unit 120 performs conversion processing and quantization processing in block units. The conversion and quantization unit 120 includes a conversion unit 121 and a quantization unit 122.
[0022] The conversion unit 121 performs a conversion process on the prediction residual output by the prediction residual generation unit 110 to calculate conversion coefficients, and outputs the calculated conversion coefficients to the quantization unit 122. The conversion process refers to a process of converting the prediction residual from the spatial domain to the frequency domain, for example, the discrete cosine transform (DCT), the discrete sine transform (DST), the Karhunen-Loeve transform (KLT), etc. However, the conversion process may include a conversion skip that adjusts by scaling or the like without converting the signal in the pixel region to the frequency domain. The conversion unit 121 outputs information regarding the conversion process to be applied to the encoding target block to the entropy encoding unit 130.
[0023] The conversion unit 121 uses MTS that switches a plurality of conversion bases for each encoding target block in the encoding of the luminance signal. The conversion unit 121 includes a conversion base determination unit 121a. The conversion base determination unit 121a determines a conversion base (conversion type) from among DCT-2, DST-7, and DCT-8 for each of the horizontal direction and the vertical direction. That is, the conversion unit 121 switches and applies a plurality of types of conversion processes. The conversion unit 121 outputs conversion base information indicating the determined conversion base to the entropy encoding unit 130 and the inverse conversion unit 142.
[0024] FIG. 2 is a diagram showing a total of three conversion bases (basis functions) of DCT2 (DCT-II), DCT8 (DCT-VIII), and DST7 (DST-VII). In FIG. 2, N represents the size of the encoding target block. DCT8 includes a base whose impulse response monotonically decreases. Specifically, DCT8 is a conversion in which the impulse response T 0 (j) of the lowest frequency filter monotonically decreases (where j = 0,..., N - 1). One end of the DCT8 conversion base waveform has a large value and is open. DST7 includes a base whose impulse response monotonically increases. Specifically, DST7 is a conversion in which the impulse response T 0 (j) of the lowest frequency filter monotonically increases (where j = 0,..., N - 1). One end of the DST7 conversion base waveform is closed.
[0025] In this embodiment, three types of conversion processes to be applied to the prediction residual, namely DCT2, DCT8, and DST7, will be described as examples. However, any conversion that selectively switches and applies bases having characteristics such as monotonic increase or monotonic decrease as described above may be used, and it is not limited to these three conversion bases. For example, other DCTs or DSTs such as DCT1 and DCT5 may be used, or a conversion such as a discrete wavelet transform may be used.
[0026] FIG. 3 is a diagram showing the conversion base information output by the conversion base determination unit 121a according to this embodiment.
[0027] As shown in FIG. 3, the conversion base determination unit 121a outputs a total of three conversion flags, namely MTS_CU_flag, MTS_Hor_flag, and MTS_Ver_flag, as the conversion base information.
[0028] When the conversion base determination unit 121a applies DCT2 to both the horizontal conversion process and the vertical conversion process, MTS_CU_flag = 0. On the other hand, when the conversion base determination unit 121a applies DCT8 or DST7 to at least one of the horizontal conversion process and the vertical conversion process, MTS_Hor_flag and MTS_Ver_flag are set according to the combination of the conversion bases applied to the horizontal conversion process and the vertical conversion process.
[0029] These three conversion flags are subjected to entropy encoding processing by the entropy encoding unit 130 described later and output as a stream. However, when MTS_CU_flag = 0, the entropy encoding unit 130 may not stream output MTS_Hor_flag and MTS_Ver_flag. Also, although details will be described later, when MRL is applied to the block to be encoded, the entropy encoding unit 130 may not stream output the three conversion flags.
[0030] The quantization unit 122 quantizes the transform coefficients output by the transform unit 121 using quantization parameters (Qp) and a quantization matrix, and outputs the quantized transform coefficients, which are the quantized transform coefficients, to the entropy encoding unit 130 and the inverse quantization / inverse transform unit 140.
[0031] The entropy encoding unit 130 performs entropy encoding on the quantized transform coefficients output by the quantization unit 122, compresses the data to generate encoded data (bitstream), and outputs the encoded data to the outside of the encoding apparatus 1. For entropy encoding, Huffman coding, CABAC (Context-based Adaptive Binary Arithmetic Coding), etc. can be used.
[0032] Also, the entropy encoding unit 130 inputs information related to the transform process from the transform unit 121, and transmits the information related to the transform process to the decoding side in the encoded data. The information related to the transform process may include the transform basis information described above.
[0033] Furthermore, the entropy encoding unit 130 inputs information related to the prediction process from the prediction unit 170, and transmits the input information related to the prediction process to the decoding side in the encoded data. The information related to the prediction process may include the reference pixel column information described later.
[0034] The inverse quantization / inverse transform unit 140 performs inverse quantization processing and inverse transform processing in block units. The inverse quantization / inverse transform unit 140 includes an inverse quantization unit 141 and an inverse transform unit 142.
[0035] The inverse quantization unit 141 performs inverse quantization processing corresponding to the quantization processing performed by the quantization unit 122. Specifically, the inverse quantization unit 141 restores the transform coefficients by inverse quantizing the quantized transform coefficients output by the quantization unit 122 using the quantization parameters (Qp) and the quantization matrix, and outputs the restored transform coefficients to the inverse transform unit 142.
[0036] The inverse conversion unit 142 performs an inverse conversion process corresponding to the conversion process performed by the conversion unit 121 based on the conversion basis information output by the conversion unit 121. For example, when the conversion unit 121 performs a discrete cosine transform, the inverse conversion unit 142 performs an inverse discrete cosine transform. The inverse conversion unit 142 performs an inverse conversion process on the conversion coefficients output by the inverse quantization unit 141 to restore the prediction residual, and outputs the restored prediction residual, which is the restored prediction residual, to the synthesis unit 150.
[0037] The synthesis unit 150 synthesizes the restored prediction residual output by the inverse conversion unit 142 and the prediction block output by the prediction unit 170 on a pixel-by-pixel basis. The synthesis unit 150 adds each pixel value of the restored prediction residual and each pixel value of the prediction block to decode (reconstruct) the block to be encoded, and outputs the decoded block to the memory 160. Note that the decoded block may also be called a reconstructed block.
[0038] The memory 160 stores the decoded block output by the synthesis unit 150 and accumulates the decoded blocks as a decoded image in frame units. The memory 160 outputs the stored decoded block or decoded image to the prediction unit 170. Note that a loop filter may be interposed between the synthesis unit 150 and the memory 160.
[0039] The prediction unit 170 performs a prediction process in block units. The prediction unit 170 includes an inter prediction unit 171, an intra prediction unit 172, and a switching unit 173.
[0040] The inter prediction unit 171 performs inter prediction using the correlation between frames. Specifically, the inter prediction unit 171 uses the decoded image stored in the memory 160 as a reference image, calculates a motion vector by a method such as block matching, predicts the encoding target block to generate an inter prediction block, and outputs the generated inter prediction block to the switching unit 173. Here, the inter prediction unit 171 selects an optimal inter prediction method from among inter predictions using a plurality of reference images (typically, bi-prediction) and inter predictions using one reference image (uni-directional prediction), and performs inter prediction using the selected inter prediction method. The inter prediction unit 171 outputs information related to inter prediction (such as a motion vector) to the entropy encoding unit 130.
[0041] The intra prediction unit 172 performs intra prediction using the spatial correlation within a frame. Specifically, the intra prediction unit 172 generates an intra prediction block by referring to the decoded pixels around the encoding target block among the decoded images stored in the memory 160, and outputs the generated intra prediction block to the switching unit 173. The intra prediction unit 172 selects an intra prediction mode to be applied to the encoding target block from among a plurality of intra prediction modes, and predicts the target block using the selected intra prediction mode.
[0042] FIG. 4 is a diagram showing candidates for the intra prediction mode according to the present embodiment. As shown in FIG. 4, for a luminance block, there are 67 candidates for the intra prediction mode, from 0 to 66. The mode "0" of the intra prediction mode is Planar prediction, the mode "1" of the intra prediction mode is DC prediction, and the modes "2" to "66" of the intra prediction mode are directional predictions. In the directional prediction, the direction of the arrow indicates the reference direction, the starting point of the arrow indicates the position of the pixel to be predicted, and the end point of the arrow indicates the position of the reference pixel used for predicting this pixel to be predicted.
[0043] In this embodiment, the intra prediction unit 172 has a function of performing MRL intra prediction. FIG. 5 is a diagram showing the MRL intra prediction according to this embodiment. Each circle shown in FIG. 5 represents a pixel.
[0044] As shown in FIG. 5, in MRL intra prediction, in intra prediction, one of the plurality of reference pixel columns is used for prediction to generate a prediction block, and the syntax indicating the reference pixel column is transmitted to the decoding side.
[0045] In FIG. 5, an example is shown in which the plurality of reference pixel columns include an adjacent reference pixel column (0th column) adjacent to the block to be encoded, a first reference pixel column (1st column) located outside the adjacent reference pixel column, and a second reference pixel column (2nd column) located outside the first reference pixel column.
[0046] However, for the reference pixel column located outside the adjacent reference pixel column, a reference pixel column farther from the 2nd column may be used. For example, the adjacent reference pixel column may be the adjacent 0th column reference pixel column, the first reference pixel column may be the 1st column reference pixel column located outside the 0th column reference pixel column, and the second reference pixel column may be the 3rd column reference pixel column located outside the 1st column reference pixel column.
[0047] In conventional intra prediction, pixels adjacent to the block to be encoded are used as reference pixels to predict each pixel in the block to be encoded, and the prediction accuracy for the prediction target pixels adjacent to the reference pixels is high. On the other hand, conventional intra prediction has a drawback that the prediction efficiency of the prediction target pixels at a distance from the reference pixels gradually decreases, and depending on the pattern, the prediction accuracy of the pixels in the block to be encoded is not necessarily high on average. Focusing on this phenomenon, in MRL intra prediction, in order to increase the average prediction accuracy of the block to be encoded, it is possible to perform prediction using a pixel column several lines away instead of the pixels adjacent to the block to be encoded as the reference pixels.
[0048] For example, when the intra prediction unit 172 applies MPM (Most Probable Modes) to intra prediction, it applies MRL intra prediction. Since there is a high correlation between the prediction modes used in the block to be coded and its surrounding blocks, in MPM, priority is given to the prediction modes used in the left and upper blocks of the block to be coded and the prediction modes in directions close to those prediction modes, and a relatively small amount of data is allocated to other prediction modes. Also, MRL intra prediction is applied to prediction modes other than Planar prediction and DC prediction. That is, Planar prediction and DC prediction refer only to adjacent reference pixel columns.
[0049] The intra prediction unit 172 has a reference pixel column selection unit 172a. When applying MRL intra prediction, the reference pixel column selection unit 172a selects one reference pixel column for intra prediction from among the adjacent reference pixel column (0th column), the first reference pixel column (1st column), and the second reference pixel column (2nd column). As described above, the second reference pixel column may be the reference pixel column of the 3rd column. The reference pixel column selection unit 172a outputs reference pixel column information (reference pixel column syntax) indicating the selected reference pixel column to the conversion unit 121 and the entropy coding unit 130. Also, the intra prediction unit 172 outputs mode information (prediction mode syntax) indicating the intra prediction mode to the entropy coding unit 130.
[0050] The switching unit 173 switches between the inter prediction block output by the inter prediction unit 171 and the intra prediction block output by the intra prediction unit 172, and outputs one of the prediction blocks to the prediction residual generation unit 110 and the synthesis unit 150.
[0051] As described above, the encoding device 1 according to this embodiment uses a reference pixel column selected from a plurality of reference pixel columns including a reference pixel column adjacent to the block to be encoded and a reference pixel column not adjacent to the block to be encoded, and performs intra prediction on the block to be encoded. It has an intra prediction unit 172 for predicting by intra prediction, and a conversion unit 121 for performing conversion processing on the prediction residual representing the difference between the prediction block output by the intra prediction unit 172 and the block to be encoded and outputting conversion coefficients.
[0052] In this embodiment, when the intra prediction unit 172 performs MRL intra prediction, the conversion basis determination unit 121a of the conversion unit 121 determines the conversion basis used in the conversion process based on the reference pixel column selected from among the plurality of reference pixel columns. Specifically, the conversion basis determination unit 121a identifies the reference pixel column from the reference pixel column information output by the reference pixel column selection unit 172a, and determines the conversion basis associated with the identified reference pixel column.
[0053] Here, the conversion basis determination unit 121a determines a horizontal conversion basis used in the horizontal conversion process and a vertical conversion basis used in the vertical conversion process based on the reference pixel column selected from among the plurality of reference pixel columns.
[0054] As described above, the conversion basis determination unit 121a of the conversion unit 121 determines the conversion basis based on the reference pixel column selected in the MRL intra prediction. That is, by associating the reference pixel column with the conversion basis, it is no longer necessary to transmit a flag to the decoding side to switch the conversion basis. Specifically, the entropy encoding unit 130 transmits the reference pixel column information indicating the selected reference pixel column to the decoding side without transmitting the conversion basis information indicating the conversion basis. For this reason, it is possible to reduce the amount of code for the flag for switching the conversion basis, improve the encoding efficiency, and reduce the processing amount (that is, the number of trials) for determining an appropriate conversion basis.
[0055] Table 1 shows an example of the association between the reference pixel column and the conversion basis.
[0056]
Table 1
[0057] In the example shown in Table 1, when the reference pixel column selected by MRL intra prediction is the reference pixel column in the 0th column (see Fig. 5), the conversion basis determination unit 121a determines DST-7 as the horizontal conversion basis and the vertical conversion basis. When performing intra prediction using the reference pixel column in the 0th column, the prediction accuracy of the block boundary region adjacent to the reference pixel column in the 0th column is high, and the prediction residual of the block boundary region is considered to be close to zero. One end of the DST7 conversion basis waveform is closed, which is suitable for such a prediction residual having such characteristics. However, the reference pixel column in Table 1 is just an example, and for a reference pixel column located outside the adjacent reference pixel columns, a reference pixel column farther from the 2nd column (for example, the 3rd column) may be used.
[0058] When the reference pixel column selected by MRL intra prediction is the reference pixel column in the 1st column (see Fig. 5), the conversion basis determination unit 121a determines DCT-2 as the horizontal conversion basis and the vertical conversion basis. When performing intra prediction using the reference pixel column in the 1st column, since intra prediction is performed to improve the average prediction accuracy of the block, DCT-2 is used.
[0059] When the reference pixel column selected by MRL intra prediction is the reference pixel column in the 2nd column (see Fig. 5), the conversion basis determination unit 121a determines DST-7 as the horizontal conversion basis and the vertical conversion basis. When performing intra prediction using the reference pixel column in the 2nd column, since the characteristics of the prediction residual are indefinite, DST-7 is used. However, it is also possible to use DCT-2 instead of DST-7.
[0060] Next, the operation flow of the encoding device 1 according to the present embodiment will be described. Fig. 6 is a diagram showing the operation flow of the encoding device 1 according to the present embodiment. Here, only the operation related to the determination of the conversion basis is shown in the case where MRL intra prediction is applied.
[0061] As shown in FIG. 6, in step S11, the reference pixel column selection unit 172a of the intra prediction unit 172 selects one reference pixel column to be used for intra prediction of the block to be coded from among the adjacent reference pixel column (column 0), the first reference pixel column (column 1), and the second reference pixel column (column 2). The reference pixel column selection unit 172a outputs reference pixel column information (reference pixel column syntax) indicating the selected reference pixel column to the conversion unit 121 and the entropy coding unit 130.
[0062] In step S12, the intra prediction unit 172 performs intra prediction of the block to be coded with reference to the reference pixel column selected in step S11, and outputs a prediction block. Here, the intra prediction unit 172 may perform intra prediction using an intra prediction mode among the MPMs.
[0063] In step S13, the prediction residue generation unit 110 generates a prediction residue representing the difference between the prediction block output by the intra prediction unit 172 and the block to be coded, and outputs the prediction residue to the conversion unit 121.
[0064] On the other hand, in step S14, the conversion basis determination unit 121a of the conversion unit 121 identifies a reference pixel column from the reference pixel column information output by the reference pixel column selection unit 172a, and determines a conversion basis associated with the identified reference pixel column. For example, the conversion basis determination unit 121a determines a conversion basis from the number of the reference pixel column according to the association shown in Table 1.
[0065] In step S15, the conversion unit 121 performs a conversion process on the prediction residue using the conversion basis determined by the conversion basis determination unit 121a, and outputs conversion coefficients. The quantization unit 122 performs a quantization process on the conversion coefficients output by the conversion unit 121, and outputs quantized conversion coefficients.
[0066] In step S16, the entropy encoding unit 130 encodes the quantized transform coefficients output by the quantization unit 122 and outputs encoded data. Here, the entropy encoding unit 130 transmits the reference pixel column information output by the intra prediction unit 172 (reference pixel column selection unit 172a) to the decoding side without transmitting the transform basis information output by the conversion unit 121.
[0067] <Decoder device> Next, the configuration of the decoder device according to the present embodiment will be mainly described with differences from the encoder device 1. FIG. 7 is a diagram showing the configuration of the decoder device 2 according to the present embodiment.
[0068] As shown in FIG. 7, the decoder device 2 includes an entropy decoding unit 200, an inverse quantization / inverse transformation unit 210, a synthesis unit 220, a memory 230, and a prediction unit 240.
[0069] The entropy decoding unit 200 decodes the encoded data and outputs the quantized transform coefficients corresponding to the block to be decoded to the inverse quantization / inverse transformation unit 210.
[0070] Also, the entropy decoding unit 200 acquires information related to the conversion process and outputs the information related to the conversion process to the inverse quantization / inverse transformation unit 210 (inverse transformation unit 212). The information related to the conversion process may include the above-described transform basis information. However, when MRL intra prediction is applied, the entropy decoding unit 200 does not acquire the transform basis information.
[0071] Furthermore, the entropy decoding unit 200 acquires information related to the prediction process and outputs the information related to the prediction process to the prediction unit 240. The information related to the prediction process may include the above-described reference pixel column information. The entropy decoding unit 200 outputs the reference pixel column information to the inverse quantization / inverse transformation unit 210 (inverse transformation unit 212).
[0072] The inverse quantization / inverse transformation unit 210 performs inverse quantization processing and inverse transformation processing in block units. The inverse quantization / inverse transformation unit 210 includes an inverse quantization unit 211 and an inverse transformation unit 212.
[0073] The inverse quantization unit 211 performs an inverse quantization process corresponding to the quantization process performed by the quantization unit 122 of the encoding device 1. The inverse quantization unit 211 inverse quantizes the quantized transform coefficients output by the entropy decoding unit 200 using the quantization parameter (Qp) and the quantization matrix, thereby restoring the transform coefficients of the block to be decoded, and outputs the restored transform coefficients to the inverse transform unit 212.
[0074] The inverse transform unit 212 performs an inverse transform process corresponding to the transform process performed by the transform unit 121 of the encoding device 1. The inverse transform unit 212 performs an inverse transform process on the transform coefficients output by the inverse quantization unit 211 to restore the prediction residual, and outputs the restored prediction residual (restored prediction residual) to the synthesis unit 220.
[0075] The inverse transform unit 212 includes a transform basis determination unit 212a. When MRL intra prediction is not applied, the transform basis determination unit 212a determines the transform basis used in the inverse quantization process based on the transform basis information output by the entropy decoding unit 200 (see FIG. 3).
[0076] On the other hand, when MRL intra prediction is applied, the transform basis determination unit 212a determines the transform basis used in the inverse quantization process based on the reference pixel column information output by the entropy decoding unit 200 (see Table 1). Specifically, the transform basis determination unit 121a specifies the reference pixel column from the reference pixel column information, and determines the transform basis associated with the specified reference pixel column. Here, the transform basis determination unit 121a determines the horizontal transform basis used in the horizontal inverse transform process and the vertical transform basis used in the vertical inverse transform process based on the selected reference pixel column.
[0077] The synthesis unit 220 decodes (reconstructs) the original block by synthesizing the prediction residual output by the inverse transform unit 212 and the prediction block output by the prediction unit 240 on a pixel-by-pixel basis, and outputs the decoded block to the memory 230.
[0078] The memory 230 stores the decoded blocks output by the synthesis unit 220, and accumulates the decoded blocks as decoded images in units of frames. The memory 230 outputs the decoded blocks or the decoded images to the prediction unit 240. Further, the memory 230 outputs the decoded image in units of frames to the outside of the decoding device 2. Note that a loop filter may be interposed between the synthesis unit 220 and the memory 230.
[0079] The prediction unit 240 performs prediction in units of blocks. The prediction unit 240 includes an inter prediction unit 241, an intra prediction unit 242, and a switching unit 243.
[0080] The inter prediction unit 241 performs inter prediction using the correlation between frames. Specifically, the inter prediction unit 241 predicts an encoding target block using the decoded image stored in the memory 230 as a reference image based on information regarding inter prediction (e.g., motion vector information) output by the entropy decoding unit 200, generates an inter prediction block, and outputs the generated inter prediction block to the switching unit 243.
[0081] The intra prediction unit 242 performs intra prediction using the spatial correlation within a frame. Specifically, the intra prediction unit 242 generates an intra prediction block by referring to the decoded pixels around the encoding target block in the decoded image stored in the memory 230 using an intra prediction mode corresponding to information regarding intra prediction (e.g., intra prediction mode information) output by the entropy decoding unit 200, and outputs the generated intra prediction block to the switching unit 243.
[0082] In the present embodiment, the intra prediction unit 242 has a function of performing MRL intra prediction. The intra prediction unit 242 generates a prediction block by using any one of a plurality of reference pixel columns for prediction based on the reference pixel column information output by the entropy decoding unit 200.
[0083] The switching unit 243 switches between the inter-prediction block output by the inter-prediction unit 241 and the intra-prediction block output by the intra-prediction unit 242, and outputs one of the prediction blocks to the synthesis unit 220.
[0084] As described above, the decoding apparatus 2 according to the present embodiment uses a reference pixel column selected from a plurality of reference pixel columns including a reference pixel column adjacent to the block to be decoded and a reference pixel column not adjacent to the block to be decoded, and predicts the block to be decoded by intra prediction. An intra-prediction unit 242, an inverse quantization unit 211 that performs inverse quantization processing on the quantized transform coefficients output by the entropy decoding unit 200 and outputs the transform coefficients, and an inverse quantization unit 211 that performs inverse transform processing on the transform coefficients output by the inverse quantization unit 211 and outputs a prediction residual. The inverse transform unit 212 includes a transform basis determination unit 212a that determines a transform basis used in the inverse transform process based on a reference pixel column selected from a plurality of reference pixel columns.
[0085] Further, in the present embodiment, the entropy decoding unit 200 acquires reference pixel column information indicating a reference pixel column selected on the encoding side from a plurality of reference pixel columns without acquiring transform basis information indicating a transform basis. The transform basis determination unit 212a determines a transform basis based on the reference pixel column indicated by the acquired reference pixel column information.
[0086] Therefore, according to the decoding apparatus 2 according to the present embodiment, even when a flag is not transmitted to switch the transform basis, the encoding efficiency can be improved by applying a transform basis more suitable for the characteristics of the prediction residual.
[0087] Next, the operation flow of the decoding apparatus 2 according to the present embodiment will be described. FIG. 8 is a diagram showing the operation flow of the decoding apparatus 2 according to the present embodiment. Here, only the operation related to the determination of the transform basis is shown in the case where MRL intra prediction is applied.
[0088] As shown in FIG. 8, in step S21, the entropy decoding unit 200 decodes the encoded data and outputs the quantized transform coefficients corresponding to the block to be decoded to the inverse quantization unit 211. The entropy decoding unit 200 acquires the reference pixel column information indicating the reference pixel column selected on the encoding side without acquiring the transform basis information indicating the transform basis, and outputs the acquired reference pixel column information to the inverse transform unit 212 and the intra prediction unit 242.
[0089] In step S22, the intra prediction unit 242 refers to the reference pixel column indicated by the reference pixel column information, predicts the block to be decoded from the MRL intra prediction, and outputs the predicted block.
[0090] On the other hand, in step S23, the transform basis determination unit 212a of the inverse transform unit 212 identifies the reference pixel column from the reference pixel column information output by the entropy decoding unit 200, and determines the transform basis associated with the identified reference pixel column. For example, the transform basis determination unit 121a determines the transform basis from the number of the reference pixel column according to the association shown in Table 1.
[0091] In step S24, the inverse quantization unit 211 performs inverse quantization processing on the quantized transform coefficients output by the entropy decoding unit 200 and outputs the transform coefficients. The inverse transform unit 212 performs inverse transform processing on the transform coefficients output by the inverse quantization unit 211 using the transform basis determined in step S23, and outputs the prediction residual to the synthesis unit 220.
[0092] In step S25, the synthesis unit 220 synthesizes the prediction residual output by the inverse transform unit 212 and the predicted block output by the prediction unit 240 on a pixel-by-pixel basis to decode (reconstruct) the original block, and outputs the decoded block to the memory 230.
[0093] <Other Embodiments> In the above-described embodiment, an example of determining a conversion basis based only on the selected reference pixel column has been described when MRL intra prediction is applied. However, the conversion basis may be determined based not only on the selected reference pixel column but also on other criteria. For example, the conversion basis may be determined based on the selected reference pixel column and the block size.
[0094] That is, in the encoding apparatus 1 according to another embodiment, the conversion basis determination unit 121a determines a conversion basis used in the conversion process based on a reference pixel column selected from among a plurality of reference pixel columns and the block size of the block to be encoded. In the decoding apparatus 2 according to another embodiment, the conversion basis determination unit 212a determines a conversion basis used in the inverse conversion process based on a reference pixel column selected from among a plurality of reference pixel columns and the block size of the block to be decoded.
[0095] For example, when the block size is equal to or less than a predetermined size, the conversion basis determination units 121a and 212a adaptively determine a conversion basis from the reference pixel column according to the association as shown in Table 1. On the other hand, when the block size exceeds the predetermined size, the conversion basis determination units 121a and 212a determine a predetermined conversion basis (for example, DCT-2) regardless of the association as shown in Table 1.
[0096] A program for causing a computer to execute each process performed by the encoding apparatus 1 may be provided. A program for causing a computer to execute each process performed by the decoding apparatus 2 may be provided. The program may be recorded on a computer-readable medium. By using a computer-readable medium, it is possible to install the program in a computer. Here, the computer-readable medium on which the program is recorded may be a non-transitory recording medium. The non-transitory recording medium is not particularly limited, and may be, for example, a recording medium such as a CD-ROM or a DVD-ROM.
[0097] The circuits that execute each process performed by the symbolization device 1 may be integrated, and the symbolization device 1 may be configured by a semiconductor integrated circuit (chipset, SoC). The circuits that execute each process performed by the decoding device 2 may be integrated, and the decoding device 2 may be configured by a semiconductor integrated circuit (chipset, SoC).
[0098] As described above, the embodiments have been described in detail with reference to the drawings. However, the specific configuration is not limited to the above, and various design changes and the like can be made without departing from the gist.
Explanation of Signs
[0099] 1: Symbolization device 2: Decoding device 100: Block division unit 110: Prediction residual generation unit 120: Transformation / quantization unit 121: Transformation unit 121a: Transformation basis determination unit 122: Quantization unit 130: Entropy encoding unit 131: Scan control unit 140: Inverse quantization / inverse transformation unit 141: Inverse quantization unit 142: Inverse transformation unit 150: Synthesis unit 160: Memory 170: Prediction unit 171: Inter prediction unit 172: Intra prediction unit 172a: Reference pixel column selection unit 173: Switching unit 200: Entropy decoding unit 210: Inverse quantization / inverse transformation unit 211: Inverse quantization unit 212: Inverse transformation unit 212a: Transformation basis determination unit 220: Synthesis unit 230: Memory 240: Prediction unit 241: Inter prediction unit 242: Intra prediction unit 243: Switching unit
Claims
1. An encoding device that divides an image into blocks and encodes the image, an intra prediction unit that predicts the current block by intra prediction using a reference pixel sequence selected from a plurality of reference pixel sequences including a reference pixel sequence adjacent to the current block and a reference pixel sequence not adjacent to the current block; a conversion unit that performs a conversion process on a prediction residual that represents a difference between a prediction block output by the intra prediction unit and the encoding target block and outputs a conversion coefficient; a quantization unit that performs a quantization process on the transformation coefficients output by the transformation unit and outputs quantized transformation coefficients; an entropy coding unit that codes the quantized transform coefficients and outputs coded data; The entropy coding unit transmitting reference pixel sequence information indicating the reference pixel sequence selected from the plurality of reference pixel sequences to a decoding side; When the reference pixel row information indicates the adjacent reference pixel row, the encoding device performs control such that transformation base information indicating a transformation base used in the transformation process is not transmitted.
2. an entropy decoding unit that decodes the encoded data and outputs a quantized transform coefficient corresponding to a block to be decoded; an intra prediction unit that predicts the block to be decoded by intra prediction using a reference pixel sequence selected from a plurality of reference pixel sequences including a reference pixel sequence adjacent to the block to be decoded and a reference pixel sequence not adjacent to the block to be decoded; an inverse quantization unit that performs an inverse quantization process on the quantized transform coefficients output by the entropy decoding unit and outputs transform coefficients; an inverse transform unit that performs an inverse transform process on the transform coefficients output by the inverse quantization unit and outputs a prediction residual; the entropy decoding unit obtains reference pixel sequence information indicating the reference pixel sequence selected by an encoding side from the plurality of reference pixel sequences; A decoding device comprising: a decoder that performs control such that, when the reference pixel row information indicates the adjacent reference pixel row, transformation base information indicating a transformation base used in the inverse transformation process is not acquired.
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
Method and apparatus for video coding
WO2019194950A2