RU2794519C2 - Method and device for video encoding/decoding using in-block copying mode and method for bit stream transmission - Google Patents
Method and device for video encoding/decoding using in-block copying mode and method for bit stream transmission Download PDFInfo
- Publication number
- RU2794519C2 RU2794519C2 RU2022133873A RU2022133873A RU2794519C2 RU 2794519 C2 RU2794519 C2 RU 2794519C2 RU 2022133873 A RU2022133873 A RU 2022133873A RU 2022133873 A RU2022133873 A RU 2022133873A RU 2794519 C2 RU2794519 C2 RU 2794519C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- current block
- transform
- prediction
- kernel
- Prior art date
Links
Images
Abstract
Description
Область техники, к которой относится изобретениеThe field of technology to which the invention belongs
[1] Настоящее раскрытие сущности относится к способу и устройству кодирования/декодирования изображений и к способу передачи потока битов, а более конкретно, к способу и устройству для кодирования/декодирования изображения с использованием ядра преобразования и к способу передачи потока битов, сформированного за счет этого.[1] The present disclosure relates to a method and apparatus for encoding/decoding images and a method for transmitting a bitstream, and more specifically, to a method and apparatus for encoding/decoding an image using a transform kernel, and a method for transmitting a bitstream generated thereby. .
Уровень техникиState of the art
[2] В последнее время, спрос на высококачественные изображения высокого разрешения, к примеру, изображения высокой четкости (HD) и изображения сверхвысокой четкости (UHD) растет в различных областях техники. По мере того, как разрешение и качество данных изображений повышается, объем передаваемой информации или битов относительно увеличивается по сравнению с существующими данными изображений. Увеличение объема передаваемой информации или битов приводит к увеличению затрат на передачу и затрат на хранение.[2] Recently, the demand for high-quality high definition images, such as high definition (HD) images and ultra high definition (UHD) images, has been growing in various fields of technology. As the resolution and quality of image data increases, the amount of information or bits to be transmitted increases relatively compared to existing image data. An increase in the amount of information or bits to be transmitted results in an increase in transmission costs and storage costs.
[3] Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений для эффективной передачи, сохранения и воспроизведения информации относительно высококачественных изображений высокого разрешения.[3] Accordingly, there is a need for a high-performance image compression technology for efficiently transmitting, storing, and reproducing information regarding high-quality, high-resolution images.
Сущность изобретенияThe essence of the invention
Техническая задачаTechnical task
[4] Цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и устройство кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.[4] The purpose of the present disclosure is to provide an image encoding/decoding method and apparatus with improved encoding/decoding efficiency.
[5] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и устройство для кодирования/декодирования изображения посредством изменения способа выбора ядра преобразования согласно режиму кодирования.[5] Another object of the present disclosure is to provide a method and apparatus for encoding/decoding an image by changing the selection method of the transformation kernel according to the coding mode.
[6] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ передачи потока битов, формируемого посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.[6] Another purpose of the present disclosure is to provide a method for transmitting a bit stream generated by an image encoding method or apparatus according to the present disclosure.
[7] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, хранящий поток битов, сформированный посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.[7] Another purpose of the present disclosure is to provide a recording medium storing a bit stream generated by an image encoding method or apparatus according to the present disclosure.
[8] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, хранящий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством устройства декодирования изображений согласно настоящему раскрытию сущности.[8] Another purpose of the present disclosure is to provide a recording medium storing a bitstream received, decoded, and used in order to reconstruct an image by an image decoding apparatus according to the present disclosure.
[9] Технические проблемы, разрешаемые посредством настоящего раскрытия сущности, не ограничены вышеуказанными техническими проблемами, и другие технические проблемы, которые не описываются в данном документе, должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.[9] The technical problems solved by the present disclosure are not limited to the above technical problems, and other technical problems that are not described herein should become apparent to those skilled in the art from the description below.
Техническое решениеTechnical solution
[10] Способ декодирования изображений, осуществляемый посредством устройства декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, может включать в себя определение режима прогнозирования текущего блока на основе информации режима прогнозирования текущего блока, полученной из потока битов, получение блока коэффициентов преобразования текущего блока из потока битов, деквантование коэффициента преобразования, чтобы сформировать блок деквантованных коэффициентов преобразования, определение ядра преобразования для блока деквантованных коэффициентов преобразования и формирование остаточного блока для текущего блока посредством выполнения обратного преобразования в отношении блока деквантованных коэффициентов преобразования с использованием ядра преобразования[10] The image decoding method performed by the image decoding apparatus according to the embodiment for solving the above problems may include determining the prediction mode of the current block based on the prediction mode information of the current block obtained from the bit stream, obtaining a block of transformation coefficients of the current block from the stream bits, dequantizing the transform coefficient to generate a block of dequantized transform coefficients, determining a transform kernel for the block of dequantized transform coefficients, and generating a residual block for the current block by performing an inverse transform on the block of dequantized transform coefficients using the transform kernel
[11] Когда режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, ядро преобразования может определяться на основе информации индекса ядра преобразования, полученной из потока битов[11] When the prediction mode of the current block is an inter prediction mode or an intra prediction mode, a transform kernel may be determined based on the transform kernel index information obtained from the bit stream
[12] Когда режим прогнозирования текущего блока не представляет собой ни режим внешнего прогнозирования, ни режим внутреннего прогнозирования, информация индекса ядра преобразования может не получаться из потока битов и может извлекаться в качестве предварительно определенного значения.[12] When the prediction mode of the current block is neither the inter prediction mode nor the intra prediction mode, the transform kernel index information may not be obtained from the bit stream and may be extracted as a predetermined value.
[13] Когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), который ссылается на блок, расположенный в том же самом кадре, что и текущий блок, и декодированный перед текущим блоком, информация индекса ядра преобразования может не получаться из потока битов и может извлекаться в качестве предварительно определенного значения.[13] When the current block prediction mode is an intra-block copy (IBC) mode that refers to a block located in the same frame as the current block and decoded before the current block, transform kernel index information may not be obtained from the bitstream. and can be retrieved as a predefined value.
[14] Когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), информация индекса ядра преобразования может извлекаться в качестве значения, указывающего любое ядро преобразования между DCT2 и DCT7.[14] When the prediction mode of the current block is the intra-block copy (IBC) mode, the transform kernel index information can be extracted as a value indicating any transform kernel between DCT2 and DCT7.
[15] Определение ядра преобразования для блока деквантованных коэффициентов преобразования может включать в себя извлечение ядра преобразования текущего блока, на основе первой информации флага, указывающей то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внутреннего прогнозирования, включаться в поток битов, и второй информации флага, указывающей то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внешнего прогнозирования, включаться в поток битов, и первая информация флага и вторая информация флага может получаться из потока битов.[15] Determining the transform kernel for the block of dequantized transform coefficients may include extracting the transform kernel of the current block, based on the first flag information indicating whether or not the transform kernel index information of the current block encoded in intra prediction mode can be included in the bitstream. , and second flag information indicating whether or not transformation kernel index information of the current block encoded in the inter prediction mode can be included in the bitstream, and the first flag information and the second flag information can be obtained from the bitstream.
[16] Когда первая информация флага и вторая информация флага имеют первое значение, указывающее то, что информация индекса ядра преобразования не включается в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), ядро преобразования текущего блока может извлекаться на основе ширины и высоты текущего блока.[16] When the first flag information and the second flag information have a first value indicating that the transformation kernel index information is not included in the bitstream, and the prediction mode of the current block is an intra-block copy (IBC) mode, the transformation kernel of the current block may be extracted at based on the width and height of the current block.
[17] Ядро преобразования текущего блока может включать в себя ядро горизонтального преобразования и ядро вертикального преобразования, ядро горизонтального преобразования текущего блока может определяться на основе того, находится или нет ширина текущего блока в пределах предварительно определенного диапазона, и на основе сравнения между шириной и высотой текущего блока, и ядро вертикального преобразования текущего блока может определяться на основе того, находится или нет высота текущего блока в пределах предварительно определенного диапазона, и на основе сравнения между шириной и высотой текущего блока[17] The transformation kernel of the current block may include a horizontal transformation kernel and a vertical transformation kernel, the horizontal transformation kernel of the current block may be determined based on whether or not the width of the current block is within a predetermined range, and based on a comparison between width and height of the current box, and the vertical transformation kernel of the current box may be determined based on whether or not the height of the current box is within a predetermined range, and based on a comparison between the width and height of the current box
[18] Когда по меньшей мере одна из первой информации флага и второй информации флага имеет второе значение, указывающее то, что информация индекса ядра преобразования может включаться в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), ядро преобразования текущего блока может извлекаться на основе информации индекса ядра преобразования, и информация индекса ядра преобразования может не получаться из потока битов и может извлекаться в качестве предварительно определенного значения.[18] When at least one of the first flag information and the second flag information has a second value indicating that the transformation core index information can be included in the bit stream, and the current block prediction mode is an intra-block copy (IBC) mode, the transformation core of the current block may be extracted based on the transformation kernel index information, and the transformation kernel index information may not be obtained from the bit stream and may be extracted as a predetermined value.
[19] Когда информация индекса ядра преобразования не получается из потока битов, информация индекса ядра преобразования может извлекаться в качестве предварительно определенного значения. В это время, когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), который ссылается на блок, расположенный в том же самом кадре, что и текущий блок, и декодированный перед текущим блоком, информация индекса ядра преобразования может извлекаться в качестве первого значения. Когда режим прогнозирования текущего блока представляет собой режим прогнозирования, отличный от IBC-режима, информация индекса ядра преобразования может извлекаться в качестве второго значения, отличающегося от первого значения.[19] When the transformation kernel index information is not obtained from the bitstream, the transformation kernel index information may be extracted as a predetermined value. At this time, when the prediction mode of the current block is an intra-block copy (IBC) mode that refers to a block located in the same frame as the current block and decoded before the current block, the transform kernel index information can be extracted as the first values. When the prediction mode of the current block is a prediction mode other than the IBC mode, the transform kernel index information may be extracted as a second value different from the first value.
[20] Устройство декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем включает в себя запоминающее устройство и по меньшей мере один процессор. По меньшей мере один процессор может определять режим прогнозирования текущего блока на основе информации режима прогнозирования текущего блока, полученной из потока битов, получать блок коэффициентов преобразования текущего блока из потока битов, деквантовать коэффициент преобразования, чтобы сформировать блок деквантованных коэффициентов преобразования, определять ядро преобразования для блока деквантованных коэффициентов преобразования и формировать остаточный блок для текущего блока посредством выполнения обратного преобразования в отношении блока деквантованных коэффициентов преобразования с использованием ядра преобразования.[20] An image decoding apparatus according to an embodiment for solving the above problems includes a storage device and at least one processor. At least one processor may determine the prediction mode of the current block based on the prediction mode information of the current block obtained from the bitstream, obtain a block of transform coefficients of the current block from the bitstream, dequantize the transform coefficient to generate a block of dequantized transform coefficients, determine a transform kernel for the block dequantized transform coefficients, and generate a residual block for the current block by performing an inverse transform on the block of dequantized transform coefficients using a transform kernel.
[21] Когда режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, ядро преобразования может определяться на основе информации индекса ядра преобразования, полученной из потока битов.[21] When the prediction mode of the current block is an inter prediction mode or an intra prediction mode, a transform kernel may be determined based on transform kernel index information obtained from the bit stream.
[22] Помимо этого, способ кодирования изображений, осуществляемый посредством устройства кодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, включает в себя выбор режима прогнозирования текущего блока, формирование блока прогнозирования для текущего блока на основе выбранного режима прогнозирования, формирование остаточного блока для текущего блока на основе блока прогнозирования, выбор ядра преобразования для преобразования остаточного блока на основе режима прогнозирования, преобразование остаточного блока на основе ядра преобразования, чтобы сформировать блок коэффициентов преобразования, квантование блока коэффициентов преобразования, чтобы сформировать блок квантованных коэффициентов преобразования, и кодирование блока квантованных коэффициентов преобразования, чтобы сформировать поток битов.[22] In addition, the image encoding method performed by the image encoding apparatus of the embodiment for solving the above problems includes selecting a prediction mode of the current block, generating a prediction block for the current block based on the selected prediction mode, generating a residual block for the current block based on the prediction block, selecting a transform kernel for transforming the residual block based on the prediction mode, transforming the residual block based on the transform kernel to generate a transform coefficient block, quantizing the transform coefficient block to generate a block of quantized transform coefficients, and encoding the block of quantized transform coefficients, to form a bit stream.
[23] Когда режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, информация индекса ядра преобразования для ядра преобразования, используемого для преобразования остаточного блока, может включаться в поток битов.[23] When the prediction mode of the current block is an inter prediction mode or an intra prediction mode, transformation kernel index information for the transformation kernel used to transform the residual block may be included in the bitstream.
[24] Когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), преобразование остаточного блока может выполняться на основе предварительно определенного ядра преобразования, и информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, может не включаться в поток битов.[24] When the prediction mode of the current block is an intra-block copy (IBC) mode, transformation of the residual block may be performed based on a predetermined transformation kernel, and index information of the transformation kernel for the predetermined transformation kernel used to transform the residual block may not be included in bit stream.
[25] Первая информация флага, указывающая то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внутреннего прогнозирования, включаться в поток битов, и вторая информация флага, указывающая то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внешнего прогнозирования, включаться в поток битов, может включаться в поток битов. В это время, когда по меньшей мере одна из первой информации флага и второй информации флага имеет второе значение, указывающее то, что информация индекса ядра преобразования может включаться в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), преобразование остаточного блока может выполняться на основе предварительно определенного ядра преобразования. Кроме того, информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, может не включаться в поток битов[25] The first flag information indicating whether or not the transformation kernel index information of the current block encoded in the intra prediction mode can be included in the bitstream, and the second flag information indicating whether or not the transformation kernel index information of the current block encoded in the inter prediction mode, included in the bit stream, may be included in the bit stream. At this time, when at least one of the first flag information and the second flag information has a second value indicating that the transform core index information can be included in the bitstream, and the current block prediction mode is an intra-block copy (IBC) mode, the transform the residual block can be executed based on a predefined transformation kernel. In addition, the transformation kernel index information for the predetermined transformation kernel used to transform the residual block may not be included in the bitstream.
[26] Когда первая информация флага и вторая информация флага имеют первое значение, указывающее то, что информация индекса ядра преобразования не включается в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), преобразование остаточного блока может выполняться на основе предварительно определенного ядра преобразования. В это время, предварительно определенное ядро преобразования может извлекаться на основе ширины и высоты текущего блока. Кроме того, информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, может не включаться в поток битов.[26] When the first flag information and the second flag information have a first value indicating that the transformation core index information is not included in the bit stream, and the prediction mode of the current block is an intra-block copy (IBC) mode, the transformation of the residual block may be performed based on predefined transformation kernel. At this time, a predetermined transformation kernel may be extracted based on the width and height of the current block. In addition, the transformation kernel index information for the predetermined transformation kernel used to transform the residual block may not be included in the bitstream.
[27] Помимо этого, устройство кодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем может передавать поток битов, сформированный так, как описано выше.[27] In addition, the image encoding apparatus according to the embodiment, in order to solve the above problems, can transmit a bit stream generated as described above.
Преимущества изобретенияBenefits of the Invention
[28] Согласно настоящему раскрытию сущности, можно предоставлять способ и устройство кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.[28] According to the present disclosure, it is possible to provide an image encoding/decoding method and apparatus with improved encoding/decoding efficiency.
[29] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ и устройство для кодирования/декодирования изображения посредством изменения способа выбора ядра преобразования согласно режиму кодирования.[29] In addition, according to the present disclosure, it is possible to provide a method and apparatus for encoding/decoding an image by changing the selection method of the transformation kernel according to the encoding mode.
[30] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ передачи потока битов, формируемого посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.[30] In addition, according to the present disclosure, it is possible to provide a method for transmitting a bit stream generated by an image encoding method or apparatus according to the present disclosure.
[31] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, хранящий поток битов, сформированный посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.[31] In addition, according to the present disclosure, it is possible to provide a recording medium storing a bit stream generated by the image encoding method or apparatus according to the present disclosure.
[32] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, хранящий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством устройства декодирования изображений согласно настоящему раскрытию сущности.[32] In addition, according to the present disclosure, it is possible to provide a recording medium storing a bit stream received, decoded, and used to reconstruct an image by the image decoding apparatus according to the present disclosure.
[33] Специалисты в данной области техники должны принимать во внимание, что преимущества, которые могут достигаться через настоящее раскрытие сущности, не ограничены тем, что конкретно описано выше, и другие преимущества настоящего раскрытия сущности должны более ясно пониматься из подробного описания.[33] Those skilled in the art should appreciate that the benefits that can be achieved through the present disclosure are not limited to those specifically described above, and other benefits of the present disclosure should be more clearly understood from the detailed description.
Краткое описание чертежейBrief description of the drawings
[34] Фиг. 1 является видом, схематично иллюстрирующим систему кодирования видео согласно варианту осуществления.[34] FIG. 1 is a view schematically illustrating a video coding system according to an embodiment.
[35] Фиг. 2 является видом, схематично иллюстрирующим устройство кодирования изображений согласно варианту осуществления.[35] FIG. 2 is a view schematically illustrating an image encoding apparatus according to the embodiment.
[36] Фиг. 3 является видом, схематично иллюстрирующим устройство декодирования изображений согласно варианту осуществления.[36] FIG. 3 is a view schematically illustrating an image decoding apparatus according to the embodiment.
[37] Фиг. 4-11 являются видами, иллюстрирующими режим кодирования согласно варианту осуществления.[37] FIG. 4-11 are views illustrating an encoding mode according to an embodiment.
[38] Фиг. 12 является блок-схемой последовательности операций, иллюстрирующей способ кодирования и декодирования с использованием преобразования и обратного преобразования посредством устройства кодирования и устройства декодирования согласно варианту осуществления.[38] FIG. 12 is a flowchart illustrating a method for encoding and decoding using transformation and inverse transformation by an encoding apparatus and a decoding apparatus according to an embodiment.
[39] Фиг. 13 и 14 являются блок-схемами последовательности операций, иллюстрирующими способ выполнения преобразования и обратного преобразования посредством устройства кодирования и устройства декодирования согласно варианту осуществления.[39] FIG. 13 and 14 are flowcharts illustrating a method for performing conversion and inverse conversion by an encoder and a decoder according to the embodiment.
[40] Фиг. 15 является видом, иллюстрирующим ядро преобразования согласно варианту осуществления.[40] FIG. 15 is a view illustrating a transformation core according to an embodiment.
[41] Фиг. 16-18 являются видами, иллюстрирующими вариант осуществления выполнения кодирования и декодирования с использованием ядра преобразования посредством устройства кодирования и устройства декодирования.[41] FIG. 16-18 are views illustrating an embodiment of performing encoding and decoding using a transformation core by an encoding device and a decoding device.
[42] Фиг. 19-24 являются видами, иллюстрирующими другой вариант осуществления выполнения кодирования и декодирования с использованием ядра преобразования посредством устройства кодирования и устройства декодирования.[42] FIG. 19-24 are views illustrating another embodiment of performing encoding and decoding using a transform kernel by an encoding device and a decoding device.
[43] Фиг. 25 является видом, показывающим систему потоковой передачи контента согласно варианту осуществления.[43] FIG. 25 is a view showing a content streaming system according to an embodiment.
Оптимальный режим осуществления изобретенияOptimal Mode for Carrying Out the Invention
[44] В дальнейшем в этом документе подробно описываются варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи, так что они легко могут реализовываться специалистами в данной области техники. Тем не менее, настоящее раскрытие сущности может реализовываться во всевозможных формах и не ограничено вариантами осуществления, описанными в данном документе.[44] Hereinafter, embodiments of the present disclosure are described in detail with reference to the accompanying drawings so that they can be easily implemented by those skilled in the art. However, the present disclosure may be implemented in any number of forms and is not limited to the embodiments described herein.
[45] При описании настоящего раскрытия сущности, если определяется то, что подробное описание связанной известной функции или конструкции приводит к излишней неоднозначности объема настоящего раскрытия сущности, ее подробное описание опускается. На чертежах, части, не связанные с описанием настоящего раскрытия сущности, опускаются, и аналогичные ссылки с номерами присоединяются к аналогичным частям.[45] In describing the present disclosure, if it is determined that a detailed description of an associated known function or construct would unduly ambiguize the scope of the present disclosure, the detailed description thereof is omitted. In the drawings, parts not related to the description of the present disclosure are omitted and like reference numbers are attached to like parts.
[46] В настоящем раскрытии сущности, когда компонент "соединяется (connected)", "соединяется (coupled)" или "связывается (linked)" с другим компонентом, это может включать в себя не только непосредственную взаимосвязь на основе соединения, но также и косвенную взаимосвязь на основе соединения, в которой присутствует промежуточный компонент. Помимо этого, когда компонент "включает в себя" или "имеет" другие компоненты, это означает то, что другие компоненты могут включаться дополнительно, а не исключение других компонентов, если не указано иное.[46] In the present disclosure, when a component is "connected", "coupled", or "linked" to another component, this may include not only a direct connection-based relationship, but also an indirect connection-based relationship in which an intermediate component is present. In addition, when a component "includes" or "has" other components, it means that other components may be included in addition to, rather than excluding, other components, unless otherwise noted.
[47] В настоящем раскрытии сущности, термины "первый", "второй" и т.д. могут использоваться только для целей различения одного компонента от других компонентов и не ограничивают порядок или важность компонентов, если не указано иное. Соответственно, в пределах объема настоящего раскрытия сущности, первый компонент в одном варианте осуществления может называться "вторым компонентом" в другом варианте осуществления, и аналогично, второй компонент в одном варианте осуществления может называться "первым компонентом" в другом варианте осуществления.[47] In the present disclosure, the terms "first", "second", etc. may be used only for the purpose of distinguishing one component from other components and do not limit the order or importance of components unless otherwise noted. Accordingly, within the scope of this disclosure, the first component in one embodiment may be referred to as the "second component" in another embodiment, and similarly, the second component in one embodiment may be referred to as the "first component" in another embodiment.
[48] В настоящем раскрытии сущности, компоненты, которые отличаются друг от друга, имеют намерение ясно описывать каждый признак и не означают то, что компоненты обязательно разделяются. Таким образом, множество компонентов могут интегрироваться и реализовываться в одном аппаратном или программном модуле, или один компонент может распределяться и реализовываться во множестве аппаратных или программных модулей. Следовательно, даже если не указано иное, такие варианты осуществления, в которых компоненты интегрируются, или компонент распределяется, также включаются в объем настоящего раскрытия сущности.[48] In the present disclosure, components that are different from each other are intended to clearly describe each feature and do not mean that the components are necessarily separated. Thus, multiple components may be integrated and implemented in a single hardware or software module, or a single component may be distributed and implemented in multiple hardware or software modules. Therefore, even if not stated otherwise, such embodiments in which components are integrated or a component is distributed are also included within the scope of the present disclosure.
[49] В настоящем раскрытии сущности, компоненты, описанные в различных вариантах осуществления, не обязательно означают существенные компоненты, и некоторые компоненты могут представлять собой необязательные компоненты. Соответственно, вариант осуществления, состоящий из поднабора компонентов, описанных в варианте осуществления, также включается в объем настоящего раскрытия сущности. Помимо этого, варианты осуществления, включающие в себя другие компоненты, в дополнение к компонентам, описанным в различных вариантах осуществления, включаются в объем настоящего раскрытия сущности.[49] In the present disclosure, the components described in various embodiments do not necessarily mean essential components, and some components may be optional components. Accordingly, an embodiment consisting of a subset of the components described in the embodiment is also included within the scope of the present disclosure. In addition, embodiments including other components, in addition to the components described in various embodiments, are included within the scope of the present disclosure.
[50] Настоящее раскрытие сущности относится к кодированию и декодированию изображения, и термины, используемые в настоящем раскрытии сущности, могут иметь общий смысл, широко используемый в области техники, которой принадлежит настоящее раскрытие сущности, если не задаются впервые в настоящем раскрытии сущности.[50] The present disclosure relates to image encoding and decoding, and the terms used in the present disclosure may have a general meaning widely used in the technical field to which the present disclosure belongs, if not defined for the first time in the present disclosure.
[51] В дальнейшем в этом документе, настоящее раскрытие сущности раскрывает технологию кодирования видео/изображений. Способ кодирования/декодирования, раскрытый в настоящем раскрытии сущности и в его вариантах осуществления, является применимым к способам, раскрытым в стандарте универсального кодирования видео (VVC) или в стандарте кодирования видео/изображений следующего поколения.[51] Hereinafter, the present disclosure discloses a video/image coding technology. The encoding/decoding method disclosed in the present disclosure and its embodiments is applicable to the methods disclosed in the universal video coding (VVC) standard or the next generation video/picture coding standard.
[52] Настоящее раскрытие сущности предоставляет различные варианты осуществления, связанные с кодированием видео/изображений, и если не указано иное, варианты осуществления могут выполняться в комбинации между собой.[52] The present disclosure provides various embodiments related to video/image coding, and unless otherwise indicated, the embodiments may be performed in combination with each other.
[53] В настоящем раскрытии сущности, "кадр", в общем, означает единицу, представляющую одно изображение в конкретный период времени, и слайс/тайл представляет собой единицу кодирования, составляющую часть кадра, и один кадр может состоять из одного или более слайсов/тайлов. Помимо этого, слайс/тайл может включать в себя одну или более единиц дерева кодирования (CTU).[53] In the present disclosure, "frame" generally means a unit representing one image in a particular time period, and a slice/tile is a coding unit constituting a frame, and one frame may be composed of one or more slices/ tiles. In addition, a slice/tile may include one or more coding tree units (CTUs).
[54] В настоящем раскрытии сущности, "пиксел" или "пел" может означать наименьшую единицу, составляющую один кадр (или изображение). Помимо этого, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.[54] In the present disclosure, "pixel" or "pel" can mean the smallest unit constituting one frame (or image). In addition, "sample" can be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel/pixel value of a luma component, or only a pixel/pixel value of a chroma component.
[55] В настоящем раскрытии сущности, "единица" может представлять базовую единицу обработки изображений. Единица может включать в себя по меньшей мере одно из конкретной области кадра и информации, связанной с областью. Единица может использоваться взаимозаменяемо с такими терминами, как "массив выборок", "блок" или "зона" в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.[55] In the present disclosure, a "unit" may represent a basic unit of image processing. The unit may include at least one of a specific area of the frame and information associated with the area. The unit can be used interchangeably with terms such as "array of samples", "block" or "zone" in some cases. In general, an MxN block may include samples (or arrays of samples) or a set (or array) of transform coefficients of M columns and N rows.
[56] В настоящем раскрытии сущности, "текущий блок" может означать одно из "текущего блока кодирования", "текущей единицы кодирования", "целевого блока кодирования", "целевого блока декодирования" или "целевого блока обработки". Когда прогнозирование выполняется, "текущий блок" может означать "текущий блок прогнозирования" или "целевой блок прогнозирования". Когда преобразование (обратное преобразование)/квантование (деквантование) выполняется, "текущий блок" может означать "текущий блок преобразования" или "целевой блок преобразования". Когда фильтрация выполняется, "текущий блок" может означать "целевой блок фильтрации".[56] In the present disclosure, "current block" may mean one of "current coding block", "current coding unit", "target coding block", "target decoding block", or "target processing block". When prediction is performed, "current block" may mean "current prediction block" or "target prediction block". When transformation (inverse transformation)/quantization (dequantization) is performed, "current block" may mean "current transformation block" or "transformation target block". When filtering is performed, "current block" may mean "filtering target block".
[57] В настоящем раскрытии сущности, термин "/" и "" должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" и "A, B" может означать "A и/или B". Дополнительно, "A/B/C" и "A/B/C" может означать "по меньшей мере одно из A, B и/или C".[57] In the present disclosure, the terms "/" and "" are to be interpreted as indicating "and/or". For example, the expression "A/B" and "A, B" can mean "A and/or B". Additionally, "A/B/C" and "A/B/C" may mean "at least one of A, B and/or C".
[58] В настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только "A", 2) только "B" и/или 3) "как A, так и B". Другими словами, в настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "дополнительно или альтернативно".[58] In the present disclosure, the term "or" is to be interpreted as indicating "and/or". For example, the expression "A or B" may contain 1) only "A", 2) only "B", and/or 3) "both A and B". In other words, in the present disclosure, the term "or" is to be interpreted as indicating "in addition or alternatively".
[59] Общее представление системы кодирования видео [59] Overview of the video coding system
[60] Фиг. 1 является видом, показывающим систему кодирования видео согласно варианту осуществления. Система кодирования видео согласно варианту осуществления может включать в себя устройство 10 кодирования и устройство 20 декодирования. Устройство 10 кодирования может доставлять кодированную информацию или данные видео и/или изображений в устройство 20 декодирования в форме файла или потоковой передачи через цифровой носитель хранения данных или сеть.[60] FIG. 1 is a view showing a video coding system according to an embodiment. The video encoding system according to the embodiment may include an
[61] Устройство 10 кодирования согласно варианту осуществления может включать в себя формирователь 11 видеоисточников, модуль 12 кодирования и передатчик 13. Устройство 20 декодирования согласно варианту осуществления может включать в себя приемник 21, модуль 22 декодирования и модуль 23 рендеринга. Модуль 12 кодирования может называться "модулем кодирования видео/изображений", и модуль 22 декодирования может называться "модулем декодирования видео/изображений". Передатчик 13 может включаться в модуль 12 кодирования. Приемник 21 может включаться в модуль 22 декодирования. Модуль 23 рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.[61] The
[62] Формирователь 11 видеоисточников может получать видео/изображение через процесс захвата, синтезирования или формирования видео/изображения. Формирователь 11 видеоисточников может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.[62] The
[63] Модуль 12 кодирования может кодировать входное видео/изображение. Модуль 12 кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Модуль 12 кодирования может выводить кодированные данные (кодированную информацию видео/изображений) в форме потока битов.[63] The
[64] Передатчик 13 может передавать кодированную информацию или данные видео/изображений, выводимую в форме потока битов, в приемник 21 устройства 20 декодирования через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик 13 может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную сеть/сеть связи. Приемник 21 может извлекать/принимать поток битов из носителя хранения данных или сети и передавать поток битов в модуль 22 декодирования.[64] The
[65] Модуль 22 декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе модуля 12 кодирования.[65] The
[66] Модуль 23 рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.[66] The
[67] Общее представление устройства кодирования изображений [67] Overview of the image encoding device
[68] Фиг. 2 является видом, схематично показывающим устройство кодирования изображений согласно варианту осуществления. Как показано на фиг. 2, устройство 100 кодирования изображений может включать в себя модуль 110 сегментации изображений, вычитатель 115, преобразователь 120, квантователь 130, деквантователь 140, обратный преобразователь 150, сумматор 155, фильтр 160, запоминающее устройство 170, модуль 180 внешнего прогнозирования, модуль 185 внутреннего прогнозирования и энтропийный кодер 190. Модуль 180 внешнего прогнозирования и модуль 185 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Преобразователь 120, квантователь 130, деквантователь 140 и обратный преобразователь 150 могут включаться в остаточный процессор. Остаточный процессор дополнительно может включать в себя вычитатель 115.[68] FIG. 2 is a view schematically showing an image encoding apparatus according to the embodiment. As shown in FIG. 2, the
[69] Все или, по меньшей мере, часть из множества компонентов, конфигурирующих устройство 100 кодирования изображений, могут быть сконфигурированы посредством одного аппаратного компонента (например, кодера или процессора) в некоторых вариантах осуществления. Помимо этого, запоминающее устройство 170 может включать в себя буфер декодированных кадров (DPB) и может быть сконфигурировано посредством цифрового носителя хранения данных.[69] All or at least a portion of the plurality of components configuring the
[70] Модуль 110 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в устройство 100 кодирования изображений, на одну более единиц обработки. Например, единица обработки может называться "единицей кодирования (CU)". Единица кодирования может получаться посредством рекурсивной сегментации единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QT/BT/TT). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. Для сегментации единицы кодирования, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и/или троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, на основе эффективности кодирования согласно характеристикам изображений, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования, или единица кодирования большей глубины, полученной посредством сегментации наибольшей единицы кодирования, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, единица обработки процедуры кодирования может представлять собой единицу прогнозирования (PU) или единицу преобразования (TU). Единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.[70] The
[71] Модуль прогнозирования (модуль 180 внешнего прогнозирования или модуль 185 внутреннего прогнозирования) может выполнять прогнозирование относительно блока, который должен обрабатываться (текущего блока), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование, на основе текущего блока или CU. Модуль прогнозирования может формировать различную информацию, связанную с прогнозированием текущего блока, и передавать сформированную информацию в энтропийный кодер 190. Информация относительно прогнозирования может кодироваться в энтропийном кодере 190 и выводиться в форме потока битов.[71] The prediction unit (
[72] Модуль 185 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму внутреннего прогнозирования и/или технологии внутреннего прогнозирования. Режимы внутреннего прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 185 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.[72] The
[73] Модуль 180 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п. Опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 180 внешнего прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может передаваться в служебных сигналах посредством кодирования разности векторов движения и индикатора для предиктора вектора движения. Разность векторов движения может означать разность между вектором движения текущего блока и предиктором вектора движения.[73] The
[74] Модуль прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования и технологий прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или внешнее прогнозирование, но также и одновременно применять как внутреннее прогнозирование, так и внешнее прогнозирование, чтобы прогнозировать текущий блок. Способ прогнозирования с одновременным применением как внутреннего прогнозирования, так и внешнего прогнозирования для прогнозирования текущего блока может называться "комбинированным внешним и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может выполнять внутриблочное копирование (IBC) для прогнозирования текущего блока. Внутриблочное копирование может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC представляет собой способ прогнозирования текущего кадра с использованием ранее восстановленного опорного блока в текущем кадре в местоположении, разнесенном от текущего блока на предварительно определенное расстояние. Когда IBC применяется, местоположение опорного блока в текущем кадре может кодироваться как вектор (блочный вектор), соответствующий предварительно определенному расстоянию. IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично внешнему прогнозированию, в котором опорный блок извлекается внутри текущего кадра. Таким образом, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования, описанных в настоящем раскрытии сущности.[74] The prediction module may generate a prediction signal based on various prediction methods and prediction technologies described below. For example, the prediction module may not only apply intra prediction or inter prediction, but also apply both intra prediction and inter prediction at the same time to predict the current block. A prediction method that simultaneously applies both intra prediction and inter prediction to predict the current block may be referred to as "Combined Intra-Intra Prediction (CIIP)". In addition, the prediction module may perform intra-block copy (IBC) to predict the current block. In-block copying can be used for image/video encoding of game content and the like, such as on-screen content coding (SCC). IBC is a method for predicting the current frame using a previously reconstructed reference block in the current frame at a location separated from the current block by a predetermined distance. When IBC is applied, the location of the reference block in the current frame may be encoded as a vector (block vector) corresponding to a predetermined distance. The IBC essentially performs prediction within the current frame, but may be performed similarly to outer prediction in which the reference block is retrieved within the current frame. Thus, the IBC may use at least one of the external prediction technologies described in this disclosure.
[75] Прогнозный сигнал, сформированный посредством модуля прогнозирования, может использоваться для того, чтобы сформировать восстановленный сигнал или формировать остаточный сигнал. Вычитатель 115 может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания прогнозного сигнала (прогнозированного блока или массива прогнозных выборок), выводимого из модуля прогнозирования, из сигнала входного изображения (исходного блока или массива исходных выборок). Сформированный остаточный сигнал может передаваться в преобразователь 120.[75] The predictive signal generated by the prediction module may be used to generate a reconstructed signal or generate a residual signal. The
[76] Преобразователь 120 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, полученное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.[76]
[77] Квантователь 130 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 190. Энтропийный кодер 190 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 130 может перекомпоновывать квантованные коэффициенты преобразования в блочной форме в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме.[77] The
[78] Энтропийный кодер 190 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 190 может кодировать информацию, необходимую для восстановления видео/изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах слоев абстрагирования от сети (NAL) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Передаваемая в служебных сигналах информация, передаваемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут кодироваться через вышеописанную процедуру кодирования и включаться в поток битов.[78] The
[79] Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 190, и/или модуль хранения (не показан), хранящий сигнал, могут включаться в качестве внутреннего/внешнего элемента устройства 100 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 190.[79] The bit stream may be transmitted over a network or may be stored on a digital storage medium. The network may include a broadcast network and/or a communications network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like. A transmitter (not shown) transmitting a signal output from the
[80] Квантованные коэффициенты преобразования, выводимые из квантователя 130, могут использоваться для того, чтобы сформировать остаточный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 140 и обратный преобразователь 150.[80] The quantized transform coefficients output from
[81] Сумматор 155 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 180 внешнего прогнозирования или модуля 185 внутреннего прогнозирования, с тем чтобы сформировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 155 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для внешнего прогнозирования следующего кадра посредством фильтрации, как описано ниже.[81] The
[82] Фильтр 160 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 160 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 170, а именно, в DPB запоминающего устройства 170. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 160 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 190, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 190 и выводиться в форме потока битов.[82] The
[83] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 170, может использоваться в качестве опорного кадра в модуле 180 внешнего прогнозирования. Когда внешнее прогнозирование применяется через устройство 100 кодирования изображений, рассогласование прогнозирования между устройством 100 кодирования изображений и устройством декодирования изображений может исключаться, и эффективность кодирования может повышаться.[83] The modified reconstructed frame transmitted to the
[84] DPB запоминающего устройства 170 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 180 внешнего прогнозирования. Запоминающее устройство 170 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 180 внешнего прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 170 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 185 внутреннего прогнозирования.[84] The DPB of the
[85] Общее представление устройства декодирования изображений [85] Overview of the image decoding apparatus
[86] Фиг. 3 является видом, схематично показывающим устройство декодирования изображений согласно варианту осуществления. Как показано на фиг. 3, устройство 200 декодирования изображений может включать в себя энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, запоминающее устройство 250, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования. Модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Деквантователь 220 и обратный преобразователь 230 могут включаться в остаточный процессор.[86] FIG. 3 is a view schematically showing an image decoding apparatus according to the embodiment. As shown in FIG. 3, the
[87] Все или, по меньшей мере, часть из множества компонентов, конфигурирующих устройство 200 декодирования изображений, могут быть сконфигурированы посредством аппаратного компонента (например, декодера или процессора) согласно варианту осуществления. Помимо этого, запоминающее устройство 250 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных.[87] All or at least a portion of the plurality of components configuring the
[88] Устройство 200 декодирования изображений, которое принимает поток битов, включающий в себя информацию видео/изображений, может восстанавливать изображение посредством выполнения процесса, соответствующего процессу, выполняемому посредством устройства 100 кодирования изображений по фиг. 2. Например, устройство 200 декодирования изображений может выполнять декодирование с использованием единицы обработки, применяемой в устройстве кодирования изображений. Таким образом, единица обработки декодирования, например, может представлять собой единицу кодирования. Единица кодирования может получаться посредством сегментации единицы дерева кодирования или наибольшей единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством устройства 200 декодирования, может воспроизводиться посредством устройства воспроизведения.[88] The
[89] Устройство 200 декодирования изображений может принимать сигнал, выводимый из устройства кодирования изображений по фиг. 2 в форме потока битов. Принимаемый сигнал может декодироваться через энтропийный декодер 210. Например, энтропийный декодер 210 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Устройство декодирования изображений дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут декодироваться посредством процедуры декодирования и получаться из потока битов. Например, энтропийный декодер 210 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных значений синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать бин, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования соседнего блока и целевого блока декодирования или информации символа/бина, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для бина посредством прогнозирования вероятности появления бина согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/бина для контекстной модели следующего символа/бина после определения контекстной модели. Информация, связанная с прогнозированием из информации, декодированной посредством энтропийного декодера 210, может предоставляться в модуль прогнозирования (модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 210, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в деквантователь 220. Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 210, может предоставляться в фильтр 240. Между тем, приемник (не показано) для приема сигнала, выводимого из устройства кодирования изображений, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента устройства 200 декодирования изображений, или приемник может представлять собой компонент энтропийного декодера 210.[89] The
[90] Между тем, устройство декодирования изображений согласно настоящему раскрытию сущности может называться "устройством декодирования видео/изображений/кадров". Устройство декодирования изображений может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 210. Выборочный декодер может включать в себя по меньшей мере одно из деквантователя 220, обратного преобразователя 230, сумматора 235, фильтра 240, запоминающего устройства 250, модуля 260 внешнего прогнозирования или модуля 265 внутреннего прогнозирования.[90] Meanwhile, the image decoding apparatus according to the present disclosure may be referred to as a "video/image/frame decoding apparatus". The image decoding apparatus can be classified into an information decoder (video/image/frame information decoder) and a sampling decoder (video/image/frame samples decoder). The information decoder may include an
[91] Деквантователь 220 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 220 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в устройстве кодирования изображений. Деквантователь 220 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.[91] The
[92] Обратный преобразователь 230 может обратно преобразовывать коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).[92] The
[93] Модуль прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 210, и может определять конкретный режим внутреннего/внешнего прогнозирования.[93] The prediction module may perform prediction for the current block and may generate a predicted block including prediction samples for the current block. The prediction module may determine whether intra prediction or inter prediction is applied to the current block based on the prediction information output from the
[94] Идентично тому, что описано в модуле прогнозирования устройства 100 кодирования изображений, модуль прогнозирования может формировать прогнозный сигнал на основе различных способов (технологий) прогнозирования, которые описываются ниже.[94] Identical to that described in the prediction module of the
[95] Например, единица прогнозирования может применять внутреннее прогнозирование или внешнее прогнозирование или одновременно применять внутреннее прогнозирование и внешнее прогнозирование для прогнозирования одного блока. Это может называться "комбинированным внешним и внутренним прогнозированием (CIIIP)". Помимо этого, модуль прогнозирования может выполнять внутриблочное копирование (IBC) для прогнозирования блока. Внутриблочное копирование может использоваться для того, чтобы кодировать изображение/видео контента, такого как игра, к примеру, выполнять кодирование экранного контента (SCC). IBC может выполняться аналогично внешнему прогнозированию в том, что прогнозирование выполняется в текущем кадре, но опорный блок извлекается из текущего кадра. Таким образом, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования, описанных в настоящем документе.[95] For example, the prediction unit may apply intra prediction or inter prediction, or simultaneously apply intra prediction and inter prediction to predict one block. This may be referred to as "combined external and internal prediction (CIIIP)". In addition, the prediction module may perform intra-block copy (IBC) to predict the block. In-block copying can be used to encode image/video content such as a game, for example, to perform screen content coding (SCC). The IBC may be performed similarly to inter prediction in that the prediction is performed in the current frame, but the reference block is retrieved from the current frame. Thus, the IBC may use at least one of the external prediction technologies described herein.
[96] Модуль 265 внутреннего прогнозирования может прогнозировать текущий блок со ссылкой на выборки в текущем кадре. Описание модуля 185 внутреннего прогнозирования в равной степени применяется к модулю 265 внутреннего прогнозирования. Выборки, на которые ссылаются, могут быть расположены в окрестности (рядом) или с разнесением от текущего блока. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 265 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, с использованием режима прогнозирования, применяемого к соседнему блоку.[96] The
[97] Модуль 260 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 260 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим внешнего прогнозирования для текущего блока.[97] The
[98] Сумматор 235 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 260 внешнего прогнозирования и/или модуль 265 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Описание сумматора 155 является в равной степени применимым к сумматору 235. Сумматор 235 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для внешнего прогнозирования следующего кадра посредством фильтрации, как описано ниже.[98] The
[99] Фильтр 240 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 240 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 250, а именно, в DPB запоминающего устройства 250. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.[99] The
[100] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 250, может использоваться в качестве опорного кадра в модуле 260 внешнего прогнозирования. Запоминающее устройство 250 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 внешнего прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 250 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 265 внутреннего прогнозирования.[100] The (modified) reconstructed frame stored in the DPB of the
[101] В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 160, модуле 180 внешнего прогнозирования и модуле 185 внутреннего прогнозирования устройства 100 кодирования изображений могут в равной степени или соответствующим образом применяться к фильтру 240, модулю 260 внешнего прогнозирования и модулю 265 внутреннего прогнозирования устройства 200 декодирования изображений, соответственно, и вариантов осуществления, описанных в фильтре 240, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования устройства 200 декодирования изображений в равной степени или соответствующим образом применяются к фильтру 160, модулю 180 внешнего прогнозирования и модулю 185 внутреннего прогнозирования устройства 100 кодирования изображений, соответственно.[101] In the present disclosure, the embodiments described in the
[102] Общее представление внутреннего прогнозирования [102] Intra prediction overview
[103] В дальнейшем в этом документе описывается способ внутреннего прогнозирования согласно варианту осуществления. Внутреннее прогнозирование может указывать прогнозирование, которое формирует прогнозные выборки для текущего блока на основе опорных выборок в кадре, которому принадлежит текущий блок (далее называется "текущим кадром"). Когда внутреннее прогнозирование применяется к текущему блоку, соседние опорные выборки, которые должны использоваться для внутреннего прогнозирования текущего блока, могут извлекаться. Соседние опорные выборки текущего блока могут включать в себя выборку, смежную с левой границей текущего блока, имеющего размер nWxnH, и сумму 2xnH выборок, граничащих с левой нижней частью, выборки, смежной с верхней границей текущего блока, и сумму 2xnW выборок, граничащих с правой верхней частью, и одну выборку, граничащую с левой верхней частью относительно текущего блока. Альтернативно, соседние опорные выборки текущего блока могут включать в себя множество столбцов верхних соседних выборок и множество строк левых соседних выборок. Помимо этого, соседние опорные выборки текущего блока могут включать в себя сумму nH выборок, смежных с правой границей текущего блока, имеющего размер nWxnH, сумму nW выборок, смежных с нижней границей текущего блока, и одну выборку, граничащую с правой нижней относительно текущего блока. Между тем, когда ISP, которая описывается ниже, применяется, соседние опорные выборки могут извлекаться в единицах субсегментов.[103] Hereinafter, this document describes an intra prediction method according to an embodiment. The intra prediction may indicate a prediction that generates prediction samples for the current block based on the reference samples in the frame to which the current block belongs (hereinafter referred to as the "current frame"). When intra prediction is applied to the current block, adjacent reference samples to be used for intra prediction of the current block may be extracted. Adjacent reference samples of the current block may include the sample adjacent to the left boundary of the current block having size nWxnH and the sum of the 2xnH samples adjacent to the lower left, the samples adjacent to the upper boundary of the current block and the sum of the 2xnW samples adjacent to the right the top part, and one selection bordering the left top part relative to the current block. Alternatively, the adjacent reference samples of the current block may include a plurality of columns of top neighbor samples and a plurality of rows of left neighbor samples. In addition, adjacent reference samples of the current block may include the sum of nH samples adjacent to the right edge of the current block having size nWxnH, the sum of nW samples adjacent to the bottom edge of the current block, and one sample bordering the bottom right of the current block. Meanwhile, when the ISP, which is described below, is applied, adjacent reference samples may be extracted in units of sub-segments.
[104] С другой стороны, некоторые соседние опорные выборки текущего блока еще не декодировались или могут не быть доступными. В этом случае, устройство декодирования может конструировать соседние опорные выборки, которые должны использоваться для прогнозирования, посредством подстановки вместо недоступных выборок доступных выборок. Альтернативно, соседние опорные выборки, которые должны использоваться для прогнозирования, могут конструироваться с использованием интерполяции доступных выборок.[104] On the other hand, some adjacent reference samples of the current block have not yet been decoded or may not be available. In this case, the decoder may construct adjacent reference samples to be used for prediction by substituting the available samples for the unavailable samples. Alternatively, adjacent reference samples to be used for prediction may be constructed using an interpolation of the available samples.
[105] Когда соседние опорные выборки извлекаются, (i) прогнозная выборка может извлекаться на основе среднего или интерполяции соседних опорных выборок текущего блока, и (ii) прогнозная выборка может извлекаться на основе опорной выборки, присутствующей в конкретном направлении (прогнозирования) относительно прогнозной выборки из соседних опорных выборок текущего блока. Случай (i) может называться "ненаправленным режимом" или "неугловым режимом", и случай (ii) может называться "направленным режимом" или "угловым режимом". Помимо этого, прогнозная выборка может формироваться через интерполяцию со второй соседней выборкой и первой соседней выборкой, расположенной в противоположном направлении направления прогнозирования режима внутреннего прогнозирования текущего блока на основе прогнозной выборки текущего блока из соседних опорных выборок. Вышеописанный случай может называться "внутренним прогнозированием с линейной интерполяцией (LIP)". Помимо этого, выборки прогнозирования сигналов цветности могут формироваться на основе выборок сигнала яркости с использованием линейной модели. Вышеописанный случай может называться "LM-режимом". Помимо этого, временная прогнозная выборка текущего блока может извлекаться на основе фильтрованных соседних опорных выборок, и прогнозная выборка текущего блока может извлекаться посредством суммирования со взвешиванием временной прогнозной выборки и по меньшей мере одной опорной выборки, извлекаемой согласно режиму внутреннего прогнозирования из существующих соседних опорных выборок, т.е. нефильтрованных соседних опорных выборок. Вышеописанный случай может называться "позиционно-зависимым внутренним прогнозированием (PDPC)". Помимо этого, опорная выборочная линия с наибольшей точностью прогнозирования может выбираться из нескольких соседних опорных выборочных линий текущего блока, чтобы извлекать прогнозную выборку с использованием опорной выборки, расположенной в направлении прогнозирования в соответствующей линии, и, в это время, внутреннее прогнозирующее кодирование может выполняться посредством указания (передачи в служебных сигналах) используемой опорной выборочной линии для устройства декодирования. Вышеописанный случай может называться "внутренним прогнозированием на основе множественной опорной линии (MRL)" или "внутренним прогнозированием на основе MRL". Помимо этого, текущий блок может разделяться на вертикальные или горизонтальные субсегменты, чтобы выполнять внутреннее прогнозирование на основе идентичного режима внутреннего прогнозирования, и соседние опорные выборки могут извлекаться и использоваться в единицах субсегментов. Таким образом, в этом случае, режим внутреннего прогнозирования для текущего блока идентично применяется к субсегментам, и соседние опорные выборки извлекаются и используются в единицах субсегментов, за счет этого повышая производительность внутреннего прогнозирования. Такой способ прогнозирования может называться "внутренним прогнозированием на основе внутренних субсегментов (ISP) или на основе ISP". Помимо этого, когда направление прогнозирования на основе прогнозной выборки указывает пространство между соседними опорными выборками, т.е. когда направление прогнозирования указывает дробную выборочную позицию, значение прогнозной выборки может извлекаться через интерполяцию множества опорных выборок, расположенных около направления прогнозирования (около дробной выборочной позиции). Вышеописанные способы внутреннего прогнозирования могут называться "типом внутреннего прогнозирования", чтобы отличаться от режима внутреннего прогнозирования. Помимо этого, после того, как прогнозный сигнал для субдискретизированного пиксельного набора текущего блока формируется с использованием восстановленных соседних пикселов, расположенных слева и вершина текущего блока, сформированный прогнозный сигнал и соседнее выборочное значение могут интерполироваться в вертикальном и горизонтальном направлениях, чтобы сформировать прогнозный сигнал, имеющий исходный размер, за счет этого применяя матричное взвешенное внутреннее прогнозирование (MIP) для выполнения внутреннего прогнозирования текущего блока.[105] When adjacent reference samples are extracted, (i) a predictive sample may be derived based on an average or an interpolation of adjacent reference samples of the current block, and (ii) a predictive sample may be derived based on a reference sample present in a particular direction (prediction) relative to the predictive sample from neighboring reference samples of the current block. Case (i) may be referred to as "non-directional mode" or "non-angular mode", and case (ii) may be referred to as "directional mode" or "angular mode". In addition, the prediction sample may be generated through interpolation with a second neighbor sample and a first neighbor sample located in the opposite direction of the prediction direction of the intra prediction mode of the current block based on the prediction sample of the current block from the neighbor reference samples. The above case may be referred to as "linear interpolation intra prediction (LIP)". In addition, the chrominance signal prediction samples may be generated based on the luminance signal samples using a linear model. The above case may be referred to as "LM mode". In addition, the temporal prediction sample of the current block may be derived based on the filtered neighbor reference samples, and the prediction sample of the current block may be derived by weighting the temporal prediction sample and at least one reference sample derived according to the intra prediction mode from the existing neighbor reference samples, those. unfiltered neighboring reference samples. The above case may be referred to as "position dependent intra prediction (PDPC)". In addition, the reference sample line with the highest prediction accuracy may be selected from a plurality of adjacent reference sample lines of the current block to extract the prediction sample using the reference sample located in the prediction direction in the corresponding line, and, at this time, intra prediction coding may be performed by indications (transmissions in service signals) of the reference sample line used for the decoding device. The above case may be referred to as "multiple reference line (MRL) intra prediction" or "MRL intra prediction". In addition, the current block may be divided into vertical or horizontal subsegments to perform intra prediction based on the same intra prediction mode, and adjacent reference samples may be extracted and used in units of subsegments. Thus, in this case, the intra prediction mode for the current block is identically applied to subsegments, and adjacent reference samples are extracted and used in subsegment units, thereby improving intra prediction performance. Such a prediction method may be referred to as "intra-sub-segment prediction (ISP) or ISP-based". In addition, when the direction of prediction based on the prediction sample indicates the space between adjacent reference samples, i. e. when the prediction direction indicates a fractional sample position, the value of the prediction sample can be obtained through interpolation of a plurality of reference samples located near the prediction direction (near the fractional sample position). The above-described intra prediction methods may be referred to as "intra prediction type" to be distinguished from the intra prediction mode. In addition, after the prediction signal for the downsampled pixel set of the current block is generated using the reconstructed neighboring pixels located at the left and the top of the current block, the generated prediction signal and the neighboring sample value can be interpolated in the vertical and horizontal directions to generate a prediction signal having the original size, thereby applying matrix weighted intra prediction (MIP) to perform intra prediction of the current block.
[106] Тип внутреннего прогнозирования может называться с помощью различных терминов, таких как схема внутреннего прогнозирования или дополнительный режим внутреннего прогнозирования. Например, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя по меньшей мере одно из LIP, PDPC, MRL, ISP или MIP. Информация относительно типа внутреннего прогнозирования может кодироваться посредством устройства кодирования, включаться в поток битов и передаваться в служебных сигналах в устройство декодирования. Информация относительно типа внутреннего прогнозирования может реализовываться в различных формах, к примеру, как информация флага, указывающая то, следует или нет применять каждый тип внутреннего прогнозирования, либо как информация индекса, указывающая один из нескольких типов внутреннего прогнозирования.[106] The type of intra prediction may be referred to by various terms such as an intra prediction scheme or an additional intra prediction mode. For example, the intra prediction type (or optional intra prediction mode) may include at least one of LIP, PDPC, MRL, ISP, or MIP. Information regarding the type of intra prediction may be encoded by an encoder, included in a bitstream, and signaled to a decoder. The information regarding the type of intra prediction may be implemented in various forms, for example, as flag information indicating whether or not to apply each type of intra prediction, or as index information indicating one of several types of intra prediction.
[107] Между тем, при необходимости, постфильтрация может выполняться относительно извлеченной прогнозной выборки. В частности, процедура внутреннего прогнозирования может включать в себя этап определения режима/типа внутреннего прогнозирования, этап извлечения соседних опорных выборок и этап извлечения прогнозных выборок на основе режима/типа внутреннего прогнозирования. Помимо этого, при необходимости, постфильтрация может выполняться относительно извлеченной прогнозной выборки.[107] Meanwhile, if necessary, post-filtering may be performed on the extracted predictive sample. Specifically, the intra prediction procedure may include an intra prediction mode/type determination step, an adjacent reference sample extraction step, and an intra prediction mode/type prediction step. In addition, if necessary, post-filtering can be performed on the extracted predictive sample.
[108] В дальнейшем в этом документе описывается способ кодирования видео/изображений на основе внутреннего прогнозирования. Во-первых, устройство кодирования выполняет внутреннее прогнозирование относительно текущего блока. Устройство кодирования может извлекать режим/тип внутреннего прогнозирования для текущего блока, извлекать соседние опорные выборки текущего блока и формировать прогнозные выборки в текущем блоке на основе режима/типа внутреннего прогнозирования и соседних опорных выборок. Здесь, процедуры определения режима/типа внутреннего прогнозирования, извлечения соседних опорных выборок и формирования прогнозных выборок могут одновременно выполняться, или любая процедура может выполняться перед другими процедурами. Между тем, когда нижеописанная процедура фильтрации прогнозных выборок выполняется, модуль 185 внутреннего прогнозирования дополнительно может включать в себя фильтр прогнозных выборок. Устройство кодирования может определять режим/тип, применяемый к текущему блоку, из множества режимов/типов внутреннего прогнозирования. Устройство кодирования может сравнивать функцию затрат на искажение в зависимости от скорости передачи (RD) для режимов/типов внутреннего прогнозирования и определять оптимальный режим/тип внутреннего прогнозирования для текущего блока.[108] Hereinafter, this document describes a video/image coding method based on intra prediction. First, the encoder performs intra prediction with respect to the current block. The encoder may extract the intra prediction mode/type for the current block, extract adjacent reference samples of the current block, and generate prediction samples in the current block based on the intra prediction mode/type and adjacent reference samples. Here, the procedures for determining the mode/type of intra prediction, extracting adjacent reference samples, and generating prediction samples may be simultaneously performed, or any procedure may be performed before other procedures. Meanwhile, when the predictive sample filtering procedure described below is executed, the
[109] Между тем, устройство кодирования может выполнять процедуру фильтрации прогнозных выборок. Фильтрация прогнозных выборок может называться "постфильтрацией". Посредством процедуры фильтрации прогнозных выборок, некоторые или все прогнозные выборки могут фильтроваться. В некоторых случаях, процедура фильтрации прогнозных выборок может опускаться.[109] Meanwhile, the encoder may perform a filtering procedure on the predictive samples. Filtering predictive samples may be referred to as "post-filtering". Through the prediction samples filtering procedure, some or all of the prediction samples may be filtered. In some cases, the filtering procedure for predictive samples may be omitted.
[110] Затем, устройство кодирования может формировать остаточные выборки для текущего блока на основе прогнозных выборок. Устройство кодирования может сравнивать прогнозные выборки в исходных выборках текущего блока на основе фазы и извлекать остаточные выборки.[110] Next, the encoder may generate residual samples for the current block based on the predictive samples. The encoder may compare the predictive samples in the original samples of the current block on a phase basis and extract the residual samples.
[111] Затем, устройство кодирования может кодировать информацию изображений, включающую в себя информацию относительно внутреннего прогнозирования (информацию прогнозирования) и остаточную информацию относительно остаточных выборок. Информация прогнозирования может включать в себя информацию режима внутреннего прогнозирования и информацию типа внутреннего прогнозирования. Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Выходной поток битов может передаваться в устройство декодирования через носитель хранения данных или сеть.[111] Next, the encoding apparatus may encode image information including information regarding intra prediction (prediction information) and residual information regarding residual samples. The prediction information may include intra prediction mode information and intra prediction type information. The encoding device may output the encoded image information in the form of a bit stream. The output bit stream may be transmitted to the decoder via a storage medium or a network.
[112] Остаточная информация может включать в себя синтаксис остаточного кодирования, который описывается ниже. Устройство кодирования может преобразовывать/квантовать остаточные выборки и извлекать квантованные коэффициенты преобразования. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования.[112] The residual information may include a residual encoding syntax, which is described below. The encoder may transform/quantize the residual samples and extract the quantized transform coefficients. The residual information may include information regarding the quantized transform coefficients.
[113] Между тем, как описано выше, устройство кодирования изображений может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок). С этой целью, устройство кодирования изображений может выполнять обратное квантование/обратное преобразование относительно квантованных коэффициентов преобразования и извлекать (модифицированные) остаточные выборки. Причина преобразования/квантования остаточных выборок и затем выполнения обратного квантования/обратного преобразования состоит в том, чтобы извлекать идентичные остаточные выборки в качестве остаточных выборок, извлекаемых посредством устройства декодирования, как описано выше. Устройство кодирования может формировать восстановленный блок, включающий в себя восстановленные выборки для текущего блока, на основе прогнозных выборок и (модифицированных) остаточных выборок. На основе восстановленного блока, может формироваться восстановленный кадр для текущего кадра. Как описано выше, процедура внутриконтурной фильтрации может применяться к восстановленному кадру.[113] Meanwhile, as described above, the image encoding apparatus may generate a reconstructed frame (including reconstructed samples and a reconstructed block). To this end, the image coding apparatus may perform inverse quantization/inverse transformation with respect to the quantized transform coefficients and extract (modified) residual samples. The reason for transforming/quantizing the residual samples and then performing inverse quantization/inverse transform is to extract identical residual samples as residual samples extracted by the decoder as described above. The encoder may generate a reconstructed block including reconstructed samples for the current block based on the predictive samples and the (modified) residual samples. Based on the reconstructed block, a reconstructed frame for the current frame may be generated. As described above, the in-loop filtering procedure may be applied to the reconstructed frame.
[114] В дальнейшем в этом документе описывается способ кодирования видео/изображений на основе внутреннего прогнозирования. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования.[114] Hereinafter, this document describes a video/image coding method based on intra prediction. The decoding device may perform an operation corresponding to the operation performed by the encoding device.
[115] Сначала, устройство декодирования может извлекать режим/тип внутреннего прогнозирования для текущего блока на основе принимаемой информации прогнозирования (информации режима/типа внутреннего прогнозирования. Устройство декодирования может извлекать соседние опорные выборки текущего блока. Устройство декодирования может формировать прогнозные выборки в текущем блоке на основе режима/типа внутреннего прогнозирования и соседних опорных выборок. В этом случае, устройство декодирования изображений может выполнять процедуру фильтрации прогнозных выборок. Фильтрация прогнозных выборок может называться "постфильтрацией". Посредством процедуры фильтрации прогнозных выборок, некоторые или все прогнозные выборки могут фильтроваться. В некоторых случаях, процедура фильтрации прогнозных выборок может опускаться.[115] First, the decoding apparatus may derive the intra prediction mode/type for the current block based on the received prediction information (intra prediction mode/type information). The decoding apparatus may extract adjacent reference samples of the current block. based on the intra prediction mode/type and adjacent reference samples.In this case, the image decoding apparatus may perform a prediction sample filtering procedure.Filtering of the prediction samples may be referred to as "post-filtering."Through the prediction sample filtering procedure, some or all of the prediction samples may be filtered.In some cases, the procedure for filtering predictive samples may be omitted.
[116] Устройство декодирования изображений может формировать остаточные выборки для текущего блока на основе принимаемой остаточной информации (S640). Устройство декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и извлекать восстановленный блок, включающий в себя восстановленные выборки. На основе восстановленного блока, может формироваться восстановленный кадр для текущего кадра. Процедура внутриконтурной фильтрации дополнительна применимый к восстановленному кадру.[116] The image decoding apparatus may generate residual samples for the current block based on the received residual information (S640). The decoder may generate reconstructed samples for the current block based on the predictive samples and the residual samples, and extract a reconstructed block including the reconstructed samples. Based on the reconstructed block, a reconstructed frame for the current frame may be generated. The in-loop filtering procedure is additionally applicable to the reconstructed frame.
[117] Информация режима внутреннего прогнозирования может включать в себя, например, информацию флага (например, intra_luma_mpm_flag), указывающую то, применяется либо нет наиболее вероятный режим (MPM) или оставшийся режим к текущему блоку, и когда MPM применяется к текущему блоку, информация режима прогнозирования дополнительно может включать в себя информацию индекса (например, intra_luma_mpm_idx), указывающую один из возможных вариантов режимов внутреннего прогнозирования (возможных MPM-вариантов). Возможные варианты режимов внутреннего прогнозирования (возможные MPM-варианты) могут конфигурировать список возможных MPM-вариантов или MPM-список. Например, список возможных MPM-вариантов может включать в себя режим внутреннего прогнозирования соседнего блока или предварительно установленного базового режима внутреннего прогнозирования. Помимо этого, когда MPM не применяется к текущему блоку, информация режима внутреннего прогнозирования дополнительно может включать в себя информацию оставшихся режимов (например, intra_luma_mpm_remainder), указывающую один из оставшихся режимов внутреннего прогнозирования, за исключением возможных вариантов режимов внутреннего прогнозирования (возможных MPM-вариантов). Устройство декодирования может определять режим внутреннего прогнозирования текущего блока на основе информации режима внутреннего прогнозирования.[117] The intra prediction mode information may include, for example, flag information (eg, intra_luma_mpm_flag) indicating whether or not the most likely mode (MPM) or remaining mode is applied to the current block, and when the MPM is applied to the current block, the information the prediction mode may further include index information (eg, intra_luma_mpm_idx) indicating one of the possible intra prediction modes (MPM candidates). Intra prediction mode candidates (MPM candidates) may configure an MPM candidate list or an MPM list. For example, the list of MPM candidates may include an adjacent block intra prediction mode or a preset base intra prediction mode. In addition, when MPM is not applied to the current block, the intra prediction mode information may further include remaining mode information (e.g., intra_luma_mpm_remainder) indicating one of the remaining intra prediction modes except for intra prediction mode options (MPM options) . The decoding apparatus may determine the intra prediction mode of the current block based on the intra prediction mode information.
[118] Помимо этого, информация типа внутреннего прогнозирования может реализовываться в различных формах. Например, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В качестве другого примера, информация типа внутреннего прогнозирования может включать в себя по меньшей мере одно из информации линии опорных выборок (например, intra_luma_ref_idx), указывающей то, следует или нет применять MRL к текущему блоку, и если применяется, то, какая линия опорных выборок используется, информации ISP-флага (например, intra_subpartitions_mode_flag), указывающей то, следует или нет применять ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag)), указывающей тип разбиения субсегментов при применении ISP, информации флага, указывающей то, следует или нет применять PDPC, либо информации флага, указывающей то, следует или нет применять LIP.[118] In addition, the intra-prediction type information may be implemented in various forms. For example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (e.g., intra_luma_ref_idx) indicating whether or not the MRL should be applied to the current block, and if so, which reference sample line. is used, ISP flag information (e.g., intra_subpartitions_mode_flag) indicating whether or not ISP should be applied to the current block, ISP type information (e.g., intra_subpartitions_split_flag)) indicating the sub-segment splitting type when applying ISP, flag information indicating whether whether or not to apply PDPC, or flag information indicating whether or not to apply LIP.
[119] Информация режима внутреннего прогнозирования и/или информация типа внутреннего прогнозирования могут кодироваться/декодироваться через способ кодирования, описанный в настоящем раскрытии сущности. Например, информация режима внутреннего прогнозирования и/или информация типа внутреннего прогнозирования могут кодироваться/декодироваться посредством энтропийного кодирования (например, CABAC, CAVLC) на основе усеченного двоичного кода (Райса).[119] The intra prediction mode information and/or the intra prediction type information may be encoded/decoded via the coding method described in the present disclosure. For example, the intra prediction mode information and/or the intra prediction type information may be coded/decoded by entropy coding (eg, CABAC, CAVLC) based on a truncated binary code (Rice).
[120] В дальнейшем в этом документе подробнее описывается режим внутреннего прогнозирования. Фиг. 4 показывает направление внутреннего прогнозирования согласно варианту осуществления. Чтобы захватывать любое краевое направление, представленное в естественном видео, как показано на фиг. 8a, режим внутреннего прогнозирования может включать в себя два режима ненаправленного внутреннего прогнозирования и 65 режимов направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного внутреннего прогнозирования и режим внутреннего DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 66-ой режимы внутреннего прогнозирования.[120] Later in this document, the intra prediction mode is described in more detail. Fig. 4 shows the direction of intra prediction according to the embodiment. To capture any edge direction represented in natural video, as shown in FIG. 8a, the intra prediction mode may include two non-directional intra prediction modes and 65 directional intra prediction modes. The non-directional intra prediction modes may include a planar intra prediction mode and a DC intra prediction mode, and the directional intra prediction modes may include the second to 66th intra prediction modes.
[121] Между тем, режим внутреннего прогнозирования дополнительно может включать в себя режим на основе кросскомпонентной линейной модели (CCLM) для выборок сигнала цветности в дополнение к вышеописанным режимам внутреннего прогнозирования. CCLM-режим может разбиваться на L_CCLM, T_CCLM, LT_CCLM согласно тому, рассматриваются или нет левые выборки, верхние выборки либо и эти, и другие для извлечения LM-параметра, и может применяться только к компоненту сигнала цветности. Например, режим внутреннего прогнозирования может индексироваться, как показано в следующей таблице.[121] Meanwhile, the intra prediction mode may further include a cross-component linear model (CCLM) based mode for chrominance samples in addition to the above-described intra prediction modes. The CCLM mode may be partitioned into L_CCLM, T_CCLM, LT_CCLM according to whether or not left samples, top samples, or both are considered to extract the LM parameter, and can only be applied to the chrominance signal component. For example, the intra prediction mode may be indexed as shown in the following table.
[122] Табл. 1[122] Tab. 1
[123] Фиг. 5 показывает направление внутреннего прогнозирования согласно другому варианту осуществления. Здесь, направление по пунктирной линии показывает широкоугольный режим, применяемый только к неквадратному блоку. Как показано на фиг. 5, чтобы захватывать любое краевое направление, представленное в естественном видео, режим внутреннего прогнозирования согласно варианту осуществления может включать в себя два режима ненаправленного внутреннего прогнозирования и 93 режима направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного прогнозирования и режим DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 80-ый и -1-й - -14-й режимы внутреннего прогнозирования, как обозначено посредством стрелки по фиг. 5. Режим планарного прогнозирования может обозначаться посредством INTRA_PLANAR, и режим DC-прогнозирования может обозначаться посредством INTRA_DC. Помимо этого, режим направленного внутреннего прогнозирования может обозначаться посредством INTRA_ANGULAR-14 - INTRA_ANGULAR-1 и INTRA_ANGULAR2 - INTRA_ANGULAR80.[123] FIG. 5 shows the direction of intra prediction according to another embodiment. Here, the dotted line direction shows the wide-angle mode applied to the non-square block only. As shown in FIG. 5, in order to capture any edge direction represented in natural video, the intra prediction mode according to the embodiment may include two non-directional intra prediction modes and 93 directional intra prediction modes. The non-directional intra prediction modes may include a planar prediction mode and a DC prediction mode, and the directional intra prediction modes may include the second-80th and -1st--14th intra prediction modes, as indicated by an arrow along fig. 5. The planar prediction mode may be denoted by INTRA_PLANAR, and the DC prediction mode may be denoted by INTRA_DC. In addition, the directional intra prediction mode may be denoted by INTRA_ANGULAR-14 through INTRA_ANGULAR-1 and INTRA_ANGULAR2 through INTRA_ANGULAR80.
[124] Между тем, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя по меньшей мере одно из LIP, PDPC, MRL, ISP или MIP. Тип внутреннего прогнозирования может указываться на основе информации типа внутреннего прогнозирования, и информация типа внутреннего прогнозирования может реализовываться в различных формах. Например, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В качестве другого примера, информация типа внутреннего прогнозирования может включать в себя по меньшей мере одно из информации опорной выборочной линии (например, intra_luma_ref_idx), указывающей то, следует или нет применять MRL к текущему блоку, и если применяется, то, какая опорная выборочная линия используется, информации ISP-флага (например, intra_subpartitions_mode_flag), указывающей то, следует или нет применять ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag), указывающей тип разбиения субсегментов при применении ISP, информации флага, указывающей то, следует или нет применять PDPC, информации флага, указывающей то, следует или нет применять LIP, или информации MIP-флага, указывающей то, следует или нет применять MIP.[124] Meanwhile, the intra prediction type (or additional intra prediction mode) may include at least one of LIP, PDPC, MRL, ISP, or MIP. The intra prediction type may be indicated based on the intra prediction type information, and the intra prediction type information may be implemented in various forms. For example, the intra prediction type information may include intra prediction type index information indicating one of the intra prediction types. As another example, the intra prediction type information may include at least one of reference sample line information (eg, intra_luma_ref_idx) indicating whether or not the MRL should be applied to the current block, and if so, which reference sample line. is used, ISP flag information (for example, intra_subpartitions_mode_flag) indicating whether or not ISP should be applied to the current block, ISP type information (for example, intra_subpartitions_split_flag) indicating the type of sub-partitions split when applying ISP, flag information indicating whether or not do not apply PDPC, flag information indicating whether or not to apply LIP, or MIP flag information indicating whether or not to apply MIP.
[125] Общее представление внешнего прогнозирования [125] External Prediction Overview
[126] В дальнейшем в этом документе описывается способ внешнего прогнозирования согласно варианту осуществления. Единица прогнозирования устройства кодирования и устройства декодирования может выполнять внешнее прогнозирование в единицах блоков, чтобы извлекать прогнозную выборку. Внешнее прогнозирование может означать, что прогнозирование, извлекаемое таким способом, который зависит от элементов данных (например, выборочные значения, информация движения и т.д.) кадра(ов) кроме текущего кадра. Когда внешнее прогнозирование применяется к текущему блоку, прогнозированный блок (массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения на опорном кадре, указываемом посредством индекса опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, список возможных вариантов информации движения может конструироваться на основе соседних блоков относительно текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, с тем чтобы извлекать вектор движения текущего блока и/или индекс опорного кадра. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть равной информации движения выбранного соседнего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. В случае режима прогнозирования информации движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться с использованием суммы предиктора вектора движения и разности векторов движения.[126] Hereinafter, an external prediction method according to an embodiment is described. The predictor unit of the encoder and the decoder may perform inter-prediction in units of blocks to extract a predictive sample. Intra-prediction may mean that a prediction derived in a manner that depends on data elements (eg, sample values, motion information, etc.) of frame(s) other than the current frame. When inter-prediction is applied to a current block, a predicted block (predictive sample array) for the current block may be derived based on a reference block (reference sample array) indicated by a motion vector on a reference frame indicated by a reference frame index. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information of the current block may be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the adjacent block and the current block. The motion information may include a motion vector and a reference frame index. The motion information may further include inter-prediction type information (L0 prediction, L1 prediction, bi-prediction, etc.). In the case of inter prediction, an adjacent block may include a spatial adjacent block present in the current frame and a temporal adjacent block present in the reference frame. The reference frame including the reference block and the reference frame including the temporal neighbor block may be the same or different. A temporal neighbor block may be referred to as a "collocated reference block", a "collocated CU (colCU)", and a reference frame including the temporal adjacent block may be referred to as a "collocated frame (colPic)". For example, a list of motion information candidates may be constructed based on neighboring blocks with respect to the current block, and flag or index information indicating which candidate is selected (used) may be signaled so as to derive the current block's motion vector and/ or the index of the reference frame. External prediction may be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the motion information of the current block may be equal to the motion information of the selected neighboring block. In the case of the skip mode, the residual signal may not be transmitted, in contrast to the combine mode. In the case of a motion information prediction (MVP) mode, a motion vector of a selected neighbor block may be used as a motion vector predictor, and the motion vector difference may be signaled. In this case, the motion vector of the current block may be extracted using the sum of the motion vector predictor and the motion vector difference.
[127] Информация движения может включать в себя L0-информацию движения и/или L1-информацию движения согласно типу внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Вектор движения в L0-направлении может называться "L0-вектором движения" или "MVL0", и вектор движения в L1-направлении может называться "L1-вектором движения" или "MVL1". Прогнозирование на основе L0-вектора движения может называться "L0-прогнозированием", прогнозирование на основе L1-вектора движения может называться "L1-прогнозированием", и прогнозирование на основе как L0-вектора движения, так и L1-вектора движения может называться "бипрогнозированием". Здесь, L0-вектор движения может указывать вектор движения, ассоциированный со списком L0 опорных кадров (L0), и L1-вектор движения может указывать вектор движения, ассоциированный со списком L1 опорных кадров (L1). Список L0 опорных кадров может включать в себя кадры перед текущим кадром в порядке вывода в качестве опорных кадров, и список L1 опорных кадров может включать в себя кадры после текущего кадра в порядке вывода. Предыдущие кадры могут называться "прямыми (опорными) кадрами", и последующие кадры могут называться "обратными (опорными) кадрами". Список L0 опорных кадров дополнительно может включать в себя кадры после текущего кадра в порядке вывода в качестве опорных кадров. В этом случае, в списке L0 опорных кадров, предыдущие кадры могут сначала индексироваться, и последующие кадры затем могут индексироваться. Список L1 опорных кадров дополнительно может включать в себя кадры перед текущим кадром в порядке вывода в качестве опорных кадров. В этом случае, в списке L1 опорных кадров, последующие кадры могут сначала индексироваться, и предыдущие кадры затем могут индексироваться. Здесь, порядок вывода может соответствовать порядку номеров в последовательности кадров (POC).[127] The motion information may include L0 motion information and/or L1 motion information according to the type of external prediction (L0 prediction, L1 prediction, bi-prediction, etc.). The motion vector in the L0 direction may be referred to as the "L0 motion vector" or "MVL0", and the motion vector in the L1 direction may be referred to as the "L1 motion vector" or "MVL1". Prediction based on the L0 motion vector may be referred to as "L0 prediction", prediction based on the L1 motion vector may be referred to as "L1 prediction", and prediction based on both the L0 motion vector and the L1 motion vector may be referred to as "biprediction". ". Here, the L0 motion vector may indicate a motion vector associated with the L0 list of reference frames (L0), and the L1 motion vector may indicate a motion vector associated with the L1 list of reference frames (L1). The reference frame list L0 may include frames before the current frame in the output order as reference frames, and the reference frame list L1 may include frames after the current frame in the output order. Previous frames may be referred to as "forward (reference) frames", and subsequent frames may be referred to as "reverse (reference) frames". The reference frame list L0 may further include frames after the current frame in output order as reference frames. In this case, in the reference frame list L0, previous frames may be indexed first, and subsequent frames may then be indexed. The reference frame list L1 may further include frames before the current frame in output order as reference frames. In this case, in the reference frame list L1, subsequent frames may be indexed first, and previous frames may then be indexed. Here, the output order may correspond to the order of the numbers in the sequence of frames (POC).
[128] В дальнейшем в этом документе описывается процедура кодирования видео/изображений на основе внешнего прогнозирования и модуля внешнего прогнозирования в устройстве кодирования со ссылкой на фиг. 6 и 7.[128] Hereinafter, this document describes a video/image coding procedure based on inter prediction and an inter prediction unit in an encoding apparatus with reference to FIG. 6 and 7.
[129] Во-первых, устройство кодирования может выполнять внешнее прогнозирование относительно текущего блока (S11). Устройство кодирования изображений может извлекать режим внешнего прогнозирования и информацию движения текущего блока и формировать прогнозные выборки текущего блока. Здесь, определение режима внешнего прогнозирования, извлечение информации движения и процедуры формирования прогнозных выборок могут одновременно выполняться, или любой этого может выполняться перед другими процедурами. Например, модуль 180 внешнего прогнозирования устройства кодирования может включать в себя модуль 181 определения режима прогнозирования, модуль 182 извлечения информации движения и модуль 183 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования текущего блока, модуль 182 извлечения информации движения может извлекать информацию движения текущего блока, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль 180 внешнего прогнозирования устройства кодирования может выполнять поиск блока, аналогичного текущему блоку в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и извлекать опорный блок, разность которого относительно текущего блока равна или меньше предварительно определенного критерия или минимума. На основе этого, индекс опорного кадра, указывающий опорный кадр, в котором расположен опорный блок, может извлекаться, и вектор движения может извлекаться на основе разности позиций между опорным блоком и текущим блоком. Устройство кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Устройство кодирования может сравнивать RD-затраты для различных режимов прогнозирования и определять оптимальный режим прогнозирования текущего блока.[129] First, the encoder may perform inter prediction with respect to the current block (S11). The image encoding apparatus may extract the inter-prediction mode and motion information of the current block, and generate prediction samples of the current block. Here, determination of the inter-prediction mode, motion information extraction, and prediction sampling procedures may be simultaneously performed, or any of these may be performed before other procedures. For example, the
[130] Например, когда режим пропуска или режим объединения применяется к текущему блоку, устройство 100 кодирования может конструировать список возможных вариантов объединения и извлекать опорный блок, разность которого относительно текущего блока равна или меньше предварительно определенного критерия либо минимума, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в устройство декодирования. Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения.[130] For example, when the skip mode or merge mode is applied to the current block, the
[131] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, устройство кодирования может конструировать (A) список возможных MVP-вариантов и извлекать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в (a) список возможных MVP-вариантов. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант с вектором движения, имеющим наименьшую разность относительно вектора движения текущего блока из возможных MVP-вариантов, может представлять собой выбранный возможный MVP-вариант. Разность векторов движения (MVD), которая представляет собой разность, полученную посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация относительно MVD может передаваться в служебных сигналах в устройство декодирования. Помимо этого, при применении (A)MVP-режима, значение индекса опорного кадра может конструироваться в качестве информации индекса опорного кадра и отдельно передаваться в служебных сигналах в устройство декодирования.[131] As another example, when the (A)MVP mode is applied to the current block, the encoder may construct the (A) MVP candidate list and extract the motion vector of the MVP candidate selected from among the MVP candidates included in (a) a list of possible MVP options. In this case, for example, a motion vector indicating a reference block derived by the above-described motion estimation may be used as the motion vector of the current block, and the MVP candidate with the motion vector having the smallest difference with respect to the motion vector of the current block among the candidate MVP candidates , may represent the selected MVP candidate. A motion vector difference (MVD), which is a difference obtained by subtracting the MVP from the motion vector of the current block, can be extracted. In this case, information regarding the MVD may be signaled to the decoder. In addition, when applying the (A)MVP mode, the index value of the reference frame may be constructed as index information of the reference frame and separately signaled to the decoder.
[132] Устройство кодирования может извлекать остаточные выборки на основе прогнозных выборок (S12). Устройство кодирования может извлекать остаточные выборки через сравнение между исходными выборками текущего блока и прогнозных выборок.[132] The encoder may derive residual samples based on the predictive samples (S12). The encoder may extract the residual samples through a comparison between the original samples of the current block and the predictive samples.
[133] Устройство кодирования может кодировать информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S13). Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима и т.д.) и информацию движения в качестве информации, связанной с процедурой прогнозирования. Информация относительно информации движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Помимо этого, информация относительно информации движения может включать в себя информацию относительно вышеописанной MVD и/или информации индекса опорного кадра. Помимо этого, информация относительно информации движения может включать в себя информацию, указывающую то, следует применять L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.[133] The encoding device may encode image information including prediction information and residual information (S13). The encoding device may output the encoded image information in the form of a bitstream. The prediction information may include prediction mode information (eg, skip flag, merge flag, or mode index, etc.) and motion information as information associated with the prediction procedure. The information on the motion information may include candidate selection information (eg, merge index, MVP flag, or MVP index), which is information for extracting a motion vector. In addition, information regarding motion information may include information regarding the above-described MVD and/or reference frame index information. In addition, the information on the motion information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction should be applied. The residual information is information about the residual samples. The residual information may include information regarding quantized transform coefficients for the residual samples.
[134] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в устройство декодирования либо может передаваться в устройство декодирования через сеть.[134] The output bitstream may be stored on a (digital) storage medium and transmitted to the decoder, or may be transmitted to the decoder via a network.
[135] Как описано выше, устройство кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это для извлечения, посредством устройства кодирования, результата прогнозирования, идентичного прогнозированию, выполняемому посредством устройства декодирования, за счет этого повышая эффективность кодирования. Соответственно, устройство кодирования может сохранять восстановленный кадр (или восстановленные выборки и восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для внешнего прогнозирования. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.[135] As described above, the encoder may generate a reconstructed frame (including the reconstructed samples and the reconstructed block) based on the reference samples and the residual samples. This is for extracting, by the encoding apparatus, a prediction result identical to that performed by the decoding apparatus, thereby improving encoding efficiency. Accordingly, the encoder may store the reconstructed frame (or the reconstructed samples and the reconstructed block) in a memory and use it as a reference frame for inter prediction. As described above, the in-loop filtering procedure may additionally be applied to the reconstructed frame.
[136] В дальнейшем в этом документе описывается процедура декодирования видео/изображений на основе внешнего прогнозирования и модуля внешнего прогнозирования в устройстве декодирования со ссылкой на фиг. 8 и 9. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования. Устройство декодирования может выполнять прогнозирование относительно текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.[136] Hereinafter, this document describes a video/image decoding procedure based on inter prediction and an inter prediction unit in a decoding apparatus with reference to FIG. 8 and 9. The decoder may perform an operation corresponding to the operation performed by the encoder. The decoding apparatus may perform prediction on the current block based on the received prediction information and extract prediction samples.
[137] В частности, устройство декодирования может определять режим прогнозирования текущего блока на основе принимаемой информации прогнозирования (S21). Устройство декодирования изображений может определять то, какой режим внешнего прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.[137] In particular, the decoding apparatus may determine the prediction mode of the current block based on the received prediction information (S21). The image decoding apparatus can determine which inter prediction mode is applied to the current block based on the prediction mode information in the prediction information.
[138] Например, может определяться то, применяется режим объединения или (A)MVP-режим к текущему блоку, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов внешнего прогнозирования может выбираться на основе индекса режима. Возможные варианты режима внешнего прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим либо могут включать в себя различные режимы внешнего прогнозирования, которые описываются ниже.[138] For example, it may be determined whether the merge mode or (A)MVP mode is applied to the current block based on the merge flag. Alternatively, one of the various possible inter prediction modes may be selected based on the mode index. Possible inter prediction mode options may include skip mode, merge mode, and/or (A)MVP mode, or may include various inter prediction modes, which are described below.
[139] Устройство декодирования может извлекать информацию движения текущего блока на основе определенного режима внешнего прогнозирования (S22). Например, когда режим пропуска или режим объединения применяются к текущему блоку, устройство декодирования может конструировать список возможных вариантов объединения, который описывается ниже, и выбирать один из возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (индекса объединения). Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения. Информация движения выбранного возможного варианта объединения может использоваться как информация движения текущего блока.[139] The decoding apparatus may extract motion information of the current block based on the determined inter prediction mode (S22). For example, when the skip mode or merge mode is applied to the current block, the decoding device may construct a merge candidate list, which is described below, and select one of the merge candidates included in the merge candidate list. The selection may be performed based on the above-described candidate selection information (combination index). The motion information of the current block may be extracted using the motion information of the selected join candidate. The motion information of the selected join candidate may be used as the motion information of the current block.
[140] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, устройство декодирования может конструировать список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока. Помимо этого, индекс опорного кадра текущего блока может извлекаться на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для внешнего прогнозирования текущего блока.[140] As another example, when the (A)MVP mode is applied to the current block, the decoder may construct a list of (A)MVP candidates and use the motion vector of the MVP candidate selected from among the MVP candidates included to the list of possible (A)MVP options, as the MVP of the current block. The selection may be performed based on the candidate selection information (MVP flag or MVP index) described above. In this case, the MVD of the current block may be derived based on information regarding the MVD, and the motion vector of the current block may be derived based on the MVP and MVD of the current block. In addition, the index of the key frame of the current block may be derived based on the information of the index of the key frame. The frame indicated by the index of the reference frame in the reference frame list of the current block may be retrieved as the reference frame referenced for external prediction of the current block.
[141] Между тем, как описано ниже, информация движения текущего блока может извлекаться без конструирования списков возможных вариантов, и, в этом случае, информация движения текущего блока может извлекаться согласно раскрытой процедуре в нижеописанном режиме прогнозирования. В этом случае, вышеописанное конструирование списков возможных вариантов может опускаться.[141] Meanwhile, as described below, motion information of the current block can be extracted without constructing candidate lists, and in this case, motion information of the current block can be extracted according to the disclosed procedure in the prediction mode described below. In this case, the above construction of lists of options may be omitted.
[142] Устройство декодирования изображений может формировать прогнозные выборки текущего блока на основе информации движения текущего блока (S23). В этом случае, опорный кадр может извлекаться на основе индекса опорного кадра текущего блока, и прогнозные выборки текущего блока могут извлекаться с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока на опорном кадре. В этом случае, как описано ниже, некоторые случаи, процедура фильтрации прогнозных выборок дополнительно может выполняться относительно всех или некоторых прогнозных выборок текущего блока.[142] The image decoding apparatus may generate prediction samples of the current block based on motion information of the current block (S23). In this case, the reference frame may be derived based on the reference frame index of the current block, and the prediction samples of the current block may be derived using the reference block samples indicated by the motion vector of the current block on the reference frame. In this case, as described below, in some cases, the prediction sample filtering procedure may further be performed on all or some of the prediction samples of the current block.
[143] Например, модуль 260 внешнего прогнозирования устройства 200 декодирования может включать в себя модуль 261 определения режима прогнозирования, модуль 262 извлечения информации движения и модуль 263 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль 182 извлечения информации движения может извлекать информацию движения (вектор движения и/или индекс опорного кадра) для текущего блока на основе информации для принимаемой информации движения, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.[143] For example, the
[144] Устройство декодирования может формировать остаточные выборки текущего блока на основе принимаемой остаточной информации (S24). Устройство декодирования может формировать восстановленные выборки текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на основе этого (S25). После этого, процедура внутриконтурной фильтрации является применимой к восстановленному кадру.[144] The decoding apparatus may generate residual samples of the current block based on the received residual information (S24). The decoding apparatus may generate reconstructed samples of the current block based on the predictive samples and residual samples, and generate a reconstructed frame based on this (S25). Thereafter, the in-loop filtering procedure is applicable to the reconstructed frame.
[145] Как описано выше, процедура внешнего прогнозирования может включать в себя этап определения режима внешнего прогнозирования, этапа извлечения информации движения согласно определенному режиму прогнозирования и этап выполнения прогнозирования (формирования прогнозных выборок) на основе извлеченной информации движения. Процедура внешнего прогнозирования может выполняться посредством устройства кодирования и устройства декодирования, как описано выше.[145] As described above, the inter prediction procedure may include a step of determining an inter prediction mode, a step of extracting motion information according to the determined prediction mode, and a step of performing prediction (predictive sampling) based on the extracted motion information. The inter prediction procedure may be performed by an encoder and a decoder as described above.
[146] Общее представление прогнозирования на основе внутриблочного копирования (IBC) [146] Intra-Block Copy (IBC) Prediction General Representation
[147] Устройство декодирования согласно варианту осуществления может выполнять режим прогнозирования на основе внутриблочного копирования (IBC) для декодирования текущего блока с использованием информации опорного блока текущего кадра, в котором расположен текущий блок, чтобы декодировать текущий блок, который представляет собой блок, который должен декодироваться. Например, устройство декодирования может декодировать текущий блок с использованием декодирования информации опорного блока, выбранного из восстановленной зоны текущего кадра. Поскольку только восстановленная зона в предварительно определенной зоне, включающая в себя текущую CTU, используется в качестве опорной зоны, можно уменьшать потребление запоминающего устройства и уменьшать сложность устройства декодирования. Таким образом, IBC-режим может реализовываться с аппаратной конфигурацией с использованием внутримикросхемного запоминающего устройства.[147] The decoding apparatus according to the embodiment can perform an intra-block copy (IBC) prediction mode to decode the current block using reference block information of the current frame in which the current block is located to decode the current block, which is the block to be decoded. . For example, the decoding device may decode the current block using the decoding information of the reference block selected from the reconstructed area of the current frame. Since only the reconstructed area in the predetermined area including the current CTU is used as the reference area, it is possible to reduce the memory consumption and reduce the complexity of the decoding apparatus. Thus, the IBC mode can be implemented with a hardware configuration using an on-chip memory.
[148] В IBC-режиме прогнозирование, по существу, выполняется в текущем кадре, но может выполняться аналогично внешнему прогнозированию, при котором опорный блок извлекается в текущем кадре. Например, IBC может выполняться с использованием по меньшей мере одной из вышеописанных технологий внешнего прогнозирования. Например, устройство декодирования может использовать вышеописанный способ извлечения вектора движения, чтобы выполнять IBC-режим. По меньшей мере одна из вышеописанных технологий внешнего прогнозирования может модифицироваться и использоваться с учетом IBC-прогнозирования, как описано ниже. В варианте осуществления, IBC может называться "ссылкой на текущие кадры (CPR)" в том, что ссылаются на текущий кадр.[148] In the IBC mode, prediction is essentially performed in the current frame, but may be performed similarly to inter prediction in which the reference block is retrieved in the current frame. For example, IBC may be performed using at least one of the external prediction technologies described above. For example, the decoding apparatus may use the motion vector extraction method described above to perform the IBC mode. At least one of the above external prediction technologies may be modified and used with IBC prediction in mind, as described below. In an embodiment, the IBC may be referred to as "Current Frame Reference (CPR)" in that it refers to the current frame.
[149] Чтобы выполнять IBC-режим, устройство кодирования может извлекать оптимальный вектор движения для текущего блока (например, CU) посредством выполнения поблочного сопоставления. Извлеченный вектор движения может передаваться в служебных сигналах в устройство декодирования через поток битов с использованием способа, аналогичного передаче в служебных сигналах векторов движения в вышеописанном внешнем прогнозировании. Устройство декодирования может извлекать опорный блок для текущего блока в текущем кадре через передаваемый в служебных сигналах вектор движения и извлекать прогнозный сигнал (прогнозированный блок или прогнозные выборки) для текущего блока через него. Здесь, блочный вектор (или вектор движения) может представлять смещение от текущего блока до опорного блока, расположенного в уже восстановленной зоне в текущем кадре. Соответственно, блочный вектор (или вектор движения) может называться "вектором смещения". В дальнейшем в этом документе, в IBC, вектор движения может соответствовать блочному вектору или вектору смещения. Вектор движения текущего блока может включать в себя вектор движения для компонента сигнала яркости (вектор движения сигнала яркости) или вектор движения для компонента сигнала цветности (вектор движения сигнала цветности). Например, вектор движения сигнала яркости для IBC-кодированной CU может представлять собой целочисленную единицу выборок (т.е. целочисленную точность). Вектор движения сигнала цветности также может отсекаться в единицах целочисленных выборок. Как описано выше, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования и, например, когда IBC применяется как AMVR, 1-пелная и 4-пелная точность векторов движения может переключаться.[149] To perform the IBC mode, the encoder may extract the optimal motion vector for the current block (eg, CU) by performing block matching. The extracted motion vector may be signaled to the decoder via a bit stream using a method similar to signaling the motion vectors in the above-described inter prediction. The decoder may derive a reference block for the current block in the current frame via a signaled motion vector, and extract a prediction signal (predicted block or prediction samples) for the current block through it. Here, a block vector (or motion vector) may represent an offset from the current block to a reference block located in an already reconstructed area in the current frame. Accordingly, a block vector (or motion vector) may be referred to as a "displacement vector". Later in this document, in IBC, the motion vector may correspond to a block vector or a displacement vector. The motion vector of the current block may include a motion vector for a luminance signal component (luminance motion vector) or a motion vector for a chrominance signal component (chroma motion vector). For example, the luminance motion vector for an IBC-coded CU may be an integer unit of samples (ie, integer precision). The chrominance motion vector may also be truncated in units of integer samples. As described above, the IBC may use at least one of the inter prediction technologies and, for example, when the IBC is applied as an AMVR, the 1-pellet and 4-pellet motion vector accuracy may be switched.
[150] На уровне CU, IBC-режим может передаваться в служебных сигналах с использованием флага или может передаваться в служебных сигналах в IBC AMVP-режиме или в режиме IBC-пропуска/объединения следующим образом.[150] At the CU level, the IBC mode may be signaled using a flag, or may be signaled in the IBC AMVP mode or the IBC skip/combine mode as follows.
[151] Режим IBC-пропуска/объединения: Индекс возможного варианта объединения может использоваться для того, чтобы указывать то, какой блочный вектор используется для того, чтобы прогнозировать текущий блок в списке, состоящем из блоков IBC-кодирования соседнего возможного варианта. Список для объединения может состоять из пространственных, HMVP- и попарных возможных вариантов.[151] IBC Skip/Merge Mode: A merge candidate index may be used to indicate which block vector is used to predict the current block in a list consisting of adjacent candidate IBC coding blocks. The pooling list may consist of spatial, HMVP, and pairwise candidate options.
[152] IBC AMVP-режим: Разность блочных векторов может кодироваться идентично кодированию разности векторов движения. Способ прогнозирования блочных векторов использует два возможных варианта в качестве предиктора. Если кодирование выполняется в IBC-режиме, один предназначен для левого соседнего узла, а другой предназначен для верхнего соседнего узла. Если по меньшей мере один соседний узел фактически доступен, базовый блочный вектор может использоваться в качестве предиктора. Флаг может передаваться в служебных сигналах, чтобы указывать индекс предиктора блочного вектора.[152] IBC AMVP mode: The block vector difference may be encoded identically to motion vector difference coding. The block vector prediction method uses two options as a predictor. If encoding is done in IBC mode, one is for the left neighbor and the other is for the top neighbor. If at least one neighbor is actually available, the underlying block vector may be used as a predictor. A flag may be signaled to indicate a block vector predictor index.
[153] В дальнейшем в этом документе описывается процедура кодирования видео/изображений на основе IBC-режима и модуля прогнозирования в устройстве кодирования со ссылкой на фиг. 10.[153] Hereinafter, a video/image coding procedure based on the IBC mode and a predictor in an encoder will be described with reference to FIG. 10.
[154] Устройство кодирования может выполнять IBC-прогнозирование (прогнозирование на основе IBC) для текущего блока (S31). Устройство кодирования может извлекать режим прогнозирования и вектор движения текущего блока и формировать прогнозные выборки текущего блока. Режим прогнозирования может включать в себя по меньшей мере один из вышеописанных режимов внешнего прогнозирования. Здесь, процедуры определения режима прогнозирования, извлечения векторов движения и формирования прогнозных выборок могут выполняться одновременно, или любая процедура может выполняться перед другими процедурами. Например, модуль прогнозирования устройства кодирования изображений может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок. Модуль определения режима прогнозирования может определять режим прогнозирования текущего блока, модуль извлечения векторов движения может извлекать вектор движения текущего блока, и модуль извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль прогнозирования устройства кодирования может выполнять поиск блока, аналогичного текущему блоку, в восстановленной зоне (либо в определенной зоне (зоне поиска) восстановленной зоны) текущего кадра посредством поблочного сопоставления (BM), и извлекать опорный блок, разность которого относительно текущего блока равна или меньше определенного критерия либо минимума. Вектор движения может извлекаться на основе разности смещения между опорным блоком и текущим блоком. Устройство кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Устройство кодирования может сравнивать RD-затраты на основе различных режимов прогнозирования и определять оптимальный режим прогнозирования для текущего блока.[154] The encoder may perform IBC prediction (IBC based prediction) for the current block (S31). The encoder may extract the prediction mode and motion vector of the current block and generate prediction samples of the current block. The prediction mode may include at least one of the inter prediction modes described above. Here, the prediction mode determination, motion vector extraction, and prediction sampling procedures may be performed simultaneously, or any procedure may be performed before other procedures. For example, the prediction module of the image encoding apparatus may include a prediction mode determination module, a motion vector extraction module, and a prediction sample extraction module. The prediction mode determining module may determine the prediction mode of the current block, the motion vector extractor may extract the motion vector of the current block, and the prediction sample extractor may extract the prediction samples of the current block. For example, the encoder predictor may search for a block similar to the current block in the reconstructed area (or a specific area (search area) of the recovered area) of the current frame by block-by-block matching (BM), and extract a reference block whose difference relative to the current block is or less than a certain criterion or minimum. The motion vector may be derived based on the offset difference between the reference block and the current block. The encoder may determine the mode applied to the current block from various prediction modes. The encoder can compare RD costs based on different prediction modes and determine the optimal prediction mode for the current block.
[155] Например, при применении режима пропуска или режима объединения к текущему блоку, устройство кодирования может конструировать вышеописанный список возможных вариантов объединения и извлекать опорный блок, разность которого относительно текущего блока равна или меньше определенного критерия или минимума, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в устройство декодирования. С использованием вектора движения выбранного возможного варианта объединения, может извлекаться вектор движения текущего блока.[155] For example, when applying the skip mode or merge mode to the current block, the encoder may construct the above-described merge candidate list and extract a reference block whose difference relative to the current block is equal to or less than a certain criterion or minimum from the reference blocks indicated by the possible merges. join options included in the list of possible join options. In this case, the combining candidate associated with the extracted reference block may be selected, and combining index information indicating the selected combining candidate may be generated and signaled to the decoder. Using the motion vector of the selected join candidate, the motion vector of the current block can be extracted.
[156] В качестве другого примера, при применении (A)MVP-режима к текущему блоку, устройство кодирования может конструировать вышеописанный список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант, имеющий наименьшую разность относительно вектора движения текущего блока из возможных MVP-вариантов, может становиться выбранным возможны MVP-вариантом. Разность векторов движения (MVD), которая получается посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация относительно MVD может передаваться в служебных сигналах в устройство декодирования.[156] As another example, when applying the (A)MVP mode to the current block, the encoder may construct the above-described list of (A)MVP candidates and use the motion vector of the MVP candidate selected from among the MVP candidates, included in the list of possible (A)MVP options, as the MVP of the current block. In this case, for example, a motion vector indicating a reference block derived by the above-described motion estimation may be used as the motion vector of the current block, and the MVP candidate having the smallest difference with respect to the motion vector of the current block among the candidate MVP candidates may become the selected MVP option is possible. A motion vector difference (MVD), which is obtained by subtracting the MVP from the motion vector of the current block, can be extracted. In this case, information regarding the MVD may be signaled to the decoder.
[157] Устройство кодирования может извлекать остаточные выборки на основе прогнозных выборок (S32). Устройство кодирования может извлекать остаточные выборки через сравнение между исходными выборками текущего блока и прогнозными выборками.[157] The encoder may derive residual samples based on the predictive samples (S32). The encoder may extract the residual samples through a comparison between the original samples of the current block and the predictive samples.
[158] Устройство кодирования может кодировать информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S33). Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию относительно информации режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима) и информацию движения в качестве информации, связанной с процедурой прогнозирования. Информация относительно вектора движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Помимо этого, информация относительно вектора движения может включать в себя информацию относительно вышеописанной MVD. Помимо этого, информация относительно вектора движения может включать в себя информацию, указывающую то, следует применять L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.[158] The encoding device may encode image information including prediction information and residual information (S33). The encoding device may output the encoded image information in the form of a bit stream. The prediction information may include information on prediction mode information (eg, skip flag, merge flag, or mode index) and motion information as information associated with the prediction procedure. The motion vector information may include candidate selection information (eg, merge index, MVP flag, or MVP index), which is information for extracting the motion vector. In addition, the information regarding the motion vector may include information regarding the above-described MVD. In addition, the motion vector information may include information indicating whether L0 prediction, L1 prediction, or bi-prediction should be applied. The residual information is information about the residual samples. The residual information may include information regarding quantized transform coefficients for the residual samples.
[159] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в устройство декодирования либо может передаваться в устройство декодирования через сеть.[159] The output bitstream may be stored on a (digital) storage medium and transmitted to the decoder, or may be transmitted to the decoder via a network.
[160] Между тем, как описано выше, устройство кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это для извлечения, посредством устройства кодирования, результата прогнозирования, идентичного прогнозированию, выполняемому посредством устройства декодирования, за счет этого повышая эффективность кодирования. Соответственно, устройство кодирования может сохранять восстановленный кадр (либо восстановленные выборки и восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для внешнего прогнозирования. Процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру, как описано выше.[160] Meanwhile, as described above, the encoder may generate a reconstructed frame (including the reconstructed samples and the reconstructed block) based on the reference samples and the residual samples. This is for extracting, by the encoding apparatus, a prediction result identical to that performed by the decoding apparatus, thereby improving encoding efficiency. Accordingly, the encoder may store the reconstructed frame (or the reconstructed samples and the reconstructed block) in a memory and use it as a reference frame for inter prediction. The in-loop filtering procedure may additionally be applied to the reconstructed frame as described above.
[161] В дальнейшем в этом документе описывается процедура декодирования видео/изображений на основе IBC и модуля прогнозирования в устройстве декодирования со ссылкой на фиг. 11. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования. Устройство декодирования может выполнять IBC-прогнозирование относительно текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.[161] Hereinafter, this document describes a procedure for decoding video/images based on IBC and a predictor in a decoding apparatus with reference to FIG. 11. The decoding device can perform an operation corresponding to the operation performed by the encoding device. The decoding apparatus may perform IBC prediction on the current block based on the received prediction information and extract prediction samples.
[162] В частности, устройство декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S41). Устройство декодирования может определять то, какой режим внешнего прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.[162] In particular, the decoding apparatus may determine the prediction mode for the current block based on the received prediction information (S41). The decoding apparatus can determine which inter prediction mode is applied to the current block based on the prediction mode information in the prediction information.
[163] Например, может определяться то, следует применять режим объединения или (A)MVP-режим к текущему блоку, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов внешнего прогнозирования может выбираться на основе индекса режима. Возможные варианты режимов внешнего прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим или могут включать в себя нижеописанные различные режимы внешнего прогнозирования.[163] For example, it may be determined whether the merge mode or (A)MVP mode should be applied to the current block based on the merge flag. Alternatively, one of the various possible inter prediction modes may be selected based on the mode index. Possible inter prediction modes may include skip mode, merge mode, and/or (A)MVP mode, or may include various inter prediction modes described below.
[164] Устройство кодирования может извлекать вектор движения текущего блока на основе определенного режима прогнозирования (S42). Например, при применении режима пропуска или режима объединения к текущему блоку, устройство декодирования может конструировать вышеописанный список возможных вариантов объединения и выбирать один из режимов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (индекса объединения). Вектор движения текущего блока может извлекаться с использованием вектора движения выбранного возможного варианта объединения. Вектор движения выбранного возможного варианта объединения может использоваться в качестве вектора движения текущего блока.[164] The encoding device may derive a motion vector of the current block based on the determined prediction mode (S42). For example, when applying the skip mode or the combining mode to the current block, the decoding device may construct the above-described combining candidate list and select one of the combining modes included in the combining candidate list. The selection may be performed based on the above-described candidate selection information (combination index). The motion vector of the current block may be extracted using the motion vector of the selected join candidate. The motion vector of the selected join candidate may be used as the motion vector of the current block.
[165] В качестве примера, при применении (A)MVP-режима к текущему блоку, устройство декодирования может конструировать список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока.[165] As an example, when applying the (A)MVP mode to the current block, the decoder may construct a list of (A)MVP candidates and use the motion vector of the MVP candidate selected from among the MVP candidates included in a list of possible (A)MVP options, as the MVP of the current block. The selection may be performed based on the candidate selection information (MVP flag or MVP index) described above. In this case, the MVD of the current block may be derived based on information regarding the MVD, and the motion vector of the current block may be derived based on the MVP and MVD of the current block.
[166] Между тем, как описано выше, информация движения текущего блока может извлекаться без конфигурирования списка возможных вариантов, и в этом случае вектор движения текущего блока может извлекаться согласно процедуре, раскрытой в соответствующем режиме прогнозирования. В этом случае, вышеописанное конструирование списков возможных вариантов может опускаться.[166] Meanwhile, as described above, the motion information of the current block can be extracted without configuring the candidate list, in which case the motion vector of the current block can be extracted according to the procedure disclosed in the corresponding prediction mode. In this case, the above construction of lists of options may be omitted.
[167] Устройство декодирования может формировать прогнозные выборки для текущего блока на основе вектора движения для текущего блока (S720). Прогнозные выборки текущего блока могут извлекаться с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока в текущем кадре. В этом случае, процедура фильтрации прогнозных выборок для всех или некоторых прогнозных выборок текущего блока дополнительно может выполняться.[167] The decoding apparatus may generate predictive samples for the current block based on the motion vector for the current block (S720). The prediction samples of the current block may be derived using the reference block samples indicated by the motion vector of the current block in the current frame. In this case, the filtering procedure of the prediction samples for all or some of the prediction samples of the current block may further be performed.
[168] Например, модуль прогнозирования устройства декодирования может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок, модуль определения режима прогнозирования может определять режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль извлечения векторов движения может извлекать вектор движения текущего блока на основе принимаемой информации относительно вектора движения, и модуль извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.[168] For example, the prediction module of the decoding device may include a prediction mode determination module, a motion vector extraction module, and a prediction sample extraction module, the prediction mode determination module may determine the prediction mode for the current block based on the received prediction mode information, the motion vector extraction module may extract the motion vector of the current block based on the received motion vector information, and the prediction sample extractor may extract the prediction samples of the current block.
[169] Устройство декодирования изображений может формировать остаточные выборки текущего блока на основе принимаемой остаточной информации (S44). Устройство декодирования изображений может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на их основе (S45). После этого, процедура внутриконтурной фильтрации может дополнительно применяться к восстановленному кадру.[169] The image decoding apparatus may generate residual samples of the current block based on the received residual information (S44). The image decoding apparatus may generate reconstructed samples for the current block based on the predictive samples and the residual samples, and generate a reconstructed frame based on them (S45). Thereafter, the in-loop filtering procedure may further be applied to the reconstructed frame.
[170] Общее представление передачи в служебных сигналах информации преобразования [170] General representation of signaling transformation information
[171] В варианте осуществления, информация для преобразования/обратного преобразования текущего блока может передаваться в служебных сигналах из устройства кодирования в устройство декодирования через поток битов. Ссылаясь на фиг. 12, как описано выше, устройство кодирования может формировать блок прогнозирования, который представляет собой блок прогнозных выборок, прогнозированных через прогнозирование во внешнем, внутреннем и IBC-режиме (S110), и извлекать остаточный блок (остаточные выборки) для блока, который должен кодироваться, на основе блока прогнозирования (S120). Устройство кодирования может извлекать блок преобразования, состоящий из квантованных коэффициентов преобразования, посредством применения преобразования и квантования к извлеченному остаточному блоку (S130). Устройство кодирования может формировать информацию режима прогнозирования, указывающую режимы прогнозирования (внешний, внутренний и IBC-режимы), используемые для того, чтобы кодировать текущий блок, информацию преобразования, используемую для того, чтобы извлекать блок преобразования, и информацию кодирования для квантованных коэффициентов преобразования, конструирующих блок преобразования, в качестве потока битов (S140). Затем, устройство кодирования может передавать сформированный поток битов в устройство декодирования (S150).[171] In an embodiment, information for transforming/inverting the current block may be signaled from an encoder to a decoder via a bitstream. Referring to FIG. 12, as described above, the coding device can generate a prediction block, which is a block of prediction samples predicted through prediction in the inter-, intra-, and IBC mode (S110), and extract the residual block(s) for the block to be encoded, based on the prediction block (S120). The encoder may extract a transform block consisting of the quantized transform coefficients by applying transform and quantization to the extracted residual block (S130). The encoder may generate prediction mode information indicating prediction modes (internal, intra, and IBC modes) used to encode the current block, transform information used to extract the transform block, and encoding information for quantized transform coefficients, constructing a conversion block as a bitstream (S140). Then, the encoder may transmit the generated bit stream to the decoder (S150).
[172] Устройство декодирования может принимать поток битов (S160) и получать информацию режима прогнозирования, информацию преобразования и информацию кодирования для квантованных коэффициентов преобразования из потока битов. Устройство декодирования может декодировать информацию кодирования для коэффициентов преобразования и извлекать блок преобразования, состоящий из квантованных коэффициентов преобразования (S170). Устройство декодирования может извлекать остаточный блок через деквантование/обратное преобразование на основе блока преобразования (S180). Затем, устройство декодирования может формировать блок прогнозирования на основе информации прогнозирования, полученной из потока битов (S190). Затем, устройство декодирования может формировать восстановленный блок для текущего блока на основе блока прогнозирования и остаточного блока (S195). Между тем по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может опускаться.[172] The decoding apparatus may receive the bit stream (S160) and obtain prediction mode information, transform information, and encoding information for the quantized transform coefficients from the bit stream. The decoding apparatus may decode the encoding information for the transform coefficients and extract a transform block consisting of the quantized transform coefficients (S170). The decoding apparatus may extract the residual block through dequantization/inverse transform based on the transform block (S180). Then, the decoding apparatus may generate a prediction block based on the prediction information obtained from the bit stream (S190). Then, the decoding apparatus may generate a reconstructed block for the current block based on the prediction block and the residual block (S195). Meanwhile, at least one of quantization/dequantization and/or transformation/inverse transformation may be omitted.
[173] Устройство кодирования и устройство декодирования согласно варианту осуществления могут выбирать ядро преобразования, чтобы выполнять преобразование (обратное преобразование). Ядро преобразования может называться с помощью различных терминов, таких как матрица преобразования, тип преобразования или функция преобразования. Устройство кодирования может формировать блок преобразования посредством преобразования остаточного блока на основе выбранного ядра преобразования, и устройство декодирования может формировать остаточный блок посредством обратного преобразования блока преобразования на основе выбранного ядра преобразования. Следующее уравнение показывает вариант осуществления, в котором устройство декодирования применяет матрицу преобразования, чтобы сформировать выборки y[i] остаточных блоков для блока x[j] преобразования. Здесь, j может иметь значение в 0 - nonZeroS-1; nonZeroS указывает горизонтальный размер выборки ненулевых квантованных коэффициентов преобразования; i может иметь размер в 0 - nTbS-1; nTbS указывает горизонтальный размер выборки остаточных выборок.[173] The encoding device and the decoding device according to the embodiment may select a transformation kernel to perform transformation (inverse transformation). The transformation kernel may be referred to by various terms such as transformation matrix, transformation type, or transformation function. An encoder may generate a transformation block by transforming a residual block based on a selected transformation kernel, and a decoding device may generate a residual block by inversely transforming a transformation block based on a selected transformation kernel. The following equation shows an embodiment in which the decoding device applies the matrix transforms to form residual block samples y[i] for transform block x[j]. Here, j can have a value of 0 - nonZeroS-1; nonZeroS indicates the horizontal sample size of non-zero quantized transform coefficients; i can have a size of 0 - nTbS-1; nTbS indicates the horizontal sample size of the residual samples.
[174] уравнение 1[174]
y[i]= , при i=0...nTbS-1y[i]= , for i=0...nTbS-1
[175] Ядро преобразования, используемое, когда устройство декодирования выполняет обратное преобразование, может иметь обратную взаимосвязь относительно ядра преобразования, используемого, когда устройство кодирования выполняет преобразование. Например, когда ядро преобразования состоит из матрицы преобразования, матрица преобразования, используемая, когда устройство декодирования выполняет обратное преобразование, может представлять собой обратную матрицу по отношению к матрице преобразования, используемой, когда устройство кодирования выполняет преобразование. Когда ядро преобразования состоит из функции преобразования, функция преобразования, используемой, когда устройство декодирования выполняет обратное преобразование, может представлять собой обратную функцию по отношению к функции преобразования, используемой, когда устройство кодирования выполняет преобразование.[175] The transformation kernel used when the decoding device performs the inverse transformation may be inversely related to the transformation kernel used when the encoding device performs the transformation. For example, when the transformation kernel consists of a transformation matrix, the transformation matrix used when the decoding device performs the inverse transformation may be the inverse of the transformation matrix used when the encoding device performs the transformation. When the transformation core is composed of a transformation function, the transformation function used when the decoding device performs inverse transformation may be the inverse function of the transformation function used when the encoding device performs transformation.
[176] Устройство кодирования и устройство декодирования согласно варианту осуществления могут выполнять множественный выбор преобразования (MTS) для выбора ядра для преобразования (обратного преобразования) текущего блока из множества ядер преобразования. Это описывается подробнее далее со ссылкой на фиг. 13 и 14. Устройство кодирования или устройство декодирования может выбирать любое ядро преобразования из множества ядер преобразования, чтобы выполнять преобразование или обратное преобразование. В варианте осуществления, устройство кодирования может применять множество ядер преобразования к остаточному блоку и затем выбирать ядро преобразования с наибольшей эффективностью преобразования в качестве ядра преобразования для преобразования остаточного блока (S131). Здесь, ядро преобразования с наибольшей эффективностью преобразования может выбираться для сравнения RD-затрат. Помимо этого, устройство кодирования может формировать блок преобразования как результат применения выбранного ядра преобразования к остаточному блоку (S132). В завершение, устройство кодирования может выводить информацию преобразования для передачи служебных сигналов ядра преобразования, используемого для преобразования, в устройство декодирования и информацию относительно блока преобразования в качестве потока битов (S133). Здесь, информация преобразования может включать в себя по меньшей мере одно из информации, указывающей то, выполняется или нет MTS согласно режиму прогнозирования, информации, указывающей ядро, применяемое к MTS, или информации, указывающей то, включается или нет эта информация в поток битов.[176] An encoder and a decoder according to an embodiment may perform multiple transform selection (MTS) to select a core to transform (inverse transform) the current block from a plurality of transform cores. This is described in more detail below with reference to FIG. 13 and 14. The encoder or decoder may select any transform kernel from the plurality of transform kernels to perform the transform or inverse transform. In an embodiment, the coding device may apply a plurality of transform kernels to the residual block and then select a transform kernel with the highest transform efficiency as a transform kernel for transforming the residual block (S131). Here, the conversion kernel with the highest conversion efficiency may be selected for RD cost comparison. In addition, the encoding device may generate a transformation block as a result of applying the selected transformation kernel to the residual block (S132). Finally, the encoding device may output transformation information for signaling the transformation core used for transformation to the decoding device and information regarding the transformation block as a bitstream (S133). Here, the transformation information may include at least one of information indicating whether or not the MTS is executed according to the prediction mode, information indicating the core applied to the MTS, or information indicating whether or not this information is included in the bitstream.
[177] В ответ на это, устройство декодирования может получать информацию преобразования и информацию относительно блока преобразования из потока битов, чтобы выполнять обратное преобразование блока преобразования, и формировать остаточный блок, соответствующий ему (S181). Помимо этого, устройство декодирования может выбирать ядро преобразования для обратного преобразования текущего блока преобразования на основе информации преобразования (S182). Помимо этого, устройство декодирования может формировать остаточный блок для текущего блока преобразования с использованием выбранного ядра преобразования (S183).[177] In response to this, the decoding apparatus can obtain transformation information and information regarding the transformation block from the bitstream to perform inverse transformation of the transformation block, and generate a residual block corresponding to it (S181). In addition, the decoding apparatus may select a transformation core for inverse transformation of the current transformation block based on the transformation information (S182). In addition, the decoding apparatus may generate a residual block for the current transformation block using the selected transformation kernel (S183).
[178] Как описано выше, поскольку любое ядро преобразования выбирается из множества ядер преобразования согласно эффективности преобразования и используется, устройство кодирования может передавать в служебных сигналах информацию относительно ядра преобразования, используемого для преобразования, в устройство декодирования, и устройство декодирования может выполнять обратное преобразование с использованием ядра преобразования, соответствующего ядру преобразования, используемому для преобразования посредством устройства кодирования.[178] As described above, since any transform kernel is selected from a plurality of transform kernels according to the transform efficiency and used, the encoding device can signal information regarding the transformation kernel used for transformation to the decoding device, and the decoding device can perform inverse transformation with using a transformation kernel corresponding to the transformation kernel used for transformation by the encoding device.
[179] Между тем, чтобы выполнять MTS, ядро преобразования может определяться посредством выбора некоторых из множества наборов ядер преобразования. Например, набор ядер преобразования может состоять из комбинации ядра вертикального преобразования и ядра горизонтального преобразования. Помимо этого, в качестве информации индекса для выбора набора ядер преобразования, может использоваться информация MTS-индекса, которая представляет собой информацию индекса ядра преобразования.[179] Meanwhile, to perform the MTS, the transformation core may be determined by selecting some of the plurality of sets of transformation cores. For example, a set of transformation kernels may consist of a combination of a vertical transformation kernel and a horizontal transformation kernel. In addition, as index information for selecting a set of transformation cores, MTS index information, which is index information of a transformation core, can be used.
[180] Соответственно, устройство кодирования согласно варианту осуществления может передавать в служебных сигналах информацию MTS-индекса в устройство декодирования в качестве информации для обеспечения возможности устройству декодирования выбирать набор ядер преобразования. Например, информация MTS-индекса может формироваться посредством устройства кодирования и передаваться в служебных сигналах в устройство декодирования, чтобы указывать один из наборов ядер преобразования. В варианте осуществления, набор ядер преобразования может передаваться в служебных сигналах в качестве информации индекса, указывающей ядро вертикального преобразования, и информации индекса, указывающей ядро горизонтального преобразования. Следующая таблица показывает вариант осуществления набора ядер преобразования согласно значению информации MTS-индекса.[180] Accordingly, the encoding device according to the embodiment can signal the MTS index information to the decoding device as information for enabling the decoding device to select a set of transformation cores. For example, the MTS index information may be generated by the encoder and signaled to the decoder to indicate one of the sets of transform kernels. In an embodiment, a set of transform kernels may be signaled as index information indicating a vertical transform kernel and index information indicating a horizontal transform kernel. The following table shows an embodiment of a set of transform kernels according to the value of the MTS index information.
[181] Табл. 2[181] Tab. 2
[182] Здесь, trTypeHor может указывать ядро горизонтального преобразования, и trTypeVer может указывать ядро вертикального преобразования. В варианте осуществления, значение в 0 trTypeHor и trTypeVer согласно вышеприведенной таблице может указывать DCT2, значение в 1 trTypeHor и trTypeVer может указывать DST7, и значение в 2 trTypeHor и trTypeVer может указывать DCT8. Тем не менее, это представляет собой пример, , различные DCT или DST могут преобразовываться в значения, указываемые посредством trTypeHor и trTypeVer. Фиг. 15 показывает пример базисных функций для DCT2, DCT8 и DST7.[182] Here, trTypeHor may indicate a horizontal transformation kernel, and trTypeVer may indicate a vertical transformation kernel. In an embodiment, a value of 0 in trTypeHor and trTypeVer according to the above table may indicate DCT2, a value of 1 in trTypeHor and trTypeVer may indicate DST7, and a value of 2 in trTypeHor and trTypeVer may indicate DCT8. However, this is an example, different DCTs or DSTs can be converted to the values indicated by trTypeHor and trTypeVer. Fig. 15 shows an example of basis functions for DCT2, DCT8 and DST7.
[183] Вариант 1 осуществления [183]
[184] В дальнейшем в этом документе описывается передача в служебных сигналах MTS-индексов устройства кодирования согласно варианту осуществления и процесс обратного преобразования посредством устройства декодирования, соответственно, со ссылкой на фиг. 16-18. Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей способ кодирования текущего блока с использованием MTS посредством устройства кодирования согласно варианту осуществления. Устройство кодирования согласно варианту осуществления может определять то, выполняется или нет передача в служебных сигналах MTS-индекса через поток битов, чтобы кодировать текущий блок (S210). Например, устройство кодирования может определять то, что передача в служебных сигналах MTS-индекса является возможной, чтобы кодировать текущий блок, когда информация флага, включенная в набор параметров последовательности (SPS), указывает то, является или нет возможной передача в служебных сигналах MTS-индекса. Например, набор параметров последовательности может включать в себя первую информацию флага, указывающую то, может или нет tu_mts_idx включаться в поток битов, когда текущий режим кодирования представляет собой внешний режим, и вторую информацию флага, указывающую то, может или нет tu_mts_idx включаться в поток битов, когда текущий режим кодирования представляет собой внутренний режим. Следовательно, устройство кодирования может определять то, является или нет передача в служебных сигналах MTS-индекса возможной, согласно режиму кодирования текущего блока.[184] Hereinafter, this document describes the signaling of the MTS indexes of the encoder according to the embodiment and the demapping process by the decoder, respectively, with reference to FIG. 16-18. Fig. 16 is a flowchart illustrating a method for encoding a current block using an MTS by an encoding device according to an embodiment. The encoder according to the embodiment may determine whether or not the MTS index signaling is transmitted via the bit stream to encode the current block (S210). For example, the encoder may determine that transmission in the MTS-index signaling is possible to encode the current block when the flag information included in the Sequence Parameter Set (SPS) indicates whether or not transmission in the MTS-index signaling is possible. index. For example, the set of sequence parameters may include first flag information indicating whether or not tu_mts_idx may be included in the bitstream when the current coding mode is an external mode, and second flag information indicating whether or not tu_mts_idx may be included in the bitstream. when the current encoding mode is the intra mode. Therefore, the encoder can determine whether or not transmission in the MTS index signaling is possible according to the encoding mode of the current block.
[185] Здесь, первый флаг может представлять собой sps_explicit_mts_intra_enabled_flag, который представляет собой параметр, указывающий то, присутствует или нет tu_mts_idx в синтаксисе единиц внутреннего кодирования. Например, когда tu_mts_idx присутствует в синтаксисе единиц внутреннего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 1. Между тем, когда tu_mts_idx не присутствует в синтаксисе единиц внутреннего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 0.[185] Here, the first flag may be sps_explicit_mts_intra_enabled_flag, which is a parameter indicating whether or not tu_mts_idx is present in the syntax of intra coding units. For example, when tu_mts_idx is present in the syntax of intra coding units, sps_explicit_mts_intra_enabled_flag may have a value of 1. Meanwhile, when tu_mts_idx is not present in the syntax of intra coding units, sps_explicit_mts_intra_enabled_flag may have a value of 0.
[186] Второй флаг может представлять собой sps_explicit_mts_inter_enabled_flag, который представляет собой параметр, указывающий то, присутствует или нет tu_mts_idx в синтаксисе единиц внешнего кодирования. Когда tu_mts_idx присутствует в синтаксисе единиц внешнего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 1. Когда tu_mts_idx не присутствует в синтаксисе единиц внешнего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 0.[186] The second flag may be sps_explicit_mts_inter_enabled_flag, which is a parameter indicating whether or not tu_mts_idx is present in the syntax of the outer coding units. When tu_mts_idx is present in the syntax of outer encoding units, sps_explicit_mts_intra_enabled_flag may have a value of 1. When tu_mts_idx is not present in the syntax of outer encoding units, sps_explicit_mts_intra_enabled_flag may have a value of 0.
[187] Затем, устройство кодирования может выполнять преобразование текущего блока для каждого из множества ядер преобразования, когда передача в служебных сигналах MTS-индекса является возможной (S221). Например, устройство кодирования может формировать блок преобразования посредством преобразования остаточного блока для текущего блока для каждого из множества ядер.[187] Then, the encoder may perform transformation of the current block for each of the plurality of transformation cores when transmission in the MTS index signaling is possible (S221). For example, the encoder may generate a transformation block by transforming the residual block for the current block for each of the plurality of cores.
[188] Затем, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование текущего блока, на основе результата выполнения преобразования текущего блока для каждого из множества ядер (S222). Например, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование, посредством сравнения эффективности кодирования в случае, если преобразование не выполняется, и в случае, если котором преобразование выполняется для каждого ядра преобразования.[188] Then, the encoder may determine whether or not to apply a transformation to perform encoding of the current block based on the result of performing the transformation of the current block for each of the plurality of cores (S222). For example, the encoder may determine whether or not to apply a transform to perform encoding by comparing the encoding efficiency in case no transform is performed and in case in which transform is performed for each transform kernel.
[189] Затем, когда передача в служебных сигналах MTS-индекса является возможной, и текущий блок кодируется на основе преобразования, устройство кодирования выводит MTS-индекс ядра преобразования, используемого для преобразования, в качестве значения tu_mts_idx в качестве потока битов, и выводит 0 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S223). Следовательно, устройство кодирования может передавать в служебных сигналах информацию относительно ядра преобразования, используемого для преобразования в устройство декодирования.[189] Then, when signaling of the MTS index is possible and the current block is encoded based on the transform, the encoder outputs the MTS index of the transform core used for the transform as the value of tu_mts_idx as the bitstream, and
[190] Между тем, когда текущий блок не кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить 1 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S224). Следовательно, устройство кодирования может передавать в служебных сигналах, в устройство декодирования, информацию, указывающую то, что преобразование текущего блока не выполняется и пропускается.[190] Meanwhile, when the current block is not encoded based on the transform, the encoding device may not output the value of tu_mts_idx as the bitstream, and may
[191] Обращаясь к этапу S210 снова, когда передача в служебных сигналах MTS-индекса является невозможной, устройство кодирования может выполнять преобразование текущего блока с использованием предварительно определенного ядра преобразования (S231). Например, устройство кодирования может формировать блок преобразования посредством преобразования остаточного блока для текущего блока с использованием предварительно определенного ядра преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.[191] Referring to step S210 again, when transmission in the MTS index signaling is impossible, the encoding device may perform transformation of the current block using a predetermined transformation kernel (S231). For example, the encoder may generate a transformation block by transforming the residual block for the current block using a predetermined transformation kernel. For example, the encoder may use DCT2 as the horizontal transform kernel and use DCT2 as the vertical transform kernel. Alternatively, the encoder may use DST7 as the horizontal transform kernel and use DST7 as the vertical transform kernel. Alternatively, the encoder may use DCT8 as the horizontal transform kernel and use DCT8 as the vertical transform kernel.
[192] Затем, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование текущего блока на основе результата выполнения преобразования текущего блока с использованием предварительно определенного ядра преобразования (S232). Например, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование, посредством сравнения эффективности кодирования в случае, если преобразование не выполняется, и в случае, если преобразование выполняется.[192] Then, the encoding device may determine whether or not to apply a transformation to perform encoding of the current block based on the result of performing the transformation of the current block using a predetermined transformation kernel (S232). For example, the encoding device may determine whether or not to apply a transformation to perform encoding by comparing the encoding efficiency in case no transformation is performed and in case transformation is performed.
[193] Затем, когда текущий блок кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить 0 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S233). Следовательно, устройство кодирования может передавать в служебных сигналах информацию относительно ядра преобразования в устройство декодирования, посредством инструктирования устройству декодирования извлекать информацию относительно ядра преобразования, используемого для преобразования.[193] Then, when the current block is encoded based on the transform, the encoding device may not output the value of tu_mts_idx as the bitstream, and may
[194] Между тем, когда текущий блок не кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить 1 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S234). Следовательно, устройство кодирования может передавать в служебных сигналах, в устройство декодирования, информацию, указывающую то, что преобразование текущего блока не выполняется и пропускается.[194] Meanwhile, when the current block is not encoded based on the transform, the encoding device may not output the value of tu_mts_idx as the bitstream, and may
[195] Фиг. 17 иллюстрирует способ декодирования текущего блока с использованием MTS посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может определять то, не представляет собой или представляет собой режим кодирования текущего блока внутренний режим, и то, удовлетворяется или нет дополнительное условие (S310). Здесь, дополнительное условие может состоять в том, указывает или нет первый флаг то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим. Например, когда режим кодирования текущего блока не представляет собой внутренний режим, и первый флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим, устройство декодирования может получать tu_mts_idx из потока битов (S330).[195] FIG. 17 illustrates a method for decoding a current block using an MTS by a decoder according to an embodiment. The decoding apparatus according to the embodiment can determine whether or not the coding mode of the current block is an intra mode, and whether or not an additional condition is satisfied (S310). Here, a further condition may be whether or not the first flag indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an outer mode. For example, when the coding mode of the current block is not an intra mode, and the first flag indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an inter mode, the decoding apparatus can obtain tu_mts_idx from the bitstream (S330).
[196] В противном случае, устройство декодирования согласно варианту осуществления определяет то, представляет собой или нет режим кодирования текущего блока внутренний режим, то, удовлетворяется или нет дополнительное условие (S320). Здесь, дополнительное условие может состоять в том, указывает или нет второй флаг, полученный из потока битов, то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим. Например, когда режим кодирования текущего блока представляет собой внутренний режим, и второй флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим, устройство декодирования может получать tu_mts_idx из потока битов (S330).[196] Otherwise, the decoding apparatus according to the embodiment determines whether or not the coding mode of the current block is an intra mode, whether or not the additional condition is satisfied (S320). Here, a further condition may be whether or not the second flag obtained from the bitstream indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an intra mode. For example, when the coding mode of the current block is an intra mode, and the second flag indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an intra mode, the decoding apparatus can obtain tu_mts_idx from the bitstream (S330).
[197] Между тем, когда условие этапа S320 не удовлетворяется, устройство декодирования может не получать tu_mts_idx текущего блока (S340). Помимо этого, устройство декодирования может не получать tu_mts_idx текущего блока, когда значение transform_skip_flag, полученного из потока битов, указывает то, что преобразование текущего блока не выполняется.[197] Meanwhile, when the condition of step S320 is not satisfied, the decoding apparatus may not obtain the tu_mts_idx of the current block (S340). In addition, the decoder may not obtain the tu_mts_idx of the current block when the value of the transform_skip_flag obtained from the bitstream indicates that no transformation of the current block is performed.
[198] Здесь, порядок этапов S210 и S320 может изменяться. Например, устройство кодирования может определять то, представляет или нет режим кодирования текущего блока собой внутренний режим, и дополнительное условие удовлетворяется (S320), и затем может определять то, представляет или нет режим кодирования текущего блока собой внешний режим, и дополнительное условие удовлетворяется (S310), согласно результату.[198] Here, the order of steps S210 and S320 may be changed. For example, the encoder may determine whether or not the encoding mode of the current block is an intra mode and the additional condition is satisfied (S320), and then may determine whether or not the encoding mode of the current block is an external mode and the additional condition is satisfied (S310 ) according to the result.
[199] Устройство декодирования может определять то, используется предварительно определенное ядро преобразования, или ядро преобразования выбирается согласно tu_mts_idx, чтобы кодировать текущий блок. Например, устройство декодирования может определять то, что предварительно определенное ядро преобразования используется, когда значение sps_explicit_mts_intra_enabled_flag равно 0, значение sps_explicit_mts_inter_enabled_flag равно 0, и режим кодирования текущего блока представляет собой внутренний режим. Между тем, когда такие условия не удовлетворяются, устройство декодирования может определять то, что ядро преобразования выбирается согласно tu_mts_idx.[199] The decoding device may determine whether a predetermined transformation kernel is used or a transformation kernel is selected according to tu_mts_idx to encode the current block. For example, the decoding device may determine that a predetermined transformation kernel is used when the value of sps_explicit_mts_intra_enabled_flag is 0, the value of sps_explicit_mts_inter_enabled_flag is 0, and the encoding mode of the current block is an intra mode. Meanwhile, when such conditions are not satisfied, the decoding apparatus may determine that the transformation core is selected according to tu_mts_idx.
[200] Когда текущий блок декодируется с использованием предварительно определенного ядра преобразования, устройство декодирования может формировать остаточный блок для текущего блока посредством обратного преобразования блока преобразования текущего блока с использованием предварительно определенного ядра преобразования независимо от значения tu_mts_idx. Например, устройство декодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство декодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство декодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.[200] When the current block is decoded using a predetermined transformation kernel, the decoding device may generate a residual block for the current block by inversely transforming the transformation block of the current block using the predetermined transformation kernel regardless of the value of tu_mts_idx. For example, the decoding device may use DCT2 as the horizontal transform kernel and use DCT2 as the vertical transform kernel. Alternatively, the decoding device may use DST7 as a horizontal transform kernel and use DST7 as a vertical transform kernel. Alternatively, the decoder may use DCT8 as the horizontal transform kernel and use DCT8 as the vertical transform kernel.
[201] Между тем, когда текущий блок декодируется согласно tu_mts_idx, устройство декодирования может формировать остаточный блок для текущего блока посредством обратного преобразования блока преобразования текущего блока с использованием ядра преобразования, выбранного согласно таблице 2 и значению tu_mts_idx, полученному из потока битов. Фиг. 18 иллюстрирует часть синтаксической структуры для получения информации кодирования TU посредством синтаксического анализа, посредством устройства декодирования, потока битов, сформированного посредством кодирования изображения посредством устройства кодирования согласно варианту осуществления, в примерах по фиг. 16 и 17.[201] Meanwhile, when the current block is decoded according to tu_mts_idx, the decoder may generate a residual block for the current block by inverting the transformation block of the current block using a transformation kernel selected according to Table 2 and the value of tu_mts_idx obtained from the bitstream. Fig. 18 illustrates part of a syntax structure for obtaining TU encoding information by parsing, by a decoder, a bitstream generated by encoding an image by an encoder according to an embodiment, in the examples of FIG. 16 and 17.
[202] Как описано выше, устройство кодирования может включать в поток битов tu_mts_idx, который представляет собой параметр MTS-индекса, указывающий ядра горизонтального и вертикального преобразования, применяемые к блоку преобразования сигналов яркости текущей единицы кодирования; tu_mts_idx может указывать значение для задания значения trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.[202] As described above, the encoder may include in the bitstream tu_mts_idx, which is an MTS index parameter indicating the horizontal and vertical transform kernels applied to the luma transform block of the current coding unit; tu_mts_idx may indicate a value for setting the value of trTypeHor and trTypeVer as described above with reference to Table 2.
[203] Устройство кодирования может передавать в служебных сигналах tu_mts_idx в устройство декодирования через поток битов только при конкретном условии. Например, устройство кодирования может определять то, передается или нет tu_mts_idx в служебных сигналах, на основе режима прогнозирования текущего блока и значений первого флага и второго флага. Здесь, первый флаг может представлять собой sps_explicit_mts_intra_enabled_flag, который представляет собой параметр, указывающий то, что tu_mts_idx присутствует в синтаксисе единиц внутреннего кодирования. Помимо этого, второй флаг может представлять собой sps_explicit_mts_inter_enabled_flag, который представляет собой параметр, указывающий то, присутствует или нет tu_mts_idx в синтаксисе единиц внешнего кодирования.[203] The encoder may signal the tu_mts_idx to the decoder via the bitstream only under a specific condition. For example, the encoder may determine whether or not tu_mts_idx is signaled based on the prediction mode of the current block and the values of the first flag and the second flag. Here, the first flag may be sps_explicit_mts_intra_enabled_flag, which is a parameter indicating that tu_mts_idx is present in the syntax of the intra coding units. In addition, the second flag may be sps_explicit_mts_inter_enabled_flag, which is a parameter indicating whether or not tu_mts_idx is present in the syntax of the outer coding units.
[204] Устройство кодирования может включать информацию, указывающую то, передаются или нет sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag, в поток битов, чтобы уменьшать число битов потока битов. Например, устройство кодирования может включать информацию третьего флага в поток битов в качестве параметра, указывающего то, включаются или нет два флага в поток битов. Например, третий флаг может представлять собой sps_mts_enabled_flag.[204] The encoder may include information indicating whether or not sps_explicit_mts_intra_enabled_flag and sps_explicit_mts_inter_enabled_flag are transmitted to the bitstream to reduce the number of bits of the bitstream. For example, the encoder may include third flag information in the bitstream as a parameter indicating whether or not two flags are included in the bitstream. For example, the third flag may be sps_mts_enabled_flag.
[205] Например, sps_mts_enabled_flag может указывать то, присутствуют или нет sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag в RBSP-синтаксисе набора параметров последовательности. Например, значение sps_mts_enabled_flag может задаваться равным 1, чтобы указывать то, что sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag присутствуют в RBSP-синтаксисе набора параметров последовательности. Между тем, значение sps_mts_enabled_flag может задаваться равным 0, чтобы указывать то, что sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag не присутствуют в RBSP-синтаксисе набора параметров последовательности.[205] For example, sps_mts_enabled_flag may indicate whether or not sps_explicit_mts_intra_enabled_flag and sps_explicit_mts_inter_enabled_flag are present in the RBSP syntax of the sequence parameter set. For example, the value of sps_mts_enabled_flag may be set to 1 to indicate that sps_explicit_mts_intra_enabled_flag and sps_explicit_mts_inter_enabled_flag are present in the RBSP syntax of the sequence parameter set. Meanwhile, the value of sps_mts_enabled_flag may be set to 0 to indicate that sps_explicit_mts_intra_enabled_flag and sps_explicit_mts_inter_enabled_flag are not present in the RBSP syntax of the sequence parameter set.
[206] В варианте осуществления, устройство декодирования может задавать значение sps_explicit_mts_intra_enabled_flag равным 0, когда sps_explicit_mts_intra_enabled_flag не получается из потока битов. Помимо этого, когда sps_explicit_mts_intra_enabled_flag не получается из потока битов, значение sps_explicit_mts_intra_enabled_flag может задаваться равным 0.[206] In an embodiment, the decoding device may set the value of sps_explicit_mts_intra_enabled_flag to 0 when sps_explicit_mts_intra_enabled_flag is not obtained from the bit stream. In addition, when sps_explicit_mts_intra_enabled_flag is not obtained from the bitstream, the value of sps_explicit_mts_intra_enabled_flag may be set to 0.
[207] Это снова описывается далее со ссылкой на фиг. 18. Согласно третьему оператору 300 IF, показанному на фиг. 18 для синтаксиса единицы преобразования, когда режим прогнозирования текущего блока не представляет собой внутренний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внешнего кодирования, либо когда режим прогнозирования текущего блока представляет собой внутренний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внутреннего кодирования, устройство декодирования может получать параметр tu_mts_idx из потока битов.[207] This is again described next with reference to FIG. 18. According to the third IF
[208] Между тем, когда третий оператор 300 IF не является истинным, устройство декодирования не получает параметр tu_mts_idx из потока битов. В этом случае, устройство декодирования может задавать предварительно определенный набор в качестве значения tu_mts_idx. Например, когда tu_mts_idx не получается из потока битов, устройство декодирования может задавать значение tu_mts_idx равным 0. Соответственно, устройство декодирования может задавать значение trTypeHor и trTypeVer равным 0 и определять то, что DCT2 используется в качестве ядра преобразования для текущего блока согласно trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.[208] Meanwhile, when the third IF
[209] Вариант 2 осуществления [209]
[210] Между тем, когда изображение кодируется посредством выполнения MTS, как описано выше, эффективность сжатия повышается в том, что оптимальное ядро преобразования находится и применяется к блоку преобразования. Тем не менее, когда MTS выполняется, поскольку ядро преобразования определяется для каждого целевого блока, сложность кодирования может значительно увеличиваться. Следовательно, устройство кодирования согласно варианту осуществления может выполнять преобразование посредством выбора любого ядра преобразования из множества ядер преобразования и выводить MTS-индекс, указывающий выбранное ядро преобразования, в качестве потока битов, когда режим кодирования текущего блока представляет собой внешний или внутренний режим, но может выполнять преобразование с использованием предварительно определенного ядра преобразования, когда режим кодирования текущего блока представляет собой IBC-режим, за счет этого уменьшая сложность кодирования. Помимо этого, в этом случае, посредством использования предварительно определенного ядра преобразования, MTS-индекс может не выводиться в качестве потока битов.[210] Meanwhile, when an image is encoded by performing MTS as described above, compression efficiency is improved in that an optimal transform kernel is found and applied to a transform block. However, when the MTS is performed, since the transformation kernel is determined for each target block, the coding complexity may increase significantly. Therefore, the encoding apparatus according to the embodiment can perform transformation by selecting any transformation kernel from a plurality of transformation kernels, and output an MTS index indicating the selected transformation kernel as a bitstream when the encoding mode of the current block is an outer or inner mode, but can perform converting using a predetermined transform kernel when the coding mode of the current block is the IBC mode, thereby reducing the coding complexity. In addition, in this case, by using a predetermined transformation kernel, the MTS index may not be output as a bitstream.
[211] В дальнейшем в этом документе описывается передача в служебных сигналах MTS-индексов устройства кодирования согласно варианту осуществления и процесс обратного преобразования посредством устройства декодирования, соответственно, со ссылкой на фиг. 19-22. Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей работу устройства кодирования согласно варианту осуществления. Сначала описывается работа устройства кодирования со ссылкой на фиг. 19. На фиг. 19, этапы S410-S424 и S434-S436 соответствуют этапам S210-S224 и S232-S234 по фиг. 16, и в силу этого их подробное описание опускается. В дальнейшем в этом документе, фокус наводится на этапы S431-S433 по фиг. 19, которые отличаются от фиг. 16.[211] Hereinafter, this document describes the signaling of the MTS indexes of the encoder according to the embodiment and the demapping process by the decoder, respectively, with reference to FIG. 19-22. Fig. 19 is a flowchart illustrating the operation of an encoding apparatus according to an embodiment. First, the operation of the encoding device will be described with reference to FIG. 19. In FIG. 19, steps S410-S424 and S434-S436 correspond to steps S210-S224 and S232-S234 in FIG. 16, and therefore their detailed description is omitted. Hereinafter in this document, the focus is on steps S431-S433 of FIG. 19 which are different from FIG. 16.
[212] Устройство кодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой IBC-режим (S431), когда передача в служебных сигналах MTS-индекса не выполняется (S410). Устройство кодирования может формировать блок преобразования посредством выполнения преобразования текущего остаточного блока с использованием первого ядра преобразования, когда режим кодирования текущего блока представляет собой IBC-режим (S432). В варианте осуществления, устройство кодирования может не выполнять преобразование посредством выбора оптимального ядра преобразования из множества ядер преобразования, но может выполнять преобразование с использованием предварительно определенного первого ядра преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.[212] The encoder according to the embodiment can determine whether or not the encoding mode of the current block is IBC mode (S431) when no transmission in the MTS index signaling is performed (S410). The encoding device can generate a transformation block by performing transformation of the current residual block using the first transformation kernel when the encoding mode of the current block is IBC mode (S432). In an embodiment, the encoder may not perform transformation by selecting an optimal transformation kernel from a plurality of transformation kernels, but may perform transformation using a predetermined first transformation kernel. For example, the encoder may use DCT2 as the horizontal transform kernel and use DCT2 as the vertical transform kernel. Alternatively, the encoder may use DST7 as the horizontal transform kernel and use DST7 as the vertical transform kernel. Alternatively, the encoder may use DCT8 as the horizontal transform kernel and use DCT8 as the vertical transform kernel.
[213] Между тем, устройство кодирования может формировать блок преобразования посредством выполнения преобразования текущего остаточного блока с использованием второго ядра преобразования (S433), когда режим кодирования текущего блока не представляет собой IBC-режим. В варианте осуществления, когда режим кодирования текущего блока представляет собой внешний или внутренний режим, устройство кодирования может выполнять преобразование с использованием предварительно определенного второго ядра преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.[213] Meanwhile, the encoding device can generate a transformation block by performing transformation of the current residual block using the second transformation kernel (S433) when the encoding mode of the current block is not the IBC mode. In an embodiment, when the encoding mode of the current block is an outer or inner mode, the encoding device may perform transformation using a predetermined second transformation kernel. For example, an encoder may use DCT2 as a horizontal transform kernel and use DCT2 as a vertical transform kernel. Alternatively, the encoder may use DST7 as the horizontal transform kernel and use DST7 as the vertical transform kernel. Alternatively, the encoder may use DCT8 as the horizontal transform kernel and use DCT8 as the vertical transform kernel.
[214] Устройство кодирования согласно варианту осуществления может предварительно устанавливать первое ядро преобразования и второе ядро преобразования в качестве конкретных ядер преобразования согласно характеристикам преобразования остаточного блока, сформированного в IBC-режиме, и характеристикам преобразования остаточного блока, сформированного в режиме, отличном от IBC-режима (например, во внешнем или внутреннем режиме). Устройство кодирования согласно варианту осуществления может одинаково задавать первое ядро преобразования и второе ядро преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования, как для второго ядра преобразования, так и для второго ядра преобразования.[214] The encoding device according to the embodiment can preset the first transformation core and the second transformation core as specific transformation cores according to the transformation characteristics of the residual block generated in the IBC mode and the transformation characteristics of the residual block generated in the mode other than the IBC mode. (for example, in external or internal mode). The encoder according to the embodiment can equally define the first transformation kernel and the second transformation kernel. For example, the encoder may use DCT2 as a horizontal transform kernel and use DCT2 as a vertical transform kernel for both the second transform kernel and the second transform kernel.
[215] В другом варианте осуществления, устройство кодирования может по-разному задавать первое ядро преобразования и второе ядро преобразования. Например, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования для первого ядра преобразования для IBC-режима и использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования для второго ядра преобразования для режима прогнозирования, отличного от IBC-режима. Затем, устройство кодирования может определять то, следует или нет применять преобразование, чтобы кодировать текущий блок, на основе результата выполнения преобразования текущего блока с использованием предварительно определенного ядра преобразования, как описано выше (S434), и выполнять обработку, соответственно. Например, когда текущий блок кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить, в качестве потока битов, 0 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование (S435). Между тем, когда текущий блок не кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить, в потоке битов, 1 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование (S436).[215] In another embodiment, the encoding device may define the first transformation kernel and the second transformation kernel differently. For example, the encoder may use DST7 as the horizontal transform kernel and use DST7 as the vertical transform kernel for the first transform kernel for IBC mode and use DCT2 as the horizontal transform kernel and use DCT2 as the vertical transform kernel for the second transform kernel for IBC mode. prediction other than the IBC mode. Then, the encoding device may determine whether or not to apply a transformation to encode the current block based on the result of performing the transformation of the current block using the predetermined transformation kernel as described above (S434), and perform processing accordingly. For example, when the current block is encoded based on the transform, the encoding device may not output the value of tu_mts_idx as a bitstream, and may output, as a bitstream, 0 as a value of transform_skip_flag, which is a parameter indicating whether or not a transformation is skipped (S435 ). Meanwhile, when the current block is not encoded based on the transform, the encoding device may not output the value of tu_mts_idx as the bitstream, and may output, in the bitstream, 1 as the value of the transform_skip_flag, which is a parameter indicating whether or not a transform is skipped ( S436).
[216] Фиг. 20 иллюстрирует способ определения MTS-индекса посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой внешний режим, и дополнительное условие удовлетворяется (S510). Здесь, дополнительное условие может состоять в том, указывает или нет первый флаг, полученный из потока битов, то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим. Например, когда режим кодирования текущего блока представляет собой внешний режим, и первый флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим, устройство декодирования может получать tu_mts_idx из потока битов (S520).[216] FIG. 20 illustrates a method for determining an MTS index by a decoder according to an embodiment. The decoding apparatus according to the embodiment can determine whether or not the coding mode of the current block is an inter mode, and the additional condition is satisfied (S510). Here, a further condition may be whether or not the first flag obtained from the bitstream indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an outer mode. For example, when the coding mode of the current block is an inter mode, and the first flag indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an inter mode, the decoding device can obtain tu_mts_idx from the bitstream (S520).
[217] В противном случае, устройство декодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой внутренний режим, и то, удовлетворяется или нет дополнительное условие (S530). Здесь, дополнительное условие может состоять в том, указывает или нет второй флаг, полученный из потока битов, то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим. Например, когда режим кодирования текущего блока представляет собой внутренний режим, и первый флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим, устройство декодирования может получать tu_mts_idx из потока битов (S520).[217] Otherwise, the decoding apparatus according to the embodiment can determine whether or not the coding mode of the current block is an intra mode, and whether or not an additional condition is satisfied (S530). Here, a further condition may be whether or not the second flag obtained from the bitstream indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an intra mode. For example, when the coding mode of the current block is an intra mode, and the first flag indicates whether or not tu_mts_idx is included in the bitstream when the current coding mode is an intra mode, the decoding device can obtain tu_mts_idx from the bitstream (S520).
[218] Между тем, иначе устройство декодирования может извлекать tu_mts_idx текущего блока без его получения из потока битов (S540). Между тем, как описано со ссылкой на фиг. 17, определения того, удовлетворяются или нет условия на этапах S510 и S520, могут выполняться в другом порядке.[218] Meanwhile, otherwise, the decoding apparatus may extract the tu_mts_idx of the current block without obtaining it from the bitstream (S540). Meanwhile, as described with reference to FIG. 17, determinations as to whether or not the conditions in steps S510 and S520 are satisfied may be performed in a different order.
[219] В дальнейшем в этом документе описывается способ извлечения tu_mts_idx текущего блока посредством устройства декодирования без его получения из потока битов подробнее со ссылкой на фиг. 21. Устройство декодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой IBC-режим (S541). Устройство декодирования согласно варианту осуществления может задавать tu_mts_idx равным первому значению, не получая tu_mts_idx из потока битов, когда режим кодирования текущего блока представляет собой IBC-режим (S542). Устройство декодирования может задавать tu_mts_idx равным второму значению, не получая tu_mts_idx из потока битов, когда режим кодирования текущего блока не представляет собой IBC-режим (S543).[219] Hereinafter, this document describes a method for extracting the tu_mts_idx of the current block by the decoder without obtaining it from the bitstream in more detail with reference to FIG. 21. The decoding apparatus according to the embodiment may determine whether or not the coding mode of the current block is the IBC mode (S541). The decoding apparatus according to the embodiment may set tu_mts_idx to the first value without obtaining tu_mts_idx from the bitstream when the coding mode of the current block is IBC mode (S542). The decoding apparatus may set tu_mts_idx to the second value without obtaining tu_mts_idx from the bitstream when the coding mode of the current block is not the IBC mode (S543).
[220] В случае примера таблицы 2, устройство декодирования может задавать значение tu_mts_idx равным предварительно определенному значению из значений 0-4. В варианте осуществления, когда устройство кодирования использует DCT2 в качестве ядра горизонтального преобразования и использует DCT2 в качестве ядра вертикального преобразования и в случае, если режим прогнозирования текущего блока представляет собой IBC-режим, и в случае, если режим прогнозирования не представляет собой IBC-режим, устройство декодирования может задавать значение tu_mts_idx равным 0 независимо от того, представляет или нет режим кодирования текущего режима собой IBC-режим.[220] In the case of the example of Table 2, the decoding device may set the value of tu_mts_idx to a predetermined value of values 0-4. In the embodiment, when the encoder uses DCT2 as the horizontal transform kernel and uses DCT2 as the vertical transform kernel both in the case where the prediction mode of the current block is IBC mode and in the case where the prediction mode is not IBC mode , the decoder may set the value of tu_mts_idx to 0 regardless of whether or not the coding mode of the current mode is the IBC mode.
[221] В другом варианте осуществления, когда устройство кодирования использует DST7 в качестве ядра горизонтального преобразования и использует DST7 в качестве ядра вертикального преобразования в случае, если режим прогнозирования текущего блока представляет собой IBC-режим, и использует DCT2 в качестве ядра горизонтального преобразования и использует DCT2 в качестве ядра вертикального преобразования в случае, если режим прогнозирования текущего блока не представляет собой IBC-режим, устройство декодирования может задавать значение tu_mts_idx равным 0 независимо от того, представляет или нет режим прогнозирования текущего режима собой IBC-режим.[221] In another embodiment, when the encoder uses DST7 as the horizontal transform kernel, and uses DST7 as the vertical transform kernel in case the prediction mode of the current block is IBC mode, and uses DCT2 as the horizontal transform kernel, and uses DCT2 as a vertical transform kernel, in case the current block prediction mode is not IBC mode, the decoding apparatus may set tu_mts_idx to 0 regardless of whether or not the current mode prediction mode is IBC mode.
[222] Фиг. 22 иллюстрирует часть синтаксической структуры для получения информации кодирования TU посредством синтаксического анализа, посредством устройства декодирования, потока битов, сформированного посредством кодирования изображения посредством устройства кодирования согласно варианту осуществления, в выполнении устройства кодирования и устройства декодирования.[222] FIG. 22 illustrates part of a syntax structure for obtaining TU encoding information by parsing, by a decoder, a bitstream generated by encoding an image by an encoder according to an embodiment, in an execution of an encoder and a decoder.
[223] Третий оператор 400 IF по фиг. 22 указывает то, что параметр tu_mts_idx включается в поток битов, когда режим прогнозирования текущего блока представляет собой внешний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внешнего кодирования, либо когда режим прогнозирования текущего блока представляет собой внутренний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внутреннего кодирования. Следовательно, устройство кодирования может выводить значение tu_mts_idx в качестве потока битов, когда удовлетворяются вышеуказанные условия. Устройство декодирования может получать значение tu_mts_idx из потока битов, когда удовлетворяются вышеуказанные условия.[223] The third IF
[224] Между тем, когда третий оператор 400 IF не удовлетворяется, устройство кодирования не выводит значение tu_mts_idx в качестве потока битов. Помимо этого, устройство декодирования может не получать значение tu_mts_idx из потока битов. В этом случае, устройство декодирования может задавать предварительно определенное значение в качестве значения tu_mts_idx. Например, когда tu_mts_idx не получается из потока битов, устройство декодирования может задавать значение tu_mts_idx равным 0. Соответственно, устройство декодирования может задавать значения trTypeHor и trTypeVer равными 0 и определять то, что DCT2 используется в качестве ядра преобразования для текущего блока, согласно trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.[224] Meanwhile, when the third IF
[225] Между тем, когда режимом кодирования текущего блока представляет собой IBC, устройство декодирования может задавать значение tu_mts_idx равным 1. Соответственно, устройство декодирования может задавать значения trTypeHor и trTypeVer равными 1 и определять то, что DST7 используется в качестве ядра преобразования для текущего блока, согласно trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.[225] Meanwhile, when the coding mode of the current block is IBC, the decoding device may set the value of tu_mts_idx to 1. Accordingly, the decoding device may set the values of trTypeHor and trTypeVer to 1 and determine that DST7 is used as the transformation core for the current block , according to trTypeHor and trTypeVer, as described above with reference to Table 2.
[226] В дальнейшем в этом документе описывается способ выбора ядра преобразования на основе MTS-индекса посредством устройства декодирования согласно варианту осуществления. Фиг. 23 и 24 являются блок-схемой последовательности операций, иллюстрирующей способ выбора ядра преобразования посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может определять ядро преобразования в зависимости от того, следует или нет извлекать индекс ядра преобразования.[226] Hereinafter, a method for selecting a transform kernel based on an MTS index by a decoding apparatus according to an embodiment is described. Fig. 23 and 24 are a flowchart illustrating a transform kernel selection method by a decoding apparatus according to an embodiment. The decoding apparatus according to the embodiment may determine the transformation kernel depending on whether or not to extract the transformation kernel index.
[227] В дальнейшем в этом документе описывается способ определения того, следует или нет извлекать индекс ядра преобразования посредством устройства декодирования, со ссылкой на фиг. 23. Во-первых, устройство декодирования согласно варианту осуществления может определять то, следует или нет извлекать MTS-индекс, согласно значению sps_mts_enabled_flag (S610). Устройство декодирования согласно варианту осуществления может определять то, что MTS-индекс не извлекается, когда значение sps_mts_enabled_flag равно 0. Следовательно, устройство декодирования может задавать значение implicitMtsEnabled, который представляет собой параметр, указывающий то, следует или нет извлекать MTS-индекс, равным 0 (S620).[227] Hereinafter, this document describes a method for determining whether or not to extract a transformation kernel index by a decoding apparatus, with reference to FIG. 23. First, the decoding apparatus according to the embodiment may determine whether or not to extract the MTS index according to the value of sps_mts_enabled_flag (S610). The decoder according to an embodiment may determine that the MTS index is not retrieved when the value of sps_mts_enabled_flag is 0. Therefore, the decoder may set the implicitMtsEnabled value, which is a parameter indicating whether or not to retrieve the MTS index, to 0 ( S620).
[228] Когда значение sps_mts_enabled_flag равно 1, устройство декодирования согласно варианту осуществления может определять дополнительные условия, чтобы определять то, следует или нет извлекать MTS-индекс (S630). Например, устройство декодирования может определять то, равно или нет значение sps_explicit_mts_intra_enabled_flag 0, то, равно или нет значение sps_explicit_mts_inter_enabled_flag 0, и то, представляет или нет режим кодирования текущего блока собой IBC-режим (S630). Когда дополнительные условия удовлетворяются, устройство декодирования может задавать значение implicitMtsEnabled равным 1 (S640). Между тем, когда дополнительные условия удовлетворяются, устройство декодирования может задавать значение implicitMtsEnabled равным 0 (S650).[228] When the value of sps_mts_enabled_flag is 1, the decoding device according to the embodiment may determine additional conditions to determine whether or not to extract the MTS index (S630). For example, the decoder may determine whether or not the value of sps_explicit_mts_intra_enabled_flag is 0, whether or not the value of sps_explicit_mts_inter_enabled_flag is 0, and whether or not the coding mode of the current block is IBC mode (S630). When the additional conditions are satisfied, the decoding device may set the implicitMtsEnabled value to 1 (S640). Meanwhile, when the additional conditions are satisfied, the decoding apparatus may set the implicitMtsEnabled value to 0 (S650).
[229] В дальнейшем в этом документе описывается способ определения ядра преобразования посредством устройства декодирования в зависимости от того, следует или нет извлекать индекс ядра преобразования, со ссылкой на фиг. 24.[229] Hereinafter, this document describes a method for determining a transformation kernel by a decoding device depending on whether or not to extract a transformation kernel index, with reference to FIG. 24.
[230] Устройство декодирования согласно варианту осуществления может определять то, следует или нет извлекать MTS-индекс, в зависимости от того, равно или нет значение implicitMtsEnabled 1 (S710). Когда значение implicitMtsEnabled не равно 1, устройство декодирования может определять то, что значение индекса ядра преобразования не получается, и определять ядро горизонтального преобразования и ядро вертикального преобразования посредством задания trTypeHor и trTypeVer согласно значению tu_mts_idx (S720).[230] The decoding device according to the embodiment may determine whether or not to extract the MTS index, depending on whether or not the implicitMtsEnabled value is 1 (S710). When the value of implicitMtsEnabled is not equal to 1, the decoding apparatus may determine that a transformation kernel index value is not obtained, and determine the horizontal transformation kernel and the vertical transformation kernel by setting trTypeHor and trTypeVer according to the value of tu_mts_idx (S720).
[231] Между тем, когда значение implicitMtsEnabled равно 1, устройство декодирования может определять ядро преобразования посредством определения дополнительных условий (S730). Например, устройство декодирования может выбирать способ определения ядра преобразования, в зависимости от того, равно или нет значение implicitMtsEnabled 1, того, равно или нет значение sps_explicit_mts_intra_enabled_flag 0, того, равно или нет значение sps_explicit_mts_inter_enabled_flag 0, и того, представляет или нет режим кодирования текущего блока собой IBC-режим (S730).[231] Meanwhile, when the implicitMtsEnabled value is 1, the decoding apparatus may determine the transformation core by determining additional conditions (S730). For example, the decoder may choose how to determine the transformation kernel, depending on whether the implicitMtsEnabled value is 1 or not, whether the sps_explicit_mts_intra_enabled_flag value is 0 or not, whether the sps_explicit_mts_inter_enabled_flag value is 0 or not, and whether or not the encoding mode of the current block is the IBC mode (S730).
[232] Когда дополнительные условия удовлетворяются, устройство декодирования может определять ядро горизонтального преобразования и ядро вертикального преобразования посредством извлечения trTypeHor и trTypeVer согласно ширине и высоте блока (S740). Например, когда ширина текущего блока превышает или равна 4, ширина текущего блока меньше или равна 16, и высота текущего блока превышает или равна ширине текущего блока, устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 1. Между тем, иначе устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 0.[232] When the additional conditions are satisfied, the decoding apparatus may determine the horizontal transformation kernel and the vertical transformation kernel by extracting trTypeHor and trTypeVer according to the block width and height (S740). For example, when the width of the current block is greater than or equal to 4, the width of the current block is less than or equal to 16, and the height of the current block is greater than or equal to the width of the current block, the decoding apparatus may determine a horizontal transformation kernel by setting trTypeHor to 1. Meanwhile, otherwise, the decoding apparatus may determine the horizontal transformation kernel by setting trTypeHor to 0.
[233] Помимо этого, когда высота текущего блока превышает или равна 4, высота текущего блока меньше или равна 16, и ширина текущего блока превышает или равна высоте текущего блока, устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 1. Между тем, в противном случае устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 0.[233] In addition, when the height of the current block is greater than or equal to 4, the height of the current block is less than or equal to 16, and the width of the current block is greater than or equal to the height of the current block, the decoding apparatus may determine the horizontal transformation kernel by setting trTypeHor to 1. Meanwhile, otherwise, the decoder may determine the horizontal transformation kernel by setting trTypeHor to 0.
[234] Например, устройство декодирования может извлекать trTypeHor и trTypeVer согласно следующим уравнениям. Здесь, nTbW обозначает ширину текущего блока, и nTbH обозначает высоту текущего блока.[234] For example, the decoding device may extract trTypeHor and trTypeVer according to the following equations. Here, nTbW denotes the width of the current box, and nTbH denotes the height of the current box.
[235] уравнение 2[235]
[236] trTypeHor=(nTbW>=4 andand nTbW<=16 andand nTbW<=nTbH)?1:0[236] trTypeHor=(nTbW>=4 andand nTbW<=16 andand nTbW<=nTbH)?1:0
[237] уравнение 3[237] Equation 3
[238] trTypeVer=(nTbH>=4 andand nTbH<=16 andand nTbH<=nTbW)?1:0[238] trTypeVer=(nTbH>=4 andand nTbH<=16 andand nTbH<=nTbW)?1:0
[239] Согласно вышеприведенным уравнениям и вышеприведенной таблице 2, когда значение trTypeHor текущего блока равно 1, устройство декодирования может использовать DST7 в качестве ядра горизонтального преобразования, а когда значение trTypeVer равно 1, устройство декодирования может использовать DST7 в качестве ядра вертикального преобразования. Помимо этого, когда значение trTypeHor текущего блока равно 0, устройство декодирования может использовать DCT2 в качестве ядра горизонтального преобразования, а когда значение trTypeVer равно 0, устройство декодирования может использовать DCT2 в качестве ядра вертикального преобразования. Посредством извлечения ядра горизонтального преобразования и ядра вертикального преобразования для текущего блока, можно повышать эффективность кодирования.[239] According to the above equations and Table 2 above, when the trTypeHor value of the current block is 1, the decoding device can use DST7 as the horizontal transformation kernel, and when the trTypeVer value is 1, the decoding device can use DST7 as the vertical transformation kernel. In addition, when the trTypeHor value of the current block is 0, the decoder may use DCT2 as the horizontal transform kernel, and when the trTypeVer value is 0, the decoder may use DCT2 as the vertical transform kernel. By extracting the horizontal transform kernel and the vertical transform kernel for the current block, coding efficiency can be improved.
[240] Между тем, когда условия этапа S730 не удовлетворяются, устройство декодирования может определять то, что значение индекса ядра преобразования не получается, и определять ядро горизонтального преобразования и ядро вертикального преобразования посредством задания trTypeHor и trTypeVer согласно значению tu_mts_idx (S720).[240] Meanwhile, when the conditions of step S730 are not satisfied, the decoding apparatus may determine that the transformation kernel index value is not obtained, and determine the horizontal transformation kernel and the vertical transformation kernel by setting trTypeHor and trTypeVer according to the value of tu_mts_idx (S720).
[241] Хотя примерные способы настоящего раскрытия сущности, описанного выше, представляются как последовательность операций для ясности описания, это не имеет намерение ограничивать порядок, в котором выполняются этапы, и этапы могут выполняться одновременно или в другом порядке при необходимости. Чтобы реализовывать способ согласно настоящему раскрытию сущности, описанные этапы дополнительно могут включать в себя другие этапы, могут включать в себя оставшиеся этапы, за исключением некоторых этапов, либо могут включать в себя другие дополнительные этапы, за исключением некоторых этапов.[241] Although the exemplary methods of the present disclosure described above are presented as a sequence of operations for clarity of description, it is not intended to limit the order in which the steps are performed, and the steps may be performed simultaneously or in a different order as needed. In order to implement the method according to the present disclosure, the described steps may further include other steps, may include the remaining steps except for some steps, or may include other additional steps except for some steps.
[242] В настоящем раскрытии сущности, устройство кодирования изображений или устройство декодирования изображений, которое выполняет предварительно определенную операцию (этап), может выполнять операцию (этап) подтверждения условия или ситуации выполнения соответствующей операции (этап). Например, если описывается то, что предварительно определенная операция выполняется, когда предварительно определенное условие удовлетворяется, устройство кодирования изображений или устройство декодирования изображений может выполнять предварительно определенную операцию после определения того, удовлетворяется или нет предварительно определенное условие.[242] In the present disclosure, an image encoding device or an image decoding device that performs a predetermined operation (step) may perform an operation (step) of confirming a condition or situation of performing a corresponding operation (step). For example, if it is described that the predetermined operation is performed when the predetermined condition is satisfied, the image encoding apparatus or the image decoding apparatus may perform the predetermined operation after determining whether or not the predetermined condition is satisfied.
[243] Различные варианты осуществления настоящего раскрытия сущности не представляют собой список всех возможных комбинаций и имеют намерение описывать характерные аспекты настоящего раскрытия сущности, и вопросы, описанные в различных вариантах осуществления, могут применяться независимо либо в комбинации двух или более из них.[243] The various embodiments of the present disclosure are not a list of all possible combinations and are intended to describe salient aspects of the present disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more of them.
[244] Различные варианты осуществления настоящего раскрытия сущности могут реализовываться в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. В случае реализации настоящего раскрытия сущности посредством аппаратных средств, настоящее раскрытие сущности может реализовываться с помощью специализированных интегральных схем (ASIC), процессоров цифровых сигналов (DSP), устройств обработки цифровых сигналов (DSPD), программируемых логических устройств (PLD), программируемых пользователем вентильных матриц (FPGA), общих процессоров, контроллеров, микроконтроллеров, микропроцессоров и т.д.[244] Various embodiments of the present disclosure may be implemented in hardware, firmware, software, or a combination of the above. If the present disclosure is implemented in hardware, the present disclosure may be implemented using Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGA), general processors, controllers, microcontrollers, microprocessors, etc.
[245] Помимо этого, устройство декодирования изображений и устройство кодирования изображений, к которым применяются варианты осуществления настоящего раскрытия сущности, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, для видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу" (VoD), устройство на основе OTT-видео (видео поверх сетей), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, видеоустройство системы видеотелефонии, медицинское видеоустройство и т.п. и могут использоваться для того, чтобы обрабатывать видеосигналы или сигналы данных. Например, OTT-видеоустройства могут включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.[245] In addition, the image decoding apparatus and the image encoding apparatus to which embodiments of the present disclosure apply may be included in a multimedia broadcast transceiver, a mobile communication terminal, a home theater system video apparatus, a digital cinema system video apparatus, a surveillance camera, video chatting device, real-time communication device, for example, for video communication, mobile streaming device, storage media, video recording camera, video-on-demand (VoD) service delivery device, OTT video device ( video over networks), an Internet streaming service provider, a 3D video device, a video telephony system video device, a medical video device, and the like. and can be used to process video signals or data signals. For example, OTT video devices may include a game console, a Blu-ray player, an Internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), and the like.
[246] Фиг. 25 является видом, иллюстрирующим систему потоковой передачи контента, к которой является применимым вариант осуществления настоящего раскрытия сущности.[246] FIG. 25 is a view illustrating a content streaming system to which an embodiment of the present disclosure is applicable.
[247] Ссылаясь на фиг. 25, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.[247] Referring to FIG. 25, the content streaming system to which the embodiment(s) of the present document is applied may mainly include an encoding server, a streaming server, a web server, a media storage, a user device, and a media input device.
[248] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы сформировать поток битов, и передает поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.[248] The encoding server compresses content input from media input devices such as a smartphone, camera, camcorder, etc. into digital data to form a bit stream, and transmits the bit stream to the stream server. As another example, when media input devices such as smartphones, cameras, camcorder recorders, etc. directly generate a bitstream, the encoding server may be omitted.
[249] Поток битов может формироваться посредством способа кодирования изображений или устройства кодирования изображений, к которому применяется вариант осуществления настоящего раскрытия сущности, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.[249] The bitstream may be generated by an image encoding method or an image encoding apparatus to which an embodiment of the present disclosure applies, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[250] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер может доставлять ее на потоковый сервер, и потоковый сервер может передавать мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.[250] The streaming server transmits media data to the user device based on the user's request through the web server, and the web server serves as a medium for informing the user about the service. When a user requests a desired service from a web server, the web server may deliver it to the streaming server, and the streaming server may transmit media data to the user. In this case, the content streaming system may include a separate control server. In this case, the control server serves to manage the command/response between devices in the content streaming system.
[251] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.[251] The streaming server may receive content from a media store and/or an encoding server. For example, when content is received from an encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may keep the bitstream for a predetermined time.
[252] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.[252] Examples of a user device may include a mobile phone, smartphone, laptop computer, digital broadcast terminal, personal digital assistant (PDA), portable media player (PMP), navigation device, stylus tablet PC, tablet PCs, ultrabooks, wearable devices (e.g., smart watches, smart glasses, head-mounted displays), digital TVs, desktop computers, digital signage system, etc.
[253] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.[253] Each server in the content streaming system may operate as a distributed server, in which case the data received from each server may be distributed.
[254] Операция согласно способам по вышеописанным вариантам осуществления может выполняться в устройстве или компьютере посредством инструкций (например, операционных систем, приложений, микропрограммного обеспечения, программ и т.д.), выполняемых в устройстве, либо программного обеспечения, выполняемого в устройстве или компьютере. Такое программное обеспечение или инструкции, выполняемые в устройстве, могут записываться на долговременном считываемом компьютером носителе, выполняемом через компонент устройства или компьютера. Считываемый компьютером носитель записи может включать в себя автономный либо комбинацию программных инструкций, файлов данных, структур данных и т.д. Программные инструкции, записанные на считываемом компьютером носителе записи, могут специально проектироваться и конструироваться для настоящего раскрытия сущности либо быть известны для специалистов в области техники компьютерного программного обеспечения. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители записи, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память и т.д., которые конкретно конструируются с возможностью сохранять и реализовывать программную инструкцию. Примеры программных инструкций включают в себя не только механический языковой код, форматируемый посредством компилятора, но также и высокоуровневый языковой код, который может реализовываться посредством компьютера с использованием интерпретатора. Аппаратные устройства могут быть выполнены с возможностью работать в качестве одного или более программных модулей или наоборот, с тем чтобы проводить процессы согласно настоящему раскрытию сущности.[254] The operation according to the methods of the above-described embodiments may be performed on the device or computer by means of instructions (e.g., operating systems, applications, firmware, programs, etc.) executing on the device, or software executing on the device or computer. . Such software or instructions executable on a device may be recorded on a non-volatile computer-readable medium executable through a component of the device or computer. The computer-readable recording medium may include stand-alone or a combination of program instructions, data files, data structures, and so on. The program instructions recorded on a computer-readable recording medium may be specially designed and constructed for the present disclosure, or may be known to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic recording media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROM or DVD-ROM; magneto-optical media such as floppy disks; and hardware devices such as Read Only Memory (ROM), Random Access Memory (RAM), flash memory, etc., which are specifically designed to store and implement a program instruction. Examples of program instructions include not only mechanical language code formatted by a compiler, but also high-level language code that can be implemented by a computer using an interpreter. Hardware devices may be configured to operate as one or more software modules, or vice versa, in order to conduct processes according to the present disclosure.
[255] Хотя конкретная техническая идея для кодирования и декодирования видео или изображения описывается посредством ограниченных вариантов осуществления и чертежей, они предоставляются только для того, чтобы помогать более общему пониманию раскрытия сущности, и настоящее раскрытие сущности не ограничено вышеуказанными вариантами осуществления. Специалисты в области техники, к которой относится настоящее раскрытие сущности, должны принимать во внимание, что различные модификации и изменения могут вноситься относительно вышеприведенного описания.[255] Although a specific technical idea for encoding and decoding a video or image is described by way of limited embodiments and drawings, they are provided only to help a more general understanding of the disclosure, and the present disclosure is not limited to the above embodiments. Those skilled in the art to which the present disclosure relates should appreciate that various modifications and changes may be made with respect to the above description.
[256] Следовательно, техническая идея, описанная в настоящем раскрытии сущности, не должна быть ограничена вышеописанными вариантами осуществления, и не только формула изобретения, описанная ниже, но также и все модификации, одинаковые или эквивалентные формуле изобретения, должны попадать в пределы объема раскрытия сущности.[256] Therefore, the technical idea described in the present disclosure should not be limited to the above-described embodiments, and not only the claims described below, but also all modifications that are the same or equivalent to the claims, should fall within the scope of the disclosure. .
Промышленная применимостьIndustrial Applicability
[257] Варианты осуществления настоящего раскрытия сущности могут использоваться для того, чтобы кодировать или декодировать изображение.[257] Embodiments of the present disclosure may be used to encode or decode an image.
1. Способ декодирования изображений, осуществляемый посредством устройства декодирования изображений, при этом способ декодирования изображений содержит этапы, на которых:1. An image decoding method performed by an image decoding device, wherein the image decoding method comprises the steps of:
- определяют режим прогнозирования текущего блока на основе информации режима прогнозирования текущего блока, получаемой из потока битов;determining a prediction mode of the current block based on the prediction mode information of the current block obtained from the bit stream;
- получают блок коэффициентов преобразования текущего блока из потока битов;- receive a block of transformation coefficients of the current block from the bit stream;
- деквантуют коэффициент преобразования, чтобы сформировать блок деквантованных коэффициентов преобразования;dequantizing the transform coefficient to form a block of dequantized transform coefficients;
- определяют ядро преобразования для блока деквантованных коэффициентов преобразования; и- determine the transformation kernel for the block of dequantized transformation coefficients; And
- формируют остаточный блок для текущего блока посредством выполнения обратного преобразования в отношении блока деквантованных коэффициентов преобразования с использованием ядра преобразования,- forming a residual block for the current block by performing an inverse transform on the block of dequantized transform coefficients using a transform kernel,
- при этом на основе того, что режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, ядро преобразования определяется на основе информации индекса ядра преобразования, полученной из потока битов.wherein, on the basis that the prediction mode of the current block is an inter prediction mode or an intra prediction mode, a transform kernel is determined based on the transform kernel index information obtained from the bit stream.
2. Способ декодирования изображений по п. 1,2. Method for decoding images according to
- в котором на основе того, что режим прогнозирования текущего блока не представляет собой ни режим внешнего прогнозирования, ни режим внутреннего прогнозирования, информация индекса ядра преобразования не получается из потока битов и извлекается в качестве предварительно определенного значения.- in which, on the basis that the prediction mode of the current block is neither the inter prediction mode nor the intra prediction mode, the transform kernel index information is not obtained from the bit stream and extracted as a predetermined value.
3. Способ декодирования изображений по п. 1,3. Method for decoding images according to
- в котором на основе того, что режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), который ссылается на блок, расположенный в том же самом кадре, что и текущий блок, и декодированный перед текущим блоком, информация индекса ядра преобразования не получается из потока битов и извлекается в качестве предварительно определенного значения.- in which, on the basis that the prediction mode of the current block is an intra-block copy (IBC) mode that refers to a block located in the same frame as the current block and decoded before the current block, the transform kernel index information is not obtained from the bitstream and retrieved as a predefined value.
4. Способ декодирования изображений по п. 2,4. Method for decoding images according to
- в котором на основе того, что режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), информация индекса ядра преобразования извлекается в качестве значения, указывающего ядро преобразования из DCT2 и DCT7.- in which, on the basis that the prediction mode of the current block is an intra-block copy (IBC) mode, the transformation kernel index information is extracted as a value indicating the transformation kernel from DCT2 and DCT7.
5. Способ декодирования изображений по п. 1,5. Method for decoding images according to
- в котором определение ядра преобразования для блока деквантованных коэффициентов преобразования содержит этап, на котором извлекают ядро преобразования текущего блока на основе первой информации флага, указывающей то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внутреннего прогнозирования, включаться в поток битов, и второй информации флага, указывающей то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внешнего прогнозирования, включаться в поток битов, иwherein determining the transform kernel for the block of dequantized transform coefficients comprises extracting the transform kernel of the current block based on the first flag information indicating whether or not the transform kernel index information of the current block encoded in intra prediction mode can be included in the bit stream. , and second flag information indicating whether or not transformation kernel index information of the current block encoded in the inter prediction mode can be included in the bitstream, and
- при этом первая информация флага и вторая информация флага получаются из потока битов.wherein the first flag information and the second flag information are obtained from the bit stream.
6. Способ декодирования изображений по п. 5,6. Method for decoding images according to claim 5,
- в котором на основе того, что первая информация флага и вторая информация флага имеют первое значение, указывающее то, что информация индекса ядра преобразования не включается в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), ядро преобразования текущего блока извлекается на основе ширины и высоты текущего блока.- in which, based on the fact that the first flag information and the second flag information have a first value indicating that the transformation core index information is not included in the bit stream, and the prediction mode of the current block is an intra-block copy (IBC) mode, the transformation core of the current block is retrieved based on the width and height of the current block.
7. Способ декодирования изображений по п. 6,7. Method for decoding images according to
- в котором ядро преобразования текущего блока включает в себя ядро горизонтального преобразования и ядро вертикального преобразования,- in which the transformation kernel of the current block includes a horizontal transformation kernel and a vertical transformation kernel,
- при этом ядро горизонтального преобразования текущего блока определяется на основе того, находится или нет ширина текущего блока в пределах предварительно определенного диапазона, и на основе сравнения между шириной и высотой текущего блока, иwherein the horizontal transformation kernel of the current box is determined based on whether or not the width of the current box is within a predetermined range, and based on a comparison between the width and height of the current box, and
- при этом ядро вертикального преобразования текущего блока определяется на основе того, находится или нет высота текущего блока в пределах предварительно определенного диапазона, и на основе сравнения между шириной и высотой текущего блока.wherein the vertical transformation kernel of the current box is determined based on whether or not the height of the current box is within a predetermined range, and based on a comparison between the width and height of the current box.
8. Способ декодирования изображений по п. 5,8. Method for decoding images according to claim 5,
- в котором на основе того, что по меньшей мере одна из первой информации флага и второй информации флага имеет второе значение, указывающее то, что информация индекса ядра преобразования может включаться в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC):- in which, on the basis that at least one of the first flag information and the second flag information has a second value indicating that the transform kernel index information can be included in the bitstream, and the prediction mode of the current block is an intra-block copy (IBC) ):
- ядро преобразования текущего блока извлекается на основе информации индекса ядра преобразования, и- the transformation kernel of the current block is extracted based on the transformation kernel index information, and
- информация индекса ядра преобразования не получается из потока битов и извлекается в качестве предварительно определенного значения.- transformation core index information is not obtained from the bit stream and is extracted as a predetermined value.
9. Способ декодирования изображений по п. 1,9. Method for decoding images according to
- в котором на основе того, что информация индекса ядра преобразования не получается из потока битов, информация индекса ядра преобразования извлекается в качестве предварительно определенного значения,- in which, on the basis that the transformation kernel index information is not obtained from the bitstream, the transformation kernel index information is extracted as a predetermined value,
- при этом на основе того, что режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), который ссылается на блок, расположенный в том же самом кадре, что и текущий блок, и декодированный перед текущим блоком, информация индекса ядра преобразования извлекается в качестве первого значения, иwhereby, based on the fact that the prediction mode of the current block is an intra-block copy (IBC) mode that refers to a block located in the same frame as the current block and decoded before the current block, the transform kernel index information is extracted into as the first value, and
- при этом на основе того, что режим прогнозирования текущего блока представляет собой режим прогнозирования, отличный от IBC-режима, информация индекса ядра преобразования извлекается в качестве второго значения, отличающегося от первого значения.wherein, on the basis that the prediction mode of the current block is a prediction mode other than the IBC mode, the transformation kernel index information is extracted as a second value different from the first value.
10. Устройство декодирования изображений, содержащее:10. An image decoding device, comprising:
- запоминающее устройство; и- Memory device; And
- по меньшей мере один процессор,- at least one processor,
- при этом по меньшей мере один процессор выполнен с возможностью:wherein at least one processor is configured to:
- определять режим прогнозирования текущего блока на основе информации режима прогнозирования текущего блока, полученной из потока битов,- determine the prediction mode of the current block based on the prediction mode information of the current block obtained from the bitstream,
- получать блок коэффициентов преобразования текущего блока из потока битов,- get a block of transformation coefficients of the current block from the bitstream,
- деквантовать коэффициент преобразования, чтобы сформировать блок деквантованных коэффициентов преобразования,- dequantize the transform coefficient to form a block of dequantized transform coefficients,
- определять ядро преобразования для блока деквантованных коэффициентов преобразования, и- determine the transform kernel for the block of dequantized transform coefficients, and
- формировать остаточный блок для текущего блока посредством выполнения обратного преобразования в отношении блока деквантованных коэффициентов преобразования с использованием ядра преобразования,- generate a residual block for the current block by performing an inverse transform on the block of dequantized transform coefficients using a transform kernel,
- при этом на основе того, что режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, ядро преобразования определяется на основе информации индекса ядра преобразования, полученной из потока битов.wherein, on the basis that the prediction mode of the current block is an inter prediction mode or an intra prediction mode, a transform kernel is determined based on the transform kernel index information obtained from the bitstream.
11. Способ кодирования изображений, осуществляемый посредством устройства кодирования изображений, при этом способ кодирования изображений содержит этапы, на которых:11. An image encoding method carried out by an image encoding device, wherein the image encoding method comprises the steps of:
- выбирают режим прогнозирования текущего блока;- select the mode of prediction of the current block;
- формируют блок прогнозирования для текущего блока на основе выбранного режима прогнозирования;- forming a prediction block for the current block based on the selected prediction mode;
- формируют остаточный блок для текущего блока на основе блока прогнозирования;- forming a residual block for the current block based on the prediction block;
- выбирают ядро преобразования для преобразования остаточного блока на основе режима прогнозирования;selecting a transform kernel to transform the residual block based on the prediction mode;
- преобразуют остаточный блок на основе ядра преобразования, чтобы сформировать блок коэффициентов преобразования;transforming the residual block based on the transform kernel to form a block of transform coefficients;
- квантуют блок коэффициентов преобразования, чтобы сформировать блок квантованных коэффициентов преобразования; и- quantizing the block of transform coefficients to form a block of quantized transform coefficients; And
- кодируют блок квантованных коэффициентов преобразования, чтобы сформировать поток битов,- encode a block of quantized transform coefficients to form a bitstream,
- при этом на основе того, что режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, информация индекса ядра преобразования для ядра преобразования, используемого для преобразования остаточного блока, включается в поток битов.Wherein, on the basis that the prediction mode of the current block is an inter prediction mode or an intra prediction mode, transform kernel index information for a transform kernel used to transform the residual block is included in the bit stream.
12. Способ кодирования изображений по п. 11,12. The method of encoding images according to
- в котором на основе того, что режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC):- in which, based on the fact that the prediction mode of the current block is an intra-block copy (IBC) mode:
- преобразование остаточного блока выполняется на основе предварительно определенного ядра преобразования, и- the transformation of the residual block is performed based on a predefined transformation kernel, and
- информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, не включается в поток битов.- Transform kernel index information for a predetermined transform kernel used to transform the residual block is not included in the bitstream.
13. Способ кодирования изображений по п. 11,13. The method of encoding images according to
- в котором первая информация флага, указывающая то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внутреннего прогнозирования, включаться в поток битов, и вторая информация флага, указывающая то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внешнего прогнозирования, включаться в поток битов, включается в поток битов,- in which the first flag information indicating whether or not the transformation kernel index information of the current block coded in the intra prediction mode can be included in the bitstream, and the second flag information indicating whether or not the transformation kernel index information of the current block encoded in inter prediction mode, included in the bitstream, included in the bitstream,
- при этом на основе того, что по меньшей мере одна из первой информации флага и второй информации флага имеет второе значение, указывающее то, что информация индекса ядра преобразования может включаться в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC):wherein at least one of the first flag information and the second flag information has a second value indicating that the transform kernel index information can be included in the bitstream, and the current block prediction mode is an intra-block copy (IBC) ):
- преобразование остаточного блока выполняется на основе предварительно определенного ядра преобразования, и- the transformation of the residual block is performed based on a predefined transformation kernel, and
- информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, не включается в поток битов.- Transform kernel index information for a predetermined transform kernel used to transform the residual block is not included in the bitstream.
14. Способ кодирования изображений по п. 13,14. The method of encoding images according to
- в котором на основе того, что первая информация флага и вторая информация флага имеют первое значение, указывающее то, что информация индекса ядра преобразования не включается в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC):- in which, on the basis that the first flag information and the second flag information have a first value, indicating that the transformation kernel index information is not included in the bitstream, and the current block prediction mode is an intra-block copy (IBC) mode:
- преобразование остаточного блока выполняется на основе предварительно определенного ядра преобразования,- the transformation of the residual block is performed on the basis of a predefined transformation kernel,
- предварительно определенное ядро преобразования извлекается на основе ширины и высоты текущего блока, и- a predefined transform kernel is retrieved based on the width and height of the current block, and
- информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, не включается в поток битов.- Transform kernel index information for a predetermined transform kernel used to transform the residual block is not included in the bitstream.
15. Способ передачи потока битов, формируемого посредством способа кодирования изображений по п. 11.15. A method for transmitting a bit stream generated by the image encoding method of
Claims (68)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/816,818 | 2019-03-11 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021129358A Division RU2787210C1 (en) | 2019-03-11 | 2020-03-11 | Method and apparatus for video encoding/decoding using intrablock copy mode and method for transmitting a bit stream |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2022133873A RU2022133873A (en) | 2023-01-10 |
RU2794519C2 true RU2794519C2 (en) | 2023-04-20 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2604340C2 (en) * | 2011-11-04 | 2016-12-10 | Инфобридж Пте. Лтд, | Reconstituted unit formation method |
US9860559B2 (en) * | 2014-03-17 | 2018-01-02 | Mediatek Singapore Pte. Ltd. | Method of video coding using symmetric intra block copy |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2604340C2 (en) * | 2011-11-04 | 2016-12-10 | Инфобридж Пте. Лтд, | Reconstituted unit formation method |
US9860559B2 (en) * | 2014-03-17 | 2018-01-02 | Mediatek Singapore Pte. Ltd. | Method of video coding using symmetric intra block copy |
Non-Patent Citations (3)
Title |
---|
HYEONGMUN JANG et al., Adaptive NSST Kernel Size Selection, Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC29/WG11, JVET-E0047, 5th Meeting: Geneva, 12-20 January 2017. JIANLE CHEN et al., Algorithm description for Versatile Video Coding and Test Model 2 (VTM 2), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-K1002-v1, 11th Meeting: Ljubljana, 10-18 July 2018. * |
JANI LAINEMA, CE6-related: 2-mode MTS with shape adaptive transform selection, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-M0304-v2, 13th Meeting: Marrakech, 9-18 Jan. 2019. * |
MOONMO KOO еt al., CE6: Reduced Secondary Transform (RST) (test 6.5.1), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-M0292, 13th Meeting: Marrakech, 9-18 Jan. 2019. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11895315B2 (en) | Inter prediction method and apparatus based on history-based motion vector | |
KR102542000B1 (en) | History-based video coding method and apparatus | |
US11706405B2 (en) | Image/video coding method based on intra prediction involving parsing of MPM index, and apparatus thereof | |
US11516490B2 (en) | Method and device for inter predicting on basis of DMVR | |
US11716461B2 (en) | Image coding method and device for carrying out MRL-based intra prediction | |
US11997300B2 (en) | Method and apparatus for video encoding/decoding using IBC mode, and method for transmitting bitstream | |
US11997260B2 (en) | Affine motion prediction-based image decoding method and apparatus using affine MVP candidate list in image coding system | |
US20240107010A1 (en) | Intra prediction method and apparatus in image coding system | |
JP2023105177A (en) | Dmvr-based inter-prediction method and device | |
JP7404481B2 (en) | Image decoding method and device based on sub-block motion prediction in image coding system | |
KR20210111859A (en) | DMVR-based inter prediction method and device | |
JP2022113815A (en) | Image decoding method and apparatus based on affine motion prediction in image coding system | |
JP7462094B2 (en) | Method and apparatus for eliminating duplicate signaling in a video/image coding system | |
CN113261294A (en) | Inter-frame prediction method and device based on SBTMVP | |
US12010292B2 (en) | Method and device for configuring MPM list | |
EP4044599A1 (en) | Image/video coding method and device | |
EP3982630A1 (en) | Method and device for coding image on basis of inter prediction | |
EP3979645A1 (en) | Motion prediction-based image coding method and device | |
RU2794519C2 (en) | Method and device for video encoding/decoding using in-block copying mode and method for bit stream transmission | |
RU2787210C1 (en) | Method and apparatus for video encoding/decoding using intrablock copy mode and method for transmitting a bit stream | |
RU2793902C1 (en) | Image decoding method to perform inter frame prediction when prediction mode for current block cannot be selected and device for this method | |
RU2785731C1 (en) | Method and equipment for encoding/decoding images and method for bitstream transmission | |
RU2820148C2 (en) | Image encoding and decoding equipment and image data transmission equipment |