RU2814221C2 - Image or video encoding based on palette mode - Google Patents
Image or video encoding based on palette mode Download PDFInfo
- Publication number
- RU2814221C2 RU2814221C2 RU2023107370A RU2023107370A RU2814221C2 RU 2814221 C2 RU2814221 C2 RU 2814221C2 RU 2023107370 A RU2023107370 A RU 2023107370A RU 2023107370 A RU2023107370 A RU 2023107370A RU 2814221 C2 RU2814221 C2 RU 2814221C2
- Authority
- RU
- Russia
- Prior art keywords
- palette
- information
- mode
- encoding
- value
- Prior art date
Links
- 230000007704 transition Effects 0.000 claims abstract description 110
- 238000013139 quantization Methods 0.000 claims abstract description 104
- 238000006243 chemical reaction Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 abstract description 147
- 230000008569 process Effects 0.000 abstract description 19
- 230000011664 signaling Effects 0.000 abstract description 11
- 239000000126 substance Substances 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract 1
- 239000000523 sample Substances 0.000 description 79
- 230000033001 locomotion Effects 0.000 description 37
- 238000001914 filtration Methods 0.000 description 32
- 241000023320 Luma <angiosperm> Species 0.000 description 16
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 16
- 230000009466 transformation Effects 0.000 description 13
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013074 reference sample Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Abstract
Description
Предпосылки раскрытияPrerequisites for disclosure
Область техникиTechnical field
[1] Настоящее раскрытие относится к кодированию видео или изображения и, например, к методу кодирования на основе режима палитры.[1] The present disclosure relates to video or image encoding and, for example, to a palette mode-based encoding method.
предшествующий уровень техникиprior art
[2] В последнее время, потребность в изображениях/видео высокого разрешения и высокого качества, таких как изображения/видео сверхвысокой четкости (UHD) 4K или 8K или выше, возросла в различных областях. По мере того как разрешение или качество изображения/видео становятся выше, относительно большее количество информации или битов передается по сравнению с данными обычного изображения/видео. Поэтому, если данные изображения/видео передаются с использованием носителей, таких как существующая проводная/беспроводная широкополосная линия, или сохраняются в унаследованном носителе хранения, затраты на передачу и хранение увеличиваются.[2] Recently, the need for high-resolution and high-quality images/videos, such as ultra-high-definition (UHD) 4K or 8K or higher images/videos, has increased in various fields. As the resolution or quality of an image/video becomes higher, a relatively larger amount of information or bits is transmitted compared to normal image/video data. Therefore, if image/video data is transmitted using media such as an existing wired/wireless broadband line or stored in a legacy storage media, transmission and storage costs increase.
[3] Более того, в настоящее время возрастают интерес и потребность в контентах виртуальной реальности (VR) и искусственной реальности (AR) и иммерсивных медиа, таких как голограмма, а также возрастает трансляция изображений/видео, имеющих характеристики изображений/видео, отличные от характеристик реального изображения/видео, таких как игровые изображения/видео.[3] Moreover, there is currently increasing interest and demand for virtual reality (VR) and artificial reality (AR) content and immersive media such as hologram, as well as increasing broadcast of images/videos having image/video characteristics other than characteristics of real images/videos, such as game images/videos.
[4] Поэтому, существует необходимость в высокоэффективном методе сжатия изображения/видео для эффективного сжатия и передачи, хранения и воспроизведения высококачественных изображений/видео, имеющих различные характеристики, как описано выше.[4] Therefore, there is a need for a highly efficient image/video compression method for efficiently compressing and transmitting, storing and reproducing high quality images/videos having various characteristics as described above.
[5] Более того, также проводится обсуждение метода кодирования в режиме палитры для улучшения эффективности кодирования для экранного контента, такого как сгенерированное компьютером видео, которое содержит значительное количество текста и графики. Чтобы эффективно применять этот метод, необходим способ для кодирования и сигнализации связанной информации.[5] Moreover, there is also discussion of the palette mode encoding method to improve encoding efficiency for screen content, such as computer-generated video, which contains a significant amount of text and graphics. To use this method effectively, a way is needed to encode and signal the associated information.
Краткое описание сущности изобретенияBrief description of the invention
[6] Задача настоящего раскрытия состоит в обеспечении способа и устройства для улучшения эффективности кодирования видео/изображения.[6] An object of the present disclosure is to provide a method and apparatus for improving video/image encoding efficiency.
[7] Другая задача настоящего раскрытия состоит в обеспечении способа и устройства для улучшения эффективности кодирования в режиме палитры.[7] Another object of the present disclosure is to provide a method and apparatus for improving the efficiency of palette mode encoding.
[8] Еще одна задача настоящего раскрытия состоит в обеспечении способа и устройства для эффективной конфигурации и сигнализации различных типов информации, используемой при кодировании в режиме палитры.[8] Another object of the present disclosure is to provide a method and apparatus for efficiently configuring and signaling various types of information used in palette mode encoding.
[9] Еще одна задача настоящего раскрытия состоит в обеспечении способа и устройства для эффективного применения кодирования переходом в режиме палитры.[9] Another object of the present disclosure is to provide a method and apparatus for efficiently applying transition coding in palette mode.
[10] В соответствии с вариантом осуществления настоящего раскрытия, параметр квантования, используемый в процессе масштабирования для квантованного значения перехода в режиме палитры, может выводиться на основе информации минимального параметра квантования для режима пропуска преобразования. Параметр квантования может иметь значение, равное или большее, чем минимальное значение параметра квантования для режима пропуска преобразования.[10] According to an embodiment of the present disclosure, the quantization parameter used in the scaling process for the quantized transition value in the palette mode can be derived based on the minimum quantization parameter information for the transform skip mode. The quantization parameter may have a value equal to or greater than the minimum quantization parameter value for the skip transform mode.
[11] В соответствии с вариантом осуществления настоящего раскрытия, диапазон квантованных значений перехода в режиме палитры может быть ограничен на основе битовой глубины. Например, диапазон информации квантованного значения перехода для компонента яркости имеет значения между 0 и (1<<BitDepthY)-1, и диапазон информации квантованного значения перехода для компонента цветности может иметь значения от 0 до (1<<BitDepthC)-1.[11] According to an embodiment of the present disclosure, the range of quantized transition values in palette mode may be limited based on bit depth. For example, the range of quantized transition value information for the luma component has values between 0 and (1<<BitDepth Y )-1, and the range of quantized transition value information for the chrominance component may have values from 0 to (1<<BitDepth C )-1.
[12] В соответствии с вариантом осуществления настоящего раскрытия, информация размера палитры касательно максимального индекса таблицы палитры может определяться и сигнализироваться посредством набора параметров последовательности (SPS).[12] According to an embodiment of the present disclosure, palette size information regarding the maximum palette table index may be determined and signaled by a sequence parameter set (SPS).
[13] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен способ декодирования видео/изображения, выполняемый устройством декодирования. Способ декодирования видео/изображения может включать в себя способ, раскрытый в вариантах осуществления настоящего раскрытия.[13] According to an embodiment of the present disclosure, a video/image decoding method performed by a decoding apparatus is provided. A video/image decoding method may include a method disclosed in embodiments of the present disclosure.
[14] В соответствии с вариантом осуществления настоящего раскрытия, обеспечено устройство декодирования для выполнения декодирования видео/изображения. Устройство декодирования может выполнять способ, раскрытый в вариантах осуществления настоящего раскрытия.[14] According to an embodiment of the present disclosure, a decoding apparatus for performing video/image decoding is provided. The decoding device may perform the method disclosed in embodiments of the present disclosure.
[15] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен способ кодирования видео/изображения, выполняемый устройством кодирования. Способ кодирования видео/изображения может включать в себя способ, раскрытый в вариантах осуществления настоящего раскрытия.[15] According to an embodiment of the present disclosure, a video/image encoding method performed by an encoding apparatus is provided. A video/image encoding method may include a method disclosed in embodiments of the present disclosure.
[16] В соответствии с вариантом осуществления настоящего раскрытия, обеспечено устройство кодирования для выполнения кодирования видео/изображения. Устройство кодирования может выполнять способ, раскрытый в вариантах осуществления настоящего раскрытия.[16] According to an embodiment of the present disclosure, an encoding apparatus for performing video/image encoding is provided. The encoding device may perform the method disclosed in embodiments of the present disclosure.
[17] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен считываемый компьютером цифровой носитель хранения, в котором хранится закодированная информация видео/изображения, сгенерированная в соответствии со способом кодирования видео/изображения, раскрытым по меньшей мере в одном из вариантов осуществления настоящего раскрытия.[17] According to an embodiment of the present disclosure, a computer-readable digital storage medium is provided in which encoded video/image information generated in accordance with a video/image encoding method disclosed in at least one embodiment of the present disclosure is provided.
[18] В соответствии с вариантом осуществления настоящего раскрытия, обеспечен считываемый компьютером цифровой носитель хранения, в котором хранится закодированная информация или закодированная информация видео/изображения, побуждающая устройство декодирования выполнять способ декодирования видео/изображения, раскрытый по меньшей мере в одном из вариантов осуществления настоящего раскрытия.[18] According to an embodiment of the present disclosure, a computer-readable digital storage medium is provided that stores encoded information or encoded video/image information causing a decoding device to perform a video/image decoding method disclosed in at least one embodiment of the present disclosures.
ПолОЖИТЕЛЬные результатыPositive results
[19] Настоящее раскрытие имеет различные полезные результаты. Например, в соответствии с вариантом осуществления настоящего раскрытия, можно улучшить общую эффективность сжатия изображения/видео. Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, можно улучшить эффективность в кодировании в режиме палитры. Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, можно эффективно конфигурировать и сигнализировать различные типы информации, используемой при кодировании в режиме палитры. Дополнительно, в соответствии с вариантом осуществления настоящего раскрытия, можно улучшить точность и эффективность кодирования для выборок перехода путем эффективного применения кодирования переходом в режиме палитры.[19] The present disclosure has various beneficial effects. For example, according to an embodiment of the present disclosure, the overall image/video compression efficiency can be improved. Additionally, according to an embodiment of the present disclosure, efficiency in palette mode encoding can be improved. Additionally, in accordance with an embodiment of the present disclosure, various types of information used in palette mode encoding can be efficiently configured and signaled. Additionally, in accordance with an embodiment of the present disclosure, it is possible to improve the accuracy and efficiency of encoding for transition samples by efficiently applying transition encoding in palette mode.
[20] Результаты, которые можно получить с помощью конкретных вариантов осуществления настоящего раскрытия, не ограничены результатами, перечисленными выше. Например, могут быть различные технические результаты, которые специалист в данной области техники может понять или вывести из настоящего раскрытия. Соответственно, конкретные результаты настоящего раскрытия не ограничены результатами, явно описанными в настоящем раскрытии, и могут включать в себя различные результаты, которые можно понять или вывести из технических признаков настоящего раскрытия.[20] The results that can be obtained using specific embodiments of the present disclosure are not limited to the results listed above. For example, there may be various technical findings that one skilled in the art may understand or infer from the present disclosure. Accordingly, the specific results of the present disclosure are not limited to the results expressly described in the present disclosure, and may include various results that can be understood or inferred from the technical features of the present disclosure.
Краткое описание чертежейBrief description of drawings
[21] Фиг. 1 схематично показывает пример системы кодирования видео/изображения, применимой к вариантам осуществления настоящего раскрытия.[21] FIG. 1 schematically shows an example of a video/image coding system applicable to embodiments of the present disclosure.
[22] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, в котором применимы варианты осуществления настоящего раскрытия.[22] FIG. 2 is a diagram schematically illustrating the configuration of a video/image encoding apparatus to which embodiments of the present disclosure are applicable.
[23] Фиг. 3 является диаграммой, схематично иллюстрирующей конфигурацию устройства декодирования видео/изображения, в котором применимы варианты осуществления настоящего раскрытия.[23] FIG. 3 is a diagram schematically illustrating the configuration of a video/image decoding apparatus to which embodiments of the present disclosure are applicable.
[24] Фиг. 4 показывает пример схематичной процедуры кодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия.[24] FIG. 4 shows an example of a schematic video/image encoding procedure to which embodiments of the present disclosure are applicable.
[25] Фиг. 5 показывает пример схематичной процедуры декодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия.[25] FIG. 5 shows an example of a schematic video/image decoding procedure to which embodiments of the present disclosure are applicable.
[26] Фиг. 6 показывает пример для описания базовой структуры кодирования палитры.[26] FIG. 6 shows an example to describe the basic structure of palette encoding.
[27] Фиг. 7 показывает пример для описания способов горизонтального и вертикального поперечного сканирования, используемых, чтобы кодировать карту индексов палитры.[27] FIG. 7 shows an example for describing the horizontal and vertical cross-scan methods used to encode a palette index map.
[28] Фиг. 8 является диаграммой для описания примера способа кодирования на основе режима палитры.[28] FIG. 8 is a diagram for describing an example of a palette mode-based encoding method.
[29] Фиг. 9 схематично показывает пример способа кодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.[29] FIG. 9 schematically shows an example of a video/image encoding method in accordance with embodiment(s) of the present disclosure.
[30] Фиг. 10 схематично показывает пример способа декодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.[30] FIG. 10 schematically shows an example of a video/image decoding method in accordance with embodiment(s) of the present disclosure.
[31] Фиг. 11 показывает пример системы стриминга контента, в которой применимы варианты осуществления, изложенные в настоящем раскрытии.[31] FIG. 11 shows an example of a content streaming system in which the embodiments set forth in the present disclosure are applicable.
Описание примерных вариантов осуществленияDescription of Exemplary Embodiments
[32] Настоящее раскрытие может модифицироваться различными способами и может иметь различные варианты осуществления, и конкретные варианты осуществления будут проиллюстрированы на чертежах и описаны подробно. Однако это не предназначено ограничивать настоящее раскрытие конкретными вариантами осуществления. Термины, типично используемые в настоящей спецификации, использованы для описания конкретного варианта осуществления, и не используются, чтобы ограничивать техническую сущность настоящего раскрытия. Выражение в единственном числе включает в себя выражения во множественном числе, если в контексте явным образом не выражено иное. Термин, такой как “включать в себя” или “иметь” в настоящей спецификации, должен пониматься как указывающий существование характеристики, числа, этапа, операции, элемента, части или их комбинации, описанных в спецификации, и не исключающий существования или возможности добавления одной или нескольких других характеристик, чисел, этапов, операций, элементов, частей или их комбинации.[32] The present disclosure may be modified in various ways and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present disclosure to specific embodiments. The terms typically used in this specification are used to describe a particular embodiment, and are not used to limit the technical substance of the present disclosure. Expressions in the singular include expressions in the plural unless the context clearly states otherwise. A term such as “include” or “have” in this specification shall be understood to indicate the existence of a feature, number, step, operation, element, part, or combination thereof described in the specification, and not to preclude the existence or possibility of adding one or several other characteristics, numbers, steps, operations, elements, parts, or combinations thereof.
[33] Между тем, элементы на чертежах, описанных в настоящем раскрытии, проиллюстрированы независимо для удобства описания, относящегося к разным характеристическим функциям. Это не означает, что каждый из элементов реализован как отдельные аппаратные средства или отдельное программное обеспечение. Например, по меньшей мере два из элементов могут комбинироваться для образования одного элемента, или один элемент может делиться на множество элементов. Вариант осуществления, в котором элементы скомбинированы и/или разделены, также включен в объем прав настоящего раскрытия, если он не отклоняется от сущности настоящего раскрытия.[33] Meanwhile, elements in the drawings described in the present disclosure are illustrated independently for convenience of description related to different characteristic functions. This does not mean that each of the elements is implemented as separate hardware or separate software. For example, at least two of the elements may be combined to form one element, or one element may be divided into multiple elements. An embodiment in which elements are combined and/or separated is also included within the scope of this disclosure as long as it does not depart from the spirit of this disclosure.
[34] В настоящем раскрытии, термин “A или B” может означать “только A”, “только B” или “как A, так и B”. Иными словами, в настоящем раскрытии, термин “A или B” может интерпретироваться как указывающий “A и/или B”. Например, в настоящем раскрытии, термин “A, B или C” может означать “только A”, “только B”, “только C” или “любую комбинацию A, B и C”.[34] In the present disclosure, the term “A or B” may mean “A only,” “B only,” or “both A and B.” In other words, in the present disclosure, the term “A or B” may be interpreted to indicate “A and/or B”. For example, in the present disclosure, the term “A, B, or C” may mean “A only,” “B only,” “C only,” or “any combination of A, B, and C.”
[35] Символ “/” или запятая, используемые в настоящем раскрытии, могут означать “и/или”. Например, “A/B” может означать “A и/или B”. Соответственно, “A/B” может означать “только A”, “только B” или “как A, так и B”. Например, “A, B, C” может означать “A, B или C”.[35] The “/” symbol or comma used in this disclosure may mean “and/or.” For example, “A/B” could mean “A and/or B.” Accordingly, “A/B” can mean “A only,” “B only,” or “both A and B.” For example, “A, B, C” could mean “A, B or C”.
[36] В настоящем раскрытии, “по меньшей мере одно из A и B” может означать “только A”, “только B” или “как A, так и B”. Дополнительно, в настоящем раскрытии, выражение “по меньшей мере одно из A или B” или “по меньшей мере одно из A и/или B” может интерпретироваться так же, как и “по меньшей мере одно из A и B”.[36] In the present disclosure, “at least one of A and B” may mean “A only,” “B only,” or “both A and B.” Additionally, in the present disclosure, the expression “at least one of A or B” or “at least one of A and/or B” may be interpreted in the same way as “at least one of A and B”.
[37] Дополнительно, в настоящем раскрытии, “по меньшей мере одно из A, B и C” может означать “только A”, “только B”, “только C” или “любая комбинация из A, B и C”. Дополнительно, “по меньшей мере одно из A, B или C” или “по меньшей мере одно из A, B и/или C” может означать “по меньшей мере одно из A, B и C”.[37] Additionally, in the present disclosure, “at least one of A, B, and C” may mean “A only,” “B only,” “C only,” or “any combination of A, B, and C.” Additionally, “at least one of A, B, or C” or “at least one of A, B, and/or C” may mean “at least one of A, B, and C.”
[38] Дополнительно, круглые скобки, используемые в настоящем раскрытии, могут означать “например”. Конкретно, в случае, где выражено “предсказание (интра-предсказание)”, может указываться, что “интра-предсказание” предложено как пример “предсказания”. Иными словами, термин “предсказание” в настоящем раскрытии не ограничен “интра-предсказанием”, и может указываться, что “интра-предсказание” предложено в качестве примера “предсказания”. Дополнительно, даже в случае, где выражено “предсказание (т.е. интра-предсказание)”, может указываться, что “интра-предсказание” предложено в качестве примера “предсказания”.[38] Additionally, parentheses used in this disclosure may mean “for example.” Specifically, in the case where “prediction (intra-prediction)” is expressed, it may be stated that “intra-prediction” is proposed as an example of “prediction”. In other words, the term “prediction” in the present disclosure is not limited to “intra-prediction”, and it may be stated that “intra-prediction” is proposed as an example of “prediction”. Additionally, even in the case where “prediction (ie, intra-prediction)” is expressed, it may be stated that “intra-prediction” is proposed as an example of “prediction”.
[39] Настоящее раскрытие относится к кодированию видео/изображения. Например, способы/варианты осуществления, раскрытые в настоящем раскрытии, могут применяться к способу, раскрытому в многоцелевом кодировании видео (VVC). Дополнительно, способы/варианты осуществления, раскрытые в настоящем раскрытии, могут применяться к способу, раскрытому в стандарте существенного кодирования видео (EVC), стандарте AOMedia Video 1 (AV1), стандарте кодирования аудио и видео 2-го поколения (AVS2) или стандарте кодирования видео/изображения следующего поколения (например, H.267 или H.268 и т.д.).[39] The present disclosure relates to video/image coding. For example, the methods/embodiments disclosed in the present disclosure may be applied to a method disclosed in multi-purpose video coding (VVC). Additionally, the methods/embodiments disclosed in the present disclosure may be applied to a method disclosed in the Essential Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the Audio Video Coding Standard 2nd generation (AVS2), or the encoding standard Next generation video/images (eg H.267 or H.268, etc.).
[40] Настоящее раскрытие представляет различные варианты осуществления кодирования видео/изображения, и варианты осуществления могут выполняться в комбинации друг с другом, если не упомянуто иное.[40] The present disclosure presents various embodiments of video/image encoding, and the embodiments may be performed in combination with each other unless otherwise noted.
[41] В настоящем раскрытии, видео может означать набор последовательности изображений в соответствии с течением времени. Картинка обычно означает единицу, представляющую одно изображение в конкретном временном периоде, и вырезка/мозаичный элемент является единицей, составляющей часть картинки в кодировании. Вырезка/мозаичный элемент может включать в себя одну или более единиц дерева кодирования (CTU). Одна картинка может состоять из одной или более вырезок/мозаичных элементов. Мозаичный элемент представляет собой прямоугольную область CTU в конкретном столбце мозаичного элемента и конкретной строке мозаичного элемента в картинке. Столбец мозаичного элемента представляет собой прямоугольную область CTU, имеющих высоту, равную высоте картинки, и ширину, специфицированную синтаксическими элементами в наборе параметров картинки. Строка мозаичного элемента представляет собой прямоугольную область CTU, имеющих высоту, специфицированную синтаксическими элементами в наборе параметров картинки, и ширину, равную ширине картинки. Сканирование мозаичного элемента является конкретным последовательным упорядочиванием CTU, разбивающих картинку, в которой CTU упорядочены последовательно в растровом сканировании CTU в мозаичном элементе, в то время как мозаичные элементы в картинке упорядочены последовательно в растровом сканировании мозаичных элементов картинки. Вырезка включает в себя целое число полных мозаичных элементов или целое число последовательных полных строк CTU в мозаичном элементе картинки, которые могут исключительно содержаться в одной единице NAL.[41] In the present disclosure, video may mean a collection of a sequence of images according to the passage of time. A picture usually means a unit representing one image in a particular time period, and a cutout/tile is a unit that constitutes part of a picture in the encoding. The clipping/tile may include one or more coding tree units (CTUs). One picture may consist of one or more cutouts/mosaic elements. A tile is a rectangular CTU area in a specific tile column and a specific tile row in a picture. A tile column is a rectangular area of CTUs having a height equal to the height of the picture and a width specified by the syntax elements in the picture parameter set. A tile row is a rectangular area of CTUs having a height specified by the syntax elements in the picture parameter set and a width equal to the width of the picture. A tile scan is a particular sequential ordering of CTUs tiles in a picture, in which the CTUs are ordered sequentially in a raster scan of the CTUs in a tile, while the tiles in a picture are ordered sequentially in a raster scan of the tiles in the picture. A slice includes an integer number of full tiles or an integer number of consecutive full CTU lines in a picture tile that can exclusively be contained in a single NAL unit.
[42] Между тем, одна картинка может делиться на две или более под-картинок. Под-картинка может представлять собой прямоугольную область одной или более вырезок в картинке.[42] Meanwhile, one picture can be divided into two or more sub-pictures. A sub-picture may be a rectangular area of one or more cutouts in a picture.
[43] Пиксел или пел может означать наименьшую единицу, составляющую одну картинку (или изображение). Также, ‘выборка’ может использоваться как термин, соответствующий пикселу. Выборка может обычно представлять пиксел или значение пиксела и может представлять только пиксел/значение пиксела компонента яркости или только пиксел/значение пиксела компонента цветности. Альтернативно, выборка может означать значение пиксела в пространственной области или может означать коэффициент преобразования в частотной области, когда значение пиксела преобразовано в частотную область.[43] Pixel or pel can mean the smallest unit that makes up one picture (or image). Also, 'sample' can be used as a term corresponding to a pixel. The sample may typically represent a pixel or a pixel value, and may represent only a luma component pixel/pixel value or only a chrominance component pixel/pixel value. Alternatively, sample may mean a pixel value in the spatial domain, or may mean a conversion factor in the frequency domain when the pixel value is converted to the frequency domain.
[44] Единица может представлять базовую единицу обработки изображения. Единица может включать в себя по меньшей мере одно из конкретной области картинки и информации, относящейся к области. Одна единица может включать в себя один блок яркости и два блока цветности (например, cb, cr). Единица может использоваться взаимозаменяемо с терминами, такими как блок или область, в некоторых случаях. В общем случае, блок M×N может включать в себя выборки (или массивы выборок) или набор (или массив) коэффициентов преобразования M столбцов и N строк.[44] The unit may represent a basic image processing unit. The unit may include at least one of a specific picture area and information related to the area. One unit may include one luma block and two chrominance blocks (eg, cb, cr). Unit may be used interchangeably with terms such as block or area in some cases. In general, an M×N block may include samples (or arrays of samples) or a set (or array) of transform coefficients of M columns and N rows.
[45] Также, в настоящем раскрытии, по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может быть опущено. Когда квантование/деквантование опущено, квантованный коэффициент преобразования может называться коэффициентом преобразования. Когда преобразование/обратное преобразование опущено, коэффициенты преобразования могут называться коэффициентами или остаточными коэффициентами или могут по-прежнему называться коэффициентами преобразования в целях единообразия выражения.[45] Also, in the present disclosure, at least one of quantization/dequantization and/or transform/inverse transform may be omitted. When quantization/dequantization is omitted, the quantized transformation coefficient may be referred to as the transformation coefficient. When the transform/inverse transform is omitted, the transform coefficients may be called coefficients or residual coefficients, or may still be called transform coefficients for the sake of uniformity of expression.
[46] В настоящем раскрытии, квантованный коэффициент преобразования и коэффициент преобразования могут называться коэффициентом преобразования и масштабированным коэффициентом преобразования, соответственно. В этом случае, остаточная информация может включать в себя информацию о коэффициенте(ах) преобразования, и информация о коэффициенте(ах) преобразования может сигнализироваться через синтаксис кодирования остатка. Коэффициенты преобразования могут выводиться на основе остаточной информации (или информации о коэффициенте(ах) преобразования), и масштабированные коэффициенты преобразования могут выводиться через обратное преобразование (масштабирование) на коэффициентах преобразования. Остаточные выборки могут выводиться на основе обратного преобразования (преобразования) для масштабированных коэффициентов преобразования. Это может применяться/выражаться также и в других частях настоящего раскрытия.[46] In the present disclosure, the quantized transform coefficient and the transform coefficient may be referred to as the transform coefficient and the scaled transform coefficient, respectively. In this case, the residual information may include information about the transform coefficient(s), and the information about the transform coefficient(s) may be signaled through a residual encoding syntax. Transform coefficients may be derived based on the residual information (or information about the transform coefficient(s)), and scaled transform coefficients may be derived via inverse transform (scaling) on the transform coefficients. Residual samples can be inferred based on the inverse transform (transform) of the scaled transform coefficients. This may be applied/expressed in other parts of this disclosure as well.
[47] В настоящем раскрытии, технические признаки, объясненные отдельно на одном чертеже, могут реализовываться отдельно или могут реализовываться одновременно.[47] In the present disclosure, technical features explained separately in one drawing may be implemented separately or may be implemented simultaneously.
[48] Далее, предпочтительные варианты осуществления настоящего раскрытия описаны более конкретно со ссылкой на прилагаемые чертежи. Далее, на чертежах, одинаковая ссылочная позиция используется для того же самого элемента, и избыточное описание того же самого элемента может быть опущено.[48] Next, preferred embodiments of the present disclosure are described more specifically with reference to the accompanying drawings. Further, in the drawings, the same reference numeral is used for the same element, and redundant description of the same element may be omitted.
[49] Фиг. 1 иллюстрирует пример системы кодирования видео/изображения, в которой могут применяться варианты осуществления настоящего документа.[49] FIG. 1 illustrates an example of a video/image coding system to which embodiments of the present document may be applied.
[50] Со ссылкой на фиг. 1, система кодирования видео/изображения может включать в себя устройство-источник и устройство-получатель. Устройство-источник может передавать закодированную информацию или данные видео/изображения на устройство-получатель посредством цифрового носителя хранения или сети в форме файла или потоковой передачи (стриминга).[50] With reference to FIG. 1, a video/image encoding system may include a source device and a destination device. A source device may transmit encoded information or video/image data to a destination device via a digital storage medium or network in the form of a file or streaming.
[51] Устройство-источник может включать в себя источник видео, устройство кодирования и передатчик. Устройство-получатель может включать в себя приемник, устройство декодирования и модуль визуализации (рендерер). Устройство кодирования может называться устройством кодирования видео/изображения, и устройство декодирования может называться устройством декодирования видео/изображения. Передатчик может быть включен в устройство кодирования. Приемник может быть включен в устройство декодирования. Модуль визуализации может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.[51] The source device may include a video source, an encoder, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be called a video/image encoding device, and the decoding device may be called a video/image decoding device. The transmitter may be included in the encoding device. The receiver may be included in a decoding device. The rendering module may include a display, and the display may be configured as a separate device or an external component.
[52] Источник видео может получать видео/изображение через процесс захвата, синтезирования или генерации видео/изображения. Источник видео может включать в себя устройство захвата видео/изображения и/или устройство генерации видео/изображения. Устройство захвата видео/изображения может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и тому подобное. Устройство генерации видео/изображения может включать в себя, например, компьютеры, планшеты и смартфоны и может (электронным способом) генерировать видео/изображения. Например, виртуальное видео/изображение может генерироваться посредством компьютера или тому подобного. В этом случае, процесс захвата видео/изображения может быть заменен на процесс генерации связанных данных.[52] The video source may obtain video/image through a video/image capture, synthesis, or generation process. The video source may include a video/image capturing device and/or a video/image generation device. The video/image capturing device may include, for example, one or more cameras, video/image archives including previously captured video/images, and the like. The video/image generating apparatus may include, for example, computers, tablets, and smartphones and may (electronically) generate video/images. For example, the virtual video/image may be generated by a computer or the like. In this case, the video/image capture process can be replaced by the associated data generation process.
[53] Устройство кодирования может кодировать входное видео/изображения. Устройство кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование для компактности и эффективности кодирования. Закодированные данные (закодированная информация видео/изображения) могут выводиться в форме битового потока.[53] The encoder can encode input video/images. The encoding device may perform a sequence of procedures such as prediction, transformation and quantization for compact and efficient encoding. The encoded data (encoded video/image information) may be output in the form of a bit stream.
[54] Передатчик может передавать закодированную информацию или данные видео/изображения, выведенные в форме битового потока, на приемник устройства-получателя посредством цифрового носителя хранения или сети в форме файла или потоковой передачи. Цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD, SSD и тому подобное. Передатчик может включать в себя элемент для генерации медиа файла в предопределенном формате файла и может включать в себя элемент для передачи по сети вещания/связи. Приемник может принимать/извлекать битовый поток и передавать принятый битовый поток на устройство декодирования.[54] A transmitter may transmit encoded information or video/image data output in the form of a bitstream to a receiver of a recipient device via a digital storage medium or network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD and the like. The transmitter may include an element for generating a media file in a predefined file format and may include an element for transmission over a broadcast/communications network. The receiver can receive/extract the bit stream and transmit the received bit stream to the decoding device.
[55] Устройство декодирования может декодировать видео/изображения путем выполнения последовательности процедур, таких как деквантование, обратное преобразование и предсказание, соответствующих операции устройства кодирования.[55] The decoding apparatus can decode video/images by performing a sequence of procedures such as dequantization, deconversion, and prediction corresponding to the operation of the encoding apparatus.
[56] Модуль визуализации может визуализировать декодированное видео/изображение. Визуализированное видео/ изображение может отображаться посредством дисплея.[56] The renderer can render the decoded video/image. The rendered video/image can be displayed via the display.
[57] Фиг. 2 является диаграммой, схематично иллюстрирующей конфигурацию устройства кодирования видео/изображения, в котором могут применяться варианты осуществления настоящего раскрытия. Далее, устройство кодирования может включать в себя устройство кодирования изображения и/или устройство кодирования видео.[57] FIG. 2 is a diagram schematically illustrating the configuration of a video/image encoding apparatus to which embodiments of the present disclosure may be applied. Further, the encoding device may include an image encoding device and/or a video encoding device.
[58] Со ссылкой на фиг. 2, устройство 200 кодирования может включать в себя или конфигурироваться с модулем 210 разбиения изображения, предсказателем 220, процессором 230 остатка, энтропийным кодером 240, сумматором 250, фильтром 260 и памятью 270. Предсказатель 220 может включать в себя интер-предсказатель 221 и интра-предсказатель 222. Процессор 230 остатка может включать в себя преобразователь 232, квантователь 233, деквантователь 234 и обратный преобразователь 235. Процессор 230 остатка может дополнительно включать в себя вычитатель 231. Сумматор 250 может называться реконструктором или генератором восстановленного блока. Модуль 210 разбиения изображения, предсказатель 220, процессор 230 остатка, энтропийный кодер 240, сумматор 250 и фильтр 260, которые описаны выше, могут быть сконфигурированы одним или более аппаратными компонентами (например, чипсетами или процессорами кодера) в соответствии с вариантом осуществления. Дополнительно, память 270 может включать в себя буфер декодированной картинки (DPB) или может быть сконфигурирована цифровым носителем хранения. Аппаратный компонент может дополнительно включать в себя память 270 как внутренний/внешний компонент.[58] With reference to FIG. 2,
[59] Модуль 210 разбиения изображения может разбивать входное изображение (или картинку, кадр), введенное в устройство 200 кодирования, на одну или более единиц обработки. Например, единица обработки может называться единицей кодирования (CU). В этом случае, единица кодирования может рекурсивно разбиваться в соответствии со структурой квадродерева-двоичного дерева- троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может разбиваться на множество единиц кодирования более глубокой глубины на основе структуры квадродерева, структуры двоичного и/или структуры троичного дерева. В этом случае, например, структура квадродерева применяется первой, а структура двоичного дерева и/или структура троичного дерева могут применяться позже. Альтернативно, структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с настоящим раскрытием может выполняться на основе конечной единицы кодирования, которая больше не разбивается. В этом случае, на основе эффективности кодирования в соответствии с характеристиками изображения или тому подобным, максимальная единица кодирования может непосредственно использоваться как конечная единица кодирования, или, при необходимости, единица кодирования может рекурсивно разбиваться на единицы кодирования более глубокой глубины, так что единица кодирования, имеющая оптимальный размер, может использоваться как конечная единица кодирования. Здесь, процедура кодирования может включать в себя процедуру предсказания, преобразования и восстановления, которые будут описаны далее. В качестве другого примера, единица обработки может дополнительно включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, каждая из единицы предсказания и единицы преобразования может разделяться или разбиваться из вышеупомянутой конечной единицы кодирования. Единица предсказания может быть единицей предсказания выборки, и единица преобразования может быть единицей для выведения коэффициента преобразования и/или единицей для выведения остаточного сигнала из коэффициента преобразования.[59] The
[60] Единица может использоваться взаимозаменяемо с такими терминами, как блок или область в некоторых случаях. В общем случае, блок M×N может представлять выборки, состоящие из M столбцов и N строк, или группу коэффициентов преобразования. Выборка может, в общем, представлять пиксел или значение пиксела, может представлять только пиксел/значение пиксела компонента яркости или представлять только пиксел/значение пиксела компонента цветности. Выборка может использоваться как термин, соответствующий пикселу или пелу, конфигурирующему одну картинку (или изображение).[60] Unit may be used interchangeably with terms such as block or area in some cases. In general, an M×N block can represent samples consisting of M columns and N rows, or a group of transform coefficients. The sample may generally represent a pixel or pixel value, may represent only a luma component pixel/pixel value, or may represent only a chrominance component pixel/pixel value. A sample can be used as a term corresponding to a pixel or pel configuring a single picture (or image).
[61] Устройство 200 кодирования может генерировать остаточный сигнал (остаточный блок, остаточный массив выборок) путем вычитания сигнала предсказания (предсказанного блока, массива выборок предсказания), выведенного из интер-предсказателя 221 или интра-предсказателя 222, из входного сигнала изображения (исходного блока, исходного массива выборок), и сгенерированный остаточный сигнал передается на преобразователь 232. В этом случае, как показано, модуль для вычитания предсказанного сигнала (предсказанного блока, массива выборок предсказания) из входного сигнала изображения (исходного блока, исходного массива выборок) в кодере 200 может называться вычитателем 231. Предсказатель может выполнять предсказание для блоке, подлежащего обработке (далее называемого текущим блоком), и генерировать предсказанный блок, включающий выборки предсказания текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание в единицах текущего блока или CU. Как описано далее в описании каждого режима предсказания, предсказатель может генерировать различную информацию, относящуюся к предсказанию, такую как информация режима предсказания, чтобы передавать сгенерированную информацию на энтропийный кодер 240. Информация о предсказании может кодироваться энтропийным кодером 240 и выводиться в форме битового потока.[61] The
[62] Интра-предсказатель 222 может предсказывать текущий блок с опорой на выборки в текущей картинке. Опорные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены от текущего блока в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, режим DC или планарный режим. Направленный режим может включать в себя, например, 33 направленных режима предсказания или 65 направленных режимов предсказания в соответствии со степенью детализации направления предсказания. Однако это только пример, и больше или меньше направленных режимов предсказания, чем указано выше, могут использоваться в соответствии с настройками. Интра-предсказатель 222 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.[62] Intra predictor 222 may predict the current block based on samples in the current picture. The reference samples may be located adjacent to the current block or may be spaced apart from the current block in accordance with the prediction mode. In intra-prediction, prediction modes may include a plurality of undirected modes and a plurality of directed modes. The omnidirectional mode may include, for example, a DC mode or a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the granularity of the prediction direction. However, this is only an example, and more or less directional prediction modes than listed above may be used according to settings. Intra predictor 222 may determine the prediction mode applied to the current block using the prediction mode applied to the adjacent block.
[63] Интер-предсказатель 221 может выводить предсказанный блок текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. Здесь, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блока, подблока или выборки на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказания, L1-предсказания, Bi-предсказания и т.п.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, существующий в текущей картинке, и временной соседний блок, существующий в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, могут быть одинаковыми или разными. Временной соседний блок может называться совместно расположенным опорным блоком, совмещенной (co-located) CU (colCU) и т.п., и опорная картинка, включающая в себя временной соседний блок, может называться совмещенной картинкой (colPic). Например, интер-предсказатель 221 может конфигурировать список кандидатов информации движения на основе соседних блоков и генерировать информацию, указывающую, какой кандидат используется, чтобы вывести вектор движения и/или индекс опорной картинки текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, интер-предсказатель 221 может использовать информацию движения соседнего блока как информацию движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. Режим предсказания вектора движения (MVP) может указывать вектор движения текущего блока с использованием вектора движения соседнего блока в качестве предсказателя вектора движения и сигнализации разности векторов движения.[63] The inter-predictor 221 may output a predicted block of the current block based on a reference block (reference sample array) specified by a motion vector in the reference picture. Here, in order to reduce the amount of motion information transmitted in the inter-prediction mode, motion information may be predicted in block, sub-block, or sample units based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter-prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-prediction, the neighbor block may include a spatial neighbor block existing in the current picture and a temporal neighbor block existing in the reference picture. The reference picture including the reference block and the reference picture including the temporary adjacent block may be the same or different. A temporary neighbor block may be called a co-located reference block, a co-located CU (colCU), etc., and a reference picture including a temporary neighboring block may be called a co-located picture (colPic). For example, inter-predictor 221 may configure a list of motion information candidates based on neighboring blocks and generate information indicating which candidate is used to output the motion vector and/or reference picture index of the current block. Inter-prediction can be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the inter-predictor 221 may use the motion information of a neighboring block as the motion information of the current block. In the case of the skip mode, unlike the combine mode, the residual signal may not be transmitted. A motion vector prediction (MVP) mode may indicate the motion vector of a current block using the motion vector of an adjacent block as a motion vector predictor and signaling the motion vector difference.
[64] Предсказатель 220 может генерировать предсказанный сигнал на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание для предсказания одного блока, но также может одновременно применять интра-предсказание и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для выполнения предсказания на блоке. Режим предсказания IBC или режим палитры могут использоваться для кодирования изображения/видео контента игры или тому подобного, такого как кодирование экранного контента (SCC). IBC в основном выполняет предсказание в текущей картинке, но это может выполняться аналогично интер-предсказанию в том, что оно выводит опорный блок в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем документе. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, значение выборки в картинке может сигнализироваться на основе информации об индексе палитры и о таблице палитры.[64]
[65] Сигнал предсказания, сгенерированный предсказателем (включая интер-предсказатель 221 и/или интра-предсказатель 222), может использоваться, чтобы генерировать восстановленный сигнал или чтобы генерировать остаточный сигнал. Преобразователь 232 может генерировать коэффициенты преобразования путем применения метода преобразования к остаточному сигналу. Например, метод преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно-нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация отношения между пикселами представлена графом. CNT означает преобразование, которое получено на основе предсказанного сигнала, сгенерированного с использованием всех ранее восстановленных пикселов. К тому же, процесс преобразования может также применяться к квадратным блокам пикселов, имеющим одинаковый размер, или может применяться к блокам, имеющим переменный размер, а не квадратным.[65] A prediction signal generated by a predictor (including inter-predictor 221 and/or intra-predictor 222) may be used to generate a reconstructed signal or to generate a residual signal.
[66] Квантователь 233 может квантовать коэффициенты преобразования, чтобы передавать квантованные коэффициенты преобразования на энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию о квантованных коэффициентах преобразования) в закодированный квантованный сигнал в битовый поток. Информация о квантованных коэффициентах преобразования может называться остаточной информацией. Квантователь 233 может переупорядочивать квантованные коэффициенты преобразования, имеющие блочную форму, в форму одномерного вектора на основе порядка сканирования коэффициентов и генерировать информацию о квантованных коэффициентах преобразования на основе квантованных коэффициентов преобразования в форме одномерного вектора. Энтропийный кодер 240 может выполнять различные способы кодирования, такие как, например, экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Энтропийный кодер 240 может также кодировать информацию (например, значения синтаксических элементов и т.д.), необходимую для восстановления видео/изображения, отличную от квантованных коэффициентов преобразования, вместе или отдельно. Закодированная информация (например, закодированная информация видео/изображения) может передаваться или сохраняться в единицах уровня сетевой абстракции (NAL) в форме битового потока. Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. Описанные далее в настоящем документе сигнализируемые/ передаваемые информация и/или синтаксические элементы могут быть закодированы посредством вышеописанной процедуры кодирования и включены в битовый поток. Битовый поток может передаваться по сети или может сохраняться в цифровом носителе хранения. Сеть может включать в себя сеть вещания и/или сеть связи, и цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD и SSD. Передатчик (не показан) для передачи сигнала, выведенного из энтропийного кодера 240, и/или модуль хранения (не показан) для хранения сигнала могут быть сконфигурированы как внутренние/внешние элементы устройства 200 кодирования, или передатчик может быть включен в энтропийный кодер 240.[66]
[67] Квантованные коэффициенты преобразования, выведенные из квантователя 233, могут использоваться, чтобы генерировать предсказанный сигнал. Например, деквантователь 234 и обратный преобразователь 235 применяют деквантование и обратное преобразование к квантованным коэффициентам преобразования, так что остаточный сигнал (остаточный блок или остаточные выборки) может быть восстановлен. Сумматор 250 может добавлять восстановленный остаточный сигнал к предсказанному сигналу, выведенному из интер-предсказателя 221 или интра-предсказателя 222, так что может генерироваться восстановленный сигнал (восстановленная картинка, восстановленный блок, восстановленный массив выборок). Как в случае, где применяется режим пропуска, если отсутствует остаток для блока, подлежащего обработке, предсказанный блок может использоваться как восстановленный блок. Сумматор 250 может называться модулем восстановления или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке в текущей картинке, и, как описано ниже, также может использоваться для интер-предсказания следующей картинки посредством фильтрации.[67] The quantized transform coefficients output from
[68] Между тем, отображение яркости с масштабированием цветности (LMCS) может применяться во время процесса кодирования и/или восстановления картинки.[68] Meanwhile, luma mapping with chroma scaling (LMCS) can be applied during the encoding and/or reconstruction process of a picture.
[69] Фильтр 260 может применять фильтрацию к восстановленному сигналу, тем самым улучшая субъективное/объективное качество изображения. Например, фильтр 260 может применять различные способы фильтрации к восстановленной картинке, чтобы генерировать модифицированную восстановленную картинку, и сохранять модифицированную восстановленную картинку в памяти 270, конкретно, в DPB памяти 270. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное. Фильтр 260 может генерировать различную информацию, относящуюся к фильтрации, чтобы передать сгенерированную информацию на энтропийный кодер 240, как описано далее в описании каждого способа фильтрации. Информация, относящаяся к фильтрации, может кодироваться энтропийным кодером 240 для вывода в форме битового потока.[69]
[70] Модифицированная восстановленная картинка, переданная в память 270, может использоваться как опорная картинка в интер-предсказателе 221. Когда интер-предсказание применяется интер-предсказателем, устройство кодирования может избежать рассогласования предсказания между устройством 200 кодирования и устройством 300 декодирования, а также улучшить эффективность кодирования.[70] The modified reconstructed picture transferred to the
[71] DPB памяти 270 может хранить модифицированную восстановленную картинку для использования в качестве опорной картинки в интер-предсказателе 221. Память 270 может хранить информацию движения блока, из которой выводится (или кодируется) информация движения в текущей картинке, и/или информацию движения блоков в ранее восстановленной картинке. Сохраненная информация движения может передаваться на интер-предсказатель 221, чтобы использоваться как информация движения пространственного соседнего блока или информация движения временного соседнего блока. Память 270 может хранить восстановленные выборки восстановленных блоков в текущей картинке и может переносить восстановленные выборки на интра-предсказатель 222.[71]
[72] Фиг. 3 является диаграммой, схематично иллюстрирующей конфигурацию устройства декодирования видео/изображения, в котором применяются варианты осуществления настоящего раскрытия. Далее, устройство декодирования может включать в себя устройство декодирования изображений и/или устройство декодирования видео.[72] FIG. 3 is a diagram schematically illustrating the configuration of a video/image decoding apparatus to which embodiments of the present disclosure are applied. Further, the decoding apparatus may include an image decoding apparatus and/or a video decoding apparatus.
[73] Со ссылкой на фиг. 3, устройство 300 декодирования может включать в себя и конфигурироваться с энтропийным декодером 310, процессором 320 остатка, предсказателем 330, сумматором 340, фильтром 350 и памятью 360. Предсказатель 330 может включать в себя интер-предсказатель 331 и интра-предсказатель 332. Процессор 320 остатка может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, процессор 320 остатка, предсказатель 330, сумматор 340 и фильтр 350, которые были описаны выше, могут быть сконфигурированы посредством одного или более аппаратных компонентов (например, чипсетов или процессоров декодера) в соответствии с вариантом осуществления. К тому же, память 360 может включать в себя буфер декодированной картинки (DPB) или может быть сконфигурирована цифровым носителем хранения. Аппаратный компонент может дополнительно включать в себя память 360 как внутренний/внешний компонент.[73] With reference to FIG. 3,
[74] Когда битовый поток, включающий в себя информацию видео/изображения, вводится, устройство 300 декодирования может восстанавливать изображение в ответ на процесс, в котором информация видео/изображения обрабатывается в устройстве кодирования, показанном на фиг. 2. Например, устройство 300 декодирования может выводить единицы/блоки на основе информации, относящейся к разбиению блока, полученной из битового потока. Устройство 300 декодирования может выполнять декодирование с использованием единицы обработки, применяемой в устройстве кодирования. Поэтому единица обработки может представлять собой, например, единицу кодирования, и единица кодирования может разбиваться в соответствии со структурой квадродерева, структурой двоичного дерева и/или структурой троичного дерева из единицы дерева кодирования или максимальной единицы кодирования. Одна или более единиц преобразования могут выводиться из единицы кодирования. Дополнительно, восстановленный сигнал изображения, декодированный и выведенный посредством устройства 300 декодирования, может воспроизводиться посредством устройства воспроизведения.[74] When a bitstream including video/image information is input, the
[75] Устройство 300 декодирования может принимать сигнал, выведенный из устройства кодирования согласно фиг. 2 в форме битового потока, и принятый сигнал может декодироваться посредством энтропийного декодера 310. Например, энтропийный декодер 310 может выводить информацию (например, информацию видео/изображения), необходимую для восстановления изображения (или восстановления картинки), путем выполнения синтаксического анализа битового потока. Информация видео/изображения может дополнительно включать в себя информацию о различных наборах параметров, таких как набор параметров адаптации (APS), набор параметров картинки (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). К тому же, информация видео/изображения может дополнительно включать в себя общую информацию ограничения. Устройство декодирования может дополнительно декодировать картинку на основе информации о наборе параметров и/или общей информации ограничения. Сигнализированная/принятая информация и/или синтаксические элементы, описанные далее в настоящем документе, могут быть декодированы посредством процедуры декодирования и получены из битового потока. Например, энтропийный декодер может декодировать информацию в битовом потоке на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC, и выводить значение синтаксического элемента, необходимое для восстановления изображения, и квантованные значения коэффициентов преобразования для остатка. Более конкретно, способ энтропийного декодирования CABAC может принимать бин, соответствующий каждому синтаксическому элементу из битового потока, определять контекстную модель с использованием информации декодируемого синтаксического элемента и информации декодирования соседнего блока и блока, подлежащего декодированию, или информации символа/бина, декодированного на предыдущей стадии, и генерировать символ, соответствующий значению каждого синтаксического элемента, путем предсказания вероятности генерации бина в соответствии с определенной контекстной моделью, чтобы выполнить арифметическое декодирование бина. В этом случае, способ энтропийного декодирования CABAC может определять контекстную модель и затем обновлять контекстную модель с использованием информации декодированного символа/бина для контекстной модели следующего символа/бина. Информация о предсказании, среди информации, декодированной энтропийным декодером 310, может предоставляться на предсказатель (интер-предсказатель 332 и интра-предсказатель 331), и значение остатка, с которым энтропийное декодирование было выполнено энтропийным декодером 310, то есть, квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в процессор 320 остатка. Процессор 320 остатка может выводить остаточный сигнал (остаточный блок, остаточные выборки, массив остаточных выборок). Дополнительно, информация о фильтрации среди информации, декодированной энтропийным декодером 310, может предоставляться на фильтр 350. Между тем, приемник (не проиллюстрирован) для приема сигнала, выведенного из устройства кодирования, может быть дополнительно сконфигурирован как внутренний/внешний элемент устройства 300 декодирования, или приемник может также быть компонентом энтропийного декодера 310. Между тем, устройство декодирования в соответствии с настоящим документом может называться устройством декодирования видео/изображения/картинки, и устройство декодирования может также классифицироваться на декодер информации (декодер информации видео/изображения/картинки) и декодер выборки (декодер выборки видео/изображения/картинки). Декодер информации может включать в себя энтропийный декодер 310, и декодер выборки может включать в себя по меньшей мере одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, памяти 360, интер-предсказателя 332 и интра-предсказателя 331.[75] The
[76] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования, чтобы выводить коэффициенты преобразования. Деквантователь 321 может переупорядочивать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, переупорядочивание может выполняться на основе порядка сканирования коэффициентов, выполняемого устройством кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования с использованием параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.[76]
[77] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получить остаточный сигнал (остаточный блок, остаточный массив выборок).[77] An
[78] Предсказатель 330 может выполнять предсказание текущего блока и генерировать предсказанный блок, включающий в себя выборки предсказания текущего блока. Предсказатель может определять, применяется ли интра-предсказание или интер-предсказание к текущему блоку, на основе информации о предсказании, выведенной из энтропийного декодера 310, и может определять конкретный режим интра/интер-предсказания.[78]
[79] Предсказатель 320 может генерировать предсказанный сигнал на основе различных способов предсказания, описанных ниже. Например, предсказатель может не только применять интра-предсказание или интер-предсказание для предсказания одного блока, но также одновременно применять интра-предсказание и интер-предсказание. Это может называться комбинированным интер- и интра-предсказанием (CIIP). К тому же, предсказатель может быть основан на режиме предсказания внутри-блочного копирования (IBC) или режиме палитры для предсказания блока. Режим предсказания IBC или режим палитры могут использоваться для кодирования контента изображения/видео игры или тому подобного, например, кодирования экранного контента (SCC). IBC в основном выполняет предсказание в текущей картинке, но может выполняться аналогично интер-предсказанию тем, что оно выводит опорный блок в текущей картинке. То есть, IBC может использовать по меньшей мере один из методов интер-предсказания, описанных в настоящем документе. Режим палитры может рассматриваться как пример интра-кодирования или интра-предсказания. Когда режим палитры применяется, информация о таблице палитры и индексе палитры может включаться в информацию видео/изображения и сигнализироваться.[79]
[80] Интра-предсказатель 331 может предсказывать текущий блок с опорой на выборки в текущей картинке. Опорные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены от текущего блока в соответствии с режимом предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Интра-предсказатель 331 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседнему блоку.[80]
[81] Интер-предсказатель 332 может выводить предсказанный блок для текущего блока на основе опорного блока (опорного массива выборок), специфицированного вектором движения на опорной картинке. В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блока, подблока или выборки на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказания, L1-предсказания, Bi-предсказания и т.д.). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, существующий в текущей картинке, и временной соседний блок, существующий в опорной картинке. Например, интер-предсказатель 332 может конфигурировать список кандидатов информации движения на основе соседних блоков и выводить вектор движения текущего блока и/или индекс опорной картинки на основе принятой информации выбора кандидата. Интер-предсказание может выполняться на основе различных режимов предсказания, и информация о предсказании может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.[81] Inter-predictor 332 may output a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in the reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter-prediction mode, motion information may be predicted in block, sub-block, or sample units based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter-prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-prediction, the neighbor block may include a spatial neighbor block existing in the current picture and a temporal neighbor block existing in the reference picture. For example, inter-predictor 332 may configure a motion information candidate list based on neighboring blocks and output a motion vector of the current block and/or a reference picture index based on the received candidate selection information. Inter-prediction may be performed based on various prediction modes, and the prediction information may include information indicating an inter-prediction mode for the current block.
[82] Сумматор 340 может суммировать полученный остаточный сигнал с предсказанным сигналом (предсказанным блоком, массивом выборок предсказания), выведенным из предсказателя (включая интер-предсказатель 332 и/или интра-предсказатель 331), чтобы генерировать восстановленный сигнал (восстановленную картинку, восстановленный блок, восстановленный массив выборок). В случае, когда применяется режим пропуска, если отсутствует остаток для блока, подлежащего обработке, то предсказанный блок может использоваться как восстановленный блок.[82]
[83] Сумматор 340 может называться модулем восстановления или генератором восстановленного блока. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего блока, подлежащего обработке в текущей картинке, и, как описано ниже, может выводиться посредством фильтрации или может использоваться для интер-предсказания следующей картинки.[83] The
[84] Между тем, отображение яркости с масштабированием цветности (LMCS) также может применяться в процессе декодирования картинки.[84] Meanwhile, luminance chroma scaling (LMCS) mapping can also be applied in the picture decoding process.
[85] Фильтр 350 может применять фильтрацию к восстановленному сигналу, тем самым улучшая субъективное/ объективное качество изображения. Например, фильтр 350 может применять различные способы фильтрации к восстановленной картинке, чтобы генерировать модифицированную восстановленную картинку, и передавать модифицированную восстановленную картинку в память 360, конкретно, в DPB памяти 360. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр, двунаправленный фильтр и тому подобное.[85]
[86] (Модифицированная) восстановленная картинка, сохраненная в DPB памяти 360, может использоваться как опорная картинка в интер-предсказателе 332. Память 360 может хранить информацию движения блока, в котором выводится (или декодируется) информация движения в текущей картинке, и/или информацию движения блоков в ранее восстановленной картинке. Сохраненная информация движения может передаваться на интер-предсказатель 260 для использования в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Память 360 может сохранять восстановленные выборки восстановленных блоков в текущей картинке и переносить сохраненные восстановленные выборки на интра-предсказатель 331.[86] The (modified) reconstructed picture stored in the
[87] В настоящем раскрытии, варианты осуществления, описанные в фильтре 260, интер-предсказателе 221 и интра-предсказателе 222 устройства 200 кодирования, могут применяться таким же образом к фильтру 350, интер-предсказателю 332 и интра-предсказателю 331 устройства 300 декодирования.[87] In the present disclosure, the embodiments described in the
[88] Как описано выше, при выполнении кодирования видео, предсказание выполняется, чтобы повысить эффективность сжатия. Посредством этого можно сгенерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока, в качестве блока, подлежащего кодированию. Здесь, предсказанный блок включает в себя выборки предсказания в пространственной области (или области пикселов). Предсказанный блок выводится одинаково в устройстве кодирования и устройстве декодирования, и устройство кодирования может сигнализировать информацию (остаточную информацию) об остатке между исходным блоком и предсказанным блоком, а не исходное значение выборки исходного блока, на устройство декодирования, тем самым повышая эффективность кодирования изображения. Устройство декодирования может выводить остаточный блок, включающий в себя остаточные выборки, на основе остаточной информации, суммировать остаточный блок и предсказанный блок, чтобы генерировать восстановленные блоки, включающие в себя восстановленные выборки, и генерировать восстановленную картинку, включающую в себя восстановленные блоки.[88] As described above, when performing video encoding, prediction is performed to improve compression efficiency. By this, a predicted block including prediction samples for the current block can be generated as a block to be encoded. Here, the predicted block includes prediction samples in a spatial domain (or pixel domain). The predicted block is output equally in the encoding device and the decoding device, and the encoding device can signal information (residual information) about the remainder between the original block and the predicted block, rather than the original sample value of the original block, to the decoding device, thereby improving the efficiency of image encoding. The decoding apparatus may output a residual block including residual samples based on the residual information, add the residual block and the predicted block to generate reconstructed blocks including the reconstructed samples, and generate a reconstructed picture including the reconstructed blocks.
[89] Остаточная информация может генерироваться в процедуре преобразования и квантования. Например, устройство кодирования может выводить остаточный блок между исходным блоком и предсказанным блоком, выполнять процедуру преобразования на остаточных выборках (остаточном массиве выборок), включенных в остаточный блок, чтобы вывести коэффициенты преобразования, выполнять процедуру квантования на коэффициентах преобразования, чтобы вывести квантованные коэффициенты преобразования, и сигнализировать соответствующую остаточную информацию на устройство декодирования (посредством битового потока). Здесь, остаточная информация может включать в себя информацию значения квантованных коэффициентов преобразования, информацию местоположения, метод преобразования, ядро преобразования, параметр квантования и тому подобное. Устройство декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и выводить остаточные выборки (или остаточные блоки). Устройство декодирования может генерировать восстановленную картинку на основе предсказанного блока и остаточного блока. Также, для опоры при интер-предсказании затем картинки, устройство кодирования может также деквантовать/обратно преобразовывать квантованные коэффициенты преобразования, чтобы вывести остаточный блок и сгенерировать на его основе восстановленную картинку.[89] Residual information can be generated in the transformation and quantization procedure. For example, the encoding device may output a residual block between an original block and a predicted block, perform a transform procedure on the residual samples (residual array of samples) included in the residual block to output transform coefficients, perform a quantization procedure on the transform coefficients to output quantized transform coefficients, and signal the corresponding residual information to the decoding device (via a bit stream). Here, the residual information may include quantized transform coefficient value information, location information, transform method, transform kernel, quantization parameter, and the like. The decoding apparatus may perform a dequantization/deconversion procedure based on the residual information and output residual samples (or residual blocks). The decoding apparatus can generate a reconstructed picture based on the predicted block and the residual block. Also, to assist in inter-prediction of the next picture, the encoder may also dequantize/de-convert the quantized transform coefficients to output a residual block and generate a reconstructed picture from it.
[90] Фиг. 4 показывает пример схематичной процедуры кодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия. На фиг. 4, S400 может выполняться предсказателем 220 устройства кодирования, описанного выше на фиг. 2, S410 может выполняться процессором 230 остатка, и S420 может выполняться энтропийным кодером 240. S400 может включать в себя процедуру интер/интра-предсказания, описанную в настоящем раскрытии, S410 может включать в себя процедуру обработки остатка, описанную в настоящем раскрытии, и S420 может включать в себя процедуру кодирования информации, описанную в настоящем раскрытии.[90] FIG. 4 shows an example of a schematic video/image encoding procedure to which embodiments of the present disclosure are applicable. In fig. 4, S400 may be performed by the
[91] Со ссылкой на фиг. 4, процедура кодирования видео/изображения может включать в себя не только процедуру кодирования информации для восстановления картинки (например, информации предсказания, остаточной информации, информации разбиения и т.д.) и вывод закодированной информации в форме битового потока, как представлено в описании фиг. 2, но также процедуру генерации восстановленной картинки для текущей картинки и процедуру (опциональную) применения внутриконтурной фильтрации к восстановленной картинке. Устройство кодирования может выводить (модифицированные) остаточные выборки из коэффициентов преобразования, квантованных посредством деквантователя 234 и обратного преобразователя 235, и генерировать восстановленную картинку на основе выборок предсказания, выведенных в S400, и (модифицированных) остаточных выборок. Таким образом сгенерированная восстановленная картинка может быть той же самой, что и восстановленная картинка, сгенерированная вышеописанным устройством декодирования. Модифицированная восстановленная картинка может генерироваться посредством процедуры внутриконтурной фильтрации для восстановленной картинки, которая может храниться в буфере декодированной картинки или памяти 270, и, как и в случае устройства декодирования, может использоваться в качестве опорной картинки в процедуре интер-предсказания во время последующего кодирования картинки. Как описано выше, часть или вся процедура внутриконтурной фильтрации может опускаться в некоторых случаях. Когда процедура внутриконтурной фильтрации выполняется, связанная с (внутриконтурной) фильтрацией информация (параметры) может кодироваться энтропийным кодером 240 и выводиться в форме битового потока, и устройство декодирования может выполнять процедуру внутриконтурной фильтрации аналогично этой процедуре устройства кодирования на основе связанной с фильтрацией информации.[91] With reference to FIG. 4, the video/image encoding procedure may include not only a procedure for encoding picture reconstruction information (eg, prediction information, residual information, splitting information, etc.) and outputting the encoded information in the form of a bit stream, as presented in the description of FIG. . 2, but also a procedure for generating a reconstructed picture for the current picture and a procedure (optional) for applying in-circuit filtering to the restored picture. The encoder may output (modified) residual samples from the transform coefficients quantized by the
[92] Посредством этой процедуры внутриконтурной фильтрации, шум, генерируемый во время кодирования изображения/видео, такой как артефакты блочности и артефакты звона, могут быть уменьшены, и субъективное/объективное визуальное качество может быть улучшено. К тому же, путем выполнения процедуры внутриконтурной фильтрации, как в устройстве кодирования, так и в устройстве декодирования, устройство кодирования и устройство декодирования могут выводить один и тот же результат предсказания, улучшать надежность кодирования картинки и уменьшать количество данных, подлежащих передаче для кодирования картинки.[92] Through this in-loop filtering procedure, noise generated during image/video encoding such as blocking artifacts and ringing artifacts can be reduced, and subjective/objective visual quality can be improved. In addition, by performing the in-loop filtering procedure in both the encoding device and the decoding device, the encoding device and the decoding device can output the same prediction result, improve the reliability of picture encoding, and reduce the amount of data to be transmitted for picture encoding.
[93] Как описано выше, процедура восстановления картинки может выполняться не только в устройстве декодирования, но также в устройстве кодирования. Восстановленный блок может генерироваться на основе интра-предсказания/интер-предсказания для каждого блока, и может генерироваться восстановленная картинка, включающая в себя восстановленные блоки. Когда текущая картинка/вырезка/группа мозаичных элементов является I-картинкой/вырезкой/группой мозаичных элементов, блоки, включенные в текущую картинку/вырезку/группу мозаичных элементов, могут быть восстановлены на основе только интра-предсказания. С другой стороны, когда текущая картинка/вырезка/группа мозаичных элементов является P- или B-картинкой/вырезкой/группой мозаичных элементов, блоки, включенные в текущую картинку/вырезку/группу мозаичных элементов, могут быть восстановлены на основе интра-предсказания или интер-предсказания. В этом случае, интер-предсказание может применяться к некоторым блокам в текущей картинке/вырезке/группе мозаичных элементов, и интра-предсказание может применяться к некоторым оставшимся блокам. Цветовой компонент картинки может включать в себя компонент яркости и компонент цветности, и, если не ограничено явно в настоящем раскрытии, способы и варианты осуществления, предложенные в настоящем раскрытии, могут применяться к компоненту яркости и компоненту цветности.[93] As described above, the picture restoration procedure can be performed not only in the decoding device, but also in the encoding device. A reconstructed block may be generated based on intra-prediction/inter-prediction for each block, and a reconstructed picture including the reconstructed blocks may be generated. When the current picture/clipping/tile group is an I-picture/clipping/tile group, the blocks included in the current picture/clipping/tile group can be reconstructed based on intra-prediction only. On the other hand, when the current picture/clipping/tile group is a P- or B-picture/clipping/tile group, the blocks included in the current picture/clipping/tile group can be reconstructed based on intra-prediction or inter-prediction -predictions. In this case, inter-prediction can be applied to some blocks in the current picture/clipping/tile group, and intra-prediction can be applied to some remaining blocks. The color component of a picture may include a luma component and a chrominance component, and, unless expressly limited in the present disclosure, the methods and embodiments proposed in the present disclosure may be applied to the luma component and the chrominance component.
[94] Фиг. 5 показывает пример схематичной процедуры декодирования видео/изображения, в которой применимы варианты осуществления настоящего раскрытия. На фиг. 5, S500 может выполняться энтропийным декодером 310 устройства декодирования, описанного выше на фиг. 3, S510 может выполняться предсказателем 330, S520 может выполняться остаточным процессором 320, S530 может выполняться сумматором 340, и S540 может выполняться фильтром 350. S500 может включать в себя процедуру декодирования информации, описанную в настоящем раскрытии, S510 может включать в себя процедуру интер/интра-предсказания, описанную в настоящем раскрытии, S520 может включать в себя процедуру обработки остатка, описанную в настоящем раскрытии, S530 может включать в себя процедуру восстановления блока/картинки, описанную в настоящем раскрытии, и S540 может включать в себя процедуру внутриконтурной фильтрации, описанную в настоящем раскрытии.[94] FIG. 5 shows an example of a schematic video/image decoding procedure to which embodiments of the present disclosure are applicable. In fig. 5, S500 may be performed by the
[95] Со ссылкой на фиг. 5, процедура декодирования картинки может включать в себя процедуру (S500) получения информации изображения/видео из битового потока (посредством декодирования), процедуру восстановления картинки (S510 до S530) и процедуру внутриконтурной фильтрации (S540) для восстановленной картинки, как представлено в описании фиг. 3. Процедура восстановления картинки может выполняться на основе выборок предсказания и остаточных выборок, полученных посредством интер-/интра-предсказания (S510) и обработки остатка (S520; деквантование и обратное преобразование для квантованных коэффициентов преобразования), описанных в настоящем раскрытии. Модифицированная восстановленная картинка может генерироваться посредством процедуры внутриконтурной фильтрации для восстановленной картинки, сгенерированной посредством процедуры восстановления картинки, и модифицированная восстановленная картинка может выводиться как декодированная картинка. Дополнительно, модифицированная восстановленная картинка может сохраняться в буфере декодированной картинки или памяти 360 устройства декодирования и использоваться как опорная картинка в процедуре интер-предсказания во время декодирования последующей картинки.[95] With reference to FIG. 5, the picture decoding procedure may include a procedure (S500) for obtaining image/video information from the bit stream (by decoding), a picture restoration procedure (S510 to S530), and an in-loop filtering procedure (S540) for the restored picture, as presented in the description of FIG. . 3. The picture reconstruction procedure may be performed based on the prediction samples and residual samples obtained by inter/intra prediction (S510) and residual processing (S520; dequantization and inverse transform for quantized transform coefficients) described in the present disclosure. The modified reconstructed picture may be generated by an in-loop filtering procedure for the reconstructed picture generated by the picture restoration procedure, and the modified restored picture may be output as a decoded picture. Additionally, the modified reconstructed picture can be stored in the decoded picture buffer or
[96] В некоторых случаях, процедура внутриконтурной фильтрации может опускаться. В этом случае, восстановленная картинка может выводиться как декодированная картинка, сохраняться в буфере декодированной картинки или памяти 360 устройства декодирования, использоваться как опорная картинка в интер-предсказании во время декодирования последующей картинки. Процедура внутриконтурной фильтрации (S540) может включать в себя процедуру фильтрации устранения блочности, процедуру адаптивного смещения выборки (SAO), процедуру адаптивного контурного фильтра (ALF) и/или процедуру двунаправленного фильтра, как описано выше, и некоторые или все из них могут быть опущены. Дополнительно, одна или некоторые из процедуры фильтрации устранения блочности, процедуры адаптивного смещения выборки (SAO), процедуры адаптивного контурного фильтра (ALF) и процедуры двунаправленного фильтра могут применяться последовательно или все могут применяться последовательно. Например, после того как процедура фильтрации устранения блочности применяется к восстановленной картинке, может выполняться процедура SAO. Например, после того как процедура фильтрации устранения блочности применяется к восстановленной картинке, может выполняться процедура ALF. Это может выполняться в устройстве кодирования таким же образом.[96] In some cases, the in-loop filtering procedure may be omitted. In this case, the reconstructed picture can be output as a decoded picture, stored in the decoded picture buffer or
[97] Как описано выше, устройство кодирования может выводить остаточный блок (остаточные выборки) на основе блока (выборок предсказания), предсказанного через интра/интер/IBC- предсказание и тому подобное и применять преобразование и квантование к выведенным остаточным выборкам, чтобы выводить квантованные коэффициенты преобразования. Информация о квантованных коэффициентах преобразования (остаточная информация) может включаться в синтаксис кодирования остатка и выводиться в форме битового потока после кодирования. Устройство декодирования может получать информацию (остаточную информацию) о квантованных коэффициентах преобразования из битового потока и декодировать информацию, чтобы выводить квантованные коэффициенты преобразования. Устройство декодирования может выводить остаточные выборки посредством деквантования/обратного преобразования на основе квантованных коэффициентов преобразования. Как описано выше, по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может быть опущено. Когда преобразование/обратное преобразование опущено, коэффициенты преобразования могут называться коэффициентами или остаточными коэффициентами, или могут еще называться коэффициентами преобразования для единообразия выражения. То, может ли опускаться преобразование/ обратное преобразование, может сигнализироваться на основе transform_skip_flag. Например, когда значение transform_skip_flag равно 1, это может указывать, что преобразование/обратное преобразование пропускается, что может называться режимом пропуска преобразования.[97] As described above, the encoder can output a residual block (residual samples) based on a block (prediction samples) predicted through intra/inter/IBC prediction and the like, and apply transform and quantization to the output residual samples to output quantized conversion factors. Information about the quantized transform coefficients (residual information) may be included in the residual encoding syntax and output in the form of a bit stream after encoding. The decoding apparatus may obtain information (residual information) about the quantized transform coefficients from the bit stream and decode the information to output the quantized transform coefficients. The decoding apparatus may output residual samples by dequantization/deconversion based on the quantized transform coefficients. As described above, at least one of quantization/dequantization and/or transform/inverse transform may be omitted. When the transform/inverse transform is omitted, the transform coefficients may be called coefficients or residual coefficients, or may also be called transform coefficients for consistency of expression. Whether a transform can be omitted/inverted can be signaled based on transform_skip_flag. For example, when the value of transform_skip_flag is 1, it may indicate that the transform/reverse transform is skipped, which may be referred to as transform skip mode.
[98] В общем, в кодировании видео/изображения, степень квантования может изменяться, и степень сжатия может регулироваться с использованием измененной степени квантования. С точки зрения реализации, параметр квантования (QP) может использоваться вместо степени квантования с учетом сложности. Например, параметры квантования целых значений от 0 до 63 могут использоваться, и каждое значение параметра квантования может соответствовать реальной степени квантования. Например, параметр квантования QPY для компонента яркости (выборки яркости) и параметр квантования QPC для компонента цветности (выборки цветности) могут устанавливаться по-разному.[98] In general, in video/image encoding, the quantization degree may be changed, and the compression ratio may be adjusted using the changed quantization degree. From an implementation point of view, the quantization parameter (QP) can be used instead of the complexity-aware quantization degree. For example, integer value quantization parameters from 0 to 63 may be used, and each quantization parameter value may correspond to an actual quantization degree. For example, the quantization parameter QP Y for the luminance component (luminance sample) and the quantization parameter QP C for the chrominance component (chroma sample) may be set differently.
[99] Процесс квантования может принимать коэффициент преобразования C в качестве входа, делить его на степень квантования Qstep, и на основе этого получать квантованный коэффициент преобразования C’. В этом случае, с учетом вычислительной сложности, степень квантования может умножаться на масштаб, чтобы сформировать целое, и может выполняться операция сдвига на значение, соответствующее значению масштаба. Масштаб квантования может выводиться на основе произведения степени квантования и значения масштаба. То есть, масштаб квантования может выводиться в соответствии с QP. Например, квантованный коэффициент преобразования C’ может выводиться путем применения масштаба квантования к коэффициенту преобразования C.[99] The quantization process may take the transform coefficient C as input, divide it by the quantization degree Q step , and from this obtain the quantized transform coefficient C'. In this case, in consideration of computational complexity, the quantization degree may be multiplied by the scale to form a whole, and a shift operation by a value corresponding to the scale value may be performed. The quantization scale can be derived based on the product of the quantization degree and the scale value. That is, the quantization scale can be output in accordance with the QP. For example, the quantized transform coefficient C' may be derived by applying a quantization scale to the transform coefficient C.
[100] Процесс деквантования является процессом, обратным процессу квантования и может получать восстановленный коэффициент преобразования C” путем умножения квантованного коэффициента преобразования C’ на степень квантования Qstep. В этом случае, масштаб уровня может выводиться в соответствии с параметром квантования, и восстановленный коэффициент преобразования C” может выводиться путем применения масштаба уровня к квантованному коэффициенту преобразования C’. Восстановленный коэффициент преобразования C” может несколько отличаться от исходного коэффициента преобразования C вследствие потерь в процессах преобразования и/или квантования. Соответственно, в устройстве кодирования, деквантование выполняется таким же образом, как в устройстве декодирования.[100] The dequantization process is the inverse process of the quantization process and can obtain the reconstructed transform coefficient C" by multiplying the quantized transform coefficient C' by the quantization degree Q step . In this case, the level scale can be output in accordance with the quantization parameter, and the reconstructed transform coefficient C" can be output by applying the level scale to the quantized transform coefficient C'. The reconstructed conversion coefficient C” may differ slightly from the original conversion coefficient C due to losses in the conversion and/or quantization processes. Accordingly, in the encoding device, dequantization is performed in the same manner as in the decoding device.
[101] Между тем, предсказание может выполняться на основе кодирования палитрой. Кодирование палитрой является полезным методом для представления блоков, включающих небольшое число уникальных цветовых значений. Вместо применения предсказания и преобразования к блокам, индекс для указания цветового значения каждой выборки сигнализируется в режиме палитры. Этот режим палитры полезен для сбережения буферного пространства памяти видео. Блок может кодироваться с использованием режима палитры (например, MODE_PLT). Чтобы декодировать блок, закодированный таким образом, декодеру необходимо декодировать цвет и индекс палитры. Цвет палитры может быть представлен таблицей палитры и может быть закодирован инструментом кодирования таблицы палитры.[101] Meanwhile, prediction can be performed based on palette coding. Palette coding is a useful method for representing blocks of a small number of unique color values. Instead of applying prediction and transformation to blocks, an index to indicate the color value of each sample is signaled in palette mode. This palette mode is useful for saving video memory buffer space. The block may be encoded using a palette mode (eg MODE_PLT). To decode a block encoded in this way, the decoder needs to decode the color and palette index. A palette color can be represented by a palette table and can be encoded by a palette table encoding tool.
[102] Фиг. 6 показывает пример для описания базовой структуры кодирования палитрой.[102] FIG. 6 shows an example for describing the basic structure of palette coding.
[103] Со ссылкой на фиг. 6, изображение 600 может быть представлено гистограммой 610. Здесь, преобладающие цветовые значения обычно отображаются на цветовые индексы (620), и изображение может кодироваться с использованием карты цветовых индексов (630).[103] With reference to FIG. 6,
[104] Кодирование палитрой может упоминаться как (интра) режим палитры, (интра) режим кодирования палитрой или тому подобное. Текущий блок может быть восстановлен в соответствии с кодированием палитрой или режимом палитры. Кодирование палитрой может рассматриваться в качестве примера интра-кодирования или может рассматриваться как один из способов интра-предсказания. Однако, подобно режиму пропуска, описанному выше, дополнительные остаточные значения для соответствующего блока могут не сигнализироваться.[104] Palette encoding may be referred to as (intra) palette mode, (intra) palette encoding mode, or the like. The current block can be reconstructed according to palette encoding or palette mode. Palette coding can be considered as an example of intra-coding or can be considered as one of the methods of intra-prediction. However, similar to the skip mode described above, additional residual values for the corresponding block may not be signaled.
[105] Например, режим палитры может использоваться, чтобы улучшать эффективность кодирования для экранного контента, такого как сгенерированное компьютером видео, которое содержит значительное количество текста и графики. В общем, локальная область экранного контента имеет различные цвета, различаемые резкими краями. Чтобы извлечь выгоду из этого свойства, режим палитры может представлять выборки блока на основе индексов, указывающих записи цвета в таблице палитры.[105] For example, palette mode can be used to improve encoding efficiency for on-screen content, such as computer-generated video, that contains a significant amount of text and graphics. In general, the local area of the screen content has different colors, distinguished by sharp edges. To take advantage of this property, the palette mode can represent block selections based on indices pointing to color entries in the palette table.
[106] Например, информация о таблице палитры может сигнализироваться. Таблица палитры может включать в себя значение индекса, соответствующее каждому цвету. Данные предсказания индекса палитры могут применяться, и таблица палитры может включать в себя данные, указывающие значения индекса для по меньшей мере части карты индексов палитры, которая отображает пикселы данных видео на индексы цветов таблицы палитры. Данные предсказания индекса палитры могут включать в себя данные значения серии, которые ассоциируют значения индекса для по меньшей мере части карты индексов палитры со значениями серии. Значение серии может быть ассоциировано с индексом цвета перехода. Карта индексов палитры может генерироваться из данных предсказания индекса палитры, по меньшей мере частично, путем определения, следует ли регулировать значение индекса данных предсказания индекса палитры на основе последнего значения индекса. Текущий блок в картинке может восстанавливаться в соответствии с картой индексов палитры.[106] For example, palette table information may be signaled. The palette table may include an index value corresponding to each color. Palette index prediction data may be applied, and the palette table may include data indicating index values for at least a portion of a palette index map that maps pixels of the video data to palette table color indices. The palette index prediction data may include run value data that associates index values for at least a portion of the palette index map with the run values. The series value may be associated with a transition color index. The palette index map may be generated from the palette index prediction data, at least in part, by determining whether the index value of the palette index prediction data should be adjusted based on the last index value. The current block in the picture can be reconstructed according to the palette index map.
[107] Когда используется режим палитры, значения пикселов CU могут быть представлены набором репрезентативных цветовых значений. Такой набор может упоминаться как палитра. В случае пиксела, имеющего значение, близкое к цветовому значению в палитре, индекс палитры, соответствующий цветовому значению в палитре, может сигнализироваться. В случае пиксела, имеющего цветовое значение иное, чем палитра, пиксел может быть представлен символом перехода, и квантованное значение пиксела может непосредственно сигнализироваться. В настоящем раскрытии, пиксел или значение пиксела может упоминаться как выборка или значение выборки.[107] When palette mode is used, the CU pixel values can be represented by a set of representative color values. Such a set may be referred to as a palette. In the case of a pixel having a value close to a color value in the palette, the palette index corresponding to the color value in the palette may be signaled. In the case of a pixel having a color value other than a palette, the pixel may be represented by a transition symbol, and the quantized value of the pixel may be directly signaled. In the present disclosure, a pixel or pixel value may be referred to as a sample or sample value.
[108] Чтобы декодировать блок, закодированный в режиме палитры, декодеру необходимо декодировать цвета и индексы палитры. Цвета палитры могут быть представлены в таблице палитры и закодированы с помощью инструмента кодирования таблицы палитры. Флаг перехода может указывать, присутствует ли символ перехода в текущей CU, путем сигнализации для каждой CU. Если символ перехода присутствует, таблица палитры получает приращение на 1, и последний индекс может назначаться режиму перехода. Индексы палитры всех пикселов в CU могут формировать карту индексов палитры и могут быть закодированы с помощью инструмента кодирования карты индексов палитры.[108] To decode a block encoded in palette mode, the decoder needs to decode the colors and palette indices. Palette colors can be represented in a palette table and encoded using the palette table encoding tool. A jump flag may indicate whether a jump character is present in the current CU by signaling for each CU. If a jump symbol is present, the palette table is incremented by 1 and the last index can be assigned to the jump mode. The palette indices of all pixels in the CU can form a palette index map and can be encoded using the palette index map encoding tool.
[109] Например, предсказатель палитры может поддерживаться для кодирования таблицы палитры. Предсказатель может быть инициализирован в начале каждой вырезки, где предсказатель сбрасывается в нуль. Для каждой записи предсказателя палитры, флаг повторного использования может сигнализироваться для указания, является ли она частью текущей палитры. Флаг повторного использования может передаваться с использованием кодирования длины серии нуля. Затем, число новых записей палитры может сигнализироваться с использованием экспоненциального кодирования Голомба нулевого порядка. Наконец, значение компонента для новой записей палитры может сигнализироваться. После кодирования текущий CU, предсказатель палитры может обновляться с использованием текущей палитры, и записи предсказателя старой палитры, которые не использованы повторно в текущей палитре, могут добавляться в конце предсказателя новой палитры до достижения разрешенного максимального размера (заполнение палитры).[109] For example, a palette predictor may be supported to encode a palette table. The predictor can be initialized at the beginning of each cut, where the predictor is reset to zero. For each palette predictor entry, a reuse flag may be signaled to indicate whether it is part of the current palette. The reuse flag may be transmitted using run length encoding of zero. Next, the number of new palette entries can be signaled using zero-order exponential Golomb coding. Finally, the component value for new palette entries can be signaled. After encoding the current CU, the palette predictor can be updated using the current palette, and the old palette predictor entries that are not reused in the current palette can be appended to the end of the new palette predictor until the allowed maximum size is reached (palette padding).
[110] Например, индекс может кодироваться с использованием горизонтального и вертикального поперечных сканирований, чтобы кодировать карту индексов палитры. Порядок сканирования может явно сигнализироваться из битового потока с использованием информации флага (например, palette_transpose_flag).[110] For example, the index may be encoded using horizontal and vertical cross scans to encode a palette index map. The scan order may be explicitly signaled from the bitstream using flag information (eg, palette_transpose_flag).
[111] Фиг. 7 показывает пример для описания способов горизонтального и вертикального поперечного сканирования, используемых, чтобы кодировать карту индексов палитры.[111] FIG. 7 shows an example for describing the horizontal and vertical cross-scan methods used to encode a palette index map.
[112] Фиг. 7(а) показывает пример кодирования карты индексов палитры с использованием горизонтального поперечного сканирования и фиг. 7(b) показывает пример кодирования карты индексов палитры с использованием вертикального поперечного сканирования.[112] FIG. 7(a) shows an example of palette index map encoding using horizontal cross-scan, and FIG. 7(b) shows an example of palette index map encoding using vertical cross-scan.
[113] Как показано на фиг. 7(а), когда используется горизонтальное сканирование, индексы палитры могут кодироваться путем сканирования выборок от выборок в первой строке (верхней строке) до выборок в последней строке (нижней строке) в текущем блоке (т.е. текущей CU) в горизонтальном направлении.[113] As shown in FIG. 7(a), when horizontal scanning is used, palette indices can be encoded by scanning samples from samples in the first row (top row) to samples in the last row (bottom row) in the current block (ie, current CU) in the horizontal direction.
[114] Как показано на фиг. 7(b), когда используется вертикальное сканирование, индексы палитры могут кодироваться путем сканирования выборок от выборок в первом столбце (самом левом столбце) до последнего столбца (самого правого столбца) в текущем блоке (т.е. текущей CU) в вертикальном направлении.[114] As shown in FIG. 7(b), when vertical scanning is used, palette indices can be encoded by scanning samples from samples in the first column (leftmost column) to the last column (rightmost column) in the current block (ie, current CU) in the vertical direction.
[115] Индекс палитры может кодироваться с использованием двух режимов выборок палитры, например, режима “INDEX” и режима “COPY_ABOVE”. Такой режим палитры может сигнализироваться с использованием флага, указывающего, является ли режимом “INDEX” или “COPY_ABOVE”. Здесь, флаг может сигнализироваться за исключением верхней строки, когда используется горизонтальное сканирование, и флаг может сигнализироваться за исключением первого столбца А, когда используется вертикальное сканирование или когда предыдущим режимом является режим “COPY_ABOVE”. В режиме “COPY_ABOVE”, индекс палитры выборки в верхней строке может копироваться. В режиме “INDEX”, индекс палитры может явно сигнализироваться. Как для режима “INDEX”, так и для режима “COPY_ABOVE”, значение серии, указывающее число пикселов, кодируемых с использованием того же самого режима, может сигнализироваться.[115] The palette index can be encoded using two palette selection modes, such as the “INDEX” mode and the “COPY_ABOVE” mode. Such a palette mode may be signaled using a flag indicating whether the mode is “INDEX” or “COPY_ABOVE”. Here, the flag may be signaled except for the top row when horizontal scanning is used, and the flag may be signaled except for the first column A when vertical scanning is used or when the previous mode is the “COPY_ABOVE” mode. In “COPY_ABOVE” mode, the index of the selection palette in the top line can be copied. In “INDEX” mode, the palette index can be explicitly signaled. For both the “INDEX” mode and the “COPY_ABOVE” mode, a run value indicating the number of pixels encoded using the same mode may be signaled.
[116] Порядок кодирования для карты индексов может быть следующим. Сначала, может сигнализироваться число значений индексов для CU. Затем текущие значения индексов для всей CU могут сигнализироваться с использованием усеченного двоичного (TB) кодирования. Как число индексов, так и значения индексов могут кодироваться в режиме обхода. В этом случае, индексно-связанные бины обхода могут быть сгруппированы вместе. Затем, режим палитры (режим “INDEX” или режим “COPY_ABOVE”) и серия могут сигнализироваться с перемежением. Наконец, значения перехода компонента, соответствующие выборкам перехода для всей CU, могут группироваться вместе и кодироваться в режиме обхода. После сигнализации значений индексов, дополнительный синтаксический элемент last_run_type_flag может сигнализироваться. Не требуется, чтобы этот синтаксический элемент сигнализировал значение серии, соответствующее последней серии в блоке, вместе с числом индексов.[116] The encoding order for the index map may be as follows. First, the number of index values for the CU may be signaled. The current index values for the entire CU can then be signaled using truncated binary (TB) encoding. Both the number of indexes and the index values can be encoded in bypass mode. In this case, index-linked traversal bins can be grouped together. Then, the palette mode ("INDEX" mode or "COPY_ABOVE" mode) and series can be signaled interleaved. Finally, component transition values corresponding to transition samples for the entire CU can be grouped together and encoded in bypass mode. After signaling the index values, the optional last_run_type_flag syntax element may be signaled. This syntax element is not required to signal the run value corresponding to the last run in the block along with the number of indices.
[117] Между тем, в стандарте VVC, двойное дерево может инициироваться для I-вырезки, которое разделяет разбиение единицы кодирования для яркости и цветности. Кодирование палитрой (режим палитры) может применяться к яркости (компонент Y) и цветности (компонент Cb и Cr) отдельно или вместе. Когда двойное дерево отключено, кодирование палитрой (режим палитры) может применяться к яркости (компонент Y) и цветности (компонент Cb и Cr) вместе.[117] Meanwhile, in the VVC standard, a double tree can be initiated for I-cut, which separates the coding unit split for luma and chrominance. Palette encoding (palette mode) can be applied to luminance (Y component) and chrominance (Cb and Cr components) separately or together. When dual tree is disabled, palette encoding (palette mode) can be applied to luma (Y component) and chroma (Cb and Cr component) together.
[118] Фиг. 8 является диаграммой для описания примера способа кодирования на основе режима палитры.[118] FIG. 8 is a diagram for describing an example of a palette mode-based encoding method.
[119] Со ссылкой на фиг. 8, устройство декодирования может получать информацию палитры на основе битового потока и/или предшествующей информации палитры (S800).[119] With reference to FIG. 8, the decoding apparatus may obtain palette information based on the bitstream and/or previous palette information (S800).
[120] В одном варианте осуществления, устройство декодирования может получать информацию о режиме палитры по отношению к каждому положению выборки и информацию о длине серии каждого режима палитры при проходе по информации индекса палитры, информацию о направлении прохождения (порядок сканирования) и выборки в CU из битового потока.[120] In one embodiment, the decoding apparatus may obtain palette mode information with respect to each sampling position and run length information of each palette mode when passing through the palette index information, passing direction information (scan order), and sampling in the CU from bit stream.
[121] Устройство декодирования может конфигурировать палитру на основе информации палитры (S810).[121] The decoding apparatus may configure the palette based on the palette information (S810).
[122] В варианте осуществления, устройство декодирования может конфигурировать предсказатель палитры. Информация палитры, используемая в предыдущем блоке может быть сохранена для CU следующей палитры (т.е. CU, кодируемой в режиме палитры), чтобы генерироваться позже, и это может быть определено как запись предсказателя палитры. Устройство декодирования может принимать информацию записей новой палитры и конфигурировать палитру для текущей CU. Например, после приема полученной информации повторного использования предсказателя палитры и новой информации записей палитры, подлежащей использованию в текущей CU, устройство декодирования может комбинировать эти две части информации записи, чтобы сформировать одну палитру, представляющую текущую CU.[122] In an embodiment, the decoding device may configure a palette predictor. The palette information used in the previous block can be stored for the CU of the next palette (ie, the CU encoded in palette mode) to be generated later, and this can be defined as a palette predictor entry. The decoder may receive the new palette entry information and configure the palette for the current CU. For example, after receiving the acquired palette predictor reuse information and the new palette entry information to be used in the current CU, the decoding apparatus may combine these two pieces of entry information to form one palette representing the current CU.
[123] Устройство декодирования может выводить значения выборок (значения предсказания выборок) в основанном на палитре текущем блоке (S820).[123] The decoding apparatus may output sample values (sample prediction values) in a palette-based current block (S820).
[124] В варианте осуществления, устройство декодирования может конфигурировать выборки из полученной информации палитры при проходе по выборкам в CU в горизонтальном направлении или вертикальном направлении на основе информации направления прохождения (порядок сканирования). Если информация о режиме палитры указывает режим COPY_ABOVE, каждое значение выборки в CU может выводиться путем копирования информации индекса положения левой выборки в вертикальном сканировании и копирования информации индекса положения верхней выборки в горизонтальном сканировании. То есть, путем выведения значения цвета каждой выборки из сконфигурированной таблицы палитры на основе информации индекса каждой выборки в CU, могут выводиться выборки предсказания в CU. Затем устройство декодирования может реконфигурировать каждую информацию выборки в CU с использованием информации палитры и обновлять предсказатель палитры.[124] In an embodiment, the decoding apparatus may configure samples from the received palette information when passing through the samples in the CU in a horizontal direction or a vertical direction based on the passing direction information (scan order). If the palette mode information specifies the COPY_ABOVE mode, each sample value in the CU can be output by copying the left sample position index information in the vertical scan and copying the top sample position index information in the horizontal scan. That is, by deriving the color value of each sample from the configured palette table based on the index information of each sample in the CU, prediction samples in the CU can be output. The decoder can then reconfigure each sample information in the CU using the palette information and update the palette predictor.
[125] Между тем, вышеописанное кодирование палитрой (режим палитры или режим кодирования палитрой) может сигнализировать информацию для указания, кодируется ли текущая CU в режиме палитры, и кодирования ее путем применения к ней режима палитры.[125] Meanwhile, the above-described palette encoding (palette mode or palette encoding mode) can signal information for indicating whether the current CU is encoded in the palette mode, and encoding it by applying the palette mode to it.
[126] В качестве примера, информация о том, доступен ли режим кодирования палитрой, может сигнализироваться посредством набора параметров последовательности (SPS), как показано в Таблице 1 ниже.[126] As an example, information about whether a palette encoding mode is available may be signaled by a sequence parameter set (SPS), as shown in Table 1 below.
[127] [Таблица 1][127] [Table 1]
[128] Семантика синтаксических элементов, включенных в синтаксис Таблицы 1, может быть представлена, как показано в Таблице 2 ниже.[128] The semantics of the syntactic elements included in the syntax of Table 1 can be represented as shown in Table 2 below.
[129][129]
[130] Со ссылкой на Таблицы 1 и 2, синтаксический элемент sps_palette_enabled_flag может синтаксически анализироваться/ сигнализироваться в SPS. Синтаксический элемент sps_palette_enabled_flag может указывать, доступен ли режим кодирования палитрой. Например, когда значение sps_palette_enabled_flag равно 1, это может указывать, что режим кодирования палитрой доступен, и в этом случае, информация (например, pred_mode_plt_flag), указывающая, следует ли применять режим кодирования палитрой к текущей единице кодирования в синтаксисе единицы кодирования, может синтаксически анализироваться/сигнализироваться. Когда значение sps_palette_enabled_flag равно 0, это может указывать, что режим кодирования палитрой не доступен, и в этом случае, информация (например, pred_mode_plt_flag), указывающая, следует ли применять режим кодирования палитры режим к текущей единице кодирования в синтаксисе единицы кодирования, может не анализироваться/сигнализироваться.[130] With reference to Tables 1 and 2, the sps_palette_enabled_flag syntax element may be parsed/signaled in the SPS. The sps_palette_enabled_flag syntax element can indicate whether the palette encoding mode is enabled. For example, when the value of sps_palette_enabled_flag is 1, it may indicate that the palette encoding mode is enabled, in which case, information (e.g., pred_mode_plt_flag) indicating whether the palette encoding mode should be applied to the current encoding unit in the encoding unit syntax may be parsed /signal. When the value of sps_palette_enabled_flag is 0, it may indicate that the palette encoding mode is not available, in which case, information (for example, pred_mode_plt_flag) indicating whether the palette encoding mode mode should be applied to the current encoding unit in the encoding unit syntax may not be parsed /signal.
[131] Дополнительно, например, информация о том, следует ли выполнять кодирование, путем применения режима палитры, может сигнализироваться на основе информация о том, доступен ли режим кодирования палитрой (например, sps_palette_enabled_flag), и информация может сигнализироваться через синтаксис единицы кодирования, как показано в Таблице 3 ниже.[131] Additionally, for example, information about whether to perform encoding by applying a palette mode may be signaled based on information about whether a palette encoding mode is available (eg, sps_palette_enabled_flag), and the information may be signaled via encoding unit syntax such as shown in Table 3 below.
[132] [Таблица 3][132] [Table 3]
[133] Семантика синтаксических элементов, включенных в синтаксис Таблицы 3, может быть представлена, как показано в Таблице 4 ниже.[133] The semantics of the syntactic elements included in the syntax of Table 3 can be represented as shown in Table 4 below.
[134][134]
[135] Со ссылкой на Таблицы 3 и 4, синтаксический элемент pred_mode_plt_flag может синтаксически анализироваться/ сигнализироваться в синтаксисе единицы кодирования. Синтаксический элемент pred_mode_plt_flag может указывать, применяется ли режим палитры к текущей единице кодирования. Например, когда значение pred_mode_plt_flag равно 1, это может указывать, что режим палитры применяется к текущей единице кодирования, а если значение pred_mode_plt_flag равно 0, это может указывать, что режим палитры не применяется к текущей единице кодирования.[135] With reference to Tables 3 and 4, the pred_mode_plt_flag syntax element may be parsed/signaled in encoding unit syntax. The pred_mode_plt_flag syntax element may indicate whether the palette mode is applied to the current encoding unit. For example, when the value of pred_mode_plt_flag is 1, it may indicate that the palette mode is applied to the current encoding unit, and if the value of pred_mode_plt_flag is 0, it may indicate that the palette mode is not applied to the current encoding unit.
[136] В этом случае, pred_mode_plt_flag может синтаксически анализироваться/сигнализироваться на основе информации (например, sps_palette_enabled_flag) о том, доступен ли режим кодирования палитрой. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда режим кодирования палитрой доступен), pred_mode_plt_flag может синтаксически анализироваться/сигнализироваться.[136] In this case, pred_mode_plt_flag may be parsed/signaled based on information (eg, sps_palette_enabled_flag) about whether the palette encoding mode is available. For example, when the value of sps_palette_enabled_flag is 1 (i.e. when palette encoding mode is enabled), pred_mode_plt_flag may be parsed/signaled.
[137] Дополнительно, кодирование может выполняться путем применения режима палитры к текущей единице кодирования на основе pred_mode_plt_flag. Например, когда значение pred_mode_plt_flag равно 1, режим палитры может применяться к текущей единице кодирования, чтобы генерировать восстановленную выборку путем синтаксического анализа/сигнализации синтаксиса palette_coding().[137] Additionally, encoding can be performed by applying a palette mode to the current encoding unit based on pred_mode_plt_flag. For example, when the value of pred_mode_plt_flag is 1, the palette mode can be applied to the current encoding unit to generate a reconstructed sample by parsing/signaling the palette_coding() syntax.
[138] В качестве примера, Таблица 5 ниже показывает синтаксис кодирования палитрой.[138] As an example, Table 5 below shows the palette encoding syntax.
[139] [Таблица 5][139] [Table 5]
[140][140]
[141][141]
[142] Семантика синтаксических элементов, включенных в синтаксис Таблицы 5, может быть представлена, как показано в Таблице 6 ниже.[142] The semantics of the syntactic elements included in the syntax of Table 5 can be represented as shown in Table 6 below.
[143][143]
Палитра предсказателя состоит из записей палитры из предыдущих единиц кодирования, которые используются для предсказания записей текущей палитры.
Переменная PredictorPaletteSize[startComp] специфицирует размер палитры предсказателя для первого цветового компонента таблицы текущей палитры startComp. PredictorPaletteSize выводится, как специфицировано в Секции 1.4.
Переменная PalettePredictorEntryReuseFlags[i], равная 1, специфицирует, что i-ая запись в палитре предсказателя повторно используется в текущей палитре. PalettePredictorEntryReuseFlags[i], равная 0, специфицирует, что i-ая запись в палитре предсказателя не является записью в текущей палитре. Все элементы массива PalettePredictorEntryReuseFlags[i] инициализируются в 0.
palette_predictor_run используется для определения числа нулей, которые предшествуют ненулевой записи в массиве PalettePredictorEntryReuseFlags.
Требованием для согласованности битового потока является то, что значение palette_predictor_run должно быть в диапазоне от 0 до (PredictorPaletteSize-predictorEntryIdx), включительно, где predictorEntryIdx соответствует текущему положению в массиве PalettePredictorEntryReuseFlags. Переменная NumPredictedPaletteEntries специфицирует число записей в текущей палитре, которые повторно используются из палитры предсказателя. Значение NumPredictedPaletteEntries должно быть в диапазоне от 0 до palette_max_size, включительно.
num_signalled_palette_entries специфицирует число записей в текущей палитре, которые явно сигнализируются для первого цветового компонента таблицы текущей палитры startComp.
Если num_signalled_palette_entries отсутствует, то он подразумевается равным 0.
Переменная CurrentPaletteSize[startComp] специфицирует размер текущей палитры для первого цветового компонента таблицы текущей палитры startComp и выводится следующим образом:In the following semantics, the array indices x0, y0 specify the position (x0, y0) of the top-left luminance sample of the encoding block in question relative to the top-left luminance sample of the picture. The array indices xC, yC specify the position (xC, yC) of the sample relative to the top-left sample of the picture brightness. The startComp array index specifies the first color component of the current palette table. startComp equal to 0 indicates the Y component, startComp equal to 1 indicates the Cb component, startComp equal to 2 indicates the Cr component. numComp specifies the number of color components in the current palette table.
The predictor palette consists of palette entries from previous encoding units, which are used to predict the current palette entries.
The PredictorPaletteSize[startComp] variable specifies the predictor palette size for the first color component of the current startComp palette table. PredictorPaletteSize is output as specified in Section 1.4.
The variable PalettePredictorEntryReuseFlags[i] equal to 1 specifies that the i-th entry in the predictor palette is reused in the current palette. PalettePredictorEntryReuseFlags[i] equal to 0 specifies that the i-th entry in the predictor palette is not an entry in the current palette. All elements of the PalettePredictorEntryReuseFlags[i] array are initialized to 0.
palette_predictor_run is used to determine the number of zeros that precede a non-zero entry in the PalettePredictorEntryReuseFlags array.
A requirement for bitstream consistency is that the value of palette_predictor_run must be in the
num_signalled_palette_entries specifies the number of entries in the current palette that are explicitly signaled for the first color component of the current palette startComp table.
If num_signalled_palette_entries is missing, it is assumed to be 0.
The CurrentPaletteSize[startComp] variable specifies the current palette size for the first color component of the startComp current palette table and is output as follows:
[144] [144]
Значение CurrentPaletteSize[startComp] должно быть в диапазоне от 0 до palette_max_size, включительно.
new_palette_entries[cIdx][i] специфицирует значение для i-ой сигнализированной записи палитры для цветового компонента cIdx.
Переменная PredictorPaletteEntries[cIdx][i] специфицирует i-ый элемент в палитре предсказателя для цветового компонента cIdx.
Переменная CurrentPaletteEntries[cIdx][i] специфицирует i-ый элемент в текущей палитре для цветового компонента cIdx и выводится следующим образом:
palette_escape_val_present_flag, равный 1, специфицирует, что текущая единица кодирования содержит по меньшей мере одну кодированную переходом выборку. escape_val_present_flag, равный 0, специфицирует, что не имеется кодированных переходом выборок в текущей единице кодирования. Если не присутствует, то значение palette_escape_val_present_flag подразумевается равным 1.
CurrentPaletteSize[startComp] must be in the
new_palette_entries[cIdx][i] specifies the value for the i-th signaled palette entry for color component cIdx.
The variable PredictorPaletteEntries[cIdx][i] specifies the i-th element in the predictor palette for the color component cIdx.
The variable CurrentPaletteEntries[cIdx][i] specifies the i-th element in the current palette for the color component cIdx and is output as follows:
palette_escape_val_present_flag equal to 1 specifies that the current encoding unit contains at least one branch-encoded sample. escape_val_present_flag equal to 0 specifies that there are no branch-coded samples in the current encoding unit. If not present, palette_escape_val_present_flag is assumed to be 1.
[145][145]
num_palette_indices_minus1 plus 1 является числом индексов палитры, явно сигнализируемых или выводимых для текущего блока.
Если num_palette_indices_minus1 отсутствует, он подразумевается равным 0.
palette_idx_idc является указанием индекса в таблице палитры, CurrentPaletteEntries. Значение palette_idx_idc должно быть в диапазоне от 0 до MaxPaletteIndex, включительно, для первого индекса в блоке и в диапазоне от 0 до (MaxPaletteIndex-1), включительно, для остальных индексов в блоке.
Когда palette_idx_idc отсутствует, он подразумевается равным 0.
Переменная PaletteIndexIdc[i] сохраняет i-ый palette_idx_idc явно сигнализированным или выводимым. Все элементы массива PaletteIndexIdc[i] инициализируются в 0.
copy_above_indices_for_final_run_flag, равный 1, специфицирует, что индексы палитры последних положений в единице кодирования копируются из индексов палитры в строке выше, если используется горизонтальное поперечное сканирование, или индексов палитры в левом столбце, если используется вертикальное поперечное сканирование. copy_above_indices_for_final_run_flag, равный 0, специфицирует, что индексы палитры последних положений в единице кодирования копируются из PaletteIndexIdc[num_palette_indices_minus1].
Если copy_above_indices_for_final_run_flag отсутствует, он подразумевается равным 0.
palette_transpose_flag, равный 1, специфицирует, что вертикальное поперечное сканирование применяется для сканирования индексов для выборок в текущей единице кодирования. palette_transpose_flag, равный 0, специфицирует, что горизонтальное поперечное сканирование применяется для сканирования индексов для выборок в текущей единице кодирования. Если отсутствует, то значение palette_transpose_flag подразумевается равным 0.
Массив TraverseScanOrder специфицирует массив порядка сканирования для кодирования палитрой. TraverseScanOrder присваивается горизонтальный порядок сканирования HorTravScanOrder, если The MaxPaletteIndex variable specifies the maximum possible value for the palette index for the current encoding unit. The MaxPaletteIndex value is set to CurrentPaletteSize[startComp] -1+palette_escape_val_present_flag.
num_palette_indices_minus1 plus 1 is the number of palette indices explicitly signaled or output for the current block.
If num_palette_indices_minus1 is not present, it is assumed to be 0.
palette_idx_idc is an indication of the index into the palette table, CurrentPaletteEntries. The value of palette_idx_idc must be in the range from 0 to (MaxPaletteIndex), inclusive, for the first index in the block, and in the range from 0 to (MaxPaletteIndex-1), inclusive, for the remaining indices in the block.
When palette_idx_idc is missing, it is assumed to be 0.
The variable PaletteIndexIdc[i] keeps the i-th palette_idx_idc explicitly signaled or output. All elements of the PaletteIndexIdc[i] array are initialized to 0.
copy_above_indices_for_final_run_flag equal to 1 specifies that the palette indices of the last positions in the encoding unit are copied from the palette indices in the row above if a horizontal cross-scan is used, or the palette indices in the left column if a vertical cross-scan is used. copy_above_indices_for_final_run_flag equal to 0 specifies that the palette indices of the last positions in the encoding unit are copied from PaletteIndexIdc[num_palette_indices_minus1].
If copy_above_indices_for_final_run_flag is not present, it is assumed to be 0.
palette_transpose_flag equal to 1 specifies that vertical transverse scanning is used to scan indices for samples in the current encoding unit. palette_transpose_flag equal to 0 specifies that a horizontal transverse scan is used to scan indices for samples in the current encoding unit. If absent, palette_transpose_flag is assumed to be 0.
The TraverseScanOrder array specifies an array of scan order to be palette encoded. TraverseScanOrder is assigned to the horizontal scan order HorTravScanOrder if
[146] [146]
copy_above_palette_indices_flag, равный 1, специфицирует, что индекс палитры равен индексу палитры в том же местоположении в строке выше, если используется горизонтальное поперечное сканирование, или том же положении в левом столбце, если используется вертикальное поперечное сканирование. copy_above_palette_indices_flag, равный 0, специфицирует, что указание индекса палитры выборки кодируется в битовом потоке или выводится.
Переменная CopyAboveIndicesFlag[xC][yC], равная 1, специфицирует, что индекс палитры копируется из индекса палитры в верхней строке (горизонтальное сканирование) или левом столбце (вертикальное сканирование). CopyAboveIndicesFlag[xC][yC], равная 0, специфицирует, что индекс палитры явно кодируется в битовом потоке или выводится. Индексы массива xC, yC специфицируют местоположение (xC, yC) выборки относительно верхней-левой выборки яркости картинки. Значение PaletteIndexMap[xC][yC] должно быть в диапазоне от 0 до (MaxPaletteIndex-1), включительно.
Переменная PaletteIndexMap[xC][yC] специфицирует индекс палитры, который является индексом в таблицу, представленную CurrentPaletteEntries. Индексы массива xC, yC специфицируют местоположение (xC, yC) выборки относительно верхней-левой выборки яркости картинки. Значение PaletteIndexMap[xC][yC] должно быть в диапазоне от 0 до MaxPaletteIndex, включительно.
Переменная adjustedRefPaletteIndex выводится следующим образом:
palette_transpose_flag is 0; and TraverseScanOrder is assigned the vertical scan order of VerTravScanOrder if palette_transpose_flag is 1.
copy_above_palette_indices_flag equal to 1 specifies that the palette index is equal to the palette index at the same location in the row above if a horizontal cross-scan is used, or the same position in the left column if a vertical cross-scan is used. copy_above_palette_indices_flag equal to 0 specifies that the sampling palette index indication is encoded in the bitstream or output.
The variable CopyAboveIndicesFlag[xC][yC] equal to 1 specifies that the palette index is copied from the palette index in the top row (horizontal scan) or left column (vertical scan). CopyAboveIndicesFlag[xC][yC] equal to 0 specifies that the palette index is explicitly encoded in the bitstream or output. The array indices xC, yC specify the location (xC, yC) of the sample relative to the top-left luminance sample of the picture. The PaletteIndexMap[xC][yC] value must be in the
The PaletteIndexMap[xC][yC] variable specifies a palette index, which is an index into the table represented by CurrentPaletteEntries. The array indices xC, yC specify the location (xC, yC) of the sample relative to the top-left luminance sample of the picture. The value of PaletteIndexMap[xC][yC] must be in the range from 0 to MaxPaletteIndex, inclusive.
The adjustedRefPaletteIndex variable is output as follows:
[147] [147]
Если CopyAboveIndicesFlag[xC][yC] равен 0,то переменная CurrPaletteIndex выводится следующим образом:
palette_run_prefix, если присутствует, специфицирует префиксную часть в бинаризации PaletteRunMinus1.
palette_run_suffix используется в выведении переменной PaletteRunMinus1. Если отсутствует, то значение palette_run_suffix подразумевается равным 0.
Если RunToEnd равно 0, то переменная PaletteRunMinus1 выводится следующим образом:
- Если PaletteMaxRunMinus1 равно 0, то PaletteRunMinus1 устанавливается равным 0.
- Иначе (PaletteMaxRunMinus1 больше, чем 0), применимо следующее:
- Если palette_run_prefix меньше, чем 2, применимо следующее:
PaletteRunMinus1= palette_run_prefix
- Иначе (palette_run_prefix больше или равно 2), применимо следующее:
Переменная PaletteRunMinus1 используется следующим образом:
- Если CopyAboveIndicesFlag[xC][yC] равен 0, PaletteRunMinus1 специфицирует число последовательных местоположений минус 1 с тем же самым индексом палитры.
- Иначе, если palette_transpose_flag равен 0, PaletteRunMinus1 специфицирует число последовательных местоположений минус 1 с тем же самым индексом палитры, как используется в соответствующем положении в строке выше.
If CopyAboveIndicesFlag[xC][yC] is 0, then the CurrPaletteIndex variable is output as follows:
palette_run_prefix, if present, specifies the prefix portion in the PaletteRunMinus1 binarization.
palette_run_suffix is used in the output of the PaletteRunMinus1 variable. If missing, palette_run_suffix is assumed to be 0.
If RunToEnd is 0, then the PaletteRunMinus1 variable is output as follows:
- If PaletteMaxRunMinus1 is 0, then PaletteRunMinus1 is set to 0.
- Otherwise (PaletteMaxRunMinus1 is greater than 0), the following applies:
- If palette_run_prefix is less than 2, the following applies:
PaletteRunMinus1= palette_run_prefix
- Otherwise (palette_run_prefix is greater than or equal to 2), the following applies:
The PaletteRunMinus1 variable is used as follows:
- If CopyAboveIndicesFlag[xC][yC] is 0, PaletteRunMinus1 specifies the number of consecutive locations minus 1 with the same palette index.
- Else, if palette_transpose_flag is 0, PaletteRunMinus1 specifies the number of consecutive locations minus 1 with the same palette index as used in the corresponding location in the line above.
[148] [148]
Когда RunToEnd равен 0, переменная PaletteMaxRunMinus1 представляет максимальное возможное значение для PaletteRunMinus1, и требование к согласованности битового потока состоит в том, что значение PaletteMaxRunMinus1 должно быть большим или равным 0.
palette_escape_val специфицирует квантованное значение кодированной переходом выборки для компонента.
Переменная PaletteEscapeVal[cIdx][xC][yC] специфицирует значение перехода выборки, для которой PaletteIndexMap[xC][yC] равно MaxPaletteIbdex, и palette_escape_val_pesent_flag равно 1. Индекс массива cIdx специфицирует цветовой компонент. Индексы массива xC, yC специфицируют местоположение (xC, yC) относительно верхней-левой выборки яркости картинки.
Требованием для согласованности битового потока является то, что PaletteEscapeVal[cIdx][xC][yC] должно быть в диапазоне от 0 до (1<<(BitDepthY+1)) -1, включительно, для cIdx, равного 0, и в диапазоне от 0 до ((1<<(BitDepthC+1)) -1, включительно, для cIdx, не равного 0.- Otherwise, PaletteRunMinus1 specifies the number of consecutive locations minus 1 with the same palette index as used at the corresponding location in the left column.
When RunToEnd is 0, the variable PaletteMaxRunMinus1 represents the maximum possible value for PaletteRunMinus1, and the bitstream consistency requirement is that the value of PaletteMaxRunMinus1 must be greater than or equal to 0.
palette_escape_val specifies the quantized value of the branch-encoded sample for the component.
The variable PaletteEscapeVal[cIdx][xC][yC] specifies the transition value of the selection for which PaletteIndexMap[xC][yC] is equal to MaxPaletteIbdex, and palette_escape_val_pesent_flag is equal to 1. The cIdx array index specifies the color component. The array indices xC, yC specify the location (xC, yC) relative to the top-left sample of the image brightness.
The requirement for bitstream consistency is that PaletteEscapeVal[cIdx][xC][yC] must be in the
[149] Со ссылкой на Таблицы 5 и 6, когда режим палитры применяется к текущему блоку (т.е. текущей единице кодирования), синтаксис кодирования палитры (например, palette_coding()), как в Таблице 5, может синтаксически анализироваться/ сигнализироваться.[149] With reference to Tables 5 and 6, when a palette mode is applied to the current block (ie, the current coding unit), palette encoding syntax (eg, palette_coding()) as in Table 5 may be parsed/signaled.
[150] Например, таблица палитры может быть сконфигурирована на основе информации записей палитры. Информация записей палитры может включать в себя синтаксические элементы, такие как palette_predictor_run, num_signalled_palette_entries и new_palette_entries.[150] For example, the palette table may be configured based on the palette entry information. The palette entry information may include syntactic elements such as palette_predictor_run, num_signalled_palette_entries, and new_palette_entries.
[151] Дополнительно, можно конфигурировать карту индексов палитры для текущего блока на основе информации индексов палитры. Информация индексов палитры может включать в себя синтаксические элементы, такие как num_palette_indices_minus1, palette_idx_idc, copy_above_indices_for_final_run_flag и palette_transpose_flag. На основе информации индексов палитры, как описано выше, можно выводить значения индекса палитры (например, PaletteIndexIdc) для выборок в текущем блоке при проходе в поперечном направлении сканирования (вертикальном направлении или горизонтальном направлении), чтобы конфигурировать карту индексов палитры (например, PaletteIndexMap).[151] Additionally, you can configure a palette index map for the current block based on the palette index information. The palette index information may include syntax elements such as num_palette_indices_minus1, palette_idx_idc, copy_above_indices_for_final_run_flag, and palette_transpose_flag. Based on the palette index information as described above, it is possible to infer palette index values (eg, PaletteIndexIdc) for samples in the current block when passing in the transverse scanning direction (vertical direction or horizontal direction) to configure a palette index map (eg, PaletteIndexMap).
[152] Дополнительно, можно выводить значение выборки для записи палитры в таблице палитры на основе карты индексов палитры и генерировать восстановленные выборки текущего блока на основе значения выборки (т.е. цветового значения), отображенного на запись палитры.[152] Additionally, you can output the sample value for a palette entry in the palette table based on the palette index map, and generate reconstructed samples of the current block based on the sample value (ie, color value) mapped to the palette entry.
[153] Когда выборка имеет значение перехода в текущем блоке (т.е. когда значение palette_escape_val_present_flag равно 1), значение перехода для текущего блока может выводиться на основе информации перехода. Информация перехода может включать в себя синтаксические элементы, такие как palette_escape_val_present_flag и palette_escape_val. Например, значение перехода для кодированной переходом выборки в текущем блоке может выводиться на основе информации квантованного значения перехода (например, palette_escape_val). Восстановленные выборки текущего блока могут генерироваться на основе значения перехода.[153] When the sample has a transition value in the current block (ie, when the palette_escape_val_present_flag value is 1), the transition value for the current block can be inferred based on the transition information. The transition information may include syntactic elements such as palette_escape_val_present_flag and palette_escape_val. For example, the transition value for a transition-coded sample in the current block may be inferred based on the quantized transition value information (eg, palette_escape_val). Reconstructed samples of the current block can be generated based on the transition value.
[154] Как описано выше, информация (синтаксические элементы) в таблице синтаксиса, раскрытая в настоящем раскрытии, может включаться в информацию изображения/видео, сконфигурированную/закодированную в соответствии с методом кодирования (включая кодирование палитрой), выполняемым в устройстве кодирования, и доставляться на устройство декодирования в форме битового потока. Устройство декодирования может синтаксически анализировать/декодировать информацию (синтаксические элементы) в таблице синтаксиса. Устройство декодирования может выполнять метод кодирования, такой как кодирование палитрой, на основе декодированной информации и может выполнять процедуру восстановления (декодирования) блока/изображения/видео на этой основе. Далее, настоящее раскрытие предлагает таблицу синтаксиса и синтаксические элементы для эффективного кодирования блока/изображения/видео на основе кодирования палитрой.[154] As described above, information (syntax elements) in the syntax table disclosed in the present disclosure may be included in image/video information configured/encoded in accordance with an encoding method (including palette encoding) performed in an encoding apparatus and delivered to a decoding device in the form of a bit stream. The decoding apparatus may parse/decode information (syntax elements) in the syntax table. The decoding apparatus may perform an encoding method such as palette encoding based on the decoded information, and may perform a block/image/video reconstruction (decoding) procedure on this basis. Further, the present disclosure provides a syntax table and syntax elements for efficient block/image/video encoding based on palette encoding.
[155] Настоящее раскрытие предлагает способ эффективного кодирования и сигнализации значений перехода при кодировании в режиме палитры. В режиме палитры, значения перехода могут использоваться, чтобы дополнительно передавать соответствующее значение выборки для выборки, имеющей значение, отличающееся от таковых для соседних выборок в блоке. Поскольку такие значения перехода являются дополнительными данными, квантование может выполняться для экономии значений перехода. Дополнительно, при кодировании переходом в режиме палитры, преобразование не применяется, и квантованное значение перехода может непосредственно сигнализироваться. Это может рассматриваться подобно режиму пропуска преобразования, в котором преобразование не применяется к единице кодирования (CU).[155] The present disclosure provides a method for efficiently encoding and signaling transition values in palette mode encoding. In palette mode, transition values can be used to optionally convey the corresponding sample value for a sample that has a different value from those of adjacent samples in the block. Since such transition values are additional data, quantization can be performed to save transition values. Additionally, when transition encoding is in palette mode, no transform is applied and the quantized value of the transition can be directly signaled. This can be thought of as similar to skip transform mode, in which no transform is applied to the coding unit (CU).
[156] В текущем стандарте VVC, полный диапазон значений параметров квантования (QP) применяется к значениям перехода в режиме палитры. Однако настоящее раскрытие предлагает способ ограничения диапазона значений QP, чтобы предотвращать то, что размер шага квантования для кодирования значения перехода в режиме палитры становится меньше, чем 1. В одном варианте осуществления, то же самое ограничение, что и минимальный QP для пропуска преобразования, может применяться к кодированию значения перехода в режиме палитры. Минимальный QP для режима палитры может ограничиваться с использованием минимального QP для пропуска преобразования.[156] In the current VVC standard, the full range of quantization parameter (QP) values is applied to transition values in palette mode. However, the present disclosure provides a method for limiting the range of QP values to prevent the quantization step size for encoding a transition value in palette mode from becoming less than 1. In one embodiment, the same constraint as the minimum QP for skipping a transform may apply to transition value encoding in palette mode. The minimum QP for palette mode can be limited using the minimum QP to skip transformation.
[157] В качестве примера, информация о минимальном QP для пропуска преобразования может сигнализироваться посредством набора параметров последовательности (SPS), как показано в Таблице 7 ниже.[157] As an example, information about the minimum QP to skip conversion may be signaled by a Sequence Parameter Set (SPS), as shown in Table 7 below.
[158] [Таблица 7][158] [Table 7]
[159] Семантика синтаксических элементов, включенных в синтаксис Таблицы 7, может быть представлена, как показано в Таблице 8 ниже.[159] The semantics of the syntactic elements included in the syntax of Table 7 can be represented as shown in Table 8 below.
[160][160]
QpPrimeTsMin= 4+min_qp_prime_ts_minus4
min_qp_prime_ts_minus4 сигнализируется в SPS и обычно задается посредством 6*(inputBitDepth-8).min_qp_prime_ts_minus4 specifies the minimum allowed quantization parameter for skip transform mode as follows:
QpPrimeTsMin= 4+min_qp_prime_ts_minus4
min_qp_prime_ts_minus4 is signaled in the SPS and is usually specified by 6*(inputBitDepth-8).
[161] Со ссылкой на Таблицы 7 и 8, синтаксический элемент min_qp_prime_ts_minus4 может синтаксически анализироваться/ сигнализироваться в SPS. Синтаксический элемент min_qp_prime_ts_minus4 может указывать минимальный параметр квантования, разрешенный для режима пропуска преобразования. Иными словами, минимальное значение параметра квантования (например, QpPrimeTsMin) в режиме пропуска преобразования может выводиться на основе синтаксического элемента min_qp_prime_ts_minus4. Например, минимальное значение параметра квантования (например, QpPrimeTsMin) может выводиться путем суммирования 4 со значением min_qp_prime_ts_minus4.[161] With reference to Tables 7 and 8, the min_qp_prime_ts_minus4 syntax element may be parsed/signaled in the SPS. The min_qp_prime_ts_minus4 syntax element may specify the minimum quantization parameter allowed for transform skip mode. In other words, the minimum value of a quantization parameter (eg, QpPrimeTsMin) in skip mode may be inferred based on the min_qp_prime_ts_minus4 syntax element. For example, the minimum value of the quantization parameter (eg, QpPrimeTsMin) can be derived by summing 4 with the value min_qp_prime_ts_minus4.
[162] Как описано выше, на основе синтаксического элемента min_qp_prime_ts_minus4, сигнализируемого посредством SPS, QP для значений перехода в режиме палитры может выводиться, как в алгоритме, раскрытом в Таблице 9 ниже. То есть, значение QP, используемое для реконфигурации значения перехода в режиме палитры, может выводиться, как в алгоритме, раскрытом в Таблице 9 ниже.[162] As described above, based on the min_qp_prime_ts_minus4 syntax element signaled by the SPS, the QP for palette mode transition values can be output as in the algorithm disclosed in Table 9 below. That is, the QP value used to reconfigure the transition value in palette mode may be output as in the algorithm disclosed in Table 9 below.
[163][163]
1. Параметр квантования qP выводится следующим образом:
- Если cIdx равен 0,
qP=Max(QpPrimeTsMin, Qp’Y)
- Иначе, если cIdx равен 1,
qP=Max(QpPrimeTsMin, Qp’Cb)
- Иначе (cIdx равен 2),
qP=Max(QpPrimeTsMin, Qp’Cr)
2. Переменная bitDepth выводится следующим образом:
3. Список levelScale[] специфицируется как levelScale[k]={40, 45, 51, 57, 64, 72} при k=0..5.
4. Следующее применимо:
Otherwise (bIsEscapeSample is equal to 1 and cu_transquant_bypass_flag is equal to 0), the following order of steps is applied:
1. The quantization parameter qP is derived as follows:
- If cIdx is 0,
qP=Max(QpPrimeTsMin, Qp'Y)
- Otherwise, if cIdx is 1,
qP=Max(QpPrimeTsMin, Qp'Cb)
- Otherwise (cIdx equals 2),
qP=Max(QpPrimeTsMin, Qp'Cr)
2. The bitDepth variable is output as follows:
3. The list levelScale[] is specified as levelScale[k]={40, 45, 51, 57, 64, 72} with k=0..5.
4. The following applies:
[164] Со ссылкой на Таблицу 9, когда существует значение перехода режима палитры, может выводиться значение QP. То есть, QP для значения перехода режима палитры может выводиться на основе минимального значения параметра квантования (например, QpPrimeTsMin) в режиме пропуска преобразования, выведенного на основе синтаксического элемента min_qp_prime_ts_minus4, описанного выше. Например, как показано в Таблице 9, QP для значений перехода режима палитры может выводиться как большее значение между QpPrimeTsMin и параметром квантования Qp (Qp’Y для компонента яркости и Qp’Cb или Qp’Cr для компонента цветности). Затем, значение перехода может выводиться на основе QP для значений перехода режима палитры, чтобы восстанавливать выборки в блоке.[164] With reference to Table 9, when a palette mode transition value exists, a QP value may be output. That is, the QP for the palette mode transition value may be inferred based on the minimum value of the quantization parameter (eg, QpPrimeTsMin) in transform skip mode inferred based on the min_qp_prime_ts_minus4 syntax element described above. For example, as shown in Table 9, the QP for palette mode transition values may be output as the greater of the value between QpPrimeTsMin and the quantization parameter Qp (Qp'Y for the luma component and Qp'Cb or Qp'Cr for the chrominance component). Then, the transition value can be inferred based on the QP for the palette mode transition values to reconstruct the selections in the block.
[165] Дополнительно, в настоящем раскрытии, как описано выше, когда диапазон QP в режиме палитры ограничен, чтобы быть большим или равным минимальному значению параметра квантования (например, QpPrimeTsMin) в режиме пропуска преобразования, диапазон значений перехода, квантованных в режиме палитры, может быть ограничен. В качестве варианта осуществления, диапазон значений перехода, квантованных в режиме палитры, может быть определен на основе битовой глубины и может быть ограничен так, что он не больше, чем, например, (1<<BitDepth)-1.[165] Additionally, in the present disclosure, as described above, when the range of QP in palette mode is limited to be greater than or equal to the minimum value of the quantization parameter (e.g., QpPrimeTsMin) in transform skip mode, the range of transition values quantized in palette mode may be limited. As an embodiment, the range of transition values quantized in palette mode may be determined based on the bit depth and may be limited to be no greater than, for example, (1<<BitDepth)-1.
[166] Например, значение перехода, квантованное в режиме палитры, может быть представлено синтаксическим элементом palette_escape_val. Синтаксический элемент palette_escape_val может сигнализироваться через синтаксис кодирования палитры, как показано в Таблице 10 ниже.[166] For example, a transition value quantized in palette mode may be represented by the palette_escape_val syntax element. The palette_escape_val syntax element may be signaled via palette encoding syntax, as shown in Table 10 below.
[167] [Таблица 10][167] [Table 10]
[168] Семантика синтаксических элементов, включенных в Таблицу 10, может быть представлена, как показано в Таблице 11 ниже.[168] The semantics of the syntactic elements included in Table 10 can be represented as shown in Table 11 below.
[169][169]
Переменная PaletteEscapeVal[cIdx][xC][yC] специфицирует значение перехода выборки, для которой PaletteIndexMap[xC][yC] равно MaxPaletteIndex и palette_escape_val_present_flag равно 1. Индекс массива cIdx специфицирует цветовой компонент. Индексы массива xC, yC специфицируют местоположение (xC, yC) выборки относительно верхней-левой выборки яркости картинки.
Требованием согласованности битового потока является то, что PaletteEscapeVal[cIdx][xC][yC] должно быть в диапазоне от 0 до (1<<(BitDepthY))-1, включительно, для cIdx, равного 0, и в диапазоне от 0 до (1<<(BitDepthC))-1, включительно, для cIdx, не равного 0.palette_escape_val specifies the quantized value of the branch-encoded sample for the component.
The variable PaletteEscapeVal[cIdx][xC][yC] specifies the transition value of the selection for which PaletteIndexMap[xC][yC] is equal to MaxPaletteIndex and palette_escape_val_present_flag is equal to 1. The array index cIdx specifies the color component. The array indices xC, yC specify the location (xC, yC) of the sample relative to the top-left luminance sample of the picture.
The bitstream consistency requirement is that PaletteEscapeVal[cIdx][xC][yC] must be in the range from 0 to (1<<(BitDepth Y ))-1, inclusive, for cIdx equal to 0, and in the range from 0 up to (1<<(BitDepth C ))-1, inclusive, for cIdx not equal to 0.
[170] Со ссылкой на Таблицы 10 и 11, синтаксический элемент palette_escape_val может синтаксически анализироваться/ сигнализироваться в синтаксисе кодирования палитры. Синтаксический элемент palette_escape_val может указывать квантованное значение перехода. Дополнительно, как показано в Таблице 10, значение синтаксического элемента palette_escape_val может быть установлено в PaletteEscapeVal, и PaletteEscapeVal может указывать значение перехода выборки, в которой карта индексов палитры (PaletteIndexMap) равна максимальному индексу палитры (MaxPaletteIndex) и значение palette_escape_val_present_flag равно 1. Здесь, случай, где значение palette_escape_val_present_flag равно 1, может означать, что по меньшей мере одна кодированная переходом выборка (значение перехода) включена в текущую CU. Например, для компонента яркости, PaletteEscapeVal может быть ограничено до диапазона от 0 до (1<<(BitDepthY)-1). Для компонента цветности, PaletteEscapeVal может быть ограничено до диапазона от 0 до (1<<(BitDepthC))-1.[170] With reference to Tables 10 and 11, the palette_escape_val syntax element may be parsed/signaled in palette encoding syntax. The palette_escape_val syntax element may indicate the quantized value of the transition. Additionally, as shown in Table 10, the value of the palette_escape_val syntax element can be set to PaletteEscapeVal, and PaletteEscapeVal can indicate the value of a selection transition in which the palette index map (PaletteIndexMap) is equal to the maximum palette index (MaxPaletteIndex) and the value of palette_escape_val_present_flag is 1. Here, the case , where the value of palette_escape_val_present_flag is 1, may indicate that at least one transition-coded sample (transition value) is included in the current CU. For example, for the luminance component, PaletteEscapeVal can be limited to the range from 0 to (1<<(BitDepthY)-1). For the chroma component, PaletteEscapeVal can be limited to the range from 0 to (1<<(BitDepthC))-1.
[171] Дополнительно, настоящее раскрытие предлагает способ определения размера палитры и его сигнализации. Размер палитры может указывать число записей в таблице палитры (т.е. число индексов в таблице палитры). В качестве варианта осуществления, в настоящем раскрытии, число записей палитры может быть указано путем определения размера палитры с помощью одной или более констант.[171] Additionally, the present disclosure provides a method for determining a palette size and signaling it. The palette size can indicate the number of entries in the palette table (that is, the number of indexes in the palette table). As an embodiment, in the present disclosure, the number of palette entries may be specified by defining the palette size using one or more constants.
[172] В качестве примера, размер палитры может быть представлен синтаксическим элементом palette_max_size, и синтаксический элемент palette_max_size может тем же самым для всей последовательности или может быть различным в соответствии с размером CU (т.е. числом пикселов в CU). Например, размер палитры (palette_max_size) может указывать максимальный допустимый индекс таблицы палитры и может быть определен как 31. В качестве другого примера, размер палитры (palette_max_size) может указывать максимальный допустимый индекс таблицы палитры, и может быть определен, как показано в Таблице 12 ниже в соответствии с размером CU.[172] As an example, the palette size may be represented by the palette_max_size syntax element, and the palette_max_size syntax element may be the same for the entire sequence or may be different according to the size of the CU (ie, the number of pixels in the CU). For example, the palette size (palette_max_size) may indicate the maximum valid palette table index, and may be defined as 31. As another example, the palette size (palette_max_size) may indicate the maximum valid palette table index, and may be defined as shown in Table 12 below according to CU size.
[173][173]
palette_max_size определен как 63
иначе, если cbWidth*cbHeight>=256
palette_max_size определен как 31
иначе,
palette_max_size определен как 15if (cbWidth*cbHeight>=1024)
palette_max_size defined as 63
otherwise if cbWidth*cbHeight>=256
palette_max_size is defined as 31
otherwise,
palette_max_size is defined as 15
[174] Размеры палитры 63, 31, 15 и т.д. и размеры CU 1024, 256 и т.д., раскрытые в Таблице 12, используются только в качестве примеров и могут быть изменены на другие числа.[174] Palette sizes 63, 31, 15, etc. and CU sizes 1024, 256, etc. disclosed in Table 12 are used as examples only and may be changed to other numbers.
[175] В качестве варианта осуществления, информация, указывающая размер палитры (например, palette_max_size), может сигнализироваться посредством SPS, как показано в Таблице 13 ниже.[175] As an embodiment, information indicating the size of the palette (eg, palette_max_size) may be signaled by the SPS, as shown in Table 13 below.
[176] [Таблица 13][176] [Table 13]
[177] Семантика синтаксических элементов, включенных в синтаксис Таблицы 13, может быть представлена, как показано в Таблице 14 ниже.[177] The semantics of the syntactic elements included in the syntax of Table 13 can be represented as shown in Table 14 below.
[178][178]
[179] Со ссылкой на Таблицы 13 и 14 выше, синтаксический элемент palette_max_size может синтаксически анализироваться/ сигнализироваться в синтаксическом элементе в SPS. Синтаксический элемент palette_max_size может указывать максимальный разрешенный индекс таблицы палитры и может быть ограничен до диапазона от 1 до 63.[179] With reference to Tables 13 and 14 above, the palette_max_size syntax element may be parsed/signaled in a syntax element in the SPS. The palette_max_size syntax element can specify the maximum allowed palette table index and can be limited to the
[180] В этом случае, синтаксический элемент palette_max_size может синтаксически анализироваться/ сигнализироваться на основе синтаксического элемента sps_palette_enabled_flag, который является информацией для указания, включен ли режим палитры. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда он указывает, что режим палитры включен), синтаксический элемент palette_max_size может синтаксически анализироваться/сигнализироваться.[180] In this case, the palette_max_size syntax element may be parsed/signaled based on the sps_palette_enabled_flag syntax element, which is information for indicating whether the palette mode is enabled. For example, when the value of sps_palette_enabled_flag is 1 (ie when it indicates that palette mode is enabled), the palette_max_size syntax element may be parsed/signaled.
[181] Альтернативно, в качестве варианта осуществления, информация, указывающая размер палитры (например, log2_palette_max_size), может сигнализироваться посредством SPS, как показано в Таблице 15 ниже.[181] Alternatively, as an embodiment, information indicating the size of the palette (eg, log2_palette_max_size) may be signaled by the SPS, as shown in Table 15 below.
[182] [Таблица 15][182] [Table 15]
[183] Семантика синтаксических элементов, включенных в синтаксис Таблицы 15, может быть представлена, как показано в Таблице 16 ниже.[183] The semantics of the syntactic elements included in the syntax of Table 15 can be represented as shown in Table 16 below.
[184][184]
[185] Со ссылкой на Таблицы 15 и 16, синтаксический элемент log2_palette_max_size синтаксический элемент может синтаксически анализироваться/сигнализироваться в SPS. Синтаксический элемент log2_palette_max_size может указывать значение log2 размера палитры (т.е. palette_max_size+1). Соответственно, palette_max_size, указывающий максимальный разрешенный индекс таблицы палитры, может выводиться путем вычисления (1<< log2_palette_max_size)-1 и может быть ограничен до диапазона от 1 до 63.[185] With reference to Tables 15 and 16, the log2_palette_max_size syntax element can be parsed/signaled in the SPS. The log2_palette_max_size syntax element may specify a log2 value of the palette size (ie, palette_max_size+1). Accordingly, palette_max_size, indicating the maximum allowed palette table index, can be derived by computing (1<< log2_palette_max_size)-1 and can be limited to the range from 1 to 63.
[186] В этом случае, синтаксический элемент log2_palette_max_size может синтаксически анализироваться/ сигнализироваться на основе синтаксического элемента sps_palette_enabled_flag, который является информацией для указания, включен ли режим палитры. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда он указывает, что режим палитры включен), синтаксический элемент log2_palette_max_size может синтаксически анализироваться/ сигнализироваться.[186] In this case, the log2_palette_max_size syntax element may be parsed/signaled based on the sps_palette_enabled_flag syntax element, which is information for indicating whether the palette mode is enabled. For example, when the value of sps_palette_enabled_flag is 1 (ie when it indicates that palette mode is enabled), the log2_palette_max_size syntax element can be parsed/signaled.
[187] Альтернативно, в качестве варианта осуществления, информация, указывающая размер палитры (например, log2_palette_CU_size_TH1, log2_palette_max_size_TH1, log2_palette_max_size_default) может сигнализироваться посредством SPS, как показано в Таблице 17 ниже.[187] Alternatively, as an embodiment, information indicating the palette size (eg, log2_palette_CU_size_TH1, log2_palette_max_size_TH1, log2_palette_max_size_default) may be signaled by the SPS, as shown in Table 17 below.
[188] [Таблица 17][188] [Table 17]
[189] Семантика синтаксических элементов, включенных в синтаксис Таблицы 17, может быть представлена, как показано в Таблице 18 ниже.[189] The semantics of the syntactic elements included in the syntax of Table 17 can be represented as shown in Table 18 below.
[190][190]
log2_palette_max_size_TH1 специфицирует log2 от (palette_max_size_TH1+1). (palette_max_size_TH1=(1<<log2_palette_max_size_TH1)-1. palette_max_size_TH1 специфицирует максимальный разрешенный индекс таблицы палитры для CU с размером большим, чем palette_CU_size_TH1, и должно быть в диапазоне от 1 до 63 включительно.
log2_palette_max_size_default специфицирует log2 от (palette_max_size_default+1). palette_max_size_default=(1<<log2_palette_max_size_default)-1. palette_max_size_default специфицирует максимальный разрешенный индекс таблицы палитры и должно быть в диапазоне от 1 до 63 включительно.
Переменная palette_max_size специфицирует максимальный разрешенный индекс таблицы палитры и выводится следующим образом:
log2_palette_CU_size_TH1 specifies log2 of the size limit palette_max_size_TH1. palette_CU_size_TH1=1<<log2_palette_CU_size_TH1
log2_palette_max_size_TH1 specifies log2 of (palette_max_size_TH1+1). (palette_max_size_TH1=(1<<log2_palette_max_size_TH1)-1. palette_max_size_TH1 specifies the maximum allowed palette table index for a CU with a size larger than palette_CU_size_TH1, and must be in the
log2_palette_max_size_default specifies log2 of (palette_max_size_default+1). palette_max_size_default=(1<<log2_palette_max_size_default)-1. palette_max_size_default specifies the maximum palette table index allowed and must be in the
The variable palette_max_size specifies the maximum allowed palette table index and is output as follows:
[191] Со ссылкой на Таблицы 17 и 18, синтаксические элементы log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default могут синтаксически анализироваться/сигнализироваться в SPS.[191] With reference to Tables 17 and 18, the syntax elements log2_palette_CU_size_TH1, log2_palette_max_size_TH1 and log2_palette_max_size_default can be parsed/signaled in the SPS.
[192] Синтаксический элемент log2_palette_CU_size_TH1 указывает значение log2 предела размера of palette_max_size_TH1, и palette_max_size_TH1 может выводиться как 1<< log2_Palette_CU_size_TH1.[192] The log2_palette_CU_size_TH1 syntax element specifies the log2 size limit value of palette_max_size_TH1, and palette_max_size_TH1 may be output as 1<< log2_Palette_CU_size_TH1.
[193] Синтаксический элемент log2_palette_max_size_TH1 указывает значение log2 от (palette_max_size_TH1+1), и palette_max_size_TH1 может выводиться как (1<< log2_palette_max_size_TH1)-1. palette_max_size_TH1 указывает максимальный разрешенный индекс таблицы палитры для CU, имеющей размер больший, чем Palette_CU_size_TH1, и может быть ограничен в диапазоне от 1 до 63.[193] The log2_palette_max_size_TH1 syntax element specifies the log2 value of (palette_max_size_TH1+1), and palette_max_size_TH1 may be output as (1<< log2_palette_max_size_TH1)-1. palette_max_size_TH1 specifies the maximum allowed palette table index for a CU larger than Palette_CU_size_TH1 and can be limited to a range of 1 to 63.
[194] Синтаксический элемент log2_palette_max_size_default элемент указывает значение log2 от (palette_max_size_default+1), и palette_max_size_default может выводиться как (1<< log2_palette_max_size_default)-1. palette_max_size_default указывает максимальный разрешенный индекс таблицы палитры и может быть ограничен в диапазоне от 1 до 63.[194] The log2_palette_max_size_default syntax element specifies the log2 value of (palette_max_size_default+1), and palette_max_size_default can be output as (1<< log2_palette_max_size_default)-1. palette_max_size_default specifies the maximum palette table index allowed and can be limited to a range of 1 to 63.
[195] Здесь, синтаксические элементы log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default могут синтаксически анализироваться/сигнализироваться на основе синтаксического элемента sps_palette_enabled_flag, который является информацией для указания, включен ли режим палитры. Например, когда значение sps_palette_enabled_flag равно 1 (т.е. когда оно указывает, что режим палитры включен), синтаксические элементы log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default могут синтаксически анализироваться/ сигнализироваться.[195] Here, the syntax elements log2_palette_CU_size_TH1, log2_palette_max_size_TH1 and log2_palette_max_size_default can be parsed/signaled based on the syntax element sps_palette_enabled_flag, which is information for indicating whether the palette mode is enabled. For example, when the value of sps_palette_enabled_flag is 1 (that is, when it indicates that palette mode is enabled), the syntax elements log2_palette_CU_size_TH1, log2_palette_max_size_TH1, and log2_palette_max_size_default can be parsed/signaled.
[196] Также, один или более наборов palette_CU_size_TH и palette_max_size_TH могут сигнализироваться и использоваться, чтобы указывать palette_max_size.[196] Also, one or more sets of palette_CU_size_TH and palette_max_size_TH may be signaled and used to indicate palette_max_size.
[197] Следующие чертежи были созданы, чтобы пояснять конкретный пример настоящего раскрытия. Наименования или конкретные термины или наименования конкретных устройств, проиллюстрированных на чертежах (например, термины синтаксиса/синтаксических элементов и т.д.), представлены в качестве примера, и, таким образом, технические признаки настоящего раскрытия не ограничены конкретным наименованиями, используемыми на чертежах ниже.[197] The following drawings have been created to explain a specific example of the present disclosure. The names or specific terms or names of specific devices illustrated in the drawings (e.g., syntax terms/syntactic elements, etc.) are presented by way of example, and thus the technical features of the present disclosure are not limited to the specific names used in the drawings below .
[198] Фиг. 9 схематично показывает пример способа кодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.[198] FIG. 9 schematically shows an example of a video/image encoding method in accordance with embodiment(s) of the present disclosure.
[199] Способ, раскрытый на фиг. 9, может выполняться устройством 200 кодирования, проиллюстрированным на фиг. 2. Конкретно, этапы S900 и S910 на фиг. 9 могут выполняться предсказателем 220, проиллюстрированным на фиг. 2, и этап S920 на фиг. 9 может выполняться энтропийным кодером 240, проиллюстрированным на фиг. 2. Дополнительно, способ, раскрытый на фиг. 9, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии. Соответственно, на фиг. 9, детальное описание избыточных частей фиг. 9 и вышеописанные варианты осуществления будут опущены или упрощены.[199] The method disclosed in FIG. 9 may be performed by the
[200] Со ссылкой на фиг. 9, устройство кодирования может выводить значение перехода в режиме палитры для текущего блока (S900).[200] With reference to FIG. 9, the encoder can output a palette mode transition value for the current block (S900).
[201] В качестве варианта осуществления, устройство кодирования может определять режим предсказания для текущего блока и выполнять предсказание. Например, устройство кодирования может определять, следует ли выполнять интер-предсказание или интра-предсказание на текущем блоке. Альтернативно, устройство кодирования может определять, следует ли выполнять предсказание на текущем блоке на основе режима CIIP, режима IBC или режима палитры. Устройство кодирования может определять режим предсказания на основе стоимости RD. Устройство кодирования может выполнять предсказание в соответствии с определенным режимом предсказания, чтобы вывести выборки предсказания для текущего блока. Дополнительно, устройство кодирования может генерировать и кодировать информацию (например, информацию режима предсказания), относящуюся к предсказанию, применимому к текущему блоку.[201] As an embodiment, the encoder may determine a prediction mode for the current block and perform the prediction. For example, the encoder may determine whether to perform inter-prediction or intra-prediction on the current block. Alternatively, the encoder may determine whether to perform prediction on the current block based on a CIIP mode, an IBC mode, or a palette mode. The encoder may determine the prediction mode based on the RD cost. The encoder may perform prediction in accordance with a certain prediction mode to output prediction samples for the current block. Additionally, the encoding device may generate and encode information (eg, prediction mode information) related to the prediction applicable to the current block.
[202] При выполнении режима палитры на основе предсказания на текущем блоке, устройство кодирования может применять кодирование в режиме палитры, раскрытое в вышеописанных вариантах осуществления. То есть, устройство кодирования может выводить записи палитры, индексы палитры, значения перехода и тому подобное путем применения кодирования в режиме палитры к текущему блоку.[202] When executing the prediction-based palette mode on the current block, the encoding device may apply the palette mode encoding disclosed in the above-described embodiments. That is, the encoder can output palette entries, palette indices, transition values, and the like by applying palette mode encoding to the current block.
[203] В качестве примера, устройство кодирования может генерировать информацию записей палитры на основе значений выборок текущего блока. То есть, устройство кодирования может выводить записи предсказателя палитры и информацию повторного использования записей палитры, используемую в блоке, кодируемом в предыдущем режиме палитры, чтобы сконфигурировать таблицу палитры, и может выводить записи палитры для текущего блока. Например, как показано в Таблицах 5 и 6, устройство кодирования может выводить информацию записей палитры, такую как palette_predictor_run, num_signalled_palette_entries и new_palette_entries, используемую, чтобы конфигурировать таблицу палитры.[203] As an example, the encoder may generate palette entry information based on the sample values of the current block. That is, the encoding device may output palette predictor entries and palette entry reuse information used in a block encoded in a previous palette mode to configure a palette table, and may output palette entries for the current block. For example, as shown in Tables 5 and 6, the encoder may output palette entry information such as palette_predictor_run, num_signalled_palette_entries, and new_palette_entries used to configure the palette table.
[204] Дополнительно, устройство кодирования может генерировать информацию индексов палитры для текущего блока на основе информации записей палитры. То есть, устройство кодирования может выводить значение индекса палитры каждой выборки при проходе по выборкам текущего блока в поперечном направлении сканирования (вертикальном направлении или горизонтальном направлении) и конфигурировать карту индексов палитры. Например, как показано в Таблицах 5 и 6 выше, устройство кодирования может выводить информацию записей палитры, такую как palette_transpose_flag, palette_idx_idc, COPY_ABOVE_indices_for_final_run_flag, num_palette_indices_minus1, используемую, чтобы конфигурировать карту индексов палитры.[204] Additionally, the encoder may generate palette index information for the current block based on the palette entry information. That is, the encoder may output the palette index value of each sample as it traverses the samples of the current block in the transverse scanning direction (vertical direction or horizontal direction) and configure the palette index map. For example, as shown in Tables 5 and 6 above, the encoding device may output palette entry information such as palette_transpose_flag, palette_idx_idc, COPY_ABOVE_indices_for_final_run_flag, num_palette_indices_minus1 used to configure the palette index map.
[205] Здесь, таблица палитры может включать в себя репрезентативные цветовые значения (записи палитры) для выборок в текущем блоке и может состоять из значений индексов палитры, соответствующих соответственным цветовым значениям. То есть, устройство кодирования может выводить значение индекса палитры, соответствующее записи (цветовому значению) в таблице палитры для каждой выборки в текущем блоке и сигнализировать его на устройство декодирования.[205] Here, the palette table may include representative color values (palette entries) for samples in the current block and may consist of palette index values corresponding to the corresponding color values. That is, the encoding device may output a palette index value corresponding to an entry (color value) in the palette table for each sample in the current block and signal it to the decoding device.
[206] Устройство кодирования может кодировать информацию изображения, включающую в себя информацию записей палитры и информацию индексов палитры, и сигнализировать ее на устройство декодирования.[206] The encoding device can encode image information including palette entry information and palette index information and signal it to the decoding device.
[207] Дополнительно, при выполнении режима палитры на основе предсказания на текущем блоке, устройство кодирования может выводить значение перехода для текущего блока, включающего в себя по меньшей мере одну кодированную переходом выборку.[207] Additionally, when executing a prediction-based palette mode on a current block, the encoder may output a transition value for the current block including at least one transition-encoded sample.
[208] Как описано выше, поскольку является эффективным дополнительно передавать соответствующее значение выборки для выборки, имеющей значение, отличное от таковых в соседних выборках в текущем блоке в режиме палитры, с точки зрения эффективности кодирования, это значение выборки может сигнализироваться как значение перехода. В этом случае, поскольку значение перехода является дополнительными данными, для их экономии может выполняться квантование. К тому же, преобразование не применяется к значению перехода режима палитры, и квантованное значение может непосредственно сигнализироваться.[208] As described above, since it is effective to additionally transmit a corresponding sample value for a sample having a value different from those of adjacent samples in the current block in palette mode, from the point of view of encoding efficiency, this sample value may be signaled as a transition value. In this case, since the transition value is additional data, quantization can be performed to save it. In addition, the transformation is not applied to the palette mode transition value, and the quantized value can be directly signaled.
[209] Устройство кодирования может выводить квантованное значение перехода на основе значения перехода (S910).[209] The encoding device may output a quantized transition value based on the transition value (S910).
[210] В качестве варианта осуществления, устройство кодирования может выводить квантованное значение перехода путем применения параметра квантования для значения перехода к значению перехода.[210] As an embodiment, the encoder may output a quantized transition value by applying a quantization parameter for the transition value to the transition value.
[211] Здесь, параметр квантования может выводиться на основе информации минимального параметра квантования касательно режима пропуска преобразования. Например, параметр квантования может выводиться на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования, показанного в Таблицах 7-9. Как описано выше, поскольку преобразование не применяется к значению перехода режима палитры, значение перехода может квантоваться на основе информации минимального параметра квантования, используемой в режиме пропуска преобразования.[211] Here, a quantization parameter may be derived based on the minimum quantization parameter information regarding the skip conversion mode. For example, the quantization parameter may be inferred based on the minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode shown in Tables 7-9. As described above, since the transform is not applied to the palette mode transition value, the transition value may be quantized based on the minimum quantization parameter information used in the transform skip mode.
[212] В качестве конкретного примера, как показано в Таблице 9, сначала, устройство кодирования может выводить минимальное значение параметра квантования (например, QpPrimeTsMin) на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования. Дополнительно, устройство кодирования может выбрать большее значение между минимальным значением параметра квантования (например, QpPrimeTsMin) и параметром квантования Qp (Qp’Y для компонента яркости и Qp’Cb или Qp’Cr для компонента цветности) и использовать его в качестве параметра квантования в режиме палитры.[212] As a specific example, as shown in Table 9, first, the encoder may output a minimum quantization parameter value (eg, QpPrimeTsMin) based on the minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode. Additionally, the encoder may select the greater value between the minimum value of the quantization parameter (eg, QpPrimeTsMin) and the quantization parameter Qp (Qp'Y for the luma component and Qp'Cb or Qp'Cr for the chrominance component) and use it as the quantization parameter in the mode palettes.
[213] Иными словами, параметр квантования в режиме палитры может иметь значение, большее или равное минимальному значению параметра квантования (например, QpPrimeTsMin), выведенному из информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования.[213] In other words, the palette mode quantization parameter may have a value greater than or equal to the minimum quantization parameter value (eg, QpPrimeTsMin) derived from the minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode.
[214] Устройство кодирования может выводить квантованное значение перехода с использованием параметра квантования в режиме палитры, выведенного, как описано выше. Устройство кодирования может генерировать квантованное значение перехода как синтаксический элемент palette_escape_val, как показано в Таблицах 5 и 6, и сигнализировать его. Дополнительно, устройство кодирования может генерировать информацию (например, palette_escape_val_present_flag) для указания, что выборка, имеющая значение перехода, присутствует в текущем блоке, и сигнализировать ее.[214] The encoder may output the quantized transition value using the palette mode quantization parameter output as described above. The encoder may generate the quantized transition value as a palette_escape_val syntax element, as shown in Tables 5 and 6, and signal it. Additionally, the encoder may generate information (eg, palette_escape_val_present_flag) to indicate that a sample having a transition value is present in the current block and signal it.
[215] В соответствии с вариантом осуществления, устройство кодирования может ограничить квантованное значение перехода в конкретном диапазоне. Поскольку значения перехода имеют характеристики, отличные от таковых в соседних выборках, они квантуются и непосредственно сигнализируются. Однако может возникать ошибка вследствие квантования. Чтобы уменьшать такую ошибку и кодировать более точное значение, диапазон квантованного значения перехода может быть ограничен на основе битовой глубины.[215] According to an embodiment, the encoder may limit the quantized transition value to a specific range. Because transition values have different characteristics from those of neighboring samples, they are quantized and signaled directly. However, an error may occur due to quantization. To reduce such error and encode a more accurate value, the range of the quantized transition value can be limited based on the bit depth.
[216] Например, диапазон информации о квантованном значении перехода может определяться на основе битовой глубины, как показано в Таблицах 10 и 11, и может ограничиваться так, что он не больше, чем (1<<BitDepth)-1, например. Дополнительно, битовая глубина может включать в себя битовую глубину BitDepthY для компонента яркости и битовую глубину BitDepthC для компонента цветности. Здесь, диапазон информации квантованного значения перехода для компонента яркости может иметь значение между 0 и (1<<BitDepthY)-1, и диапазон информации квантованного значения перехода для компонента цветности может иметь значение между 0 и (1<<BitDepthC)-1.[216] For example, the range of the quantized transition value information may be determined based on the bit depth, as shown in Tables 10 and 11, and may be limited to be no greater than (1<<BitDepth)-1, for example. Additionally, the bit depth may include a bit depth BitDepthY for the luma component and a bit depth BitDepthC for the chrominance component. Here, the range of quantized transition value information for the luma component may have a value between 0 and (1<<BitDepthY)-1, and the range of quantized transition value information for the chrominance component may have a value between 0 and (1<<BitDepthC)-1.
[217] Дополнительно, в одном варианте осуществления, устройство кодирования может определять число записей в таблице палитры (т.е. число индексов таблицы палитры) и сигнализировать его на устройство декодирования. То есть, устройство кодирования может определять информацию размера палитры касательно максимального индекс таблицы палитры и сигнализировать ее. Информация размера палитры может быть предварительно установленным значением или может определяться на основе размера единицы кодирования.[217] Additionally, in one embodiment, the encoding device may determine the number of entries in the palette table (ie, the number of palette table indices) and signal it to the decoding device. That is, the encoding device may determine palette size information regarding the maximum index of the palette table and signal it. The palette size information may be a preset value or may be determined based on the encoding unit size.
[218] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблице 12, может быть одинаковым для всей последовательности или может быть определен по-разному в соответствии с размером CU (т.е. числом пикселов в CU).[218] For example, the palette size may be represented by palette_max_size, as shown in Table 12, may be the same for the entire sequence, or may be defined differently according to the size of the CU (ie, the number of pixels in the CU).
[219] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблицах 13 и 14, и может сигнализироваться посредством SPS. В этом случае, размер палитры (например, palette_max_size) может указывать максимальный разрешенный индекс таблицы палитры и может быть ограничен в диапазоне от 1 до 63. Дополнительно, размер палитры (например, palette_max_size) может сигнализироваться на основе информации (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.[219] For example, the palette size may be represented as palette_max_size, as shown in Tables 13 and 14, and may be signaled by the SPS. In this case, the palette size (eg, palette_max_size) may indicate the maximum enabled palette table index and may be limited to a range from 1 to 63. Additionally, the palette size (eg, palette_max_size) may be signaled based on information (eg, sps_palette_enabled_flag) to indicate whether palette mode is enabled.
[220] Дополнительно, например, размер палитры может быть представлен как log2_palette_max_size, как показано в Таблицах 15 и 16, и может сигнализироваться посредством SPS. В этом случае, размер палитры (например, log2_palette_max_size) может указывать значение log2 от размера палитры (т.е. palette_max_size+1). Соответственно, palette_max_size, указывающий максимальный разрешенный индекс таблицы палитры, может выводиться путем вычисления (1<<log2_palette_max_size)-1 и может быть ограничен в диапазон от 1 до 63. Дополнительно, размер палитры (например, log2_palette_max_size) может сигнализироваться на основе информации (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.[220] Additionally, for example, the palette size may be represented as log2_palette_max_size, as shown in Tables 15 and 16, and may be signaled by SPS. In this case, the palette size (eg, log2_palette_max_size) may indicate a log2 value of the palette size (ie, palette_max_size+1). Accordingly, palette_max_size, indicating the maximum allowed index of the palette table, may be derived by calculating (1<<log2_palette_max_size)-1 and may be limited to a range from 1 to 63. Additionally, the palette size (eg, log2_palette_max_size) may be signaled based on information (eg , sps_palette_enabled_flag) to indicate whether palette mode is enabled.
[221] Дополнительно, например, размер палитры может выводиться на основе log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default, как показано в Таблицах 17 и 18, и может сигнализироваться посредством SPS. Поскольку конкретный вариант осуществления выведения и сигнализации размера палитры был описан выше в Таблицах 17 и 18, их описание здесь будет опущено.[221] Additionally, for example, the palette size may be inferred based on log2_palette_CU_size_TH1, log2_palette_max_size_TH1, and log2_palette_max_size_default, as shown in Tables 17 and 18, and may be signaled by SPS. Since a specific embodiment of palette size output and signaling has been described above in Tables 17 and 18, their description will be omitted here.
[222] Устройство кодирования может кодировать информацию изображения (или информацию видео) (S920). Здесь, информация изображения может включать в себя различные типы информации, используемой для вышеописанного кодирования в режиме палитры.[222] The encoding device may encode image information (or video information) (S920). Here, the image information may include various types of information used for the above-described palette mode encoding.
[223] В качестве примера, устройство кодирования может генерировать и кодировать информацию изображения, включая информацию о квантованных значениях перехода. Дополнительно, устройство кодирования может генерировать и кодировать информацию изображения, включая информацию записей палитры и информацию индексов палитры. Дополнительно, устройство кодирования может генерировать и кодировать информацию изображения, включая информацию минимального параметра квантования касательно режим пропуска преобразования. В этом случае, информация изображения может включать в себя SPS, и SPS может включать в себя информацию минимального параметра квантования касательно режим пропуска преобразования.[223] As an example, an encoder may generate and encode image information, including information about quantized transition values. Additionally, the encoding device can generate and encode image information including palette entry information and palette index information. Additionally, the encoding device can generate and encode image information, including minimum quantization parameter information regarding the skip transform mode. In this case, the image information may include the SPS, and the SPS may include minimum quantization parameter information regarding the skip conversion mode.
[224] Дополнительно, в соответствии с вариантом осуществления, устройство кодирования может определять, следует ли выполнять кодирование на текущем блоке с использованием вышеописанного режим палитры на основе информации о том, включен ли режим палитры.[224] Additionally, according to an embodiment, the encoding device may determine whether to perform encoding on the current block using the palette mode described above based on information about whether the palette mode is turned on.
[225] Например, как показано в Таблицах 1-4, устройство кодирования может определять включен ли режим палитры, генерировать информацию (например, sps_palette_enabled_flag) о том, включен ли режим палитры, в соответствии с определением и сигнализировать информация посредством SPS.[225] For example, as shown in Tables 1-4, the encoder may determine whether the palette mode is enabled, generate information (eg, sps_palette_enabled_flag) about whether the palette mode is enabled according to the determination, and signal the information via the SPS.
[226] Дополнительно, устройство кодирования может генерировать информацию (например, pred_mode_plt_flag), указывающую, следует ли кодировать текущий блок, путем применения к нему режима палитры на основе информации (например, sps_palette_enabled_flag) о том, включен ли режим палитры, и сигнализировать информацию посредством синтаксиса единицы кодирования. Например, когда значение pred_mode_plt_flag равно 1, возможно применить режим палитры к текущему блоку, чтобы генерировать восстановленную выборку путем сигнализации синтаксиса palette_coding().[226] Additionally, the encoder may generate information (eg, pred_mode_plt_flag) indicating whether the current block should be encoded by applying a palette mode to it based on information (eg, sps_palette_enabled_flag) about whether the palette mode is enabled, and signal the information by coding unit syntax. For example, when the value of pred_mode_plt_flag is 1, it is possible to apply a palette mode to the current block to generate a reconstructed sample by signaling palette_coding() syntax.
[227] Информация о том, включен ли режим палитры (например, sps_palette_enabled_flag), и информация, указывающая, следует ли кодировать текущий блок путем применения к нему режима палитры (например, pred_mode_plt_flag), может кодироваться путем включения в информацию изображения.[227] Information indicating whether a palette mode is enabled (eg, sps_palette_enabled_flag) and information indicating whether the current block should be encoded by applying a palette mode to it (eg, pred_mode_plt_flag) may be encoded by including an image in the information.
[228] Информация изображения, включая различные типы информации, как описано выше, может кодироваться и выводиться в форме битового потока. Битовый поток может передаваться на устройство декодирования посредством сети или (цифрового) носителя хранения. Здесь, сеть может включать в себя сеть вещания и/или сеть связи, и цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blu-ray, HDD и SSD.[228] Image information, including various types of information as described above, may be encoded and output in the form of a bit stream. The bitstream may be transmitted to the decoding device via a network or a (digital) storage medium. Here, 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 and SSD.
[229] Фиг. 10 схематично показывает пример способа декодирования видео/изображения в соответствии с вариантом(ами) осуществления настоящего раскрытия.[229] FIG. 10 schematically shows an example of a video/image decoding method in accordance with embodiment(s) of the present disclosure.
[230] Способ, раскрытый на фиг. 10, может выполняться устройством 300 декодирования, проиллюстрированным на фиг. 3. Конкретно, этап S1000 на фиг. 10 может выполняться энтропийным декодером 310, проиллюстрированным на фиг. 3, и этапы S1010 и S1020 на фиг. 10 могут выполняться предсказателем 330, проиллюстрированным на фиг. 3. Также, способ, раскрытый на фиг. 10, может включать в себя варианты осуществления, описанные выше в настоящем раскрытии. Соответственно, на фиг. 10, детальное описание избыточных частей на фиг. 10 и вышеописанных вариантов осуществления будет опущено или упрощено.[230] The method disclosed in FIG. 10 may be performed by the
[231] Со ссылкой на фиг. 10, устройство декодирования может принимать информацию изображения (или информацию видео) из битового потока (S1000).[231] With reference to FIG. 10, the decoding apparatus may receive image information (or video information) from the bitstream (S1000).
[232] Устройство декодирования может синтаксически анализировать битовый поток, чтобы вывести информацию (например, информацию видео/изображения), необходимую для восстановления изображения (или восстановления картинки). В этом случае, информация изображения может включать в себя информацию, относящуюся к предсказанию (например, информацию режима предсказания). Дополнительно, информация изображения может включать в себя различные типы информации, используемой для вышеописанного кодирование в режиме палитры. Например, информация изображения может включать в себя информацию о квантованных значениях перехода, информацию записей палитры, информацию индексов палитры, информацию минимального параметра квантования касательно режима пропуска преобразования и тому подобное. То есть, информация изображения может включать в себя различные типы информации, требуемой в процессе декодирования, и может декодироваться на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC.[232] The decoding apparatus may parse the bitstream to output information (eg, video/image information) necessary for image reconstruction (or picture reconstruction). In this case, the image information may include prediction-related information (eg, prediction mode information). Additionally, the image information may include various types of information used for the palette mode encoding described above. For example, the image information may include information about quantized transition values, palette entry information, palette index information, minimum quantization parameter information regarding a skip transform mode, and the like. That is, the image information may include various types of information required in a decoding process, and may be decoded based on a coding method such as exponential Golomb coding, CAVLC, or CABAC.
[233] В качестве варианта осуществления, устройство декодирования может получать информацию изображения, включая информацию квантованного значения перехода в режиме палитры, из битового потока. Например, информация квантованного значения перехода может представлять собой синтаксический элемент palette_escape_val, как показано в Таблицах 5 и 6. В этом случае, информация квантованного значения перехода (например, palette_escape_val) может быть получена на основе информации (например, palette_escape_val_present_flag), указывающей, существует ли выборка, имеющая значение перехода, в текущем блоке. Например, когда выборка, имеющая значение перехода, существует в текущем блоке (то есть, когда значение palette_escape_val_present_flag равно 1), устройство декодирования может получать информацию квантованного значения перехода (например, palette_escape_val) из битового потока.[233] As an embodiment, the decoding apparatus may obtain image information, including quantized palette mode transition value information, from the bit stream. For example, the quantized transition value information may be a syntax element palette_escape_val, as shown in Tables 5 and 6. In this case, the quantized transition value information (for example, palette_escape_val) can be obtained based on information (for example, palette_escape_val_present_flag) indicating whether a sample that has a transition value in the current block. For example, when a sample having a transition value exists in the current block (ie, when the value of palette_escape_val_present_flag is 1), the decoding apparatus may obtain quantized transition value information (eg, palette_escape_val) from the bitstream.
[234] Устройство декодирования может выводить значение перехода для текущего блока на основе информации квантованного значения перехода (S1010).[234] The decoding apparatus may output a transition value for the current block based on the quantized transition value information (S1010).
[235] В качестве варианта осуществления, устройство декодирования может выводить значение перехода путем выполнения деквантования (процесса масштабирования) на квантованном значении перехода на основе параметра квантования.[235] As an embodiment, the decoding device may output a transition value by performing a dequantization (scaling process) on the quantized transition value based on the quantization parameter.
[236] Здесь, параметр квантования может выводиться на основе информации минимального параметра квантования касательно режима пропуска преобразования. Например, параметр квантования может выводиться на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования, показанного в Таблицах 7-9. Как описано выше, поскольку преобразование не применяется к значению перехода режима палитры, значение перехода может быть квантовано на основе информации минимального параметра квантования, используемого в режиме пропуска преобразования. Здесь, информация минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования может синтаксически анализироваться/ сигнализироваться из SPS.[236] Here, a quantization parameter may be derived based on the minimum quantization parameter information regarding the skip conversion mode. For example, the quantization parameter may be inferred based on the minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode shown in Tables 7-9. As described above, since the transform is not applied to the palette mode transition value, the transition value can be quantized based on the information of the minimum quantization parameter used in the transform skip mode. Here, minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode can be parsed/signaled from the SPS.
[237] В качестве конкретного примера, как показано в Таблице 9, сначала, устройство декодирования может выводить минимальное значение параметра квантования (например, QpPrimeTsMin) на основе информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования. Дополнительно, устройство декодирования может выбрать большее значение между минимальным значением параметра квантования (например, QpPrimeTsMin) и параметром квантования Qp (Qp’Y для компонента яркости и Qp’Cb или Qp’Cr для компонента цветности) и использовать его в качестве параметра квантования в режиме палитры.[237] As a specific example, as shown in Table 9, first, the decoding apparatus may output a minimum quantization parameter value (eg, QpPrimeTsMin) based on the minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode. Additionally, the decoder may select the greater value between the minimum value of the quantization parameter (eg, QpPrimeTsMin) and the quantization parameter Qp (Qp'Y for the luma component and Qp'Cb or Qp'Cr for the chrominance component) and use it as the quantization parameter in the mode palettes.
[238] Иными словами, параметр квантования в режиме палитры может иметь значение, большее или равное минимальному значению параметра квантования (например, QpPrimeTsMin), выведенному из информации минимального параметра квантования (например, min_qp_prime_ts_minus4) касательно режима пропуска преобразования.[238] In other words, the palette mode quantization parameter may have a value greater than or equal to the minimum quantization parameter value (eg, QpPrimeTsMin) derived from the minimum quantization parameter information (eg, min_qp_prime_ts_minus4) regarding the transform skip mode.
[239] Устройство декодирования может выводить значение перехода из квантованного значения перехода на основе параметра квантования в режиме палитры, выведенного, как описано выше.[239] The decoding apparatus may derive a transition value from the quantized transition value based on the palette mode quantization parameter derived as described above.
[240] В соответствии с вариантом осуществления, устройство декодирования может ограничивать квантованное значение перехода в конкретном диапазоне. Поскольку значения перехода имеют характеристики, отличные от таковых в соседних выборках, они квантуются и непосредственно сигнализируются. Однако может возникать ошибка вследствие квантования. Чтобы снизить такую ошибку и кодировать более точное значение, диапазон квантованного значения перехода может быть ограничен на основе битовой глубины.[240] According to an embodiment, the decoding device may limit the quantized transition value to a specific range. Because transition values have different characteristics from those of neighboring samples, they are quantized and signaled directly. However, an error may occur due to quantization. To reduce such error and encode a more accurate value, the range of the quantized transition value can be limited based on the bit depth.
[241] Например, диапазон информации о квантованном значении перехода может быть определен на основе битовой глубины, как показано в Таблицах 10 и 11, и может быть ограничен так, что он не больше, чем (1<<BitDepth)-1, например. Дополнительно, битовая глубина может включать в себя битовую глубину BitDepthY для компонента яркости и битовую глубину BitDepthC для компонента цветности. Здесь, диапазон информации квантованного значения перехода для компонента яркости может иметь значение между 0 и (1<<BitDepthY)-1, и диапазон информации квантованного значения перехода для компонента цветности может иметь значение между 0 и (1<<BitDepthC)-1.[241] For example, the range of the quantized transition value information may be determined based on the bit depth, as shown in Tables 10 and 11, and may be limited to be no greater than (1<<BitDepth)-1, for example. Additionally, the bit depth may include a bit depth BitDepthY for the luma component and a bit depth BitDepthC for the chrominance component. Here, the range of quantized transition value information for the luma component may have a value between 0 and (1<<BitDepthY)-1, and the range of quantized transition value information for the chrominance component may have a value between 0 and (1<<BitDepthC)-1.
[242] Дополнительно, в одном варианте осуществления, устройство декодирования может получать информацию изображения, включая число записей таблицы палитры (т.е. число индексов таблицы палитры). То есть, устройство декодирования может получать информацию изображения, включая информацию размера палитры касательно максимального индекса таблицы палитры. Здесь, информация размера палитры может быть предварительно установленным значением или может быть определена на основе размера единицы кодирования.[242] Additionally, in one embodiment, the decoding apparatus may obtain image information, including the number of palette table entries (ie, the number of palette table indices). That is, the decoding device can obtain image information including palette size information regarding the maximum index of the palette table. Here, the palette size information may be a preset value or may be determined based on the encoding unit size.
[243] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблице 12, может быть одинаковым для всей последовательности или может быть определен по-разному в соответствии с размером CU (т.е. числом пикселов в CU).[243] For example, the palette size may be represented as palette_max_size, as shown in Table 12, may be the same for the entire sequence, or may be defined differently according to the size of the CU (ie, the number of pixels in the CU).
[244] Например, размер палитры может быть представлен как palette_max_size, как показано в Таблицах 13 и 14, и может синтаксически анализироваться/сигнализироваться посредством SPS. В этом случае, размер палитры (например, palette_max_size) может указывать максимальный разрешенный индекс таблицы палитры и может быть ограничен в диапазон от 1 до 63. Дополнительно, размер палитры (например, palette_max_size) может синтаксически анализироваться/сигнализироваться на основе информации (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.[244] For example, the palette size may be represented as palette_max_size, as shown in Tables 13 and 14, and may be parsed/signaled by the SPS. In this case, the palette size (eg, palette_max_size) may indicate the maximum allowed index of the palette table and may be limited to the range from 1 to 63. Additionally, the palette size (eg, palette_max_size) may be parsed/signaled based on the information (eg, sps_palette_enabled_flag ) to indicate whether palette mode is enabled.
[245] Дополнительно, например, размер палитры может быть представлен как log2_palette_max_size, как показано в Таблицах 15 и 16, и может синтаксически анализироваться/сигнализироваться посредством SPS. В этом случае, размер палитры (например, log2_palette_max_size) может указывать значение log2 размера палитры (т.е. palette_max_size+1). Соответственно, palette_max_size, указывающий максимальный разрешенный индекс таблицы палитры, может выводиться путем вычисления (1<<log2_palette_max_size)-1 и может быть ограничен в диапазон от 1 до 63. Дополнительно, размер палитры (например, log2_palette_max_size) может синтаксически анализироваться/ сигнализироваться на основе информация (например, sps_palette_enabled_flag) для указания, включен ли режим палитры.[245] Additionally, for example, the palette size can be represented as log2_palette_max_size, as shown in Tables 15 and 16, and can be parsed/signaled by SPS. In this case, the palette size (eg, log2_palette_max_size) may indicate the log2 value of the palette size (ie, palette_max_size+1). Accordingly, palette_max_size, indicating the maximum allowed index of the palette table, can be derived by computing (1<<log2_palette_max_size)-1 and can be limited to the range from 1 to 63. Additionally, the palette size (e.g., log2_palette_max_size) can be parsed/signaled based on information (for example, sps_palette_enabled_flag) to indicate whether palette mode is enabled.
[246] Дополнительно, например, размер палитры может выводиться на основе log2_palette_CU_size_TH1, log2_palette_max_size_TH1 и log2_palette_max_size_default, как показано в Таблицах 17 и 18, и может синтаксически анализироваться/сигнализироваться посредством SPS. Поскольку конкретный вариант осуществления выведения и синтаксического анализа/сигнализации размера палитры был описан выше в Таблицах 17 и 18, описание этого будет здесь опущено.[246] Additionally, for example, the palette size may be inferred based on log2_palette_CU_size_TH1, log2_palette_max_size_TH1, and log2_palette_max_size_default, as shown in Tables 17 and 18, and may be parsed/signaled by SPS. Since a specific embodiment of palette size inference and parsing/signaling has been described above in Tables 17 and 18, a description thereof will be omitted here.
[247] Устройство декодирования может генерировать восстановленные выборки на основе значения перехода (S1020).[247] The decoding apparatus may generate reconstructed samples based on the transition value (S1020).
[248] В качестве варианта осуществления, устройство декодирования может генерировать восстановленные выборки на основе значения перехода по отношению к текущему блоку, включающему в себя по меньшей мере одну кодированную переходом выборку. Например, если имеется выборка, имеющая значение перехода в текущем блоке (то есть, когда значение palette_escape_val_present_flag равно 1), устройство декодирования может выводить значение перехода, как описано выше, для генерации восстановленной выборки кодированной переходом выборки.[248] As an embodiment, the decoding apparatus may generate reconstructed samples based on a branch value relative to a current block including at least one branch-encoded sample. For example, if there is a sample having a transition value in the current block (ie, when the value of palette_escape_val_present_flag is 1), the decoder may output the transition value as described above to generate a reconstructed sample of the transition-encoded sample.
[249] Дополнительно, при выполнении режима палитры на основе предсказания на текущем блоке (то есть, когда режим палитры применяется к текущему блоку), для выборок, отличных от кодированных переходом выборок в текущем блоке, устройство декодирования может получать информацию изображения, включая информацию записей палитры и информацию индексов палитры, и генерировать восстановленные выборки на основе полученной информации изображения.[249] Additionally, when executing the prediction-based palette mode on the current block (that is, when the palette mode is applied to the current block), for samples other than the transition-coded samples in the current block, the decoding device can obtain image information, including recording information palette and palette index information, and generate reconstructed samples based on the received image information.
[250] В качестве примера, устройство декодирования может конфигурировать таблицу палитры для текущего блока на основе информации записей палитры. Например, информация записей палитры может включать в себя palette_predictor_run, num_signalled_palette_entries, new_palette_entries и тому подобное, как показано в Таблицах 5 и 6. То есть, устройство декодирования может выводить записи предсказателя палитры и информацию повторного использования записей палитры, используемую в блоке, кодируемом в предыдущем режиме палитры, и выводить записи палитры для текущего блока, чтобы сконфигурировать таблицу палитры. Дополнительно, устройство декодирования может конфигурировать таблицу палитры на основе предыдущих записей предсказателя палитры и текущих записей палитры.[250] As an example, the decoding device may configure a palette table for the current block based on the palette entry information. For example, the palette entry information may include palette_predictor_run, num_signalled_palette_entries, new_palette_entries and the like, as shown in Tables 5 and 6. That is, the decoding device may output the palette predictor entries and palette entry reuse information used in the block encoded in the previous palette mode, and output palette entries for the current block to configure the palette table. Additionally, the decoder may configure the palette table based on previous palette predictor entries and current palette entries.
[251] Дополнительно, устройство декодирования может конфигурировать карту индексов палитры для текущего блока на основе информации индексов палитры. Например, информация индексов палитры может включать в себя palette_transpose_flag, palette_idx_idc, COPY_ABOVE_indices_for_final_run_flag, num_palette_indices_minus1 и тому подобное, используемое для конфигурирования карты индексов палитры, как показано в Таблицах 5 и 6. То есть, устройство декодирования может конфигурировать карту индексов палитры (например, PaletteIndexMap) на основе информации (например, palette_idx_idc), указывающей значение индекса палитры каждой выборки, при проходе по выборкам текущего блока на основе информации (например, palette_transpose_flag), указывающей направление поперечного сканирования (вертикальное направление или горизонтальное направление).[251] Additionally, the decoding apparatus may configure a palette index map for the current block based on the palette index information. For example, the palette index information may include palette_transpose_flag, palette_idx_idc, COPY_ABOVE_indices_for_final_run_flag, num_palette_indices_minus1 and the like used to configure a palette index map, as shown in Tables 5 and 6. That is, the decoding device may configure a palette index map (e.g., PaletteIndexMap) based on information (eg, palette_idx_idc) indicating the palette index value of each sample when traversing the selections of the current block based on information (eg, palette_transpose_flag) indicating the transverse scanning direction (vertical direction or horizontal direction).
[252] Дополнительно, устройство декодирования может выводить значения выборок для записей палитры в таблице палитры на основе карты индексов палитры. Устройство декодирования может генерировать восстановленные выборки на основе карты индексов палитры и значений выборок для записей палитры.[252] Additionally, the decoder may output sample values for palette entries in the palette table based on the palette index map. The decoder may generate reconstructed samples based on the palette index map and sample values for the palette entries.
[253] Здесь, таблица палитры может включать в себя репрезентативные цветовые значения (записи палитры) для выборок в текущем блоке и может состоять из значений индексов палитры, соответствующих соответственным цветовым значениям. Соответственно, устройство декодирования может выводить значения выборок (т.е. цветовые значения) записей в таблице палитры, соответствующих значениям индексов карты индексов палитры, и генерировать их как восстановленные значения выборок текущего блока.[253] Here, the palette table may include representative color values (palette entries) for samples in the current block and may consist of palette index values corresponding to the corresponding color values. Accordingly, the decoding apparatus may output sample values (ie, color values) of entries in the palette table corresponding to the index values of the palette index map, and generate them as reconstructed sample values of the current block.
[254] Дополнительно, в соответствии с вариантом осуществления, устройство декодирования может определять, следует ли выполнять кодирование на текущем блоке с использованием вышеописанного режим палитры, на основе информации о том, включен ли режим палитры.[254] Additionally, according to an embodiment, the decoding apparatus may determine whether to perform encoding on the current block using the palette mode described above based on information about whether the palette mode is enabled.
[255] Например, как показано в Таблицах 1-4, устройство декодирования может получать информацию изображения, включая информацию (например, s_palette_enabled_flag) о том, включен ли режим палитры, и, на основе этой информации, получать информацию записей палитры, информацию индексов палитры, информацию квантованного значения перехода и тому подобное из битового потока.[255] For example, as shown in Tables 1-4, the decoding apparatus may obtain image information including information (eg, s_palette_enabled_flag) about whether the palette mode is enabled, and, based on this information, obtain palette entry information, palette index information , quantized transition value information and the like from the bit stream.
[256] Дополнительно, например, устройство декодирования может получать информацию (например, pred_mode_plt_flag), указывающую, следует ли кодировать текущий блок путем применения к нему режима палитры, из битового потока на основе информации (например, sps_palette_enabled_flag) о том, включен ли режим палитры. Например, когда значение pred_mode_plt_flag равно 1, устройство декодирования может дополнительно получать синтаксис palette_coding() и применять режим палитры к текущему блоку на основе информации, включенной в синтаксис palette_coding(), для получения восстановленных выборок.[256] Additionally, for example, the decoding device may obtain information (eg, pred_mode_plt_flag) indicating whether the current block should be encoded by applying palette mode to it from the bitstream based on information (eg, sps_palette_enabled_flag) about whether palette mode is enabled. . For example, when the value of pred_mode_plt_flag is 1, the decoding device may further obtain the palette_coding() syntax and apply a palette mode to the current block based on the information included in the palette_coding() syntax to obtain reconstructed samples.
[257] В примерной системе, описанной выше, способы описаны в соответствии с блок-схемой с использованием последовательности этапов и блоков. Однако настоящий документ не ограничен конкретным порядком этапов, и некоторые этапы могут выполняться с другими этапами и в порядке, отличном от описанного выше, или одновременно. Также, специалистам в данной области должно быть понятно, что этапы, показанные в блок-схеме последовательности, не являются исключительными, и другие этапы могут быть дополнительно включены, или один или более этапов из блок-схемы последовательности могут быть удалены без оказания влияния на технический объем настоящего документа.[257] In the exemplary system described above, the methods are described in accordance with a flow chart using a sequence of steps and blocks. However, this document is not limited to a particular order of steps, and some steps may be performed with other steps and in a different order than described above, or simultaneously. Also, those skilled in the art will understand that the steps shown in the sequence flowchart are not exclusive, and other steps may be additionally included, or one or more steps from the sequence flowchart may be deleted without affecting the technical scope of this document.
[258] Способ в соответствии с настоящим документом может быть в форме программного обеспечения, и устройство кодирования и/или устройство декодирования в соответствии с настоящим документом могут быть включены в устройство для выполнения обработки изображения, например, TV, компьютер, смартфон, телевизионную приставку, устройство отображения или тому подобное.[258] The method according to the present document may be in the form of software, and the encoding device and/or the decoding device according to the present document may be included in a device for performing image processing, for example, a TV, computer, smartphone, set-top box, display device or the like.
[259] Когда варианты осуществления настоящего документа реализуются программным обеспечением, вышеупомянутый способ может быть реализован модулем (процессом или функцией), который выполняет вышеупомянутую функцию. Модуль может храниться в памяти и исполняться процессором. Память может быть установлена внутри или вне процессора и может быть соединена с процессором посредством различных хорошо известных средств. Процессор может включать в себя специализированную интегральную схему (ASIC), другие чипсеты, логическую схему и/или устройство обработки данных. Память может включать в себя постоянную память (ROM), память с произвольным доступом (RAM), флэш-память, карту памяти, носитель хранения и/или другое устройство хранения. Иными словами, варианты осуществления в соответствии с настоящим документом могут реализовываться и исполняться на процессоре, микропроцессоре, контроллере или чипе. Например, функциональные модули, проиллюстрированные на соответственных чертежах, могут реализовываться и исполняться на компьютере, процессоре, микропроцессоре, контроллере или чипе. В этом случае, информация о реализации (например, информация об инструкциях) или алгоритмы могут храниться в цифровом носителе хранения.[259] When embodiments of the present document are implemented by software, the above method may be implemented by a module (process or function) that performs the above function. The module can be stored in memory and executed by the processor. The memory may be located inside or outside the processor and may be coupled to the processor through various well known means. The processor may include an application specific integrated circuit (ASIC), other chipsets, logic circuitry, and/or data processing apparatus. The memory may include read only memory (ROM), random access memory (RAM), flash memory, memory card, storage medium, and/or other storage device. In other words, embodiments according to this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional modules illustrated in the respective drawings may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, implementation information (eg, instruction information) or algorithms may be stored in a digital storage medium.
[260] Кроме того, устройство декодирования и устройство кодирования, в которых применяется настоящее раскрытие, могут быть включены в приемопередатчик мультимедийного вещания, мобильный терминал связи, устройство домашнего кинотеатра, устройство цифрового кинотеатра, камеру наблюдения, устройство для разговора по видео, устройство связи в реальном времени, такой как видеосвязь, мобильное устройство стриминга, носитель хранения, камеру-регистратор, провайдер услуг видео по требованию (VoD), устройство доставки видео непосредственно от провайдера контента (OTT), провайдер услуг Интернет-стриминга, устройство 3D видео, устройство виртуальной реальности (VR), устройство дополненной реальности (AR), устройство видеотелефона для передачи изображений, терминал транспортного средства (например, терминал транспортного средства (включая автономное транспортное средство), бортовой терминал или судовой терминал) и медицинское видеоустройство; и могут использоваться для обработки сигнала или данных изображения. Например, видеоустройство OTT может включать в себя игровую консоль, Blu-ray-плеер, телевизор с Интернет-доступом, систему домашнего кинотеатра, смартфон, планшетный PC, цифровой видео-регистратор (DVR).[260] In addition, the decoding device and encoding device to which the present disclosure is applied may be included in a multimedia broadcast transceiver, mobile communication terminal, home theater device, digital cinema device, surveillance camera, video talking device, communication device in such as video communication, mobile streaming device, storage medium, camera recorder, video on demand (VoD) service provider, over-the-top (OTT) video delivery device, Internet streaming service provider, 3D video device, virtual reality device reality (VR), augmented reality (AR) device, video phone device for transmitting images, vehicle terminal (for example, a vehicle terminal (including an autonomous vehicle), an on-board terminal or a ship terminal) and a medical video device; and can be used to process signal or image data. For example, an OTT video device may include a game console, Blu-ray player, Internet-enabled television, home theater system, smartphone, tablet PC, digital video recorder (DVR).
[261] Кроме того, способ обработки, в котором применяется вариант(ы) осуществления настоящего раскрытия, может выполняться в форме программы, исполняемой компьютером, и может храниться в считываемом компьютером носителе записи. Мультимедийные данные, имеющие структуру данных в соответствии с вариантом(ами) осуществления настоящего раскрытия, могут также храниться в считываемых компьютером носителях записи. Считываемый компьютером носитель записи включает в себя все типы устройств хранения и распределенных устройств хранения, в которых хранятся считываемые компьютером данные. Считываемые компьютером носители записи могут включать в себя, например, Blu-ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, флоппи-диск и оптическое устройство хранения данных. Дополнительно, считываемый компьютером носитель записи включает в себя носители, воплощенные в форме несущей волны (например, передача через Интернет). Кроме того, битовый поток, сгенерированный способом кодирования, может храниться в считываемом компьютером носителе записи или передаваться по сетям проводной/беспроводной связи.[261] Moreover, the processing method employing the embodiment(s) of the present disclosure may be in the form of a computer-executable program and may be stored in a computer-readable recording medium. Multimedia data having a data structure in accordance with embodiment(s) of the present disclosure may also be stored in computer-readable recording media. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. Computer-readable recording media may include, for example, Blu-ray disc (BD), universal serial bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical device data storage. Additionally, the computer-readable recording medium includes media embodied in the form of a carrier wave (eg, transmission over the Internet). In addition, the bitstream generated by the encoding method can be stored in a computer-readable recording medium or transmitted over wired/wireless communication networks.
[262] Дополнительно, вариант(ы) осуществления настоящего раскрытия может быть реализован как компьютерный программный продукт на основе программного кода, и программный код может исполняться на компьютере в соответствии с вариантом(ами) осуществления настоящего раскрытия. Программный код может храниться на считываемом компьютером носителе.[262] Additionally, the embodiment(s) of the present disclosure may be implemented as a computer program product based on program code, and the program code may be executed on a computer in accordance with the embodiment(s) of the present disclosure. The program code may be stored on a computer-readable medium.
[263] Фиг. 11 показывает пример системы стриминга контента, в которой могут применяться варианты осуществления настоящего раскрытия.[263] FIG. 11 shows an example of a content streaming system to which embodiments of the present disclosure may be applied.
[264] Со ссылкой на фиг. 11, система стриминга контента, в которой применяются варианты осуществления настоящего раскрытия, может, в основном, включать в себя сервер кодирования, стриминговый сервер, веб-сервер, медиа-хранилище, пользовательское оборудование и устройство мультимедийного ввода.[264] With reference to FIG. 11, a content streaming system to which embodiments of the present disclosure are applied may generally include an encoding server, a streaming server, a web server, a media storage device, a user equipment, and a multimedia input device.
[265] Сервер кодирования функционирует для сжатия цифровых данных контента, введенного из устройств мультимедийного ввода, таких как смартфон, камера, камера-регистратор и т.д., чтобы сгенерировать битовый поток и передать его на стриминговый сервер. В качестве другого примера, когда устройство мультимедийного ввода, такое как смартфон, камера, камера-регистратор и тому подобное, непосредственно генерирует битовый поток, сервер кодирования может быть опущен.[265] The encoding server functions to compress digital data of content input from multimedia input devices such as a smartphone, camera, dash cam, etc. to generate a bit stream and transmit it to the streaming server. As another example, when a multimedia input device such as a smartphone, camera, dash cam and the like directly generates a bitstream, the encoding server may be omitted.
[266] Битовый поток может генерироваться способом кодирования или способом генерации битового потока, в котором применяются варианты осуществления настоящего раскрытия, и стриминговый сервер может временно хранить битовый поток в процессе передачи или приема битового потока.[266] The bitstream may be generated by an encoding method or a bitstream generation method that employs embodiments of the present disclosure, and the streaming server may temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[267] Стриминговый сервер передает мультимедийные данные на пользовательское оборудование на основе запроса пользователя через веб-сервер, который функционирует как инструмент, который информирует пользователя об услуге. Когда пользователь запрашивает желаемую услугу, веб-сервер переносит запрос на стриминговый сервер, и стриминговый сервер передает мультимедийные данные пользователю. В этом отношении, система стриминга контента может включать в себя отдельный сервер управления, и в этом случае, сервер управления функционирует, чтобы управлять командами/откликами между соответствующим оборудованием в системе стриминга контента.[267] The streaming server transmits media data to the user equipment based on the user's request through a web server, which functions as a tool that informs the user about the service. When a user requests a desired service, the web server forwards the request to the streaming server, and the streaming server transmits the media data to the user. In this regard, the content streaming system may include a separate control server, in which case, the control server functions to manage commands/responses between associated equipment in the content streaming system.
[268] Стриминговый сервер может принимать контент из медиа-хранилища и/или сервера кодирования. Например, когда контент принимается от сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы обеспечить плавную стриминговую услугу, стриминговый сервер может хранить битовый поток в течение предопределенного периода времени.[268] The streaming server may receive content from a media storage and/or encoding server. For example, when content is received from an encoding server, the content may be received in real time. In this case, to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined period of time.
[269] Например, пользовательское оборудование может включать в себя мобильный телефон, смартфон, ноутбук, терминал цифрового вещания, персональный цифровой помощник (PDA), портативный мультимедийный плеер (PMP), навигатор, тонкий PC, планшетный PC, ультрабук, носимое устройство (например, терминал типа часов (умные часы), терминал типа очков (умные очки), наголовный дисплей (HMD)), цифровой телевизор, настольный компьютер, цифровой указатель и тому подобное.[269] For example, user equipment may include a mobile phone, smartphone, laptop, digital broadcast terminal, personal digital assistant (PDA), portable media player (PMP), navigation device, slim PC, tablet PC, ultrabook, wearable device (eg , watch type terminal (smart watch), glasses type terminal (smart glasses), head mounted display (HMD)), digital TV, desktop computer, digital pointer and the like.
[270] Каждый из серверов в системе стриминга контента может работать как распределенный сервер, и в этом случае, данные, принятые каждым сервером, могут обрабатываться распределенным образом.[270] Each of the servers in the content streaming system may operate as a distributed server, in which case, data received by each server may be processed in a distributed manner.
[271] Пункты формулы изобретения, описанные в настоящем раскрытии, могут комбинироваться различным образом. Например, технические признаки в пунктах формулы на способ в настоящем описании могут комбинироваться для реализации или выполнения в устройстве, и технические признаки в пунктах формулы на устройство могут комбинироваться для реализации или выполнения в способе. Кроме того, технические признаки в пунктах формулы на способ и пунктах формулы на устройство могут комбинироваться для реализации или выполнения в устройстве. Кроме того, технические признаки в пунктах формулы на способ и в пунктах формулы на устройство могут комбинироваться для реализации или выполнения в способе.[271] The claims described in this disclosure may be combined in various ways. For example, the technical features in the method claims herein may be combined to be implemented or performed in an apparatus, and the technical features in the device claims may be combined to be implemented or performed in a method. In addition, technical features in the method claims and device claims may be combined to be implemented or performed in the device. In addition, technical features in the method claims and in the device claims can be combined to be implemented or performed in the method.
Claims (24)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/891,951 | 2019-08-26 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022107805A Division RU2793826C1 (en) | 2019-08-26 | 2020-08-26 | Image or video encoding based on palette mode |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2023107370A RU2023107370A (en) | 2023-04-05 |
RU2814221C2 true RU2814221C2 (en) | 2024-02-28 |
Family
ID=
Non-Patent Citations (1)
Title |
---|
BENJAMIN BROSS et al., Versatile Video Coding (Draft 6), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-O2001-vE, 15th Meeting: Gothenburg, 3-12 July 2019. US 2017085891 A1 - 2017.03.23. YUNG-HSUAN CHAO et al., CE15-2: Palette mode of HEVC SCC, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-L0336-v3, 12th Meeting, Macao, 3-12 Oct. 2018. WEIJIA ZHU et al., CE8-2.3: Compound Palette Mode, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-O0071-v1, 15th Meeting, Gothenburg, 3-12 July 2019. GB 2534612 A - 2016.08.03. WO 2016004086 A1 - 2016.01.07. RU 2017142953 А - 2019.07.12. RU 2641252 C2 - 2018.01.16. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7400082B2 (en) | Image or video coding based on palette mode | |
KR102660881B1 (en) | Image or video coding based on palette escape coding | |
US20240080437A1 (en) | Image or video coding based on palette coding | |
US20220385903A1 (en) | Image or video coding based on signaling of transform skip - and palette coding related information | |
US20220353506A1 (en) | Image or video coding based on transform skip- and palette coding-related advanced syntax element | |
US20220295105A1 (en) | Image or video coding based on escape binarization in palette mode | |
RU2814221C2 (en) | Image or video encoding based on palette mode | |
RU2793826C1 (en) | Image or video encoding based on palette mode | |
US12028536B2 (en) | Image or video coding based on chroma quantization parameter offset information | |
CN114762335B (en) | Image or video coding based on transform skip and palette coding related data | |
US11973947B2 (en) | Image or video coding based on signaling of quantization parameter offset-related information | |
US12010344B2 (en) | Image or video coding based on quantization-related information | |
CN114747215B (en) | Image or video coding based on quantization parameter information for palette coding or transform unit | |
US20220368907A1 (en) | Image or video coding based on signaling of quantization parameter-related information |