RU2827439C1 - Cross-component adaptive loop filtering for video encoding - Google Patents
Cross-component adaptive loop filtering for video encoding Download PDFInfo
- Publication number
- RU2827439C1 RU2827439C1 RU2022120108A RU2022120108A RU2827439C1 RU 2827439 C1 RU2827439 C1 RU 2827439C1 RU 2022120108 A RU2022120108 A RU 2022120108A RU 2022120108 A RU2022120108 A RU 2022120108A RU 2827439 C1 RU2827439 C1 RU 2827439C1
- Authority
- RU
- Russia
- Prior art keywords
- alf
- syntax element
- enabled
- flag
- slice
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 140
- 238000001914 filtration Methods 0.000 title abstract description 77
- 238000000034 method Methods 0.000 claims description 172
- 230000008569 process Effects 0.000 claims description 62
- 108010063123 alfare Proteins 0.000 claims 3
- 238000012545 processing Methods 0.000 abstract description 74
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 156
- 238000013139 quantization Methods 0.000 description 78
- 241000023320 Luma <angiosperm> Species 0.000 description 41
- 230000006854 communication Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 33
- 238000003491 array Methods 0.000 description 27
- 239000013598 vector Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 24
- 238000005192 partition Methods 0.000 description 23
- 239000000872 buffer Substances 0.000 description 22
- 230000006870 function Effects 0.000 description 21
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 19
- 230000011664 signaling Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 16
- 238000000638 solvent extraction Methods 0.000 description 16
- 239000011449 brick Substances 0.000 description 11
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 208000031212 Autoimmune polyendocrinopathy Diseases 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000000926 separation method Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000007670 refining Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101150114515 CTBS gene Proteins 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 235000019395 ammonium persulphate Nutrition 0.000 description 1
- 238000000261 appearance potential spectroscopy Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Abstract
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
Варианты осуществления настоящей заявки (раскрытия) обычно относятся к области обработки изображений и, более конкретно, к межкомпонентному адаптивному контурному фильтру (CC-ALF) в качестве внутриконтурного фильтра или в качестве постконтурного фильтра и синтаксису высокого уровня для межкомпонентного ALF (CCALF).Embodiments of the present application (disclosure) generally relate to the field of image processing and, more particularly, to a cross-component adaptive loop filter (CC-ALF) as an in-loop filter or as a post-loop filter and a high-level syntax for cross-component ALF (CCALF).
УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY
Кодирование изображения (кодирование и декодирование) используется в широком спектре приложений для работы с цифровыми изображениями, например, в широковещательном цифровом телевидении, при передаче видео через Интернет и мобильные сети, в приложениях для разговоров в реальном времени, таких как видеочат, видеоконференции, DVD и Blu-ray диски, системы сбора и редактирования видеоконтента и видеокамеры приложений безопасности.Image coding (encoding and decoding) is used in a wide range of digital imaging applications, such as digital broadcast television, video transmission over the Internet and mobile networks, real-time conversation applications such as video chat, video conferencing, DVD and Blu-ray discs, video content acquisition and editing systems, and video cameras in security applications.
С момента разработки блочного гибридного подхода к кодированию видео в стандарте H.261 в 1990 году были разработаны новые методики и инструменты кодирования видео, которые легли в основу новых стандартов кодирования видео. Одной из целей большинства стандартов кодирования видео было достижение снижения скорости передачи по сравнению с его предшественником без ущерба для качества изображения. Другие стандарты кодирования видео включают видео MPEG-1, видео MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, улучшенное кодирование видео (AVC), ITU-T H.265, высокоэффективное кодирование видео (HEVC), ITU-T H.266/универсальное кодирование видео (VVC) и расширения, например масштабируемое и/или трехмерное (3D) расширения этих стандартов.Since the development of the block-based hybrid approach to video coding in the H.261 standard in 1990, new video coding techniques and tools have been developed that form the basis of new video coding standards. One of the goals of most video coding standards has been to achieve a reduction in bit rate compared to its predecessor without sacrificing image quality. Other video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10, Advanced Video Coding (AVC), ITU-T H.265, High Efficiency Video Coding (HEVC), ITU-T H.266/Versatile Video Coding (VVC), and extensions such as scalable and/or three-dimensional (3D) extensions to these standards.
Схемы кодирования изображений на основе блоков имеют общее то, что вдоль краев блоков могут появляться краевые артефакты. Эти артефакты возникают из-за независимого кодирования блоков кодирования. Эти краевые артефакты часто легко видны пользователю. Целью блочного кодирования изображений является уменьшение краевых артефактов ниже порогового значения видимости. Это делается путем выполнения контурной фильтрации, такой как фильтр устранения блочности, SAO и адаптивный контурный фильтр (ALF). Порядок процесса фильтрации следующий: фильтр устранения блочности, затем SAO и затем ALF. Кроме того, дополнительно используется межкомпонентный адаптивный контурный фильтр (CC-ALF).Block-based image coding schemes have in common that edge artifacts may appear along the edges of the blocks. These artifacts arise due to the independent coding of the coding blocks. These edge artifacts are often easily visible to the user. The goal of block-based image coding is to reduce edge artifacts below a visibility threshold. This is done by performing edge filtering such as deblocking filter, SAO, and adaptive loop filter (ALF). The order of the filtering process is deblocking filter, then SAO, and then ALF. In addition, a cross-component adaptive loop filter (CC-ALF) is additionally used.
Специально для межкомпонентного адаптивного контурного фильтра (CC-ALF) значения выборок яркости используются для уточнения каждого компонента цветности. Процесс должен выполняться как в компонентах Cb, так и в компонентах Cr, межкомпонентная адаптивная контурная фильтрация может быть сложной в вычислительном отношении и, следовательно, может добавить дополнительную задержку конвейерной обработки, особенно для аппаратных реализаций.Specifically for the cross-component adaptive loop filter (CC-ALF), the luma sample values are used to refine each chroma component. The process must be performed on both the Cb and Cr components, cross-component adaptive loop filtering can be computationally expensive and therefore can add additional pipeline latency, especially for hardware implementations.
СУЩНОСТЬ ИЗОБРЕТЕНИЯESSENCE OF THE INVENTION
Ввиду вышеупомянутых проблем, настоящее раскрытие направлено на улучшение межкомпонентной адаптивной контурный фильтрации и синтаксических элементов для CCALF. Настоящее раскрытие может, среди прочего, относиться к задаче предоставления устройства, кодера, декодера и соответствующих способов, которые могут выполнять межкомпонентную адаптивную контурную фильтрацию с уменьшенными накладными расходами на сигнализацию, в частности, накладными расходами заголовка слайса (в терминах количества битов) может быть уменьшено, таким образом, фильтрация может быть более эффективной.In view of the above-mentioned problems, the present disclosure is directed to improving inter-component adaptive loop filtering and syntax elements for CCALF. The present disclosure may, among other things, relate to the problem of providing a device, encoder, decoder and related methods that can perform inter-component adaptive loop filtering with reduced signaling overhead, in particular, the slice header overhead (in terms of the number of bits) can be reduced, thus filtering can be more efficient.
Примеры настоящего раскрытия обеспечивают устройства и способы для кодирования и декодирования изображения, которые могут улучшить производительность кодирования, тем самым повышая эффективность кодирования видеосигнала. Раскрытие подробно описано в примерах и пунктах формулы изобретения, содержащихся в этом файле.Examples of the present disclosure provide devices and methods for encoding and decoding an image that can improve encoding performance, thereby increasing the efficiency of video signal encoding. The disclosure is described in detail in the examples and claims contained in this file.
Варианты осуществления настоящей заявки обеспечивают устройства и способы кодирования и декодирования в соответствии с независимыми пунктами формулы изобретения, таким образом, сложность межкомпонентного ALF может быть уменьшена, а производительность межкомпонентного адаптивного контурного фильтра (CC-ALF) как встроенного контурный фильтр или постконтурный фильтр, соответственно, можно улучшить.Embodiments of the present application provide encoding and decoding devices and methods according to the independent claims, so that the complexity of the inter-component ALF can be reduced and the performance of the inter-component adaptive loop filter (CC-ALF) as an embedded loop filter or a post-loop filter can be improved accordingly.
Вышеупомянутые и другие цели могут быть достигнуты с помощью предмета независимых пунктов формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.The above and other objectives can be achieved by means of the subject matter of the independent claims. Additional forms of implementation are apparent from the dependent claims, the description and the figures.
Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения, а другие варианты осуществления - в зависимых пунктах формулы изобретения.Specific embodiments are set forth in the attached independent claims, and other embodiments are set forth in the dependent claims.
Согласно первому аспекту раскрытие относится к способу кодирования, реализуемому устройством кодирования, включающему:According to a first aspect, the disclosure relates to an encoding method implemented by an encoding device, comprising:
выполнение процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения межкомпонентного адаптивного контурного фильтра (CC-ALF);performing a filtering process (such as a cross-component filtering process) by applying a cross-component adaptive loop filter (CC-ALF);
формирование битового потока, включающего в себя множество синтаксических элементов, относящихся к CC-ALF (таких как M синтаксических элементов, относящихся к CC-ALF, и M>=1, а M является целым числом), при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, указывает информацию, относящуюся к CC-ALF,generating a bit stream including a plurality of syntactic elements related to the CC-ALF (such as M syntactic elements related to the CC-ALF, and M>=1, and M is an integer), wherein said plurality of syntactic elements related to the CC-ALF indicate information related to the CC-ALF,
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на любом одном или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла; илиwherein said plurality of syntax elements related to the CC-ALF are signaled at any one or more of a video parameter set (VPS) layer, a sequence parameter set (SPS) layer, a picture parameter set (PPS) layer, a picture header, a slice header, or a tile header; or
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на уровне набора параметров последовательности (SPS) и/или в заголовке изображения.wherein said plurality of syntactic elements related to the CC-ALF are signaled at the sequence parameter set (SPS) level and/or in the image header.
Этот битовый поток может быть уменьшен в размере, обеспечивая при этом соответствующую информацию в структуре битового потока для тех уровней, где настоящая заявка фактически применяется или к которым оно относится, и это позволяет выполнять межкомпонентную адаптивную контурную фильтрацию с уменьшенными накладными расходами на сигнализацию, таким образом, фильтрация может быть более эффективной, и достигается повышение эффективности кодирования.This bit stream can be reduced in size while providing appropriate information in the bit stream structure for those layers where the present application is actually applied or to which it relates, and this allows inter-component adaptive loop filtering to be performed with reduced signaling overhead, thus filtering can be more efficient and an increase in coding efficiency is achieved.
Согласно второму аспекту раскрытие относится к способу декодирования, реализуемому устройством декодирования, содержащему:According to a second aspect, the disclosure relates to a decoding method implemented by a decoding device comprising:
синтаксический анализ одного или более синтаксических элементов из битового потока видеосигнала, при этом синтаксические элементы указывают информацию, относящуюся к межкомпонентному адаптивному контурному фильтру (CC-ALF), при этом синтаксические элементы получаются из любого одного или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла битового потока; или при этом синтаксические элементы получаются из уровня набора параметров последовательности (SPS) и/или заголовка изображения; иparsing one or more syntax elements from a video bitstream, wherein the syntax elements indicate information related to a cross-component adaptive loop filter (CC-ALF), wherein the syntax elements are obtained from any one or more of a video parameter set (VPS) layer, a sequence parameter set (SPS) layer, a picture parameter set (PPS) layer, a picture header, a slice header, or a tile header of the bitstream; or wherein the syntax elements are obtained from a sequence parameter set (SPS) layer and/or a picture header; and
выполнение процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения CC-ALF на основе синтаксических элементов или на основе значений синтаксических элементов.performing a filtering process (such as a cross-component filtering process) by applying CC-ALF based on syntax elements or based on the values of syntax elements.
Этот способ может позволить получить соответствующую информацию из битового потока во время декодирования, когда битовый поток уменьшается в размере, обеспечивая улучшенное сжатие данных, и он позволяет выполнять межкомпонентную адаптивную контурную фильтрацию с уменьшенными накладными расходами на сигнализацию, таким образом, фильтрация может быть более эффективной, и достигается повышение эффективности кодирования.This method can make it possible to obtain relevant information from a bit stream during decoding when the bit stream is reduced in size, providing improved data compression, and it makes it possible to perform inter-component adaptive loop filtering with reduced signaling overhead, thus the filtering can be more efficient and an increase in coding efficiency is achieved.
Согласно третьему аспекту изобретение относится к устройству для декодирования видеоданных. Устройство содержит: схему обработки для осуществления способа согласно первому аспекту раскрытия.According to a third aspect, the invention relates to a device for decoding video data. The device comprises: a processing circuit for implementing the method according to the first aspect of the disclosure.
Согласно четвертому аспекту изобретение относится к устройству для кодирования видеоданных. Устройство содержит: схему обработки для осуществления способа согласно второму аспекту изобретения.According to a fourth aspect, the invention relates to a device for encoding video data. The device comprises: a processing circuit for implementing the method according to the second aspect of the invention.
Способ согласно первому аспекту настоящего раскрытия может быть осуществлен устройством согласно третьему аспекту раскрытия. Дополнительные признаки и формы реализации способа согласно третьему аспекту раскрытия соответствуют признакам и формам реализации устройства согласно первому аспекту раскрытия.The method according to the first aspect of the present disclosure may be implemented by the device according to the third aspect of the disclosure. Additional features and forms of implementation of the method according to the third aspect of the disclosure correspond to the features and forms of implementation of the device according to the first aspect of the disclosure.
Способ согласно второму аспекту изобретения может быть осуществлен с помощью устройства согласно четвертому аспекту изобретения. Дополнительные признаки и формы реализации способа согласно четвертому аспекту раскрытия соответствуют признакам и формам реализации устройства согласно второму аспекту раскрытия.The method according to the second aspect of the invention can be implemented using the device according to the fourth aspect of the invention. Additional features and forms of implementation of the method according to the fourth aspect of the disclosure correspond to the features and forms of implementation of the device according to the second aspect of the disclosure.
Согласно пятому аспекту раскрытие относится к устройству для декодирования видеопотока, включающему в себя процессор и память. Память хранит инструкции, которые предписывают процессору выполнять способ согласно первому аспекту.According to a fifth aspect, the disclosure relates to a device for decoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to perform the method according to the first aspect.
Согласно шестому аспекту раскрытие относится к устройству для кодирования видеопотока, включающему в себя процессор и память. Память хранит инструкции, которые предписывают процессору выполнять способ согласно второму аспекту.According to a sixth aspect, the disclosure relates to a device for encoding a video stream, including a processor and a memory. The memory stores instructions that cause the processor to perform the method according to the second aspect.
В соответствии с седьмым аспектом предлагается считываемый компьютером носитель данных, на котором сохранены инструкции, выполнение которых приводит к тому, что упомянутые один или более процессоров выполнены с возможностью кодирования видеоданных. Инструкции предписывают одному или более процессорам выполнять способ согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта.According to the seventh aspect, a computer-readable data carrier is proposed, on which instructions are stored, the execution of which results in the fact that said one or more processors are configured to encode video data. The instructions cause one or more processors to perform the method according to the first or second aspect or any possible embodiment of the first or second aspect.
В соответствии с восьмым аспектом изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта при выполнении на компьютере.According to an eighth aspect, the invention relates to a computer program comprising program code for performing the method according to the first or second aspect or any possible embodiment of the first or second aspect when executed on a computer.
Настоящее раскрытие обеспечивает способ кодирования, реализуемый устройством кодирования, при этом способ содержит:The present disclosure provides a coding method implemented by an encoding device, the method comprising:
применение межкомпонентного адаптивного контурного фильтра CC-ALF для уточнения компонента цветности;application of the CC-ALF intercomponent adaptive contour filter to refine the color component;
формирование битового потока, включающего в себя множество синтаксических элементов, относящихся к ALF (синтаксические элементы, относящиеся к CC-ALF, используемые ниже), при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, указывают информацию, относящуюся к ALF (информация, относящаяся к CC-ALF, используемая ниже);generating a bit stream including a plurality of syntactic elements related to the ALF (syntactic elements related to the CC-ALF, used below), wherein said plurality of syntactic elements related to the CC-ALF indicate information related to the ALF (information related to the CC-ALF, used below);
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на любом одном или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса;wherein said plurality of syntactic elements related to the CC-ALF are signaled at any one or more of the sequence parameter set (SPS), picture header or slice header level;
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS.wherein said plurality of syntax elements related to the CC-ALF comprises a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising an inter-component adaptive loop filter is enabled at the sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether or not the inter-component adaptive loop filter is enabled at the sequence level, and the second syntax element is signaled at the SPS level.
Хотя здесь обычно указывается, что первый и второй синтаксические элементы сигнализируются на уровне SPS, это не означает, что сигнализация по меньшей мере второго синтаксического элемента является безусловной. Скорее, этот вариант осуществления также охватывает реализации, в которых сигнализируется второй синтаксический элемент, например, на основании значения первого синтаксического элемента и/или в зависимости от значения другого синтаксического элемента, как будет дополнительно описано ниже.Although it is generally indicated here that the first and second syntax elements are signaled at the SPS level, this does not mean that the signaling of at least the second syntax element is unconditional. Rather, this embodiment also covers implementations in which the second syntax element is signaled, for example, based on the value of the first syntax element and/or depending on the value of another syntax element, as will be further described below.
Первый синтаксический элемент может называться sps_alf_enabled_flag в последующем, тогда как второй синтаксический элемент может называться sps_ccalf_enabled_flag. Однако это всего лишь название, используемое здесь. Изобретение не ограничивается конкретным названием первого или второго синтаксического элемента или любого другого синтаксического элемента, упомянутого в данном документе.The first syntax element may be referred to as sps_alf_enabled_flag in the following, while the second syntax element may be referred to as sps_ccalf_enabled_flag. However, this is merely a name used herein. The invention is not limited by the specific name of the first or second syntax element or any other syntax element mentioned herein.
Можно понять, что CC-ALF - это особый вид ALF, CC-ALF может зависеть от того, включен ли ALF или нет, поэтому первый синтаксический элемент, т. е. sps_alf_enabled_flag, также относится к CC-ALF и, следовательно, синтаксические элементы, относящиеся к CC-ALF, могут быть использованы ниже. Аналогично, информация, указанная первым синтаксическим элементом, т. е. sps_alf_enabled_flag, также относится к CC-ALF, поэтому информация, относящаяся к CC-ALF, может использоваться ниже.It can be understood that CC-ALF is a special kind of ALF, CC-ALF can depend on whether ALF is enabled or not, so the first syntax element, i.e. sps_alf_enabled_flag, also applies to CC-ALF, and therefore the syntax elements related to CC-ALF can be used below. Similarly, the information specified by the first syntax element, i.e. sps_alf_enabled_flag, also applies to CC-ALF, so the information related to CC-ALF can be used below.
Таким образом, информация, которая может использоваться для всех изображений в последовательности, может эффективно передаваться на уровне SPS, уменьшая размер битового потока за счет уменьшения количества избыточной информации и позволяя выполнять межкомпонентную адаптивную контурную фильтрацию с уменьшенными накладными расходами на сигнализацию, таким образом, фильтрация может быть более эффективной, и достигается повышение эффективности кодирования.In this way, information that can be used for all images in a sequence can be efficiently transmitted at the SPS layer, reducing the bitstream size by reducing the amount of redundant information and allowing inter-component adaptive loop filtering to be performed with reduced signaling overhead, thus filtering can be more efficient and improving coding efficiency.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит третий синтаксический элемент, когда второй синтаксический элемент указывает, что CC-ALF включен, при этом третий синтаксический элемент сигнализируется в заголовке изображения, и третий синтаксический элемент указывает, включен ли CC-ALF для текущего изображения, содержащего множество слайсов.In one embodiment, said plurality of syntax elements related to CC-ALF comprises a third syntax element, when the second syntax element indicates that CC-ALF is included, wherein the third syntax element is signaled in the header of the image, and the third syntax element indicates whether CC-ALF is included for the current image containing a plurality of slices.
Этот третий синтаксический элемент также может упоминаться как pic_ccalf_enabled_flag. В этом варианте осуществления релевантная информация CC-ALF, относящаяся к полному изображению, может передаваться при сохранении небольшого размера битового потока. Например, Слайс 1.. Слайс N совместно использует одну и ту же информацию CCALF, поэтому общая информация может быть напрямую унаследована от заголовка изображения вместо того, чтобы каждый заголовок слайса передавал их избыточно.This third syntax element can also be referred to as pic_ccalf_enabled_flag. In this embodiment, the relevant CC-ALF information related to the entire image can be transmitted while maintaining a small bitstream size. For example,
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит четвертый синтаксический элемент, когда второй синтаксический элемент указывает, что CC-ALF включен, при этом четвертый синтаксический элемент сигнализируется в заголовке изображения, и четвертый синтаксический элемент указывает, включен ли CC-ALF для цветового компонента Cb для текущего изображения видеопоследовательности, связанной с битовым потоком.In a further embodiment, said plurality of syntax elements related to CC-ALF comprises a fourth syntax element, when the second syntax element indicates that CC-ALF is enabled, wherein the fourth syntax element is signaled in the header of the picture, and the fourth syntax element indicates whether CC-ALF is enabled for the color component Cb for the current picture of the video sequence associated with the bitstream.
Четвертый синтаксический элемент может, например, обозначаться как pic_cross_component_alf_cb_enabled_flag. Однако это не является обязательным. Четвертый синтаксический элемент может эффективно сигнализировать CC-ALF для цветового компонента Cb, сохраняя при этом небольшим количество избыточной информации, например, в заголовке слайса.The fourth syntax element can, for example, be designated as pic_cross_component_alf_cb_enabled_flag. However, this is not mandatory. The fourth syntax element can effectively signal CC-ALF for the Cb color component while keeping the amount of redundant information, for example in the slice header, small.
Кроме того, может быть предусмотрено, что если четвертый синтаксический элемент имеет значение 1, это указывает, что CC-ALF для цветового компонента Cb включен для текущего изображения, и/или, если четвертый синтаксический элемент имеет значение 0, это указывает, что CC-ALF для цветового компонента Cb отключен для текущего изображения.In addition, it may be provided that if the fourth syntax element has a value of 1, this indicates that CC-ALF for the color component Cb is enabled for the current image, and/or if the fourth syntax element has a value of 0, this indicates that CC-ALF for the color component Cb is disabled for the current image.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит пятый синтаксический элемент, когда четвертый синтаксический элемент указывает, что CC-ALF для цветового компонента Cb включен для текущего изображения, при этом пятый синтаксический элемент сигнализируется в заголовке изображения, и пятый синтаксический элемент указывает набор параметров, к которому относится цветовой компонент Cb всех слайсов в текущем изображении. Этот синтаксический элемент может быть обозначен как pic_cross_component_alf_cb_aps_id. Это, однако, является просто наименованием и не истолковывается как ограничивающее настоящее раскрытие. Этот вариант осуществления может допускать наборы параметров сигнализации, которые предоставляются для всех слайсов изображения уже на уровне изображения, тем самым уменьшая количество избыточной информации.In one embodiment, said plurality of syntax elements related to the CC-ALF comprises a fifth syntax element, when the fourth syntax element indicates that the CC-ALF for the color component Cb is enabled for the current picture, wherein the fifth syntax element is signaled in the header of the picture, and the fifth syntax element indicates a set of parameters to which the color component Cb of all slices in the current picture belongs. This syntax element may be designated as pic_cross_component_alf_cb_aps_id. This, however, is simply a name and is not construed as limiting the present disclosure. This embodiment may allow sets of signaling parameters that are provided for all slices of the picture already at the picture level, thereby reducing the amount of redundant information.
Кроме того, может быть предусмотрено, что упомянутое множество синтаксических элементов, связанных с CC-ALF, содержит седьмой синтаксический элемент, когда второй синтаксический элемент указывает, что CC-ALF включен, при этом седьмой синтаксический элемент сигнализируется в заголовке изображения, и седьмой синтаксический элемент указывает, включен ли CC-ALF для цветового компонента Cr для текущего изображения видеопоследовательности, связанной с битовым потоком. Этот синтаксический элемент может, например, обозначаться как pic_cross_component_alf_cr_enabled_flag без ограничения настоящего раскрытия. С помощью этого синтаксического элемента можно надежно сигнализировать о включении CC-ALF для цветовых компонентов Cr.In addition, it can be provided that said plurality of syntax elements associated with CC-ALF comprises a seventh syntax element, when the second syntax element indicates that CC-ALF is enabled, wherein the seventh syntax element is signaled in the image header, and the seventh syntax element indicates whether CC-ALF is enabled for the Cr color component for the current image of the video sequence associated with the bitstream. This syntax element can, for example, be designated as pic_cross_component_alf_cr_enabled_flag without limiting the present disclosure. With this syntax element, it is possible to reliably signal the inclusion of CC-ALF for the Cr color components.
Кроме того, может быть предусмотрено, что, если седьмой синтаксический элемент имеет значение 1, это указывает, что CC-ALF для цветового компонента Cr включен для текущего изображения, и/или, если седьмой синтаксический элемент имеет значение 0, это указывает, что CC-ALF для цветового компонента Cr отключен для текущего изображения.In addition, it may be provided that if the seventh syntax element has a value of 1, this indicates that CC-ALF for the color component Cr is enabled for the current image, and/or if the seventh syntax element has a value of 0, this indicates that CC-ALF for the color component Cr is disabled for the current image.
В одном варианте осуществления упомянутое множество синтаксических элементов, связанных с CC-ALF, содержит восьмой синтаксический элемент, когда седьмой синтаксический элемент указывает, что CC-ALF для цветового компонента Cr включен для текущего изображения, при этом восьмой синтаксический элемент сигнализируется в заголовке изображения, и восьмой синтаксический элемент указывает набор параметров, который связан с цветовым компонентом Cr всех слайсов в текущем изображении. Восьмой синтаксический элемент может быть обозначен как pic_cross_component_alf_cr_aps_id, хотя это только один пример. Этот синтаксический элемент может предоставить информацию о соответствующих параметрах, которые будут использоваться во время фильтрации.In one embodiment, said plurality of syntax elements associated with CC-ALF comprises an eighth syntax element, wherein the seventh syntax element indicates that CC-ALF for the Cr color component is enabled for the current image, wherein the eighth syntax element is signaled in the image header, and the eighth syntax element indicates a set of parameters that is associated with the Cr color component of all slices in the current image. The eighth syntax element may be designated as pic_cross_component_alf_cr_aps_id, although this is only one example. This syntax element may provide information about the corresponding parameters that will be used during filtering.
Кроме того, может быть предусмотрено, что четвертый синтаксический элемент, пятый синтаксический элемент, шестой синтаксический элемент, седьмой синтаксический элемент, восьмой синтаксический элемент и девятый синтаксический элемент сигнализируются, когда третий синтаксический элемент указывает, что CC-ALF включен для текущего изображения видеопоследовательности, связанной с битовым потоком. Если CC-ALF отключен, для этих элементов могут быть установлены значения по умолчанию, и они по-прежнему будут сигнализироваться в битовом потоке. В качестве альтернативы, если CC-ALF отключен, эти синтаксические элементы могут не сигнализироваться в битовом потоке, тем самым уменьшая его размер, поскольку неиспользуемая информация исключается из битового потока.In addition, it may be provided that the fourth syntax element, the fifth syntax element, the sixth syntax element, the seventh syntax element, the eighth syntax element and the ninth syntax element are signaled when the third syntax element indicates that CC-ALF is enabled for the current picture of the video sequence associated with the bitstream. If CC-ALF is disabled, these elements may be set to default values and will still be signaled in the bitstream. Alternatively, if CC-ALF is disabled, these syntax elements may not be signaled in the bitstream, thereby reducing its size, since unused information is excluded from the bitstream.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит десятый синтаксический элемент, когда второй синтаксический элемент указывает, что CC-ALF включен, при этом десятый синтаксический элемент сигнализируется в заголовке слайса, и десятый синтаксический элемент указывает, включен ли CCALF для цветового компонента Cb для текущего слайса текущего изображения видеопоследовательности, связанной с битовым потоком. Этот синтаксический элемент может, без намерения ограничить настоящее раскрытие, называться slice_cross_component_alf_cb_enabled_flag. Таким образом, может быть обеспечена эффективная сигнализация того, должен ли CC-ALF включаться для цветовых компонентов Cb.In a further embodiment, said plurality of syntax elements related to CC-ALF comprises a tenth syntax element, when the second syntax element indicates that CC-ALF is enabled, wherein the tenth syntax element is signaled in the slice header, and the tenth syntax element indicates whether CCALF is enabled for the Cb color component for the current slice of the current picture of the video sequence associated with the bitstream. This syntax element may, without the intention of limiting the present disclosure, be called slice_cross_component_alf_cb_enabled_flag. In this way, an efficient signaling of whether CC-ALF should be enabled for the Cb color components can be provided.
Кроме того, может быть предусмотрено, что если десятый синтаксический элемент имеет значение 1, это указывает, что CCALF для цветового компонента Cb включен для текущего слайса, и/или, если десятый синтаксический элемент имеет значение 0, это указывает, что CCALF для цветового компонента Cb отключен для текущего слайса.In addition, it may be provided that if the tenth syntax element has the
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит одиннадцатый синтаксический элемент, когда десятый синтаксический элемент указывает, что CC-ALF для цветового компонента Cb включен для текущего слайса, при этом десятый синтаксический элемент сигнализируется в заголовок слайса и десятый синтаксический элемент указывает набор параметров, на который ссылается цветовой компонент Cb текущего слайса. Этот синтаксический элемент может быть обозначен как pic_cross_component_alf_cb_aps_id, хотя это не предназначено для ограничения настоящего раскрытия.In a further embodiment, said plurality of syntax elements related to the CC-ALF comprises an eleventh syntax element, when the tenth syntax element indicates that the CC-ALF for the color component Cb is enabled for the current slice, wherein the tenth syntax element is signaled in the slice header and the tenth syntax element indicates a set of parameters referenced by the color component Cb of the current slice. This syntax element may be designated as pic_cross_component_alf_cb_aps_id, although this is not intended to limit the present disclosure.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит двенадцатый синтаксический элемент, когда второй синтаксический элемент указывает, что CC-ALF включен, при этом двенадцатый синтаксический элемент сигнализируется в заголовке слайса, и двенадцатый синтаксический элемент указывает, включен ли CCALF для цветового компонента Cr для текущего слайса текущего изображения видеопоследовательности, связанной с битовым потоком. Двенадцатый синтаксический элемент может, например, обозначаться как slice_cross_component_alf_cr_enabled_flag.In a further embodiment, said plurality of syntax elements related to CC-ALF comprises a twelfth syntax element, when the second syntax element indicates that CC-ALF is enabled, wherein the twelfth syntax element is signaled in the slice header, and the twelfth syntax element indicates whether CCALF is enabled for the color component Cr for the current slice of the current picture of the video sequence associated with the bitstream. The twelfth syntax element may, for example, be designated as slice_cross_component_alf_cr_enabled_flag.
В дополнительном варианте осуществления предусмотрено, что, если двенадцатый синтаксический элемент имеет значение 1, это указывает, что CCALF для цветового компонента Cr включен для текущего слайса, и/или, если двенадцатый синтаксический элемент имеет значение 0, это указывает, что CCALF для цветового компонента Cr отключен для текущего слайса.In a further embodiment, it is provided that if the twelfth syntax element has a value of 1, this indicates that CCALF for the color component Cr is enabled for the current slice, and/or if the twelfth syntax element has a value of 0, this indicates that CCALF for the color component Cr is disabled for the current slice.
Также может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит тринадцатый синтаксический элемент, когда двенадцатый синтаксический элемент указывает, что CC-ALF для цветового компонента Cr включен для текущего слайса, при этом тринадцатый синтаксический элемент сигнализируется в заголовок слайса и тринадцатый синтаксический элемент указывает набор параметров, на который ссылается цветовой компонент Cr текущего слайса. Например, тринадцатый синтаксический элемент может быть обозначен как slice_cross_component_alf_cr_aps_id. Это может эффективно предоставить информацию о параметре, который будет использоваться для фильтрации, связанной с цветовым компонентом Cr.It may also be envisaged that said plurality of syntax elements related to the CC-ALF comprises a thirteenth syntax element, when the twelfth syntax element indicates that the CC-ALF for the color component Cr is enabled for the current slice, wherein the thirteenth syntax element is signaled in the slice header and the thirteenth syntax element indicates the parameter set referenced by the color component Cr of the current slice. For example, the thirteenth syntax element may be designated asslice_cross_component_alf_cr_aps_id. This can effectively provide information about the parameter to be used for filtering related to the color component Cr.
Может быть предусмотрено, что сигнализируется второй синтаксический элемент, если первый синтаксический элемент имеет первое значение, или второй синтаксический элемент сигнализируется условно по меньшей мере на основе значения первого синтаксического элемента. Если ALF не включен (о чем сигнализирует первый синтаксический элемент), CC-ALF также не будет включен. Не предоставляя в этом случае второй синтаксический элемент, можно дополнительно уменьшить размер битового потока.It may be provided that the second syntax element is signaled if the first syntax element has the first value, or the second syntax element is signaled conditionally at least based on the value of the first syntax element. If ALF is not included (as signaled by the first syntax element), CC-ALF will also not be included. By not providing the second syntax element in this case, the bitstream size can be further reduced.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит четырнадцатый синтаксический элемент, сигнализируемый на уровне SPS, при этом четырнадцатый синтаксический элемент указывает тип ввода в CC-ALF. Четырнадцатый синтаксический элемент может быть обозначен ChromaArrayType, хотя это не ограничивает настоящее раскрытие.In one embodiment, said plurality of syntax elements related to the CC-ALF comprises a fourteenth syntax element signaled at the SPS level, wherein the fourteenth syntax element indicates the type of input in the CC-ALF. The fourteenth syntax element may be designated ChromaArrayType, although this does not limit the present disclosure.
Более конкретно, второй синтаксический элемент сигнализируется, когда первый синтаксический элемент имеет первое значение, а четырнадцатый синтаксический элемент имеет второе значение. Второе значение может быть любым значением, отличным от определенного значения, которое указывает, что CC-ALF не должен быть включен.More specifically, the second syntax element is signaled when the first syntax element has the first value and the fourteenth syntax element has the second value. The second value may be any value other than a specific value that indicates that CC-ALF should not be enabled.
В еще одном конкретном варианте осуществления второй синтаксический элемент сигнализируется, когда первый синтаксический элемент имеет значение, равное 1, а четырнадцатый синтаксический элемент имеет значение, не равное 0.In yet another specific embodiment, the second syntax element is signaled when the first syntax element has a value equal to 1 and the fourteenth syntax element has a value not equal to 0.
Для любого из приведенных выше вариантов осуществления может быть предусмотрено, что CC-ALF работает как часть процесса адаптивной контурный фильтрации и использует значения выборок яркости для уточнения по меньшей мере одного компонента цветности.For any of the above embodiments, it may be provided that the CC-ALF operates as part of an adaptive loop filtering process and uses the luminance sample values to refine at least one chrominance component.
Настоящее раскрытие дополнительно обеспечивает способ декодирования, реализуемый устройством декодирования, при этом способ содержит:The present disclosure further provides a decoding method implemented by a decoding device, the method comprising:
синтаксический анализ множества синтаксических элементов, связанных с межкомпонентным адаптивным контурным фильтром, CC-ALF, из битового потока, при этом упомянутое множество синтаксических элементов, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, получается из любого одного или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса;parsing a plurality of syntax elements associated with a cross-component adaptive loop filter, CC-ALF, from a bitstream, wherein said plurality of syntax elements, wherein said plurality of syntax elements related to the CC-ALF are obtained from any one or more of a sequence parameter set (SPS) level, a picture header, or a slice header;
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS;wherein said plurality of syntax elements related to the CC-ALF comprises a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising an inter-component adaptive loop filter is enabled at the sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether or not the inter-component adaptive loop filter is enabled at the sequence level, and the second syntax element is signaled at the SPS level;
выполнение процесса CC-ALF с использованием по меньшей мере одного из упомянутого множества синтаксических элементов, относящихся к CC-ALF.performing a CC-ALF process using at least one of said plurality of CC-ALF related syntax elements.
Хотя здесь обычно указывается, что первый и второй синтаксические элементы предоставляются на уровне SPS, это не означает, что по меньшей мере второй синтаксический элемент предоставляется в битовом потоке безусловным образом. Скорее, этот вариант осуществления также охватывает реализации, в которых второй синтаксический элемент является частью битового потока, например, на основе значения первого синтаксического элемента и/или в зависимости от значения другого синтаксического элемента, как будет дополнительно описано ниже.Although it is generally indicated here that the first and second syntax elements are provided at the SPS level, this does not mean that at least the second syntax element is provided in the bitstream unconditionally. Rather, this embodiment also covers implementations in which the second syntax element is part of the bitstream, for example, based on the value of the first syntax element and/or depending on the value of another syntax element, as will be further described below.
Первый синтаксический элемент может называться sps_alf_enabled_flag в последующем, тогда как второй синтаксический элемент может называться sps_ccalf_enabled_flag. Однако это всего лишь название, используемое здесь. Изобретение не ограничивается конкретным названием первого или второго синтаксического элемента или любого другого синтаксического элемента, упомянутого в данном документе.The first syntax element may be referred to as sps_alf_enabled_flag in the following, while the second syntax element may be referred to as sps_ccalf_enabled_flag. However, this is merely a name used herein. The invention is not limited by the specific name of the first or second syntax element or any other syntax element mentioned herein.
Таким образом, информация, которая может использоваться, например, для всех изображений в последовательности, может эффективно предоставляться декодеру на уровне SPS, уменьшая размер битового потока за счет уменьшения количества избыточной информации, и это позволяет выполнять межкомпонентную адаптивную контурную фильтрацию с уменьшенными накладными расходами на сигнализацию, таким образом, фильтрация может быть более эффективной, и достигается повышение эффективности кодирования.In this way, information that can be used, for example, for all images in a sequence can be efficiently provided to the decoder at the SPS level, reducing the size of the bitstream by reducing the amount of redundant information, and this allows inter-component adaptive loop filtering to be performed with reduced signaling overhead, thus filtering can be more efficient and an increase in coding efficiency is achieved.
Может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит третий синтаксический элемент, когда получен второй синтаксический элемент, указывающий, что CC-ALF включен, при этом третий синтаксический элемент получается из заголовка изображения и третий синтаксический элемент указывает, включен ли CC-ALF для текущего изображения, содержащего множество слайсов. Этот третий синтаксический элемент также может упоминаться как pic_ccalf_enabled_flag. В этом варианте осуществления релевантная информация CC-ALF, относящаяся к полному изображению, может предоставляться при сохранении небольшого размера битового потока.It may be provided that said plurality of syntax elements related to CC-ALF comprises a third syntax element when a second syntax element indicating that CC-ALF is enabled is received, wherein the third syntax element is received from a header of the image and the third syntax element indicates whether CC-ALF is enabled for the current image comprising a plurality of slices. This third syntax element may also be referred to as pic_ccalf_enabled_flag. In this embodiment, relevant CC-ALF information related to the entire image may be provided while maintaining a small bitstream size.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит четвертый синтаксический элемент, когда получен второй синтаксический элемент, указывающий, что CC-ALF включен, при этом четвертый синтаксический элемент получается из заголовка изображения и четвертый синтаксический элемент указывает, включен ли CC-ALF для цветового компонента Cb для текущего изображения видеопоследовательности. Четвертый синтаксический элемент может, например, обозначаться как pic_cross_component_alf_cb_enabled_flag. Однако это не является обязательным. Четвертый синтаксический элемент может эффективно заставить декодер включать CC-ALF для цветового компонента Cb, сохраняя при этом небольшим количество избыточной информации, например, в заголовке слайса.In a further embodiment, said plurality of syntax elements related to CC-ALF comprises a fourth syntax element when the second syntax element is received indicating that CC-ALF is enabled, wherein the fourth syntax element is obtained from a picture header and the fourth syntax element indicates whether CC-ALF is enabled for the Cb color component for the current picture of the video sequence. The fourth syntax element may, for example, be designated as pic_cross_component_alf_cb_enabled_flag. However, this is not mandatory. The fourth syntax element may effectively cause the decoder to enable CC-ALF for the Cb color component, while keeping the amount of redundant information, for example, in the slice header, small.
В дополнительном варианте осуществления может быть предусмотрено, что если четвертый синтаксический элемент имеет значение 1, это указывает, что CC-ALF для цветового компонента Cb включен для текущего изображения, и/или, если четвертый синтаксический элемент имеет значение 0, это указывает, что CC-ALF для цветового компонента Cb отключен для текущего изображения.In a further embodiment, it may be provided that if the fourth syntax element has a value of 1, this indicates that CC-ALF for the color component Cb is enabled for the current image, and/or if the fourth syntax element has a value of 0, this indicates that CC-ALF for the color component Cb is disabled for the current image.
Кроме того, упомянутое множество синтаксических элементов, относящихся к CC-ALF, может содержать пятый синтаксический элемент, когда четвертый синтаксический элемент CC-ALF для цветового компонента Cb разрешен для текущего изображения, при этом пятый синтаксический элемент получается из заголовка изображения и пятый синтаксический элемент указывает набор параметров, который связан с цветовым компонентом Cb всех слайсов в текущем изображении. Этот синтаксический элемент может быть обозначен как pic_cross_component_alf_cb_aps_id. Это, однако, является просто наименованием и не истолковывается как ограничивающее настоящее раскрытие. Этот вариант осуществления может обеспечивать возможность предоставления наборов параметров, которые предусмотрены для всех слайсов изображения уже на уровне изображения, тем самым уменьшая количество избыточной информации.In addition, said plurality of syntax elements related to the CC-ALF may comprise a fifth syntax element, when the fourth CC-ALF syntax element for the color component Cb is resolved for the current image, wherein the fifth syntax element is obtained from the image header and the fifth syntax element indicates a set of parameters that is associated with the color component Cb of all slices in the current image. This syntax element may be designated as pic_cross_component_alf_cb_aps_id. This, however, is simply a name and is not construed as limiting the present disclosure. This embodiment may provide the ability to provide sets of parameters that are provided for all slices of an image already at the image level, thereby reducing the amount of redundant information.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, связанных с CC-ALF, содержит седьмой синтаксический элемент, когда получен второй синтаксический элемент, указывающий, что CC-ALF включен, при этом седьмой синтаксический элемент получается из заголовка изображения и седьмой синтаксический элемент указывает, включен ли CC-ALF для цветового компонента Cr для текущего изображения видеопоследовательности, связанной с битовым потоком. Этот синтаксический элемент может, например, обозначаться как pic_cross_component_alf_cr_enabled_flag без ограничения настоящего раскрытия. С помощью этого синтаксического элемента CC-ALF декодер может надежно определить, включен ли CC-ALF для цветовых компонентов Cr.In a further embodiment, said plurality of syntax elements associated with CC-ALF comprises a seventh syntax element when the second syntax element is received indicating that CC-ALF is enabled, wherein the seventh syntax element is obtained from a picture header and the seventh syntax element indicates whether CC-ALF is enabled for the Cr color component for the current picture of the video sequence associated with the bitstream. This syntax element may, for example, be designated as pic_cross_component_alf_cr_enabled_flag without limiting the present disclosure. With this CC-ALF syntax element, the decoder can reliably determine whether CC-ALF is enabled for the Cr color components.
Может быть предусмотрено, что если седьмой синтаксический элемент имеет значение 1, это указывает, что CC-ALF для цветового компонента Cr включен для текущего изображения, и/или, если седьмой синтаксический элемент имеет значение 0, это указывает, что CC-ALF для цветового компонента Cr отключен для текущего изображения.It may be provided that if the seventh syntax element has a value of 1, this indicates that CC-ALF for the Cr color component is enabled for the current image, and/or if the seventh syntax element has a value of 0, this indicates that CC-ALF for the Cr color component is disabled for the current image.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, связанных с CC-ALF, содержит восьмой синтаксический элемент, когда получен седьмой синтаксический элемент, указывающий, что CC-ALF для цветового компонента Cr включен для текущего изображения, при этом восьмой синтаксический элемент получается из заголовка изображения, и восьмой синтаксический элемент указывает набор параметров, который связан с цветовым компонентом Cr всех слайсов в текущем изображении. Восьмой синтаксический элемент может быть обозначен как pic_cross_component_alf_cr_aps_id, хотя это только один пример. Этот синтаксический элемент может предоставить информацию о соответствующих параметрах, которые будут использоваться во время фильтрации.In a further embodiment, said plurality of syntax elements associated with the CC-ALF comprises an eighth syntax element, when a seventh syntax element is received, indicating that the CC-ALF for the color component Cr is enabled for the current image, wherein the eighth syntax element is obtained from the image header, and the eighth syntax element indicates a set of parameters that is associated with the color component Cr of all slices in the current image. The eighth syntax element may be designated as pic_cross_component_alf_cr_aps_id, although this is only one example. This syntax element may provide information about the corresponding parameters that will be used during filtering.
Кроме того, может быть предусмотрено, что четвертый синтаксический элемент, пятый синтаксический элемент, шестой синтаксический элемент, седьмой синтаксический элемент, восьмой синтаксический элемент и девятый синтаксический элемент получаются, когда получен третий синтаксический элемент, указывающий, что CC-ALF включен для текущего изображения видеопоследовательности, связанной с битовым потоком.In addition, it may be provided that the fourth syntax element, the fifth syntax element, the sixth syntax element, the seventh syntax element, the eighth syntax element and the ninth syntax element are obtained when the third syntax element indicating that CC-ALF is enabled for the current picture of the video sequence associated with the bitstream is obtained.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит десятый синтаксический элемент, когда получен второй синтаксический элемент, указывающий, что CC-ALF включен, при этом десятый синтаксический элемент получается из заголовка слайса, и десятый синтаксический элемент указывает, включен ли CCALF для цветового компонента Cb для текущего слайса текущего изображения видеопоследовательности, связанной с битовым потоком. Этот синтаксический элемент может, без намерения ограничить настоящее раскрытие, называться slice_cross_component_alf_cb_enabled_flag. Таким образом, декодер может определить, должен ли быть включен CC-ALF для цветовых компонентов Cb.In one embodiment, said plurality of syntax elements related to CC-ALF comprises a tenth syntax element, when a second syntax element is received, indicating that CC-ALF is enabled, wherein the tenth syntax element is obtained from a slice header, and the tenth syntax element indicates whether CCALF is enabled for the Cb color component for the current slice of the current picture of the video sequence associated with the bitstream. This syntax element may, without the intention of limiting the present disclosure, be called slice_cross_component_alf_cb_enabled_flag. In this way, the decoder can determine whether CC-ALF should be enabled for the Cb color components.
Кроме того, может быть предусмотрено, что если десятый синтаксический элемент имеет значение 1, это указывает, что CCALF для цветового компонента Cb включен для текущего слайса, и/или, если десятый синтаксический элемент имеет значение 0, это указывает, что CCALF для цветового компонента Cb отключен для текущего слайса.In addition, it may be provided that if the tenth syntax element has the
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит одиннадцатый синтаксический элемент, когда получен десятый синтаксический элемент, указывающий, что CC-ALF для цветового компонента Cb включен для текущего слайса, при этом десятый синтаксический элемент получается из заголовка слайса, и десятый синтаксический элемент указывает набор параметров, на который ссылается цветовой компонент Cb текущего слайса. Этот синтаксический элемент может быть обозначен как pic_cross_component_alf_cb_aps_id, хотя это не предназначено для ограничения настоящего раскрытия.In one embodiment, said plurality of syntax elements related to CC-ALF comprises an eleventh syntax element when a tenth syntax element is received indicating that CC-ALF for color component Cb is enabled for the current slice, wherein the tenth syntax element is received from the slice header, and the tenth syntax element indicates a set of parameters referenced by the color component Cb of the current slice. This syntax element may be designated as pic_cross_component_alf_cb_aps_id, although this is not intended to limit the present disclosure.
Может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит двенадцатый синтаксический элемент, когда получен второй синтаксический элемент, указывающий, что CC-ALF включен, при этом двенадцатый синтаксический элемент получается из заголовка слайса и двенадцатый синтаксический элемент указывает, включен ли CCALF для цветового компонента Cr для текущего слайса текущего изображения видеопоследовательности, связанной с битовым потоком. Двенадцатый синтаксический элемент может, например, обозначаться как slice_cross_component_alf_cr_enabled_flag.It may be envisaged that said plurality of syntax elements related to CC-ALF comprises a twelfth syntax element when the second syntax element indicating that CC-ALF is enabled is received, wherein the twelfth syntax element is received from a slice header and the twelfth syntax element indicates whether CCALF is enabled for the color component Cr for the current slice of the current picture of the video sequence associated with the bitstream. The twelfth syntax element may, for example, be designated as slice_cross_component_alf_cr_enabled_flag.
В более конкретном варианте осуществления, если двенадцатый синтаксический элемент имеет значение 1, это указывает, что CCALF для цветового компонента Cr включен для текущего слайса, и/или, если двенадцатый синтаксический элемент имеет значение 0, это указывает, что CCALF для цветового компонента Cr отключен для текущего слайса.In a more specific embodiment, if the twelfth syntax element has a value of 1, this indicates that CCALF for the Cr color component is enabled for the current slice, and/or if the twelfth syntax element has a value of 0, this indicates that CCALF for the Cr color component is disabled for the current slice.
Кроме того, может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит тринадцатый синтаксический элемент, когда получен двенадцатый синтаксический элемент, указывающий, что CC-ALF для цветового компонента Cr включен для текущего слайса, при этом тринадцатый синтаксический элемент получается из заголовка слайса и тринадцатый синтаксический элемент указывает набор параметров, на который ссылается цветовой компонент Cr текущего слайса. Например, тринадцатый синтаксический элемент может быть обозначен как slice_cross_component_alf_cr_aps_id. Это может эффективно предоставить информацию о параметре, который будет использоваться для фильтрации, связанной с цветовым компонентом Cr.In addition, it can be provided that said plurality of syntax elements related to CC-ALF comprises a thirteenth syntax element when a twelfth syntax element is received indicating that CC-ALF for the color component Cr is enabled for the current slice, wherein the thirteenth syntax element is obtained from the slice header and the thirteenth syntax element indicates a set of parameters referred to by the color component Cr of the current slice. For example, the thirteenth syntax element can be designated as slice_cross_component_alf_cr_aps_id. This can effectively provide information about the parameter that will be used for filtering related to the color component Cr.
В одном варианте осуществления второй синтаксический элемент получается, если первый синтаксический элемент имеет первое значение, или второй синтаксический элемент получается по меньшей мере на основе значения первого синтаксического элемента.In one embodiment, the second syntax element is obtained if the first syntax element has a first value, or the second syntax element is obtained based at least on the value of the first syntax element.
Кроме того, может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит четырнадцатый синтаксический элемент, полученный из уровня SPS, при этом четырнадцатый синтаксический элемент указывает тип ввода в CC-ALF. Четырнадцатый синтаксический элемент может быть обозначен ChromaArrayType, хотя это не ограничивает настоящее раскрытие.In addition, it may be provided that said plurality of syntax elements related to the CC-ALF comprises a fourteenth syntax element obtained from the SPS layer, wherein the fourteenth syntax element indicates the type of input in the CC-ALF. The fourteenth syntax element may be designated ChromaArrayType, although this does not limit the present disclosure.
Более конкретно, второй синтаксический элемент может быть получен, когда первый синтаксический элемент имеет первое значение, а четырнадцатый синтаксический элемент имеет второе значение. Это второе значение может быть любым значением, которое отличается от значения, указывающего, что CC-ALF не следует включать, или может использоваться для указания этого.More specifically, a second syntactic element may be obtained when the first syntactic element has a first value and the fourteenth syntactic element has a second value. This second value may be any value that is different from, or may be used to indicate, the value that CC-ALF should not be included.
Более конкретно, может быть предусмотрено, что второй синтаксический элемент получается, когда первый синтаксический элемент имеет значение, равное 1, а четырнадцатый синтаксический элемент имеет значение, не равное 0.More specifically, it may be provided that the second syntactic element is obtained when the first syntactic element has a value equal to 1 and the fourteenth syntactic element has a value not equal to 0.
Для любого из приведенных выше вариантов осуществления может быть дополнительно предусмотрено, что CC-ALF работает как часть процесса адаптивной контурной фильтрации и использует значения выборок яркости для уточнения по меньшей мере одного компонента цветности.For any of the above embodiments, it may be further provided that the CC-ALF operates as part of an adaptive loop filtering process and uses the luminance sample values to refine at least one chrominance component.
Настоящее раскрытие также относится кThis disclosure also applies to
устройству для кодирования видеоданных, содержащему:a device for encoding video data, comprising:
память видеоданных; иvideo data memory; and
видеокодер, при этом видеокодер выполнен с возможностью: применения межкомпонентного адаптивного контурного фильтра CC-ALF для уточнения компонента цветности; формировать битовый поток, включающий в себя множество синтаксических элементов, относящихся к CC-ALF, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, указывают информацию, относящуюся к CC-ALF; при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на любом одном или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса; при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS. При этом преимущества упомянутых выше способов кодирования предоставляются кодерам для кодирования, например, видео.a video encoder, wherein the video encoder is configured to: apply an inter-component adaptive loop filter CC-ALF for refining the chrominance component; generate a bit stream including a plurality of syntactic elements related to the CC-ALF, wherein said plurality of syntactic elements related to the CC-ALF indicate information related to the CC-ALF; wherein said plurality of syntactic elements related to the CC-ALF are signaled at any one or more of a sequence parameter set (SPS), a picture header or a slice header level; wherein said plurality of syntax elements related to the CC-ALF comprises a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising an inter-component adaptive loop filter is enabled at the sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether or not the inter-component adaptive loop filter is enabled at the sequence level, and the second syntax element is signaled at the SPS level. In this case, the advantages of the above-mentioned encoding methods are provided to coders for encoding, for example, video.
Настоящее раскрытие также относится кThis disclosure also applies to
устройству для декодирования видеоданных, содержащему:a device for decoding video data, comprising:
память видеоданных; иvideo data memory; and
видеодекодер, при этом видеодекодер выполнен с возможностью: синтаксического анализа множества синтаксических элементов, связанных с межкомпонентным адаптивным контурным фильтром, CC-ALF, из битового потока, при этом упомянутое множество синтаксических элементов, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF получен из любого одного или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса; при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS; и выполнения процесса CC-ALF с использованием по меньшей мере одного из упомянутого множества синтаксических элементов, относящихся к CC-ALF.a video decoder, wherein the video decoder is configured to: parse a plurality of syntax elements associated with a cross-component adaptive loop filter, CC-ALF, from a bitstream, wherein said plurality of syntax elements, wherein said plurality of syntax elements related to the CC-ALF are obtained from any one or more of a sequence parameter set (SPS) level, a picture header or a slice header; wherein said plurality of syntax elements related to the CC-ALF comprise a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising the cross-component adaptive loop filter is enabled at a sequence level, and the first syntax element is signaled at a SPS level, and a second syntax element that indicates whether or not the cross-component adaptive loop filter is enabled at a sequence level, and the second syntax element is signaled at a SPS level; and performing the CC-ALF process using at least one of said plurality of syntax elements related to the CC-ALF.
При этом реализуются преимущества уменьшенного размера битового потока при надежном декодировании видео.This takes advantage of the reduced bitstream size while still providing reliable video decoding.
Кроме того, предоставляется кодер для кодирования видео, содержащий схему обработки для выполнения способа в соответствии с любым из вышеприведенных вариантов осуществления. При этом преимущества упомянутых выше способов кодирования предоставляются кодерам для кодирования, например, видео.In addition, an encoder for encoding video is provided, comprising a processing circuit for performing a method according to any of the above embodiments. In this case, the advantages of the above-mentioned encoding methods are provided to encoders for encoding, for example, video.
Кроме того, предусмотрен декодер для декодирования битового потока, при этом декодер содержит схему обработки для выполнения способа согласно любому из вышеупомянутых вариантов осуществления. При этом реализуются преимущества уменьшенного размера битового потока при надежном декодировании видео.In addition, a decoder is provided for decoding the bit stream, wherein the decoder comprises a processing circuit for performing the method according to any of the above-mentioned embodiments. In this case, the advantages of a reduced bit stream size are realized in reliable video decoding.
Кроме того, в рамках этого раскрытия предусмотрен считываемый компьютером носитель данных, содержащий исполняемые компьютером инструкции, которые при выполнении вычислительным устройством предписывают вычислительному устройству выполнять способ в соответствии с любым из вышеприведенных вариантов осуществления.Also provided within the scope of this disclosure is a computer-readable storage medium comprising computer-executable instructions that, when executed by a computing device, cause the computing device to perform the method according to any of the above embodiments.
Настоящее раскрытие дополнительно обеспечивает закодированный битовый поток для видеосигнала посредством включения множества синтаксических элементов, относящихся к CC-ALF, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, указывают информацию, относящуюся к CC-ALF;The present disclosure further provides an encoded bitstream for a video signal by including a plurality of syntax elements related to a CC-ALF, wherein said plurality of syntax elements related to the CC-ALF indicate information related to the CC-ALF;
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируются на любом одном или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса;wherein said plurality of syntactic elements related to the CC-ALF are signaled at any one or more of the sequence parameter set (SPS), picture header or slice header level;
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS.wherein said plurality of syntax elements related to the CC-ALF comprises a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising an inter-component adaptive loop filter is enabled at the sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether or not the inter-component adaptive loop filter is enabled at the sequence level, and the second syntax element is signaled at the SPS level.
Битовый поток может быть уменьшен в размере, обеспечивая при этом информацию, которая будет использоваться при декодировании при надежном применении CC-ALF.The bitstream can be reduced in size while still providing information to be used for decoding when CC-ALF is used reliably.
Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в нижеследующем описании. Другие особенности, цели и преимущества будут очевидны из описания, чертежей и формулы изобретения.The details of one or more embodiments are set forth in the accompanying drawings and the following description. Other features, objects and advantages will be apparent from the description, drawings and claims.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF DRAWINGS
В следующих вариантах осуществления изобретения описаны более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:The following embodiments of the invention are described in more detail with reference to the accompanying figures and drawings, in which:
Фиг. 1A является блок-схемой, показывающей пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;Fig. 1A is a block diagram showing an example of a video coding system capable of implementing embodiments of the invention;
Фиг. 1B является блок-схемой, показывающей другой пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;Fig. 1B is a block diagram showing another example of a video coding system capable of implementing embodiments of the invention;
Фиг. 2 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;Fig. 2 is a block diagram showing an example of a video encoder capable of implementing embodiments of the invention;
Фиг. 3 является блок-схемой, показывающей пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;Fig. 3 is a block diagram showing an example of the structure of a video decoder capable of implementing embodiments of the invention;
Фиг. 4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;Fig. 4 is a block diagram illustrating an example of an encoding device or a decoding device;
Фиг. 5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;Fig. 5 is a block diagram illustrating another example of an encoding device or a decoding device;
Фиг. 6 включает в себя фиг. 6a, 6b и 6c, где (6a) - размещение CC ALF по отношению к другим контурным фильтрам (6b и 6c) - ромбовидный фильтр;Fig. 6 includes Fig. 6a, 6b and 6c, where (6a) is the placement of the CC ALF relative to the other loop filters (6b and 6c) is a diamond-shaped filter;
Фиг. 7 является схемой, иллюстрирующей все заголовки слайсов, которые должны передавать данные CCALF в предшествующем уровне техники;Fig. 7 is a diagram illustrating all slice headers that are required to carry CCALF data in the prior art;
Фиг. 8 является схемой, иллюстрирующей пример усовершенствованных синтаксических элементов CC-ALF;Fig. 8 is a diagram illustrating an example of the enhanced CC-ALF syntax elements;
Фиг. 9A представляет собой концептуальную схему, иллюстрирующую номинальные вертикальные и горизонтальные относительные местоположения дискретных выборок яркости и цветности;Fig. 9A is a conceptual diagram illustrating the nominal vertical and horizontal relative locations of discrete luma and chroma samples;
Фиг. 9B представляет собой схематическое представление, иллюстрирующее совместно расположенные блоки яркости и блоки цветности;Fig. 9B is a schematic diagram illustrating co-located luminance blocks and chrominance blocks;
Фиг. 10 - блок-схема, показывающая примерную структуру системы 3100 доставки контента, которая реализует услугу доставки контента;Fig. 10 is a block diagram showing an exemplary structure of a content delivery system 3100 that implements a content delivery service;
Фиг. 11 является блок-схемой, показывающей структуру примерного терминального устройства;Fig. 11 is a block diagram showing the structure of an exemplary terminal device;
Фиг. 12 является блок-схемой, показывающей пример кодера;Fig. 12 is a block diagram showing an example of an encoder;
Фиг. 13 является блок-схемой, показывающей пример декодера;Fig. 13 is a block diagram showing an example of a decoder;
Фиг. 14 показывает блок-схему последовательности операций способа кодирования видео согласно одному варианту осуществления;Fig. 14 shows a flow chart of a video encoding method according to one embodiment;
Фиг. 15 показывает блок-схему последовательности операций способа декодирования видео согласно одному варианту осуществления.Fig. 15 shows a flow chart of a video decoding method according to one embodiment.
Фиг. 16 представляет собой схематическое представление структуры 5000 данных, то есть битового потока 500 видео.Fig. 16 is a schematic representation of a
Следующие одинаковые ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным функциям, если явно не указано иное.The following identical reference numbers refer to identical or at least functionally equivalent functions unless explicitly stated otherwise.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDETAILED DESCRIPTION OF IMPLEMENTATION OPTIONS
Следующее определение предназначено для справки:The following definition is for reference:
блок кодирования: Блок MxN дискретных выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является разделением. coding block:BlockMxN discrete samples for some values of M and N, so that the divisionCTBoncoding blocks isdivision.
блок дерева кодирования (CTB): Блок NxN дискретных выборок для некоторого значения N, такого, что разделение компонента на CTB является разделением. coding tree block (CTB)):BlockNxN discrete samples for some value of N such that the divisioncomponentonCTBis division.
единица дерева кодирования (CTU): CTB выборок яркости, два соответствующих CTB выборок цветности изображения, состоящего из трех массивов выборок, или CTB выборок монохромного изображения или изображения, закодированного с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. coding tree unit (CTU):CTBsamplesbrightness, two correspondingCTBsamplescolors images,consisting of three arrays of samples, orCTBmonochrome samplesimages or images, encoded using three separate color planes andsyntactic structures,used for encoding samples.
единица кодирования (CU): Блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. coding unit (CU): Coding blockbrightness samples,two correspondingcoding blocksamplescolors images, which has three sample arrays, or a monochrome sample coding blockimagesor images,which is encoded using three separate color planes And syntactic structures, used to encode samples.
компонент: Массив или одна выборка из одного из трех массивов (яркости и двух цветности), которые составляют изображение в цветовом формате 4:2:0, 4:2:2 или 4:4:4, или массив или одиночная выборка массива, из которого состоит изображение в монохромном формате. component: An array or a single sample from one of the three arrays (a luma array and two chroma arrays ) that make up an image in 4:2:0, 4:2:2, or 4:4:4 color format, or an array or a single sample from an array that makes up an image in monochrome format.
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть данного раскрытия и которые показывают, в качестве иллюстрации, конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых варианты осуществления настоящего изобретения могут быть использованы. Понятно, что варианты осуществления данного изобретения могут быть использованы в других аспектах и содержат структурные или логические изменения, не показанные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.In the following description, reference is made to the accompanying drawings, which form a part of this disclosure and which show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention can be used. It is understood that embodiments of the present invention can be used in other aspects and include structural or logical changes not shown in the figures. Therefore, the following detailed description should not be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
Например, понятно, что раскрытие, связанное с описанным способом, также может быть справедливо для соответствующего устройства или системы, выполненных с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из упомянутого множества этапов), даже если такой один или более блоков не описаны явным образом или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из упомянутого множества блоков), даже если такой один или множество этапов не описаны явным образом или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is understood that the disclosure related to the described method may also be true for the corresponding device or system adapted to perform the method, and vice versa. For example, if one or a plurality of specific method steps are described, the corresponding device may include one or a plurality of blocks, such as functional blocks, to perform the described one or a plurality of method steps (for example, one block performing one or a plurality of steps, or a plurality of blocks, each of which performs one or more of said plurality of steps), even if such one or more blocks are not explicitly described or illustrated in the figures. On the other hand, for example, if a specific device is described based on one or a plurality of blocks, such as functional blocks, the corresponding method may include one step to perform the functionalities of one or a plurality of blocks (for example, one step performing the functionalities of one or a plurality of blocks, or a plurality of steps, each of which performs the functionalities of one or more of said plurality of blocks), even if such one or a plurality of steps are not explicitly described or illustrated in the figures. Furthermore, it is understood that features of various exemplary embodiments and/or aspects described herein may be combined with one another unless otherwise specifically stated.
Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «изображение» могут использоваться как синонимы в области видеокодирования. Кодирование видео (или кодирование (coding) в целом) содержит две части: кодирование видео (video encoding) и декодирование видео (video decoding). Кодирование видео выполняется на стороне источника и обычно содержит обработку (например, посредством сжатия) исходных видеоизображений для сокращения объема данных, требуемого для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне получателя (адресата) и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом), должны пониматься как относящиеся к «кодированию» или «декодированию» видеоизображений или соответствующих видеопоследовательностей. Комбинация кодирующей части и декодирующей части также называется CODEC (Coding and Decoding).Video coding generally refers to the processing of a sequence of images that form a video or a video sequence. Instead of the term "image", the terms "frame" or "picture" may be used synonymously in the field of video coding. Video coding (or coding in general) comprises two parts: video encoding and video decoding. Video coding is performed at the source side and generally comprises processing (e.g. by compression) of the original video images to reduce the amount of data required to represent the video images (for more efficient storage and/or transmission). Video decoding is performed at the receiver (destination) side and generally comprises the inverse processing compared to the encoder to restore the video images. Embodiments that refer to "coding" video images (or images in general) should be understood as referring to "coding" or "decoding" video images or the corresponding video sequences. The combination of the encoding part and the decoding part is also called CODEC (Coding and Decoding).
В случае видеокодирования без потерь исходные видеоизображения могут быть восстановлены, т.е. восстановленные видеоизображения имеют такое же качество, что и исходные видеоизображения (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае видеокодирования с потерями выполняется дополнительное сжатие, например посредством квантования, для сокращения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены на декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.In lossless video coding, the original video images can be reconstructed, i.e. the reconstructed video images have the same quality as the original video images (provided there is no transmission loss or other data loss during storage or transmission). In lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing the video images that cannot be fully reconstructed at the decoder, i.e. the quality of the reconstructed video images is lower or worse than the quality of the original video images.
Несколько стандартов видеокодирования принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области выборки и кодирование с 2D преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например с использованием пространственного (внутри изображения) предсказания и/или временного (между изображениями) предсказания для формирования блока предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается/подлежит обработке) для получения остаточного блока, остаточный блок преобразуется и этот остаточный блок квантуется в области преобразования для сокращения объема данных (сжатия), которые подлежат передаче, тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что они оба будут формировать идентичные предсказания (например, внутрикадровое и межкадровое предсказания) и/или восстановления для обработки, то есть кодирования (coding), последующих блоков.Several video coding standards belong to the group of "hybrid lossy video codecs" (i.e. they combine spatial and temporal prediction in the sample domain and 2D transform coding to apply quantization in the transform domain). Each picture of a video sequence is typically partitioned into a set of non-overlapping blocks, and coding is typically performed at the block level. In other words, at the encoder, video is typically processed, i.e. encoded, at the block (video block) level, such as using spatial (intra-picture) prediction and/or temporal (inter-picture) prediction to form a prediction block, the prediction block is subtracted from the current block (the block currently being/to be processed) to obtain a residual block, the residual block is transformed, and this residual block is quantized in the transform domain to reduce the amount of data (compression) to be transmitted, while at the decoder, the inverse of the processing compared to the encoder is applied to the coded or compressed block to reconstruct the current block for presentation. In addition, the encoder duplicates the decoder's processing loop so that they both will produce identical predictions (e.g. intra-frame and inter-frame predictions) and/or reconstructions for processing, i.e. encoding, subsequent blocks.
В нижеследующих вариантах осуществления системы 10 видеокодирования, видеокодер 20 и видеодекодер 30 описаны на основе Фиг. 1-3.In the following embodiments, the
Фиг. 1A представляет собой схематичное блочное представление, иллюстрирующее примерную систему 10 кодирования, например систему 10 видеокодирования (или сокращенно систему 10 кодирования), которая может использовать методы из настоящей заявки. Видеокодер 20 (или сокращенно кодер 20) и видеодекодер 30 (или сокращенно декодер 30) системы 10 видеокодирования представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методов в соответствии с различными примерами, описанными в настоящей заявке.Fig. 1A is a schematic block diagram illustrating an
Как показано на Фиг. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 изображения, например в устройство-получатель 14 для декодирования кодированных данных 13 изображения.As shown in Fig. 1A, the
Устройство-источник 12 может содержать кодер 20 и может дополнительно, т.е. необязательно, содержать источник 16 изображений, препроцессор (или блок предварительной обработки) 18, например препроцессор 18 изображения, и интерфейс связи или блок 22 связи.The source device 12 may comprise an encoder 20 and may additionally, i.e. optionally, comprise an image source 16, a preprocessor (or pre-processing unit) 18, such as an image preprocessor 18, and a communication interface or communication unit 22.
Источник 16 изображений может содержать или быть устройством захвата изображений любого типа, например камерой для захвата изображения реального мира, и/или устройством формирования изображений любого типа, например процессором компьютерной графики для формирования компьютерного анимированного изображения, или любым типом другого устройства для получения и/или предоставления изображения реального мира, формируемого компьютером изображения (например, содержимого экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображения дополненной реальности (AR)). Источником изображений может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых изображений.The image source 16 may comprise or be any type of image capture device, such as a camera for capturing a real world image, and/or any type of image generating device, such as a computer graphics processor for generating a computer animated image, or any type of other device for receiving and/or providing a real world image, a computer generated image (e.g., screen content, a virtual reality (VR) image), and/or any combination thereof (e.g., an augmented reality (AR) image). The image source may be any type of memory or storage in which any of the above-mentioned images are stored.
В отличие от препроцессора 18 и обработки, выполняемой посредством блока 18 предварительной обработки, изображение или данные 17 изображения также могут именоваться необработанным (raw) изображением или необработанными данными 17 изображения.In contrast to the preprocessor 18 and the processing performed by the pre-processing unit 18, the image or image data 17 may also be referred to as a raw image or unprocessed image data 17.
Препроцессор 18 может быть выполнен с возможностью приема (необработанных) данных 17 изображения и для выполнения предварительной обработки данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или шумоподавление. Можно понять, что блок 18 предварительной обработки может быть необязательным компонентом.The preprocessor 18 may be configured to receive (raw) image data 17 and to perform preprocessing of the image data 17 to obtain a preprocessed image 19 or preprocessed image data 19. The preprocessing performed by the preprocessor 18 may, for example, comprise cropping, color format conversion (for example, from RGB to YCbCr), color correction or noise reduction. It can be understood that the preprocessing unit 18 may be an optional component.
Видеокодер 20 может быть выполнен с возможностью приема предварительно обработанных данных 19 изображения и предоставления закодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, на основе фиг. 2.The video encoder 20 may be configured to receive pre-processed image data 19 and provide encoded image data 21 (further details will be described below, e.g. based on Fig. 2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема кодированных данных 21 изображения и передачи этих кодированных данных 21 изображения (или любой их дальнейшей обработанной версии) по каналу 13 связи в другое устройство, например устройство-получатель 14 или любое другое устройство, для сохранения или непосредственного восстановления.The communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and transmit these encoded image data 21 (or any further processed version thereof) via the communication channel 13 to another device, such as the recipient device 14 or any other device, for storage or direct recovery.
Устройство-получатель 14 может содержать декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. необязательно, содержать интерфейс связи или коммуникационный блок 28, постпроцессор 32 (или постпроцессор 32) и устройство отображения. 34.The receiving device 14 may comprise a decoder 30 (for example, a video decoder 30) and may additionally, i.e. optionally, comprise a communication interface or communication unit 28, a postprocessor 32 (or postprocessor 32) and a display device. 34.
Интерфейс 28 связи устройства-получателя 14 может быть выполнен с возможностью приема закодированных данных изображения 21 (или любой их дальнейшей обработанной версии), например, непосредственно от устройства-источника 12 или от любого другого источника, например, устройства хранения, например - запоминающего устройства для закодированных данных изображения, и предоставить закодированные данные 21 изображения в декодер 30.The communication interface 28 of the receiving device 14 may be configured to receive the encoded image data 21 (or any further processed version thereof), for example, directly from the source device 12 or from any other source, for example, a storage device, for example a memory device for encoded image data, and provide the encoded image data 21 to the decoder 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображения или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.The communication interface 22 and the communication interface 28 may be configured to transmit or receive the encoded image data 21 or the encoded data 13 via a direct communication link between the source device 12 and the destination device 14, such as a direct wired or wireless connection, or via any type of network, such as a wired or wireless network or any combination thereof, or any private and public network, or any combination thereof.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки кодированных данных 21 изображения в соответствующий формат, например, в пакеты, и/или обработки кодированных данных изображения с использованием любого типа кодирования передачи или обработки для передачи по каналу связи или сети связи.The communication interface 22 may, for example, be configured to pack the encoded image data 21 into an appropriate format, such as into packets, and/or to process the encoded image data using any type of transmission coding or processing for transmission over a communication channel or communication network.
Интерфейс 28 связи, являющийся аналогом интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования или обработки и/или распаковки передачи для получения кодированных данных 21 изображения.The communication interface 28, which is analogous to the communication interface 22, may, for example, be configured to receive the transmitted data and process the transmission data using any type of appropriate decoding or processing and/or decompression of the transmission to obtain the encoded image data 21.
Оба или по меньшей мере один из интерфейса 22 связи и интерфейса 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для канала 13 связи на фиг. 1A, указывающей от устройства-источника 12 к устройству-получателю 14, или интерфейсы двунаправленной связи, и могут быть сконфигурированы, например, для отправки и приема сообщений, например, для установления соединения, для подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, например передаче закодированных данных изображения.Both or at least one of the communication interface 22 and the communication interface 28 can be configured as unidirectional communication interfaces, as shown by the arrow for the communication channel 13 in Fig. 1A, pointing from the source device 12 to the destination device 14, or bidirectional communication interfaces, and can be configured, for example, to send and receive messages, for example, to establish a connection, to confirm and exchange any other information related to the communication link and/or data transmission, for example, the transmission of encoded image data.
Декодер 30 может быть выполнен с возможностью приема закодированных данных 21 изображения и предоставления декодированных данных 31 изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основе фиг. 3 или фиг. 5).The decoder 30 may be configured to receive the encoded image data 21 and provide decoded image data 31 or a decoded image 31 (further details will be described below, for example, based on Fig. 3 or Fig. 5).
Постпроцессор 32 устройства-получателя 14 может быть выполнен с возможностью постобработки декодированных данных 31 изображения (также называемых восстановленными данными изображения), например декодированного изображения 31, для получения данных 33 изображения после постобработки, например изображения после постобработки. 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную дискретизацию, или любую другую обработку, например для подготовки декодированных данных 31 изображения для отображения, например с помощью устройства 34 отображения.The post-processor 32 of the receiving device 14 may be configured to post-process the decoded image data 31 (also referred to as reconstructed image data), such as the decoded image 31, to obtain post-processed image data 33, such as the post-processed image 33. The post-processing performed by the post-processing unit 32 may comprise, for example, color format conversion (for example, from YCbCr to RGB), color correction, cropping or resampling, or any other processing, such as for preparing the decoded image data 31 for display, such as by means of the display device 34.
Устройство 34 отображения устройства-получателя 14 может быть выполнено с возможностью приема данных 33 изображения после обработки для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может представлять собой или содержать дисплей любого типа для представления восстановленного изображения, например, интегрированного или внешнего дисплея или монитора. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, дисплеи на микро-LED, жидких кристаллах на кремнии (LCoS), цифровой световой процессор (DLP) или другой дисплей любого типа.The display device 34 of the receiving device 14 can be configured to receive the image data 33 after processing for displaying the image, for example, to a user or a viewer. The display device 34 can be or contain a display of any type for presenting the reconstructed image, for example, an integrated or external display or monitor. The displays can, for example, contain liquid crystal displays (LCD), organic light-emitting diode (OLED) displays, plasma displays, projectors, micro-LED displays, liquid crystals on silicon (LCoS), a digital light processor (DLP) or another display of any type.
Хотя Фиг. 1A иллюстрирует устройство-источник 12 и устройство-получатель 14 как отдельные устройства, варианты осуществления устройств также могут содержать обе или обе функциональные возможности, устройство-источник 12 или соответствующую функциональную возможность и устройство-получатель 14 или соответствующую функциональную возможность. В таких вариантах осуществления устройство-источник 12 или соответствующая функциональная возможность и устройство-получатель 14 или соответствующая функциональная возможность могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although Fig. 1A illustrates the source device 12 and the destination device 14 as separate devices, embodiments of the devices may also comprise both or both functionalities, the source device 12 or the corresponding functionality and the destination device 14 or the corresponding functionality. In such embodiments, the source device 12 or the corresponding functionality and the destination device 14 or the corresponding functionality may be implemented using the same hardware and/or software or using separate hardware and/or software or any combination thereof.
Устройство-источник и/или устройство-получатель могут быть дополнительно реализованы с использованием специального аппаратного и/или программного обеспечения. Например, одно или оба этих устройства могут быть реализованы с использованием специально разработанного аппаратного обеспечения для реализации одной или более из упомянутых выше и ниже функциональных возможностей. В качестве альтернативы или дополнительно одна или более из описанных выше и ниже функциональных возможностей могут быть реализованы с использованием специально разработанного программного обеспечения, которое может выполняться на оборудовании общего назначения, таком как процессоры. Кроме того, также предусмотрены комбинации вышеперечисленного, где устройство-источник и/или устройство-получатель могут быть реализованы с использованием комбинации специально выделенного аппаратного обеспечения для реализации одной или более функций и программного обеспечения для реализации одной или более других функций.The source device and/or the destination device may be further implemented using special hardware and/or software. For example, one or both of these devices may be implemented using specially designed hardware for implementing one or more of the functionalities mentioned above and below. Alternatively or additionally, one or more of the functionalities described above and below may be implemented using specially designed software that may be executed on general-purpose hardware, such as processors. In addition, combinations of the above are also envisaged, where the source device and/or the destination device may be implemented using a combination of specially dedicated hardware for implementing one or more functions and software for implementing one or more other functions.
Как будет очевидно для специального элемента на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве-источнике 12 и/или устройстве-получателе 14, как показано на Фиг. 1A, может варьироваться в зависимости от фактического устройства и применения.As will be apparent from the description of the specific element, the presence and (exact) division of functionality of the various blocks or functions in the source device 12 and/or the destination device 14, as shown in Fig. 1A, may vary depending on the actual device and application.
Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или и кодер 20, и декодер 30 могут быть реализованы через схему обработки, как показано на Фиг. 1B, такую как один или более микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, аппаратное обеспечение, выделенное кодирование видео или любые их комбинации. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных блоков, как обсуждалось в отношении кодера 20 с Фиг. 2 и/или любой другой системы кодера или подсистемы, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных блоков, как обсуждалось в отношении декодера 30 с Фиг. 3 и/или любой другой системы декодера или подсистемы, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, которые будут описаны ниже. Как показано на Фиг. 5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном считываемом компьютером носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг. 1B.Coder20 (for example, video encoder 20) or decoder 30(eg video decoder 30) or both the encoder 20 and the decoder 30 may be implemented via a processing circuit as shown in Fig. 1B, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, dedicated video coding, or any combinations thereof. The encoder 20 may be implemented via a processing circuit 46 to implement various blocks as discussed with respect to the encoder 20 of Fig. 2 and/or any other encoder system or subsystem described herein. The decoder 30 may be implemented via a processing circuit 46 to implement various blocks as discussed with respect to the decoder 30 of Fig. 3 and/or any other decoder system or subsystem described herein. The processing circuit may be configured to perform various operations, which will be described below. As shown in Fig. 5, if the techniques are partially implemented in software, the device may store instructions for the software on a suitable non-transitory computer-readable storage medium and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the video encoder20and video decoder30may be integrated as part of a combined encoder/decoder (CODEC) in a single device, such as shown in Fig. 1B.
Устройство-источник 12 и устройство-получатель 14 могут содержать любое из широкого диапазона устройств, в том числе любые виды портативных или стационарных устройств, например ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые консоли, устройства потоковой передачи видео (например, серверы служб контента или серверы доставки контента), широковещательное приемное устройство, широковещательное передающее устройство или подобное, и могут использовать операционную систему любого типа или обходиться без нее. В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут быть оборудованы для беспроводной связи. Таким образом, устройство-источник 12 и устройство-получатель 14 могут быть устройствами беспроводной связи.The source device 12 and the destination device 14 may comprise any of a wide range of devices, including any type of portable or stationary devices, such as laptops or notebook computers, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, game consoles, video streaming devices (such as content service servers or content delivery servers), a broadcast receiving device, a broadcast transmitting device or the like, and may use any type of operating system or do without it. In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication. Thus, the source device 12 and the destination device 14 may be wireless communication devices.
В некоторых случаях система 10 видеокодирования, проиллюстрированная на Фиг. 1A, является лишь примером, а методы настоящей заявки могут применяться к настройкам видеокодирования (такого как кодирование видео или декодирование видео), которые не обязательно включают в себя передачу каких-либо данных между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются в потоковым образом по сети или подобное. Устройство видеокодирования может кодировать и сохранять данные в память, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняется устройствами, которые связь друг с другом не осуществляют, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.In some cases, the
Для удобства описания здесь описаны варианты осуществления данного изобретения, например, со ссылкой на высокоэффективное кодирование видео (HEVC) или на эталонное программное обеспечение универсального видеокодирования (VVC), стандарт видеокодирования следующего поколения, разрабатываемый объединенной группой сотрудничества по видеокодированию (JCT-VC) экспертной группы по видеокодированию ITU-T (VCEG) и экспертной группы по движущимся изображениям ISO/IEC (MPEG). Специалист в данной области техники поймет, что варианты осуществления данного изобретения не ограничиваются HEVC или VVC.For convenience of description, embodiments of the present invention are described herein, for example, with reference to High Efficiency Video Coding (HEVC) or to the Universal Video Coding (VVC) reference software, a next-generation video coding standard being developed by the Joint Collaborative Video Coding Group (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG). A person skilled in the art will understand that embodiments of the present invention are not limited to HEVC or VVC.
Кодер и способ кодированияEncoder and encoding method
Фиг. 2 показывает блок-схему примерного видеокодера 20, который может быть выполнен с возможностью реализации методов настоящего раскрытия. В примере на Фиг. 2 видеокодер 20 содержит ввод 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 (DPB) декодированных изображений, блок 260 выбора режима, блок 270 энтропийного кодирования и вывод 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 межкадрового предсказания, блок 254 внутрикадрового предсказания и блок 262 разделения. Блок 244 межкадрового предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.Fig. 2 shows a block diagram of an example video encoder 20 that may be configured to implement the techniques of the present disclosure. In the example of Fig. 2, video encoder 20 comprises an input 201 (or input interface 201), a residual calculation unit 204, a
Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут относится к формированию прямого пути прохождения сигнала кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 (DPB) декодированных изображений, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания могут относится к формированию обратного пути прохождения сигнала видеокодера 20, при этом обратный путь прохождения сигнала видеокодера 20 соответствует пути прохождения сигнала декодера (см. видеодекодер 30 на Фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных изображений (DPB) 230, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания также относятся к формированию «встроенного декодера» видеокодера 20.The residual calculation unit 204, the
Изображения и разделение изображений (изображения и блоки)Images and image separation (images and blocks)
Кодер 20 может быть выполнен с возможностью приема, например - через ввод 201, изображения 17 (или данных 17 изображения), например изображения из последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения также могут представлять собой предварительно обработанное изображение 19 (или предварительно обработанные данные 19 изображения). Для простоты нижеследующее описание ссылается на изображение 17. Изображение 17 также может именоваться текущим изображением или изображением, которое подлежит кодированию (в частности, при видеокодировании, чтобы отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущее изображение).The encoder 20 may be configured to receive, for example via the input 201, an image 17 (or image data 17), for example an image from a sequence of images forming a video or a video sequence. The received image or image data may also be a pre-processed image 19 (or pre-processed image data 19). For simplicity, the following description refers to the image 17. The image 17 may also be referred to as the current image or the image to be encoded (in particular, in video encoding, to distinguish the current image from other images, for example previously encoded and/or decoded images of the same video sequence, i.e. a video sequence that also contains the current image).
(Цифровое) изображение является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может упоминаться как пиксель (сокращенная форма элемента изображения) или пэл (picture element, pel). Число выборок в горизонтальном и вертикальном направлении (или оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовые компоненты, т.е. изображение может быть представлено или включать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив красных, зеленых или синих выборок. Однако при видеокодировании каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, которое содержит компоненту яркости, обозначаемую Y (иногда вместо этого также используется L), и две компоненты цветности (цветоразностные компоненты), обозначаемые Cb и Cr. Компонента Y яркости (luminance) (или сокращенно яркость (luma)) представляет яркость (brightness) или интенсивность уровня серого (например, как в полутоновом изображении), в то время как две компоненты Cb и Cr цветности (chrominance) представляют компоненты информации о цветности (chromaticity) или цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости со значениями (Y) выборок яркости и два массива выборок цветности со значениями (Cb и Cr) цветности. Изображения в формате RGB могут быть конвертированы или преобразованы в формат YCbCr и наоборот, процесс также известен как цветовое преобразование или конвертация. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.A (digital) image is or can be viewed as a two-dimensional array or matrix of samples with intensity values. A sample in an array may also be referred to as a pixel (short for picture element) or a pel (picture element). The number of samples in the horizontal and vertical directions (or axes) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent color, i.e. an image can be represented by or include three arrays of samples. In the RBG format or color space, an image contains a corresponding array of red, green, or blue samples. However, in video coding, each pixel is typically represented in a luma and chroma format or color space, such as YCbCr, which contains a luma component denoted by Y (sometimes L is also used instead) and two chroma components (color difference components) denoted by Cb and Cr. The Y component of luminance (or luma for short) represents the brightness or intensity of the gray level (e.g. as in a grayscale image), while the two components of chrominance (Cb and Cr) represent the chromaticity or color information components. Accordingly, an image in YCbCr format contains an array of luma samples with the (Y) values of the luma samples and two arrays of chrominance samples with the (Cb and Cr) values of the chrominance. Images in RGB format can be converted or transformed to YCbCr format and vice versa, a process also known as color conversion or conversion. If the image is monochrome, it may contain only an array of luma samples. Accordingly, an image may be, for example, an array of luma samples in monochrome format or an array of luma samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2 and 4:4:4 color formats.
Варианты осуществления видеокодера 20 могут содержать блок разделения изображения (не показан на Фиг. 2), выполненный с возможностью разделения изображения 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или единицами дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения изображения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами или группами изображений и разделения каждого изображения на соответствующие блоки.Embodiments of video encoder 20 may comprise a picture partitioning unit (not shown in Fig. 2) configured to partition picture 17 into a plurality of (typically non-overlapping) picture blocks 203. These blocks may also be referred to as root blocks, macroblocks (H.264/AVC) or coding tree blocks (CTB) or coding tree units (CTU) (H.265/HEVC and VVC). The picture partitioning unit may be configured to use the same block size for all pictures in a video sequence and a corresponding grid defining the block size, or to vary the block size between pictures or subsets or groups of pictures and to partition each picture into corresponding blocks.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 изображения 17, например одного, нескольких или всех блоков, формирующих изображение 17. Блок 203 изображения также может именоваться текущим блоком изображения или блоком изображения, подлежащим кодированию.In further embodiments, the video encoder may be configured to receive directly a block 203 of the image 17, such as one, several or all of the blocks forming the image 17. The block 203 of the image may also be referred to as the current block of the image or the block of the image to be encoded.
Подобно изображению 17, блок 203 изображения снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, яркость и два массива цветности в случае цветного изображения 17) или любое другое число и/или вид массивов в зависимости от применяемого цветового формата. Число выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, массив дискретных выборок MxN (M-столбец на N-строка) или массив MxN коэффициентов преобразования.Like the image 17, the image block 203 is again or can be considered as a two-dimensional array or matrix of samples with intensity values (sample values), although of a smaller size than the image 17. In other words, the block 203 can contain, for example, one array of samples (for example, a brightness array in the case of a monochrome image 17, or a brightness or chrominance array in the case of a color image) or three arrays of samples (for example, a brightness and two chrominance arrays in the case of a color image 17) or any other number and/or type of arrays depending on the color format used. The number of samples in the horizontal and vertical direction (or axis) of the block 203 determines the size of the block 203. Accordingly, the block can be, for example, an MxN (M-column by N-row) array of discrete samples or an MxN array of transformation coefficients.
Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть выполнены с возможностью кодирования изображения 17 блок за блоком, например кодирование и прогнозирование выполняется для каждого блока 203.The embodiments of the video encoder 20 shown in Fig. 2 may be configured to encode the image 17 block by block, such that encoding and prediction are performed for each block 203.
Варианты осуществления видеокодера 20, как показано на фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием слайсов (также называемых видеослайсами), при этом изображение может быть разделено или кодировано с использованием одного или более слайсов (обычно без перекрытия), и каждый слайс может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, тайлы (tile) (H.265/HEVC и VVC) или брики (bricks) (VVC)).Embodiments of video encoder 20, as shown in Fig. 2, may be further configured to divide and/or encode an image using slices (also referred to as video slices), wherein an image may be divided or encoded using one or more slices (typically without overlapping), and each slice may comprise one or more blocks (e.g., CTUs) or one or more groups of blocks (e.g., tiles (H.265/HEVC and VVC) or bricks (VVC)).
Варианты осуществления видеокодера 20, как показано на фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием групп слайсов/тайлов (также называемых группами тайлов) и/или тайлов (также называемых видеотайлами, в котором изображение может быть разделено или кодировано с использованием одной или более групп слайсов/тайлов (обычно не перекрывающихся), и каждая группа слайсов/тайлов может содержать, например, один или более блоков (например, CTU) или один или более тайлов, при этом каждый тайл, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.Embodiments of video encoder 20, as shown in Fig. 2, may be further configured to divide and/or encode an image using groups of slices/tiles (also called tile groups) and/or tiles (also called video tiles, in which an image may be divided or encoded using one or more groups of slices/tiles (typically non-overlapping), and each group of slices/tiles may contain, for example, one or more blocks (e.g., CTUs) or one or more tiles, where each tile may, for example, have a rectangular shape and may contain one or more blocks (e.g., CTUs), such as full or fractional blocks.
Вычисление остаткаCalculating the remainder
Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также именуемого остатком 205) на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания приведены ниже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборок.The residual calculating unit 204 may be configured to calculate the residual block 205 (also referred to as the residual 205) based on the image block 203 and the prediction block 265 (further details about the prediction block 265 are given below), for example by subtracting the sample values of the prediction block 265 from the sample values of the image block 203, sample by sample (pixel by pixel), to obtain the residual block 205 in the sample domain.
ПреобразованиеTransformation
Блок 206 обработки преобразования может быть выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусного преобразования (DST), к значениям выборок остаточного блока 205, чтобы получить коэффициенты 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также именоваться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.The
Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, определенные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основе определенных ограничений, например коэффициентов масштабирования, являющихся степенью двойки для операций сдвига, битовой глубины коэффициентов преобразования, компромисса между точностью и затратами на реализацию и т. д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например блоком 312 обработки обратного преобразования в видеодекодере 30), и соответствующие коэффициенты масштабирования для прямого преобразования, например блоком 206 обработки преобразования, могут быть заданы надлежащим образом в кодере 20.The
Варианты осуществления видеокодера 20 (соответственно блок 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например типа преобразования или преобразований, например, непосредственно или кодированы или сжаты через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.Embodiments of video encoder 20 (respectively transform processing unit 206) may be configured to output transform parameters, such as the type of transform or transforms, for example, directly or encoded or compressed via
КвантованиеQuantization
Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.The
Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, представлять собой индекс для предопределенного набора применимых размеров шагов квантования. Например, небольшие параметры квантования могут соответствовать тонкому квантованию (небольшим размерам шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, а соответствующее и/или обратное деквантование, например, блоком 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления в соответствии с некоторыми стандартами, например HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации фиксированной точки уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, которая могла быть изменена из-за масштабирования, используемого в аппроксимации фиксированной точки упомянутого уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы настроенные таблицы квантования могут использоваться и сигнализироваться от кодера к декодеру, например в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шагов квантования.The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be rounded to an m-bit transform coefficient during quantization, where n is greater than m. The degree of quantization may be changed by adjusting the quantization parameter (QP). For example, for scalar quantization, a different scaling may be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size may be specified by the quantization parameter (QP). The quantization parameter may, for example, be an index for a predetermined set of applicable quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to coarse quantization (large quantization step sizes), or vice versa. Quantization may include division by a quantization step size, and the corresponding and/or inverse dequantization, for example by the
Варианты осуществления видеокодера 20 (соответственно блок 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или кодированных через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.Embodiments of video encoder 20 (respectively quantization unit 208) may be configured to output quantization parameters (QP), for example directly or encoded via
Обратное квантованиеInverse quantization
Блок 210 обратного квантования может быть выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения обратной схемы квантования, применяемой блоком 208 квантования, на основе или с использованием того же самого квантования размер шага в качестве блока 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя они обычно не идентичны коэффициентам преобразования из-за потери при квантовании - коэффициентам 207 преобразования.The
Обратное преобразованиеInverse transformation
Блок 212 обработки обратного преобразования может быть выполнен с возможностью применения обратного преобразования преобразования, примененного блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусоидального преобразования (DST) или других обратных преобразований, для получения восстановленного остаточного блока 213 (или соответствующие деквантованные коэффициенты 213) в области выборки. Восстановленный остаточный блок 213 также может именоваться блоком 213 преобразования.The inverse
ВосстановлениеRecovery
Блок 214 восстановления (например, сумматор или сумматор 214) может быть выполнен с возможностью добавления блока 213 преобразования (т. е. восстановленного остаточного блока 213) к блоку 265 предсказания для получения восстановленного блока 215 в области выборки, например, путем добавления - выборка за выборкой - значения выборки восстановленного остаточного блока 213 и значения выборки блока 265 предсказания.The reconstruction unit 214 (e.g., the adder or summer 214) may be configured to add the transform unit 213 (i.e., the reconstructed residual block 213) to the prediction unit 265 to obtain the reconstructed block 215 in the sample domain, for example by adding, sample by sample, a sample value of the reconstructed residual block 213 and a sample value of the prediction unit 265.
ФильтрацияFiltration
Блок 220 контурного фильтра (или сокращенно «контурный фильтр» 220) может быть выполнен с возможностью фильтрации восстановленного блока 215 для получения отфильтрованного блока 221 или, в общем случае, для фильтрации восстановленных выборок для получения отфильтрованных значений выборок. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением выборки (SAO) или один или более других фильтров, например, адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любую их комбинацию. В примере блок 220 контурного фильтра может содержать фильтр устранения блочности, SAO и ALF. Порядок процесса фильтрации может быть фильтром устранения блочности, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивный преобразователь в цикле). Этот процесс выполняется перед устранением блочности. В другом примере процесс фильтра устранения блочности может также применяться к внутренним краям субблоков, например, к краям аффинных субблоков, краям субблоков ATMVP, краям преобразования субблока (SBT) и краям внутреннего подраздела (ISP).The loop filter unit 220 (or shortened "loop filter" 220) may be configured to filter the reconstructed block 215 to obtain the filtered block 221 or, in general, to filter the reconstructed samples to obtain filtered sample values. The loop filter unit, for example, is configured to smooth pixel transitions or otherwise improve the quality of the video. The
Чтобы эффективно удалить блокирующие артефакты, возникающие для больших «блоков», VVC использует фильтр устранения блочности с большим количеством отводов. Здесь термин «блоки» используется в очень общем смысле и может относиться к «блоку преобразования (TB), блоку предсказания (PB) или блоку единицы кодирования (CU)». Фильтр с большим количеством отводов применяется как к компонентам яркости, так и к компонентам цветности. Более длинный отводной фильтр для компонентов яркости изменяет максимум 7 выборок для каждой строки выборок, перпендикулярных и смежных с краем, и применяется к блокам размером >=32 выборок в направлении устранения блочности, т. е. для вертикальных краев блок ширина должна быть >=32 выборки, а для горизонтальных краев высота блока должна быть >=32 выборки.To effectively remove blocking artifacts that occur for large "blocks", VVC uses a deblocking filter with a larger number of taps. Here, the term "blocks" is used in a very general sense and can refer to a "transform block (TB), prediction block (PB), or coding unit (CU) block". The filter with a larger number of taps is applied to both the luma and chroma components. The longer tap filter for the luma components modifies a maximum of 7 samples for each row of samples perpendicular and adjacent to the edge, and is applied to blocks of size >=32 samples in the deblocking direction, i.e., for vertical edges, the block width must be >=32 samples, and for horizontal edges, the block height must be >=32 samples.
Фильтр цветности с большим количеством отводов применяется к блокам цветности, когда оба блока, смежные с данным краем, имеют размер >=8 выборок, и он изменяет максимум три выборки по обе стороны от края. Поэтому для вертикальных краев ширина блока обоих блоков, примыкающих к краю, должна быть >=8 выборок, а для горизонтальных краев высота блока обоих блоков, примыкающих к краю, должна быть >=8 выборок. Хотя блок 220 контурного фильтра показан на Фиг. 2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может именоваться отфильтрованным восстановленным блоком 221.The chroma filter with a large number of taps is applied to chroma blocks when both blocks adjacent to a given edge have a size >=8 samples, and it changes a maximum of three samples on both sides of the edge. Therefore, for vertical edges, the block width of both blocks adjacent to the edge must be >=8 samples, and for horizontal edges, the block height of both blocks adjacent to the edge must be >=8 samples. Although the
Варианты осуществления видеокодера 20 (соответственно блок 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как параметры фильтра SAO или параметры фильтра ALF или параметры LMCS), например, напрямую или кодированные с помощью блока 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.Embodiments of video encoder 20 (respectively loop filter unit 220) may be configured to output loop filter parameters (such as SAO filter parameters or ALF filter parameters or LMCS parameters), for example, directly or encoded by
Буфер декодированных изображенийDecoded image buffer
Буфер 230 декодированных изображений (DPB) может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных изображений может быть выполнен с возможностью сохранения одного или более фильтрованных блоков 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью сохранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, того же самого текущего изображения или разных изображений, например ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, т.е. декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового предсказания. Буфер 230 декодированных изображений (DPB) также может быть выполнен с возможностью сохранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.The decoded picture buffer (DPB) 230 may be a memory that stores reference pictures or, in general, reference picture data for encoding video data by the video encoder 20. The DPB 230 may be formed by any of a variety of memory devices, such as a dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM) or other types of memory devices. The decoded picture buffer (DPB) 230 may be configured to store one or more filtered blocks 221. The decoded picture buffer 230 may be further configured to store other previously filtered blocks, such as previously reconstructed and filtered blocks 221, of the same current picture or different pictures, such as previously reconstructed pictures, and may provide complete previously reconstructed, i.e. decoded, pictures (and corresponding reference blocks and samples) and/or partially reconstructed current picture (and corresponding reference blocks and samples), for example, for inter-picture prediction. Decoded picture buffer (DPB) 230 can also be configured to store one or more unfiltered reconstructed blocks 215 or, in general, unfiltered reconstructed samples, for example if reconstructed block 215 is not filtered by
Выбор режима (разделение и предсказание)Mode selection (separation and prediction)
Блок 260 выбора режима содержит блок 262 разделения, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания и выполнен с возможностью приема или получения исходных данных изображения, например исходного блока 203 (текущего блока 203 текущего изображения 17), и восстановленных данных изображения, например отфильтрованных и/или нефильтрованных восстановленных выборок или блоков того же самого (текущего) изображения и/или из одного или множества ранее декодированных изображений, например из буфера 230 декодированных изображений или других буферов (например, линейного (строкового) буфера, не показан). Данные восстановленного изображения используются в качестве данных опорного изображения для предсказания, например межкадрового предсказания или внутрикадрового предсказания, чтобы получить блок 265 предсказания или предиктор 265.The
Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутреннего или межкадрового предсказания) и формирования соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.The
Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются блоком 260 выбора режима или доступны для него), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба фактора. Блок 260 выбора режима может быть выполнен с возможностью определения режима разделения и предсказания на основе оптимизации скорость/искажение (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение при определенной скорости. Такие термины, как «лучший», «минимальный», «оптимальный» и т. д. в этом контексте не обязательно относятся к всеобъемлющему «лучшему», «минимуму», «оптимальному» и т. д., но также могут относиться к выполнению критерия выбора или прекращения, например когда значение превышает или падает ниже порогового значения, или других ограничений, потенциально ведущих к «субоптимальному выбору», но уменьшающих сложность и время обработки.Embodiments of the
Другими словами, блок 262 разделения может быть выполнен с возможностью разделения изображения из видеопоследовательности на последовательность единиц дерева кодирования (CTU), а CTU 203 может быть дополнительно разделен на более мелкие блочные разделы или субблоки (которые снова образуют блоков), например, итеративно с использованием разделения на квадранты (QT), двоичного разделения (BT) или разделения на троичное дерево (TT) или любого их сочетания, и для выполнения, например, предсказания для каждого из разделений блока или субблоков, при этом выбор режима содержит выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разделений или субблоков блока.In other words, the
Далее более подробно поясняется разделение (например, посредством блока 260 разделения) и обработка предсказания (посредством блока 244 межкадрового предсказания и блока 254 внутрикадрового предсказания), выполняемые примерным видеокодером 20.The following explains in more detail the separation (e.g., by means of the separation unit 260) and the prediction processing (by means of the
Разделен иеSeparation
Блок 262 разделения может быть выполнен с возможностью разделения изображения из видеопоследовательности на последовательность единиц дерева кодирования (CTU), и блок 262 разделения может разделять (или разделять) единицу дерева кодирования (CTU) 203 на более мелкие части, например более мелкие блоки квадратного или прямоугольного размера. Для изображения, которое имеет три массива выборок, CTU состоит из блока N×N выборок яркости вместе с двумя соответствующими блоками выборок цветности. Максимально допустимый размер блока яркости в CTU указан равным 128×128 при разработке универсального кодирования видео (VVC), но в будущем он может быть указан как значение, отличное от 128×128, например, 256×256. CTU изображения могут быть кластеризованы/сгруппированы в виде групп слайсов/тайлов, тайлов или бриков. Тайл покрывает прямоугольную область изображения, и тайл может быть разделен на один или более бриков. Брик состоит из нескольких рядов CTU внутри тайла. Тайл, который не разделен на несколько бриков, может называться бриком. Однако брик является настоящим подмножеством тайла и не называется тайлом. В VVC поддерживаются два режима групп тайлов, а именно режим растрового сканирования слайса/группы тайлов и режим прямоугольного слайса. В режиме растрового сканирования группы тайлов группа слайсов/тайлов содержит последовательность тайлов в тайловом растровом сканировании изображения. В режиме прямоугольного слайса слайс содержит ряд бриков изображения, которые совместно образуют прямоугольную область изображения. Брики прямоугольного слайса располагаются в порядке бриков растрового сканирования слайса. Эти меньшие блоки (которые также могут именоваться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например на корневом уровне 0 дерева (уровне 0 иерархии, глубине 0), может быть рекурсивно разделен, например разделен на два или более блоков следующего более низкого уровня дерева, например узлов на уровне 1 дерева (уровне 1 иерархии, глубине 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например уровня 2 дерева (уровня 2 иерархии, глубины 2), и т. д. пока разделение не будет завершено, например из-за выполнения критерия прекращения, например достижения максимальной глубины дерева или минимального размера блока. Блоки, которые далее не разделяются, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), а дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).The
Например, единица дерева кодирования (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок кодирования (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодирования является разделением.For example, a coding tree unit (CTU) may be or contain a CTB of luma samples, two corresponding CTBs of chroma samples of an image that has three arrays of samples, or a CTB of samples of a monochrome image or an image that is encoded using three separate color planes and syntax structures used to encode the samples. Accordingly, a coding tree block (CTB) may be an N×N block of samples for some value of N, so that dividing a component into a CTB is a split. A coding unit (CU) may be or contain a coding block of luma samples, two corresponding coding blocks of chroma samples of an image that has three arrays of samples, or a coding block of samples of a monochrome image or an image that is encoded using three separate color planes and syntax structures used to encode the samples. Accordingly, a coding block (CB) may be an M×N block of samples for some values of M and N, so that dividing a CTB into coding blocks is a split.
В вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разделена на CU с использованием структуры квадродерева, обозначенной в качества дерева кодирования. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания, принимается на уровне конечного CU. Каждая листовая CU может быть дополнительно разделена на одну, две или четыре PU в соответствии с типом разделения PU. Внутри одной PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания, основанного на типе разделения PU, листовая CU может быть разделена на единицы преобразования (TU) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU.In embodiments such as those according to HEVC, a coding tree unit (CTU) may be divided into CUs using a quadtree structure designated as a coding tree. The decision on whether to code an image region using inter-frame (temporal) or intra-frame (spatial) prediction is made at the leaf CU level. Each leaf CU may be further divided into one, two or four PUs according to a PU division type. Within one PU, the same prediction process is applied, and the relevant information is transmitted to a PU-based decoder. After obtaining a residual block by applying a prediction process based on a PU division type, the leaf CU may be divided into transform units (TUs) according to another quadtree structure similar to the coding tree for the CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом кодирования видео, который упоминается как универсальное кодирование видео (VVC), комбинированное вложенное многотипное дерево квадродерева с использованием структуры сегментации двоичных и троичных разделений, например, используется для разделения единица дерева кодирования. В структуре дерева кодирования в единице дерева кодирования CU может иметь либо квадратную, либо прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется четверичным деревом. Затем листовые узлы четвертичного дерева могут быть дополнительно разделены многотипной древовидной структурой. Существует четыре типа разделения в многотипной древовидной структуре: вертикальное двоичное разделение (SPLIT_BT_VER), горизонтальное двоичное разделение (SPLIT_BT_HOR), вертикальное троичное разделение (SPLIT_TT_VER) и горизонтальное троичное разделение (SPLIT_TT_HOR). Листовые узлы многотипного дерева называются единицами кодирования (CU), и, если CU не слишком велика для максимальной длины преобразования, эта сегментация используется для прогнозирования и обработки преобразования без какого-либо дальнейшего разделения. Это означает, что в большинстве случаев CU, PU и TU имеют одинаковый размер блока в дереве квадрантов с вложенной блочной структурой многотипного древовидного кодирования. Исключение возникает, когда максимальная поддерживаемая длина преобразования меньше, чем ширина или высота цветового компонента CU. VVC развивает уникальный механизм сигнализации разделения информации о разделении в дереве квадрантов с вложенной многотипной древовидной структурой дерева кодирования. В механизме сигнализации единица дерева кодирования (CTU) рассматривается как корень четвертичного дерева и сначала разделяется четвертичной древовидной структурой. Каждый листовой узел четвертичного дерева (когда он достаточно велик, чтобы позволить это) затем дополнительно разделяется многотипной древовидной структурой. В многотипной древовидной структуре сигнализируется первый флаг (mtt_split_cu_flag), указывающий, разделен ли узел дальше; когда узел дополнительно разделяется, сигнализируется второй флаг (mtt_split_cu_vertical_flag), указывающий направление разделения, а затем сигнализируется третий флаг (mtt_split_cu_binary_flag), указывающий, является ли разделение двоичным или тройным разделением. Основываясь на значениях mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag, режим разрезания многотипного дерева (MttSplitMode) CU может быть получен декодером на основе предопределенного правила или таблицы. Следует отметить, что для определенного дизайна, например, для схемы конвейерной обработки с блоками яркости размером 64×64 и блоками цветности размером 32×32 в аппаратных декодерах VVC, разделение TT запрещено, когда ширина или высота блока кодирования яркости больше 64, т.к. показано на рисунке 6. Разделение TT также запрещено, когда ширина или высота блока кодирования цветности больше 32. Схема конвейерной обработки разделит изображение на блоки данных виртуального конвейера s (VPDU), которые определяются как неперекрывающиеся блоки изображения. В аппаратных декодерах последовательные VPDU обрабатываются несколькими этапами конвейера одновременно. Размер VPDU примерно пропорционален размеру буфера на большинстве этапов конвейера, поэтому важно, чтобы размер VPDU был небольшим. В большинстве аппаратных декодеров размер VPDU может быть установлен равным максимальному размеру блока преобразования (TB). Однако в VVC разделение троичного дерева (TT) и двоичного дерева (BT) может привести к увеличению размера VPDU.In embodiments, for example, according to the latest video coding standard currently under development, which is referred to as universal video coding (VVC), a combined nested multi-type quadtree tree using a segmentation structure of binary and ternary partitions, for example, is used to partition a coding tree unit. In the coding tree structure, in the coding tree unit, the CU may have either a square or a rectangular shape. For example, the coding tree unit (CTU) is first partitioned by a quaternary tree. Then, the leaf nodes of the quaternary tree can be further partitioned by a multi-type tree structure. There are four types of partitioning in the multi-type tree structure: vertical binary partitioning (SPLIT_BT_VER), horizontal binary partitioning (SPLIT_BT_HOR), vertical ternary partitioning (SPLIT_TT_VER), and horizontal ternary partitioning (SPLIT_TT_HOR). The leaf nodes of the multi-type tree are called coding units (CUs), and unless the CU is too large for the maximum transform length, this segmentation is used to predict and process the transform without any further partitioning. This means that in most cases, CUs, PUs, and TUs have the same block size in the multi-type tree nested block structure quadtree. An exception occurs when the maximum supported transform length is less than the width or height of the color component of the CU. VVC develops a unique mechanism for signaling the partitioning of the partitioning information in the multi-type tree nested block structure quadtree. In the signaling mechanism, the coding tree unit (CTU) is considered as the root of the quaternary tree and is first partitioned by the quaternary tree structure. Each leaf node of the quaternary tree (when it is large enough to allow it) is then further partitioned by the multi-type tree structure. In the multi-type tree structure, the first flag (mtt_split_cu_flag) indicating whether the node is further split is signaled; when the node is further split, the second flag (mtt_split_cu_vertical_flag) indicating the split direction is signaled, and then the third flag (mtt_split_cu_binary_flag) indicating whether the split is binary or triple split is signaled. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree splitting mode (MttSplitMode) of the CU can be obtained by the decoder based on a predefined rule or table. It should be noted that for a certain design, such as a pipeline processing scheme with 64×64 luma blocks and 32×32 chroma blocks in VVC hardware decoders, TT splitting is prohibited when the width or height of the luma coding block is greater than 64, since shown in Figure 6. TT splitting is also prohibited when the width or height of the chroma coding block is greater than 32. The pipeline processing scheme will split the image into virtual pipeline data units (VPDUs), which are defined as non-overlapping image blocks. In hardware decoders, consecutive VPDUs are processed by several pipeline stages simultaneously. The VPDU size is roughly proportional to the buffer size in most pipeline stages, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be set equal to the maximum transform block (TB) size. However, in VVC, ternary tree (TT) and binary tree (BT) splitting can result in larger VPDUs.
Кроме того, следует отметить, что, когда часть блока узла дерева превышает нижнюю или правую границу изображения, блок узла дерева принудительно разделяется до тех пор, пока все дискретные выборки каждой кодированной CU не окажутся внутри границ изображения.Furthermore, it should be noted that when a portion of a tree node block exceeds the lower or right boundary of the image, the tree node block is forcibly split until all discrete samples of each coded CU are within the image boundaries.
В качестве примера инструмент внутрикадровых-подразделений (Intra Sub-Partitions (ISP)) может разделять блоки яркости с внутрикадровым предсказанием по вертикали или горизонтали на 2 или 4 подразделения в зависимости от размера блока.As an example, the Intra Sub-Partitions (ISP) tool can divide intra-predicted luminance blocks vertically or horizontally into 2 or 4 subdivisions depending on the block size.
В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разделения, описанных в данном документе.In one example,
Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, предопределенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутрикадрового предсказания и/или режимы межкадрового предсказания.As described above, video encoder 20 is configured to determine or select the best or optimal prediction mode from a set of (e.g., predetermined) prediction modes. The set of prediction modes may comprise, for example, intra-frame prediction modes and/or inter-frame prediction modes.
Внутрикадровое предсказаниеIntraframe prediction
Набор режимов внутрикадрового предсказания может содержать 35 различных режимов внутрикадрового предсказания, например ненаправленные режимы, такие как режим DC (или среднего) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или среднего) и планарный режим, или направленные режимы, например, как определены для VVC. Например, несколько обычных режимов углового внутрикадрового предсказания адаптивно заменяются режимами широкоугольного внутрикадрового предсказания для неквадратных блоков, например, как определено в VVC. В качестве другого примера, чтобы избежать операций деления для DC-предсказания, только более длинная сторона используется для вычисления среднего значения для неквадратных блоков. Кроме того, результаты внутрикадрового предсказания планарного режима могут быть дополнительно изменены с помощью способа комбинации внутрикадрового предсказания, зависящего от положения (PDPC).The set of intra-frame prediction modes may comprise 35 different intra-frame prediction modes, such as non-directional modes such as the DC (or average) mode and the planar mode, or directional modes such as defined in HEVC, or may comprise 67 different intra-frame prediction modes, such as non-directional modes such as the DC (or average) mode and the planar mode, or directional modes such as defined for VVC. For example, several conventional angular intra-frame prediction modes are adaptively replaced by wide-angle intra-frame prediction modes for non-square blocks, such as defined in VVC. As another example, in order to avoid division operations for DC prediction, only the longer side is used to calculate the average value for non-square blocks. In addition, the intra-frame prediction results of the planar mode may be further modified using the position-dependent intra-frame prediction combination (PDPC) method.
Блок 254 внутрикадрового предсказания выполнен с возможностью использования восстановленных дискретных выборок соседних блоков одного и того же текущего изображения для формирования блока 265 внутрикадрового предсказания согласно режиму внутрикадрового предсказания набора режимов внутрикадрового предсказания.The
Блок 254 внутрикадрового предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутрикадрового предсказания (или, в общем, информации, указывающей выбранный режим внутрикадрового предсказания для блока) в блок 270 энтропийного кодирования в форме синтаксического элемента 266 для включения в кодированные данные 21 изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.The intra-frame prediction unit 254 (or, in general, the mode selection unit 260) is further configured to output the intra-frame prediction parameters (or, in general, information indicating the selected intra-frame prediction mode for the block) to the
Межкадровое предсказаниеInterframe prediction
Набор (или возможно) режимы межкадрового предсказания зависит от доступных опорных изображений (т.е. предыдущим по меньшей мере частично декодированных изображений, например, хранится в DBP 230) и других параметрах межкадрового предсказания, например, используется ли все опорное изображение или только часть, например, область поиска окна вокруг области текущего блока, опорного изображения для поиска наилучшего соответствия опорного блока, и/или, например, применяются ли интерполяции пикселей, например, половина/полу-пиксель, четверть пикселя и/или интерполяция 1/16 пикселя, или нет.The set (or possible) of inter-prediction modes depends on the available reference pictures (i.e. previously at least partially decoded pictures, e.g. stored in DBP 230) and other inter-prediction parameters, e.g. whether the entire reference picture or only a part, e.g. a window search area around the area of the current block, of the reference picture is used to find the best match of the reference block, and/or e.g. whether pixel interpolations, e.g. half/half-pixel, quarter-pixel and/or 1/16 pixel interpolation, are applied or not.
В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска (skip mode), прямой режим (direct mode) и/или другой режим межкадрового предсказания.In addition to the above prediction modes, skip mode, direct mode and/or other inter-frame prediction mode may be used.
Например, расширенное прогнозирование слияния, список кандидатов на слияние в таком режиме создается путем включения следующих пяти типов кандидатов по порядку: Пространственный MVP из соседних пространственных CU, Временной MVP из совместно расположенных CU, MVP на основе истории из таблицы FIFO, Парный средний MVP и нулевые MV. И уточнение вектора движения стороны декодера на основе двустороннего согласования (DMVR) может применяться для повышения точности MV режима слияния. Режим слияния с MVD (MMVD), который исходит из режима слияния с различиями векторов движения. Флаг MMVD сигнализируется сразу после отправки флага пропуска и флага слияния, чтобы указать, используется ли режим MMVD для CU. И может применяться схема адаптивного разрешения вектора движения (AMVR) на уровне CU. AMVR позволяет кодировать MVD для CU с разной точностью. В зависимости от режима прогнозирования для текущего CU можно адаптивно выбирать MVD текущего CU. Когда CU кодируется в режиме слияния, режим комбинированного внешнего/внутрикадрового предсказания (CIIP) может применяться к текущей CU. Взвешенное усреднение сигналов внешнего и внутрикадрового предсказания выполняется для получения предсказания CIIP. Предсказание с компенсацией аффинного движения, поле аффинного движения блока описывается информацией о движении двух векторов движения контрольных точек (4 параметра) или трех векторов движения контрольных точек (6 параметров). Предсказание временного вектора движения на основе субблока (SbTMVP), которое аналогично предсказанию временного вектора движения (TMVP) в HEVC, но предсказывает векторы движения субъединиц CU в пределах текущей CU. Двунаправленный оптический поток (BDOF), ранее называемый BIO, представляет собой более простую версию, требующую гораздо меньше вычислений, особенно с точки зрения количества умножений и размера множителя. Режим треугольного разделения, в таком режиме CU равномерно делится на два треугольных раздела, используя либо диагональное разделение, либо антидиагональное разделение. Кроме того, режим двойного предсказания расширен за пределы простого усреднения, чтобы обеспечить взвешенное усреднение двух сигналов предсказания.For example, in the advanced merge prediction mode, the merge candidate list in this mode is constructed by including the following five types of candidates in order: Spatial MVP from neighboring spatial CUs, Temporal MVP from co-located CUs, History-based MVP from the FIFO table, Pairwise average MVP, and zero MVs. And the decoder-side motion vector refinement based on bilateral agreement (DMVR) can be applied to improve the MV accuracy of the merge mode. The MVD fusion mode (MMVD) comes from the motion vector difference fusion mode. The MMVD flag is signaled immediately after sending the skip flag and the merge flag to indicate whether the MMVD mode is used for the CU. And the adaptive motion vector resolution (AMVR) scheme at the CU level can be applied. AMVR allows the MVD of the CU to be encoded with different accuracy. Depending on the prediction mode for the current CU, the MVD of the current CU can be adaptively selected. When a CU is encoded in fusion mode, the combined inter/intra prediction (CIIP) mode can be applied to the current CU. A weighted averaging of the inter and intra prediction signals is performed to obtain the CIIP prediction. Affine motion compensation prediction, the affine motion field of a block is described by the motion information of two checkpoint motion vectors (4 parameters) or three checkpoint motion vectors (6 parameters). Sub-block-based temporal motion vector prediction (SbTMVP), which is similar to temporal motion vector prediction (TMVP) in HEVC, but predicts the motion vectors of CU subunits within the current CU. Bidirectional optical flow (BDOF), previously called BIO, is a simpler version that requires much less computation, especially in terms of the number of multiplications and the multiplier size. Triangular partition mode, in this mode, the CU is uniformly divided into two triangular partitions using either diagonal partition or anti-diagonal partition. In addition, the dual prediction mode is extended beyond simple averaging to provide a weighted averaging of two prediction signals.
Блок 244 межкадрового предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба на Фиг. 2 не показаны). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 17) и декодированного изображения 231, или по меньшей мере одного или множества ранее восстановленных блоков, например восстановленных блоков одного или множества других/отличных ранее декодированных изображений 231, для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.The
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из упомянутого множества опорных блоков одинаковых или разных изображений из множества других изображений и обеспечения опорного изображения (или индекса опорного изображения) и/или смещения (пространственного смещения) между позицией (координатами x, y) опорного блока и позицией текущего блока в качестве параметров межкадрового предсказания в блок оценки движения. Это смещение также называется вектором движения (MV).The encoder 20 may, for example, be configured to select a reference block from said plurality of reference blocks of the same or different images from a plurality of other images and to provide the reference image (or reference image index) and/or an offset (spatial offset) between the position (x, y coordinates) of the reference block and the position of the current block as inter-frame prediction parameters to the motion estimation block. This offset is also called a motion vector (MV).
Блок компенсации движения может быть выполнен с возможностью получения, например, приема параметра межкадрового предсказания и для выполнения межкадрового предсказания на основе или с использованием параметра межкадрового предсказания для получения блока 265 межкадрового предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя получение или формирование блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно с выполнением интерполяций с точностью до субпикселя. Интерполяционная фильтрация может формировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая число блоков предсказания-кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может определить местоположение блока предсказания, на который указывает вектор движения, в одном из списков опорных изображений.The motion compensation unit may be configured to receive, for example, an inter-prediction parameter and to perform inter-prediction based on or using the inter-prediction parameter to obtain the inter-prediction block 265. The motion compensation performed by the motion compensation unit may include receiving or generating a prediction block based on a motion vector/block determined by motion estimation, possibly performing interpolations with sub-pixel accuracy. The interpolation filtering may generate additional pixel samples from known pixel samples, thus potentially increasing the number of candidate prediction blocks that can be used to code the image block. After receiving the motion vector for the PU of the current image block, the motion compensation unit may determine the location of the prediction block pointed to by the motion vector in one of the reference image lists.
Блок компенсации движения может также формировать синтаксические элементы, связанные с блоками и видеослайсами, для использования видеодекодером 30 при декодировании блоков изображения видеослайса. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут формироваться или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.The motion compensation unit may also generate syntax elements associated with blocks and video slices for use by the video decoder 30 when decoding image blocks of a video slice. In addition to or as an alternative to slices and corresponding syntax elements, tile groups and/or tiles and corresponding syntax elements may be generated or used.
Энтропийное кодированиеEntropy coding
Блок 270 энтропийного кодирования может быть выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстного кодирования), адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с разделением вероятностных интервалов (PIPE) или другой методологии или метода энтропийного кодирования) или обхода (без сжатия) квантованных коэффициентов 209, параметров межкадрового предсказания, параметров внутрикадрового предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения кодированных данных 21 изображения, которые могут быть выведены через выход 272, например, в форме кодированного битового потока 21, так что, например, видеодекодер 30 может получать и использовать параметры для декодирования. Битовый поток может, например, иметь форму, как указано дополнительно на фиг. 16 ниже. Таким образом, варианты осуществления, описанные в связи с этой фигурой, считаются включенными также в битовый поток 21, описанный здесь. Кроме того, любая структура битового потока, упомянутого здесь, может быть предоставлена как битовый поток 21 в смысле этого варианта осуществления. Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.The
Другие изменения в структуре видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.Other changes in the structure of the video encoder 20 may be used to encode the video stream. For example, the encoder 20, which is not based on a transform, may quantize the residual signal directly without the
Декодер и способ декодированияDecoder and decoding method
Фиг. 3 показывает пример видеодекодера 30, который может быть выполнен с возможностью реализации методов настоящего раскрытия. Видеодекодер 30 может быть выполнен с возможностью приема закодированных данных 21 изображения (например, закодированного битового потока 21), например, закодированных кодером 20, для получения декодированного изображения 331. Кодированные данные изображения или битовый поток содержит информацию для декодирования кодированных данных изображения, например данных, которые представляют блоки изображения кодированного видеослайса (и/или тайлов или групп тайлов) и связанные синтаксические элементы.Fig. 3 shows an example of a video decoder 30 that may be configured to implement the techniques of the present disclosure. The video decoder 30 may be configured to receive encoded image data 21 (e.g., encoded bitstream 21), such as encoded by the encoder 20, to obtain a decoded image 331. The encoded image data or bitstream comprises information for decoding the encoded image data, such as data that represents image blocks of a coded video slice (and/or tiles or groups of tiles) and associated syntax elements.
В примере на Фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 (DPB) декодированных изображений, блок 360 применения режима, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 100 на Фиг. 2.In the example of Fig. 3, decoder 30 comprises an
Как объяснялось в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных изображений (DPB) 230, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания также упоминаются как формирующий «встроенный декодер» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функции блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функции блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функции блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функции контурному фильтру 220, а буфер 330 декодированных изображений может быть идентичен по функции буферу 230 декодированных изображений. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применимы соответственно и к соответствующим блокам и функциям видеодекодера 30.As explained with respect to the encoder 20, the
Энтропийное декодированиеEntropy Decoding
Блок 304 энтропийного декодирования может быть выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем случае, кодированных данных 21 изображения) и выполнения, например, энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования. (не показано на фиг. 3), например, любой или все параметры межкадрового предсказания (например, индекс опорного изображения и вектор движения), параметр внутрикадрового предсказания (например, режим или индекс внутрикадрового предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра и /или другие синтаксические элементы. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров межкадрового предсказания, параметра внутрикадрового предсказания и/или других синтаксических элементов блоку 360 применения режима и других параметров другим блокам декодера 30. Видеодекодер 30 может принимать синтаксические элементы на уровне видеослайса и/или уровне видеоблока. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут приниматься и/или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.The
Обратное квантованиеInverse quantization
Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из кодированных данных 21 изображения (например, посредством синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) и применения, на основе параметров квантования, обратного квантования в отношении декодированным квантованных коэффициентов 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеослайсе (или тайле или группе тайлов), для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена.The
Обратное преобразованиеInverse transformation
Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также именуемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для того, чтобы получить восстановленные остаточные блоки 213 в области выборок. Восстановленные остаточные блоки 213 также могут именоваться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое подлежит применению к деквантованным коэффициентам 311.The inverse
ВосстановлениеRecovery
Блок 314 восстановления (например, блок сложения или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания, чтобы получить восстановленный блок 315 в области выборок, например посредством сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.The reconstruction unit 314 (for example, the addition unit or adder 314) may be configured to add the reconstructed residual block 313 with the prediction unit 365 to obtain the reconstructed block 315 in the sample domain, for example by adding the sample values of the reconstructed residual block 313 and the sample values of the prediction unit 365.
ФильтрацияFiltration
Блок 320 контурного фильтра (либо в цикле кодирования, либо после цикла кодирования) может быть выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением выборки (SAO) или один или более других фильтров, например, адаптивный контурный фильтр (ALF), фильтр подавления шума ( NSF) или любую их комбинацию. В примере блок 220 контурного фильтра может содержать фильтр устранения блочности, SAO-фильтр и ALF-фильтр. Порядок процесса фильтрации может быть фильтром устранения блочности. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивный преобразователь в цикле). Этот процесс выполняется перед устранением блочности. В другом примере процесс фильтра устранения блочности может также применяться к внутренним краям субблоков, например, к краям аффинных субблоков, краям субблоков ATMVP, краям преобразования субблока (SBT) и краям внутреннего подраздела (ISP). Хотя блок 320 контурного фильтра показан на Фиг. 3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.The loop filter unit 320 (either in the encoding loop or after the encoding loop) can be configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve the quality of the video. The
JVET-P0080 и JVET-O0630 предлагают новый внутриконтурный фильтр, называемый межкомпонентным фильтром ALF, который также упоминается здесь как CC-ALF или CCALF. CC-ALF работает как часть процесса адаптивной контурный фильтрации и использует значения выборок яркости для уточнения каждого компонента цветности (т.е. компонента Cr или Cb, например, первый компонент цветности представляет собой именно компонент Cb, а второй компонент цветности представляет собой именно компонент Cr). CC-ALF работает путем применения ромбовидного фильтра к компоненту яркости для каждой выборки цветности компонента цветности, а затем выходное отфильтрованное значение затем используется в качестве коррекции для вывода процесса цветности ALF.The JVET-P0080 and JVET-O0630 offer a new in-loop filter called the inter-component ALF filter, which is also referred to here as CC-ALF or CCALF. CC-ALF operates as part of the adaptive loop filtering process and uses the luminance sample values to refine each chroma component (i.e. the Cr or Cb component, for example, the first chroma component is precisely the Cb component and the second chroma component is precisely the Cr component). CC-ALF operates by applying a diamond-shaped filter to the luminance component for each chroma sample of the chroma component, and then the filtered output value is then used as a correction for the output of the ALF chroma process.
Межкомпонентный адаптивный контурный фильтр (CC-ALF) может использоваться как контурный фильтр и как этап постобработки соответственно.The Cross-Component Adaptive Loop Filter (CC-ALF) can be used as a loop filter and as a post-processing step respectively.
Буфер декодированных изображенийDecoded image buffer
Декодированные видеоблоки 321 изображения затем сохраняются в буфере 330 декодированных изображений, который сохраняет декодированные изображения 331 в качестве опорных изображений для последующей компенсации движения для других изображений и/или для вывода, соответственно, отображения.The decoded video blocks 321 of the image are then stored in a decoded
Декодер 30 может быть выполнен с возможностью вывода декодированного изображения 311, например, через выход 312, для представления или просмотра пользователю.The decoder 30 may be configured to output the decoded
ПредсказаниеPrediction
Блок 344 межкадрового предсказания может быть идентичен блоку 244 межкадрового предсказания (в частности, блоку компенсации движения), а блок 354 внутрикадрового предсказания может быть идентичен блоку 254 межкадрового предсказания по функции, и принимает решения по разделению или разделению и выполняет предсказание на основе параметров разделения и/или предсказания или соответствующей информации, принимаемой из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 применения режима может быть выполнен с возможностью осуществления предсказания (внутрикадрового или межкадрового предсказания) для каждого блока на основе восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.The
Когда видеослайс кодируется как внутрикадрово-кодируемый (I) слайс, блок 354 внутрикадрового предсказания блока 360 применения режима выполнен с возможностью формирования блока 365 предсказания для блока изображения текущего видеослайса на основе просигнализированного режима внутрикадрового предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как межкадрово-кодируемый (т.е. B или P) слайс, блок 344 межкадрового предсказания (например, блок компенсации движения) блока 360 применения режима выполнен с возможностью создания блоков 365 предсказания для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, принимаемых от блока 304 энтропийного декодирования. Для межкадрового предсказания блоки предсказания могут быть созданы из одного из опорных изображений в пределах одного из списков опорных изображений. Видеодекодер 30 может строить списки опорных кадров, Список 0 и Список 1, используя методы построения по умолчанию на основе опорных изображений, хранящихся в DPB 330. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B тайлов и/или тайлов.When the video slice is encoded as an intra-frame-coded (I) slice, the
Блок 360 применения режима может быть выполнен с возможностью определения информации прогнозирования для видеоблока текущего видеослайса путем синтаксического анализа векторов движения или связанной информации и других синтаксических элементов, и использует информацию прогнозирования для создания блоков предсказания для текущего видеоблока, расшифровано. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутрикадрового или межкадрового предсказания), используемого для кодирования видеоблоков видеослайса, типа слайса межкадрового предсказания (например, B-слайс, P-слайс или GPB-слайс), информации построения для одного или более списков опорных изображений для слайса, векторов движения для каждого межкадрово-кодированного видеоблока слайса, статуса межкадрового предсказания для каждого межкадрово-кодированного видеоблока слайса, а также другой информации для декодирования видеоблоков в текущем видеослайсе. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B тайлов и/или тайлов.The mode applying unit 360 may be configured to determine prediction information for a video block of the current video slice by parsing motion vectors or related information and other syntax elements, and uses the prediction information to generate prediction blocks for the current video block, deciphered. For example, the mode applying unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra-frame or inter-frame prediction) used to code the video blocks of the video slice, a type of the inter-frame prediction slice (e.g., a B slice, a P slice, or a GPB slice), construction information for one or more reference picture lists for the slice, motion vectors for each inter-frame coded video block of the slice, an inter-frame prediction status for each inter-frame coded video block of the slice, and other information for decoding the video blocks in the current video slice. The same or similar may be applied to or through embodiments using tile groups (e.g. video tile groups) and/or tiles (e.g. video tiles) in addition to or alternatively to slices (e.g. video slices), for example video may be encoded using I, P or B tile groups and/or tiles.
Варианты осуществления видеодекодера 30, как показано на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием слайсов (также называемых видеослайсами), при этом изображение может быть разделено на или декодировано с использованием одного или более слайсов (обычно без перекрытия), и каждый слайс может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, тайлы (H.265/HEVC и VVC) или брики (VVC)).Embodiments of video decoder 30, as shown in Fig. 3, may be configured to divide and/or decode an image using slices (also referred to as video slices), wherein an image may be divided into or decoded using one or more slices (typically without overlapping), and each slice may comprise one or more blocks (e.g., CTUs) or one or more groups of blocks (e.g., tiles (H.265/HEVC and VVC) or bricks (VVC)).
Варианты осуществления видеодекодера 30, как показано на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием групп слайсов/тайлов (также называемых группами тайлов) и/или тайлов (также называемых видеотайлами, при этом изображение может быть разделено на или декодировано с использованием одной или более групп слайсов/тайлов (обычно не перекрывающихся), и каждая группа слайсов/тайлов может содержать, например, один или более блоков (например, CTU) или один или более тайлов, при этом каждый тайл, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.Embodiments of video decoder 30, as shown in Fig. 3, may be configured to divide and/or decode an image using groups of slices/tiles (also called tile groups) and/or tiles (also called video tiles, wherein an image may be divided into or decoded using one or more groups of slices/tiles (typically non-overlapping), and each group of slices/tiles may contain, for example, one or more blocks (e.g., CTUs) or one or more tiles, wherein each tile may, for example, have a rectangular shape and may contain one or more blocks (e.g., CTUs), such as full or fractional blocks.
Другие варианты видеодекодера 30 могут использоваться для декодирования кодированных данных 21 изображения. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.Other embodiments of video decoder 30 may be used to decode encoded image data 21. For example, decoder 30 may create an output video stream without
Следует понимать, что в кодере 20 и декодере 30 результат обработки некоторого текущего этапа может быть обработан дополнительно, а затем выведен на следующий этап. Например, после интерполяционной фильтрации, получения вектора движения или контурной фильтрации, дополнительная операция, такая как усечение (Clip) или смещение (Shift), может выполняться над результатом обработки интерполяционной фильтрации, получения вектора движения или контурной фильтрации.It should be understood that in the encoder 20 and the decoder 30, the result of processing of some current stage can be further processed and then output to the next stage. For example, after interpolation filtering, obtaining a motion vector or contour filtering, an additional operation such as truncation (Clip) or shift (Shift) can be performed on the result of processing of interpolation filtering, obtaining a motion vector or contour filtering.
Следует отметить, что дополнительные операции могут применяться к получаемым векторам движения текущего блока (в том числе, но без ограничения, к векторам движения контрольной точки аффинного режима, векторам движения субблока в аффинном, планарном, ATMVP режимах, временным векторам движения и тому подобному). Например, значение вектора движения ограничивается предопределенным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth (битовой глубиной), тогда диапазон составляет -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, где «^» означает возведение в степень. Например, если bitDepth установлена равной 16, диапазон составляет -32768 ~ 32767; если bitDepth установлена равной 18, диапазон составляет -131072~131071. Например, значение получаемого вектора движения (например, MV четырех субблоков 4×4 в одном блоке 8×8) ограничивается таким образом, чтобы максимальная разность между целыми частями MV четырех субблоков 4×4 не превышала N пикселей, например была не более 1 пикселя. Здесь представлены два способа ограничения вектора движения в соответствии с bitDepth.It should be noted that additional operations can be applied to the obtained motion vectors of the current block (including but not limited to motion vectors of the affine mode checkpoint, motion vectors of a sub-block in the affine, planar, ATMVP modes, time motion vectors, and the like). For example, the value of a motion vector is limited to a predetermined range according to its representative bit. If the representative bit of the motion vector is bitDepth (bit depth), then the range is -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, where "^" means exponentiation. For example, if bitDepth is set to 16, the range is -32768 ~ 32767; if bitDepth is set to 18, the range is -131072~131071. For example, the value of the resulting motion vector (e.g., MV of four 4×4 subblocks in one 8×8 block) is constrained so that the maximum difference between the integer parts of the MV of the four 4×4 subblocks does not exceed N pixels, e.g., is no more than 1 pixel. Here, two methods of constraining the motion vector according to bitDepth are presented.
Фиг. 4 является схематичным представлением устройства 400 видеокодирования согласно варианту осуществления настоящего раскрытия. Устройство 400 видеокодирования подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство 400 видеокодирования может быть декодером, таким как видеодекодер 30 по Фиг. 1A, или кодером, таким как видеокодер 20 по Фиг. 1A.Fig. 4 is a schematic diagram of a
Устройство 400 видеокодирования содержит входные порты 410 (или порты 410 ввода) и блоки 420 (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 (Tx) передатчика и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодирования также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для обеспечения входа или выхода оптических или электрических сигналов.The
Процессор 430 реализуется аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован в виде одного или более CPU-чипов, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 поддерживает связь с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Следовательно, включение модуля 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 видеокодирования и обеспечивает трансформацию устройства 400 видеокодирования в другое состояние. В качестве альтернативы модуль 470 кодирования реализуется как инструкции, хранящиеся в памяти 460 и исполняемые процессором 430.The
Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянной памятью (ROM), оперативной памятью (RAM), троичной ассоциативной памятью (TCAM) и/или статической оперативной памятью (SRAM).
Фиг. 5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба из устройства-источника 12 и устройства-получателя 14 с Фиг. 1 согласно примерному варианту осуществления. Fig. 5is a simplified block diagram of the device500, which can be used as one or both of the source device 12 and the destination device 14 of Fig. 1 according to an exemplary embodiment.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, который существует в настоящее время или будет разработан в будущем. Хотя раскрытые реализации могут быть осуществлены на практике с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более одного процессора.The
Память 504 в устройстве 500 может быть постоянной памятью (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться запоминающее устройство любого другого подходящего типа устройства. Память 504 может включать в себя код и данные 506, доступ к которым осуществляется процессором 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, при этом прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение видеокодирования, которое выполняет описанные в данном документе способы.
Устройство 500 может также включать в себя одно или более устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным воспринимать сенсорные вводы (касанием). Дисплей 518 может быть соединен с процессором 502 через шину 512.The
Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из многочисленных шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один встраиваемый блок, такой как карта памяти, или множество блоков, таких как множество карт памяти. Таким образом, устройство 500 может быть реализовано в самых разнообразных конфигурациях.Although shown here as a single bus, the
Подробное описание вариантов осуществления настоящего раскрытияDetailed Description of Embodiments of the Present Disclosure
Кодирование видео может выполняться на основе цветового пространства и цветового формата. Например, цветное видео играет важную роль в мультимедийных системах, где для эффективного представления цвета используются различные цветовые пространства. Цветовое пространство задает цвет числовыми значениями с использованием нескольких компонентов. Популярным цветовым пространством является цветовое пространство RGB, в котором цвет представлен как комбинация значений трех основных цветовых компонентов (т. е. красного, зеленого и синего). Для сжатия цветного видео широко используется цветовое пространство YCbCr, как описано в A. Ford и A. Roberts, «Colour space converts», Вестминстерский университет, Лондон, Tech. Rep., август 1998 г.Video coding can be performed based on a color space and a color format. For example, color video plays an important role in multimedia systems, where different color spaces are used to represent color efficiently. A color space specifies color as numerical values using several components. A popular color space is the RGB color space, in which color is represented as a combination of the values of the three primary color components (i.e., red, green, and blue). The YCbCr color space is widely used for color video compression, as described in A. Ford and A. Roberts, “Colour space converts,” University of Westminster, London, Tech. Rep., August 1998.
YCbCr можно легко преобразовать из цветового пространства RGB посредством линейного преобразования, а избыточность между различными компонентами, а именно межкомпонентная избыточность, значительно снижается в цветовом пространстве YCbCr. Одним из преимуществ YCbCr является обратная совместимость с черно-белым телевидением, поскольку сигнал Y передает информацию о яркости. Кроме того, пропускная способность цветности может быть уменьшена за счет субдискретизации компонентов Cb и Cr в формате дискретизации цветности 4:2:0 со значительно меньшим субъективным воздействием, чем субдискретизация в цветовом пространстве RGB. Из-за этих преимуществ YCbCr является основным цветовым пространством для сжатия видео. Существуют и другие цветовые пространства, такие как YCoCg, используемые при сжатии видео. В этом раскрытии, независимо от фактического используемого цветового пространства, яркость (или L, или Y) и две цветности (Cb и Cr) используются для представления трех цветовых компонентов в схеме сжатия видео.YCbCr can be easily converted from the RGB color space by a linear transformation, and the redundancy between the different components, namely the inter-component redundancy, is significantly reduced in the YCbCr color space. One of the advantages of YCbCr is its backward compatibility with black-and-white television, since the Y signal carries luminance information. In addition, the chroma bandwidth can be reduced by subsampling the Cb and Cr components in a 4:2:0 chroma sampling format with a significantly smaller subjective impact than subsampling in the RGB color space. Because of these advantages, YCbCr is the main color space for video compression. There are other color spaces, such as YCoCg, used in video compression. In this disclosure, regardless of the actual color space used, the luminance (or L or Y) and the two chromins (Cb and Cr) are used to represent the three color components in the video compression scheme.
Например, когда структура дискретизации формата цветности представляет собой дискретизацию 4:2:0, каждый из двух массивов цветности имеет половину высоты и половину ширины массива яркости. Номинальные вертикальные и горизонтальные относительные положения выборок яркости и цветности на изображениях показаны на фиг. 9A. фиг. 9B иллюстрирует пример дискретизации 4:2:0. Фиг. 9B иллюстрирует пример совмещенного блока яркости и блока цветности. Если формат видео YUV4:2:0, то имеется один блок яркости 16×16 и два блока цветности 8×8.For example, when the sampling structure of the chroma format is 4:2:0 sampling, each of the two chroma arrays has half the height and half the width of the luma array. The nominal vertical and horizontal relative positions of the luma and chroma samples in the images are shown in Fig. 9A. Fig. 9B illustrates an example of 4:2:0 sampling. Fig. 9B illustrates an example of a combined luma block and chroma block. If the video format is YUV4:2:0, then there is one 16x16 luma block and two 8x8 chroma blocks.
В частности, блок кодирования или блок преобразования содержит блок яркости и два блока цветности.In particular, the coding block or transform block contains a luminance block and two chrominance blocks.
Как показано, блок яркости содержит в четыре раза больше выборок, чем блок цветности. В частности, блок цветности содержит N выборок на N выборок, в то время как блок яркости содержит 2N выборок на 2N выборок. Следовательно, блок яркости в четыре раза превышает разрешение блока цветности. Например, когда используется формат YUV4:2:0, выборки яркости могут быть уменьшены в четыре раза (например, ширина в два раза и высота в два раза). YUV - это система кодирования цвета, которая использует цветовое пространство с точки зрения компонентов яркости Y и двух компонентов цветности U и V.As shown, the luma block contains four times as many samples as the chroma block. Specifically, the chroma block contains N samples by N samples, while the luma block contains 2N samples by 2N samples. Therefore, the luma block has four times the resolution of the chroma block. For example, when the YUV4:2:0 format is used, the luma samples can be reduced by a factor of four (e.g., the width by a factor of two and the height by a factor of two). YUV is a color encoding system that uses a color space in terms of the luma components Y and the two chroma components U and V.
Заголовок изображения:Image Title:
Концепция заголовка изображения была недавно введена в стандарте VVC (как представлено в JVET-P1006, P0095, P0120, P0239). См. раздел 7.3.2.6 в JVET-P2001-VE для получения информации о синтаксисе заголовка изображения.The concept of image header was recently introduced in the VVC standard (as presented in JVET-P1006, P0095, P0120, P0239). See section 7.3.2.6 in JVET-P2001-VE for information on the image header syntax.
В текущем проекте VVC концепция обязательного заголовка изображения предлагается передаваться один раз для каждого изображения в качестве первого блока VCL NAL изображения. Текущий проект VVC также перемещает несколько синтаксических элементов, присутствующих в настоящее время в заголовке слайса, в этот заголовок изображения. Синтаксические элементы, которые функционально должны быть переданы только один раз для каждого изображения, перемещаются в заголовок изображения вместо того, чтобы передаваться несколько раз для данного изображения, например, синтаксические элементы в заголовке слайса передаются один раз для каждого слайса. Перемещение синтаксических элементов из заголовка слайса дает преимущество, поскольку вычисления, необходимые для обработки заголовка слайса, могут ограничивать общую пропускную способность.The current VVC draft proposes to transmit the mandatory picture header concept once for each picture as the first VCL NAL unit of the picture. The current VVC draft also moves several syntax elements currently present in the slice header into this picture header. Syntax elements that functionally only need to be transmitted once per picture are moved into the picture header instead of being transmitted multiple times for a given picture, e.g., syntax elements in the slice header are transmitted once per slice. Moving syntax elements out of the slice header is advantageous because the computations required to process the slice header can limit overall throughput.
Для адаптивного контурного фильтра (ALF) в заголовок изображения были введены следующие синтаксические элементы (синтаксические элементы, относящиеся к ALF):For the adaptive loop filter (ALF), the following syntax elements (ALF-specific syntax elements) were introduced into the image header:
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
Здесь синтаксическими элементами являются pic_alf_enabled_present_flag, pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc, pic_alf_aps_id_chroma. Эти синтаксические элементы предоставляются в заголовке изображения, где их присутствие потенциально зависит от других синтаксических элементов, о которых ранее или иным образом сообщалось. Например, sps_alf_enabled_flag и ChromaArrayType являются такими другими синтаксическими элементами.Here, the syntax elements are pic_alf_enabled_present_flag, pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc, pic_alf_aps_id_chroma. These syntax elements are provided in the image header, where their presence potentially depends on other syntax elements that have been previously or otherwise reported. For example, sps_alf_enabled_flag and ChromaArrayType are such other syntax elements.
В дальнейшем любой синтаксический элемент, обозначенный дескриптором в таблице и/или выделенный полужирным шрифтом, является синтаксическим элементом, который сигнализируется или предоставляется в текущей структуре синтаксиса.In the following, any syntactic element designated by a descriptor in the table and/or highlighted in bold is a syntactic element that is signaled or provided in the current syntax structure.
В заголовке слайса внесены следующие изменения синтаксиса для ALF.The following syntax changes have been made to the slice header for ALF.
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
Семантика записей заголовка изображения ALF и записей заголовка слайса следующая:The semantics of ALF image header records and slice header records are as follows:
pic_alf_enabled_present_flag, равный 1, указывает, что pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc и pic_alf_aps_id_chroma присутствуют в PH. pic_alf_enabled_present_flag, равный 0, указывает, что pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc и pic_alf_aps_id_chroma не присутствуют в PH. Когда pic_alf_enabled_present_flag отсутствует, предполагается, что он равен 0. pic_alf_enabled_present_flag equal to 1 indicates that pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc, and pic_alf_aps_id_chroma are present in PH. pic_alf_enabled_present_flag equal to 0 indicates that pic_alf_enabled_flag, pic_num_alf_aps_ids_luma, pic_alf_aps_id_luma[i], pic_alf_chroma_idc, and pic_alf_aps_id_chroma are not present in PH. When pic_alf_enabled_present_flag is absent, it is assumed to be 0.
pic_alf_enabled_flag, равный 1, указывает, что адаптивный контурный фильтр включен для всех слайсов, связанных с PH, и может применяться к цветовому компоненту Y, Cb или Cr в слайсах. Значение pic_alf_enabled_flag, равное 0, указывает, что адаптивный контурный фильтр может быть отключен для одного, нескольких или всех слайсов, связанных с PH. Если pic_alf_enabled_flag отсутствует, предполагается, что он равен 0. pic_alf_enabled_flag equal to 1 indicates that the adaptive contour filter is enabled for all slices associated with the PH, and can be applied to the Y, Cb, or Cr color component of the slices. pic_alf_enabled_flag equal to 0 indicates that the adaptive contour filter can be disabled for one, some, or all slices associated with the PH. If pic_alf_enabled_flag is absent, it is assumed to be 0.
pic_num_alf_aps_ids_luma задает количество ALF APS, к которым относятся слайсы, связанные с PH. pic_num_alf_aps_ids_luma specifies the number of ALF APS that PH-related slices belong to.
pic_alf_aps_id_luma[i] задает adaptation_parameter_set_id i-го ALF APS, к которому относится компонент яркости слайсов, связанных с PH. pic_alf_aps_id_luma [i] specifies the adaptation_parameter_set_id of the i-th ALF APS to which the luma component of PH-related slices belongs.
Значение alf_luma_filter_signal_flag блока NAL APS, имеющего aps_params_type, равное ALF_APS, и Adaptation_parameter_set_id, равное pic_alf_aps_id_luma[i], должно быть равно 1.The alf_luma_filter_signal_flag value of an APS NAL unit with aps_params_type equal to ALF_APS and Adaptation_parameter_set_id equal to pic_alf_aps_id_luma[i] shall be equal to 1.
pic_alf_chroma_idc, равное 0, указывает, что адаптивный контурный фильтр не применяется к цветовым компонентам Cb и Cr. pic_alf_chroma_idc, равное 1, указывает, что адаптивный контурный фильтр применяется к цветовому компоненту Cb. pic_alf_chroma_idc, равное 2, указывает, что адаптивный контурный фильтр применяется к цветовому компоненту Cr. Значение pic_alf_chroma_idc, равное 3, указывает, что адаптивный контурный фильтр применяется к цветовым компонентам Cb и Cr. Когда pic_alf_chroma_idc отсутствует, предполагается, что он равен 0. pic_alf_chroma_idc equal to 0 indicates that the adaptive contour filter is not applied to the Cb and Cr color components. pic_alf_chroma_idc equal to 1 indicates that the adaptive contour filter is applied to the Cb color component. pic_alf_chroma_idc equal to 2 indicates that the adaptive contour filter is applied to the Cr color component. pic_alf_chroma_idc equal to 3 indicates that the adaptive contour filter is applied to the Cb and Cr color components. When pic_alf_chroma_idc is absent, it is assumed to be 0.
pic_alf_aps_id_chroma задает id_adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайсов, связанных с PH. pic_alf_aps_id_chroma specifies the id_adaptation_parameter_set_id of the ALF APS referenced by the chroma component of PH-related slices.
alf_chroma_filter_signal_flag блока NAL APS, имеющего aps_params_type, равное ALF_APS, и Adaptation_parameter_set_id, равное pic_alf_aps_id_chroma, должен быть равен 1. The alf_chroma_filter_signal_flag of an APS NAL unit that has aps_params_type equal to ALF_APS and Adaptation_parameter_set_id equal to pic_alf_aps_id_chroma must be equal to 1.
slice_alf_enabled_flag, равный 1, указывает, что адаптивный контурный фильтр включен и может применяться к цветовому компоненту Y, Cb или Cr в слайсе. slice_alf_enabled_flag, равный 0, указывает, что адаптивный контурный фильтр отключен для всех цветовых компонентов в слайсе. Если он отсутствует, предполагается, что значение slice_alf_enabled_flag равно pic_alf_enabled_flag. slice_alf_enabled_flag equal to 1 indicates that the adaptive edge filter is enabled and can be applied to the Y, Cb, or Cr color component in the slice. slice_alf_enabled_flag equal to 0 indicates that the adaptive edge filter is disabled for all color components in the slice. If absent, slice_alf_enabled_flag is assumed to be pic_alf_enabled_flag.
slice_num_alf_aps_ids_luma указывает количество ALF APS, на которые ссылается слайс. Когда slice_alf_enabled_flag равен 1, а slice_num_alf_aps_ids_luma отсутствует, предполагается, что значение slice_num_alf_aps_ids_luma равно значению pic_num_alf_aps_ids_luma. slice_num_alf_aps_ids_luma specifies the number of ALF APSs referenced by the slice. When slice_alf_enabled_flag is 1 and slice_num_alf_aps_ids_luma is not present, the value of slice_num_alf_aps_ids_luma is assumed to be equal to the value of pic_num_alf_aps_ids_luma.
slice_alf_aps_id_luma[i] задает adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса. TemporalId блока NAL APS, имеющего тип aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], должен быть меньше или равен TemporalId блока NAL кодированного слайса. Когда slice_alf_enabled_flag равен 1, а slice_alf_aps_id_luma[i] отсутствует, значение slice_alf_aps_id_luma[i] предполагается равным значению pic_alf_aps_id_luma[i]. slice_alf_aps_id_luma [i] specifies the adaptation_parameter_set_id of the i-th ALF APS referenced by the slice's luma component. The TemporalId of an APS NAL unit having aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_alf_aps_id_luma[i] must be less than or equal to the TemporalId of the coded slice NAL unit. When slice_alf_enabled_flag is 1 and slice_alf_aps_id_luma[i] is absent, the value of slice_alf_aps_id_luma[i] is assumed to be equal to the value of pic_alf_aps_id_luma[i].
Значение alf_luma_filter_signal_flag блока NAL APS, имеющего aps_params_type, равное ALF_APS, и Adaptation_parameter_set_id, равное slice_alf_aps_id_luma[i], должно быть равно 1.The alf_luma_filter_signal_flag value of an APS NAL unit that has aps_params_type equal to ALF_APS and Adaptation_parameter_set_id equal to slice_alf_aps_id_luma[i] must be equal to 1.
slice_alf_chroma_idc, равное 0, указывает, что адаптивный контурный фильтр не применяется к цветовым компонентам Cb и Cr. slice_alf_chroma_idc, равное 1, указывает, что адаптивный контурный фильтр применяется к цветовому компоненту Cb. slice_alf_chroma_idc, равное 2, указывает, что адаптивный контурный фильтр применяется к цветовому компоненту Cr. slice_alf_chroma_idc, равное 3, указывает, что адаптивный контурный фильтр применяется к цветовым компонентам Cb и Cr. Когда slice_alf_chroma_idc отсутствует, предполагается, что он равен pic_alf_chroma_idc. slice_alf_chroma_idc equal to 0 specifies that the adaptive contour filter is not applied to the Cb and Cr color components. slice_alf_chroma_idc equal to 1 specifies that the adaptive contour filter is applied to the Cb color component. slice_alf_chroma_idc equal to 2 specifies that the adaptive contour filter is applied to the Cr color component. slice_alf_chroma_idc equal to 3 specifies that the adaptive contour filter is applied to the Cb and Cr color components. When slice_alf_chroma_idc is absent, it is assumed to be equal to pic_alf_chroma_idc.
slice_alf_aps_id_chroma задает id_adaptation_parameter_set_id для ALF APS, на который ссылается компонент цветности слайса. TemporalId блока NAL APS, имеющего aps_params_type, равного ALF_APS, и adaptation_parameter_set_id, равного slice_alf_aps_id_chroma, должен быть меньше или равен TemporalId блока NAL кодированного слайса. Когда slice_alf_enabled_flag равен 1, а slice_alf_aps_id_chroma отсутствует, предполагается, что значение slice_alf_aps_id_chroma равно значению pic_alf_aps_id_chroma. slice_alf_aps_id_chroma specifies the id_adaptation_parameter_set_id of the ALF APS referenced by the slice's chroma component. The TemporalId of an APS NAL unit that has aps_params_type equal to ALF_APS and adaptation_parameter_set_id equal to slice_alf_aps_id_chroma must be less than or equal to the TemporalId of the coded slice NAL unit. When slice_alf_enabled_flag is 1 and slice_alf_aps_id_chroma is absent, slice_alf_aps_id_chroma is assumed to be equal to pic_alf_aps_id_chroma.
Значение alf_chroma_filter_signal_flag блока NAL APS, имеющего aps_params_type, равное ALF_APS, и Adaptation_parameter_set_id, равное slice_alf_aps_id_chroma, должно быть равно 1.The alf_chroma_filter_signal_flag value of an APS NAL unit that has aps_params_type equal to ALF_APS and an Adaptation_parameter_set_id equal to slice_alf_aps_id_chroma must be equal to 1.
Как описано выше, когда все слайсы имеют одни и те же данные фильтрации ALF, тогда вместо передачи данных фильтрации ALF отдельно в каждом из заголовков слайсов общие данные фильтрации ALF для всех слайсов передаются только один раз в заголовке изображения и как В результате все слайсы наследуют данные фильтрации ALF из заголовка изображения. Таким образом уменьшаются накладные расходы заголовка слайса (с точки зрения количества битов).As described above, when all slices have the same ALF filtering data, then instead of transmitting the ALF filtering data separately in each of the slice headers, the common ALF filtering data for all slices is transmitted only once in the image header and as a result, all slices inherit the ALF filtering data from the image header. This reduces the overhead of the slice header (in terms of number of bits).
Настоящее раскрытие собирает все общие синтаксические элементы CCALF, которые сигнализируются в заголовке каждого слайса изображения и определяются в заголовке изображения. Настоящее раскрытие пытается распространить тот же принцип передачи сигналов ALF также на межкомпонентный ALF (CCALF). В настоящее время для CCALF каждый из заголовков слайсов должен передавать следующую информацию обычным способом:The present disclosure collects all common syntax elements of CCALF, which are signaled in the header of each image slice and are defined in the image header. The present disclosure attempts to extend the same principle of ALF signaling to the inter-component ALF (CCALF) as well. Currently, for CCALF, each of the slice headers must convey the following information in a common way:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
Поэтому каждый слайс должен передавать все вышеперечисленные синтаксические элементы, даже если информация одинакова во всех слайсах в данном изображении.Therefore, each slice must convey all of the above syntactic elements, even if the information is the same in all slices in a given image.
Следовательно, чтобы уменьшить накладные расходы заголовка слайса, настоящее изобретение определяет записи заголовка изображения также для CCALF.Therefore, in order to reduce the overhead of the slice header, the present invention defines image header entries also for CCALF.
1.1 Технические проблемы, решаемые настоящим изобретением1.1 Technical problems solved by the present invention
Настоящее раскрытие вводит записи заголовка изображения для CCALF, чтобы уменьшить накладные расходы слайса. Как показано на фиг. 7, слайсы с 1 по N содержат одну и ту же информацию 7001 фильтра CCALF. Следовательно, каждый заголовок слайса должен передавать одни и те же данные, что приводит к избыточности и накладным расходам на сигнализацию битов слайса. Как показано на фиг. 8, чтобы устранить эту избыточность в данных CCALF, вводятся записи 8001 заголовка изображения для CCALF, которые определяют общие данные CCALF (а также информацию, относящуюся к CCALF), и все слайсы могут затем наследовать эту общую информацию 8002. Следовательно, это устраняет избыточность в сигнализации и уменьшает накладные расходы на синтаксический анализ заголовков слайсов.The present disclosure introduces image header entries for CCALF to reduce slice overhead. As shown in Fig. 7, slices 1 through N contain the same
1.2 Варианты осуществления технической реализации настоящего раскрытия1.2 Embodiments of the technical implementation of this disclosure
Следует отметить, что каждый из нижеприведенных вариантов осуществления, раскрытых как «альтернативный», может быть предоставлен в сочетании с любым из других (альтернативных) вариантов осуществления и может быть конкретно реализован с использованием любого из вышеописанных устройств, таких как кодер и/или декодер, как упоминается на приведенных выше рисунках.It should be noted that each of the following embodiments, disclosed as "alternative", may be provided in combination with any of the other (alternative) embodiments and may be specifically implemented using any of the above-described devices, such as an encoder and/or decoder, as mentioned in the above figures.
1.2.1 Альтернативный вариант осуществления 11.2.1
На первом этапе вводится новый синтаксический элемент набора параметров последовательности (SPS), называемый «вторым синтаксическим элементом» (обозначенный ниже, например, с помощью sps_ccalf_enabled_flag), который контролирует, включен ли CCALF или нет. Синтаксис показан ниже: второй синтаксический элемент (sps_ccalf_enabled_flag) полностью разделяет операцию ALF и операцию CCALF и, следовательно, позволяет отдельно включать и выключать ALF и CCALF на уровне последовательности.The first step introduces a new Sequence Parameter Set (SPS) syntax element called the "second syntax element" (denoted below, for example, by sps_ccalf_enabled_flag), which controls whether CCALF is enabled or not. The syntax is shown below: The second syntax element (sps_ccalf_enabled_flag) completely separates the ALF operation from the CCALF operation and therefore allows ALF and CCALF to be enabled or disabled separately at the sequence level.
7.3.2.3 Синтаксис RBSP набора параметров последовательности7.3.2.3 RBSP Sequence Parameter Set Syntax
Здесь sps_alf_enabled_flag является примером первого синтаксического элемента, который также предоставляется в синтаксисе уровня SPS. Первый и второй синтаксические элементы могут сигнализироваться независимо друг от друга, как показано в приведенной выше таблице. Однако, как, например, предусмотрено в альтернативном варианте осуществления 5 ниже, второй синтаксический элемент также может сигнализироваться в зависимости, например, от значения, которое имеет или принимает первый синтаксический элемент.Here, sps_alf_enabled_flag is an example of a first syntax element that is also provided in the SPS level syntax. The first and second syntax elements may be signaled independently of each other, as shown in the table above. However, as for example provided in
Новые записи заголовка изображения (выделены жирным шрифтом и курсивом) показаны ниже:The new image header entries (in bold and italics) are shown below:
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
Здесь дополнительные синтаксические элементы вводятся в заголовок изображения, где эти дополнительные синтаксические элементы могут присутствовать только в том случае, если первый и/или второй синтаксические элементы принимают определенные значения. Это обозначается синтаксисом «если», в зависимости от значения первого синтаксического элемента и/или второго синтаксического элемента.Here, additional syntax elements are introduced into the image header, where these additional syntax elements can only be present if the first and/or second syntax elements take on certain values. This is indicated by the "if" syntax, depending on the value of the first syntax element and/or the second syntax element.
В частности, в заголовке изображения может быть предоставлен третий синтаксический элемент (обозначенный здесь как pic_ccalf_enabled_flag ) в зависимости от значения второго синтаксического элемента. Этот синтаксический элемент может указывать (как объяснено ниже), следует ли включить CCALF для текущего изображения.In particular, a third syntax element may be provided in the image header (here denoted as pic_ccalf_enabled_flag ) depending on the value of the second syntax element. This syntax element can specify (as explained below) whether CCALF should be enabled for the current image.
Четвертый синтаксический элемент (например, pic_cross_component_alf_cb_enabled_flag ) может быть дополнительно предоставлен в заголовке изображения в зависимости от второго синтаксического элемента.The fourth syntax element (e.g. pic_cross_component_alf_cb_enabled_flag ) may be additionally provided in the image header depending on the second syntax element.
В зависимости, например, от значения второго синтаксического элемента и/или значения третьего синтаксического элемента и/или четвертого синтаксического элемента может быть предоставлен пятый синтаксический элемент , такой как pic_cross_component_alf_cb_aps_id . Кроме того, в заголовке изображения может быть предусмотрен шестой синтаксический элемент, обозначенный здесь как pic_cross_component_cb_filters_signalled_minus1 , потенциально также зависящий от второго синтаксического элемента, и/или третьего синтаксического элемента, и/или четвертого синтаксического элемента.Depending on, for example, the value of the second syntax element and/or the value of the third syntax element and/or the fourth syntax element , a fifth syntax element such as pic_cross_component_alf_cb_aps_id may be provided. In addition, a sixth syntax element may be provided in the image header. the syntactic element, denoted here as pic_cross_component_cb_filters_signalled_minus1 , potentially also depending on the second syntactic element, and/or the third syntactic element, and/or the fourth syntactic element.
Параллельно с этим может быть предоставлен седьмой синтаксический элемент, обозначенный выше как pic_cross_component_alf_cr_enabled_flag , в зависимости от второго синтаксического элемента и/или третьего синтаксического элемента.In parallel to this, a seventh syntax element, designated above as pic_cross_component_alf_cr_enabled_flag , may be provided, depending on the second syntax element and/or the third syntax element.
В зависимости, например, от значения седьмого синтаксического элемента, но потенциально также в зависимости от второго синтаксического элемента и/или третьего синтаксического элемента, может быть предоставлен восьмой элемент (например, pic_cross_component_alf_cr_aps_id ) и/или девятый синтаксический элемент (например, pic_cross_component_cr_filters_signalled_minus1 ).Depending on, for example, the value of the seventh syntax element, but potentially also depending on the second syntax element and/or the third syntax element, an eighth element (e.g. pic_cross_component_alf_cr_aps_id ) and/or a ninth syntax element may be provided. (e.g. pic_cross_component_cr_filters_signalled_minus1 ).
Значение синтаксических элементов с первого по девятый, а также значение синтаксического элемента с десятого по четырнадцатый, дополнительно указанные ниже, будут объяснены позже.The meaning of syntactic elements one through nine, and the meaning of syntactic elements ten through fourteen, additionally indicated below, will be explained later.
Синтаксис заголовка слайса следующий:The syntax of a slice header is as follows:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
Как указано выше, в некоторых вариантах осуществления дополнительные синтаксические элементы, предусмотренные в синтаксисе заголовка слайса, могут предоставляться только в том случае, если первый и/или второй синтаксический элемент и/или один или более дополнительных синтаксических элементов, предусмотренных в заголовке изображения, принимают соответствующие значения.As noted above, in some embodiments, additional syntax elements provided in the slice header syntax may be provided only if the first and/or second syntax element and/or one or more additional syntax elements provided in the image header take corresponding values.
В частности, как показано выше, десятый синтаксический элемент, такой как slice_cross_component_alf_cb_enabled_flag , может предоставляться в зависимости от значения второго синтаксического элемента и потенциально также в зависимости от четырнадцатого синтаксического элемента (факультативно предоставляемого на уровне SPS и обозначенного здесь как ChromaArrayType), который не является равно 0. Кроме того, может быть предусмотрен одиннадцатый синтаксический элемент, который обозначен выше как slice_cross_component_alf_cb_aps_id , в зависимости от значения второго синтаксического элемента и/или в зависимости от значения десятого синтаксического элемента.In particular, as shown above, the tenth syntactic element, such as slice_cross_component_alf_cb_enabled_flag , may be provided depending on the value of the second syntax element and potentially also depending on a fourteenth syntax element (optionally provided at the SPS level and designated here as ChromaArrayType) that is not equal to 0. In addition, an eleventh syntax element, designated above as slice_cross_component_alf_cb_aps_id , may be provided depending on the value of the second syntax element and/or depending on the value of the tenth syntax element.
Соответственно, двенадцатый синтаксический элемент, такой как slice_cross_component_alf_cr_enabled_flag , может предоставляться в зависимости от значения второго синтаксического элемента и потенциально также в зависимости от того, что четырнадцатый синтаксический элемент не равен 0. Кроме того, может быть предусмотрен тринадцатый синтаксический элемент, который обозначен выше как slice_cross_component_alf_cr_aps_id , в зависимости от значения второго синтаксического элемента и/или в зависимости от значения двенадцатого синтаксического элемента.Accordingly, a twelfth syntax element, such as slice_cross_component_alf_cr_enabled_flag , may be provided depending on the value of the second syntax element and potentially also depending on the fourteenth syntax element not being equal to 0. In addition, a thirteenth syntax element, which is designated above as slice_cross_component_alf_cr_aps_id , may be provided depending on the value of the second syntax element and/or depending on the value of the twelfth syntax element.
Однако также подразумевается, что синтаксические элементы (в частности, синтаксические элементы с десятого по тринадцатый), представленные в заголовке слайса, могут присутствовать независимо от значения других синтаксических элементов, таких как второй синтаксический элемент или четырнадцатый синтаксический элемент. В частности, может быть предусмотрено, что синтаксические элементы, относящиеся к CC-ALF в заголовке слайса (например, синтаксические элементы с десятого по тринадцатый), принимают значение по умолчанию, если первый синтаксический элемент, второй синтаксический элемент или другой синтаксический элемент указывает, что CC-ALF не включен.However, it is also intended that the syntactic elements (in particular the tenth through thirteenth syntactic elements) present in the slice header may be present regardless of the value of other syntactic elements, such as the second syntactic element or the fourteenth syntactic element. In particular, it may be envisaged that the syntactic elements related to the CC-ALF in the slice header (e.g. the tenth through thirteenth syntactic elements) take a default value if the first syntactic element, the second syntactic element, or another syntactic element indicates that the CC-ALF is not included.
Семантика вновь введенных синтаксических элементов следующая:The semantics of the newly introduced syntactic elements is as follows:
Второй синтаксический элемент здесь обозначен как sps_ccalf_enabled_flag. Это приведено только в качестве примера и не ограничивает раскрытие. В вариантах осуществления значение второго синтаксического элемента, равное 0, указывает, что межкомпонентный адаптивный контурный фильтр отключен для текущей видеопоследовательности. Значение второго синтаксического элемента, равное 1, указывает, что межкомпонентный адаптивный контурный фильтр включен для текущей видеопоследовательности.The second syntax element is designated here as sps_ccalf_enabled_flag . This is provided only as an example and does not limit the disclosure. In embodiments, a value of 0 for the second syntax element indicates that the inter-component adaptive loop filter is disabled for the current video sequence. A value of 1 for the second syntax element indicates that the inter-component adaptive loop filter is enabled for the current video sequence.
pic_ccalf_enabled_present_flag равный 1 указывает, что pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id и pic_cross_component_alf_cr_filter_count_minus1 представлены в PH (заголовок изображения, picture header). pic_alf_enabled_present_flag равный 0 указывает, что pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id и pic_cross_component_alf_cr_filter_count_minus1 не представлены в PH. Когда pic_ccalf_enabled_present_flag отсутствует, предполагается, что он равен 0. pic_ccalf_enabled_present_flagequal to 1 indicates that pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id, and count_minus1 are represented in PH (picture header). pic_alf_enabled_present_flag equal to 0 indicates that pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag, pic_cross_component_alf_cb_aps_id, pic_cross_component_alf_cb_filter_count_minus1, pic_cross_component_alf_cr_enabled_flag, pic_cross_component_alf_cr_aps_id, and pic_cross_component_alf_cr_filter_count_minus1 are not present in PH. When pic_ccalf_enabled_present_flag is absent, it is assumed to be 0.
Значение третьего синтаксического элемента (обозначенного здесь как pic_ccalf_enabled_flag), равное 1, указывает, что межкомпонентный адаптивный контурный фильтр включен для всех слайсов, связанных с PH, и может применяться к цветовому компоненту Cb или Cr в слайсах. Значение третьего синтаксического элемента, равное 0, указывает, что межкомпонентный адаптивный контурный фильтр может быть отключен для одного, нескольких или всех слайсов, связанных с PH (заголовок изображения). Если он отсутствует, значение третьего синтаксического элемента может быть принято равным 0.The third syntax element (here denoted as pic_ccalf_enabled_flag ) value of 1 indicates that the inter-component adaptive contour filter is enabled for all slices associated with the PH and can be applied to the Cb or Cr color component of the slices. The third syntax element value of 0 indicates that the inter-component adaptive contour filter can be disabled for one, some, or all slices associated with the PH (image header). If absent, the third syntax element value can be assumed to be 0.
Четвертый синтаксический элемент упоминался выше и может быть обозначен здесь с помощью pic_cross_component_alf_cb_enabled_flag. Значение четвертого синтаксического элемента, равное 0, указывает, что межкомпонентный фильтр Cb не применяется к цветовому компоненту Cb всех слайсов, связанных с PH. Когда значение четвертого синтаксического элемента равно 1, это указывает, что межкомпонентный фильтр Cb применяется к цветовому компоненту Cb всех слайсов, связанных с PH. Когда четвертый синтаксический элемент отсутствует, предполагается, что он равен 0.The fourth syntax element was mentioned above and can be indicated here by pic_cross_component_alf_cb_enabled_flag . The value of the fourth syntax element equal to 0 indicates that the cross-component Cb filter is not applied to the Cb color component of all slices associated with PH. When the value of the fourth syntax element equals to 1, it indicates that the cross-component Cb filter is applied to the Cb color component of all slices associated with PH. When the fourth syntax element is absent, it is assumed to be 0.
Пятый синтаксический элемент может быть обозначен здесь с помощью pic_cross_component_alf_cb_aps_id. Пятый синтаксический элемент указывает id_adaptation_parameter_set_id, который является цветовым компонентом Cb всех слайсов, связанных с PH.The fifth syntactic element can be denoted here bypic_cross_component_alf_cb_aps_id.Fifth The syntax element specifies the id_adaptation_parameter_set_id, which is the Cb color component of all slices associated with the PH.
Шестой синтаксический элемент может быть обозначен здесь с помощью pic_cross_component_cb_filters_signalled_minus1. Значение шестого синтаксического элемента плюс 1 указывает количество межкомпонентных Cb-фильтров всех слайсов, связанных с PH. Значение шестого синтаксического элемента должно быть в диапазоне от 0 до 3.The sixth syntax element can be indicated here by pic_cross_component_cb_filters_signalled_minus1. The value of the sixth syntax element plus 1 specifies the number of cross-component Cb filters of all slices associated with the PH. The value of the sixth syntax element must be in the range from 0 to 3.
Когда четвертый синтаксический элемент равен 1, требование соответствия битового потока состоит в том, что шестой синтаксический элемент должен быть меньше или равен значению alf_cross_component_cb_filters_signalled_minus1 в ALF APS, на который ссылается пятый синтаксический элемент текущего изображения.When the fourth syntax element is 1, the bitstream conformance requirement is that the sixth syntax element must be less than or equal to the value of alf_cross_component_cb_filters_signalled_minus1 in the ALF APS referenced by the fifth syntax element of the current image.
Седьмой синтаксический элемент, упомянутый выше, обозначается как pic_cross_component_alf_cr_enabled_flag. Значение седьмого синтаксического элемента, равное 0, указывает, что межкомпонентный фильтр Cr не применяется к цветовому компоненту Cr всех слайсов, связанных с PH. Значение седьмого синтаксического элемента, равное 1, указывает, что межкомпонентный фильтр Cr применяется к цветовому компоненту Cr всех слайсов, связанных с PH. Когда седьмой синтаксический элемент отсутствует, предполагается, что он равен 0.The seventh syntax element mentioned above is denoted as pic_cross_component_alf_cr_enabled_flag. The value of the seventh syntax element equal to 0 indicates that the cross-component Cr filter is not applied to the Cr color component of all slices associated with PH. The value of the seventh syntax element equal to 1 indicates that the cross-component Cr filter is applied to the Cr color component of all slices associated with PH. When the seventh syntax element is absent, it is assumed to be 0.
Восьмой синтаксический элемент также был упомянут и в качестве примера обозначен с как pic_cross_component_alf_cr_aps_id. Значение восьмого синтаксического элемента предназначено для указания adaptation_parameter_set_id, который является цветовым компонентом Cr всех слайсов, связанных с PH.The eighth syntax element was also mentioned and is named as pic_cross_component_alf_cr_aps_id as an example. The value of the eighth syntax element is intended to specify the adaptation_parameter_set_id, which is the color component Cr of all slices associated with PH.
Более того, упомянут девятый синтаксический элемент, который может быть обозначен как pic_cross_component_cr_filters_signalled_minus1. Значение девятого синтаксического элемента плюс 1 указывает количество межкомпонентных фильтров Cr всех слайсов, связанных с PH. Значение девятого синтаксического элемента должно находиться в диапазоне от 0 до 3.Moreover, a ninth syntactic element is mentioned, which can be designated aspic_cross_component_cr_filters_signalled_minus1. Meaning The ninth syntax element plus 1 specifies the number of inter-component filters Cr of all slices associated with PH. The value of the ninth syntax element must be in the range from 0 to 3.
Когда значение седьмого синтаксического элемента равно 1, требованием соответствия битового потока является то, что значение девятого синтаксического элемента должно быть меньше или равно значению alf_cross_component_cr_filters_signalled_minus1 в ALF APS, на которое ссылается восьмой синтаксический элемент текущего изображения.When the value of the seventh syntax element is 1, a conformance requirement of the bitstream is that the value of the ninth syntax element must be less than or equal to the value of alf_cross_component_cr_filters_signalled_minus1 in the ALF APS referenced by the eighth syntax element of the current image.
Семантика синтаксических элементов заголовка слайса CCALF дополнительно уточняется следующим образом:The semantics of the syntactic elements of the CCALF slice header are further specified as follows:
slice_ccalf_enabled_flag, равный 1, указывает, что межкомпонентный адаптивный контурный фильтр включен и может применяться к цветовому компоненту Cb или Cr в слайсе. slice_alf_enabled_flag, равный 0, указывает, что межкомпонентный адаптивный контурный фильтр отключен для всех цветовых компонентов в слайсе. Если он отсутствует, предполагается, что значение slice_ccalf_enabled_flag равно третьему синтаксическому элементу. slice_ccalf_enabled_flag equal to 1 indicates that the inter-component adaptive contour filter is enabled and can be applied to the Cb or Cr color component in the slice. slice_alf_enabled_flag equal to 0 indicates that the inter-component adaptive contour filter is disabled for all color components in the slice. If absent, slice_ccalf_enabled_flag is assumed to be equal to the third syntax element.
Десятый синтаксический элемент, упомянутый выше, может быть обозначен как slice_cross_component_alf_cb_enabled_flag, и может быть предусмотрено, что значение десятого синтаксического элемента, равное 0, указывает, что межкомпонентный фильтр Cb не применяется к цветовому компоненту Cb. Десятый синтаксический элемент, равный 1, указывает, что межкомпонентный фильтр Cb применяется к цветовому компоненту Cb. Когда десятый синтаксический элемент отсутствует, предполагается, что он равен четвертому синтаксическому элементу (например, pic_cross_component_alf_cb_enabled_flag).The tenth syntax element mentioned above can be designated as slice_cross_component_alf_cb_enabled_flag , and it can be provided that the value of the tenth syntax element equal to 0 indicates that the Cb cross-component filter is not applied to the Cb color component. The tenth syntax element equal to 1 indicates that the Cb cross-component filter is applied to the Cb color component. When the tenth syntax element is absent, it is assumed to be equal to the fourth syntax element (e.g., pic_cross_component_alf_cb_enabled_flag ).
Одиннадцатый синтаксический элемент, упомянутый выше, может упоминаться как slice_cross_component_alf_cb_aps_id. Значение одиннадцатого синтаксического элемента задает adaptation_parameter_set_id, на который ссылается цветовой компонент Cb слайса.The eleventh syntactic element mentioned above can be referred to asslice_cross_component_alf_cb_aps_id. Meaning The eleventh syntax element specifies the adaptation_parameter_set_id, which is referenced by the slice's Cb color component.
Когда десятый синтаксический элемент имеет значение, равное 1, требованием соответствия битового потока является то, что для всех слайсов текущего изображения ALF APS, на который ссылается одиннадцатый синтаксический элемент, должен быть одним и тем же.When the tenth syntax element has a value of 1, the conformance requirement of the bitstream is that for all slices of the current ALF image, the APS referenced by the eleventh syntax element must be the same.
Когда десятый синтаксический элемент равен 1, а одиннадцатый синтаксический элемент отсутствует, предполагается, что значение одиннадцатого синтаксического элемента равно значению пятого синтаксического элемента.When the tenth syntactic element is 1 and the eleventh syntactic element is absent, the value of the eleventh syntactic element is assumed to be equal to the value of the fifth syntactic element.
slice_cross_component_cb_filters_signalled_minus1 плюс 1 указывает количество межкомпонентных фильтров Cb. Значение slice_cross_component_cb_filters_signalled_minus1 должно находиться в диапазоне от 0 до 3. slice_cross_component_cb_filters_signalled_minus1 plus 1 specifies the number of Cb cross-component filters. The value of slice_cross_component_cb_filters_signalled_minus1 must be between 0 and 3.
Когда десятый синтаксический элемент равен 1, требованием соответствия битового потока является то, что slice_cross_component_cb_filters_signalled_minus1 должен быть меньше или равен значению alf_cross_component_cb_filters_signalled_minus1 в ALF APS, на который ссылается одиннадцатый из текущего слайса.When the tenth syntax element is 1, a bitstream conformance requirement is that slice_cross_component_cb_filters_signalled_minus1 must be less than or equal to the value of alf_cross_component_cb_filters_signalled_minus1 in the ALF APS referenced by the eleventh of the current slice.
Когда десятый синтаксический элемент равен 1, а одиннадцатый отсутствует, значение slice_cross_component_cb_filters_signalled_minus1 считается равным значению pic_cross_component_cb_filters_signalled_minus1.When the tenth syntax element is 1 and the eleventh is missing, the value of slice_cross_component_cb_filters_signalled_minus1 is considered equal to the value of pic_cross_component_cb_filters_signalled_minus1.
Упомянутый двенадцатый синтаксический элемент может упоминаться как slice_cross_component_alf_cr_enabled_flag. Значение двенадцатого синтаксического элемента, равное 0, указывает, что межкомпонентный фильтр Cr не применяется к цветовому компоненту Cr. Значение двенадцатого синтаксического элемента, равное 1, указывает, что межкомпонентный адаптивный контурный фильтр применяется к цветовому компоненту Cr. Когда двенадцатый синтаксический элемент отсутствует, предполагается, что он равен седьмому синтаксическому элементу, например pic_cross_component_alf_cr_enabled_flag.The mentioned twelfth syntax element can be referred to as slice_cross_component_alf_cr_enabled_flag. A value of 0 for the twelfth syntax element indicates that the Cr cross-component filter is not applied to the Cr color component. A value of 1 for the twelfth syntax element indicates that the adaptive cross-component contour filter is applied to the Cr color component. When the twelfth syntax element is absent, it is assumed to be equal to the seventh syntax element, such as pic_cross_component_alf_cr_enabled_flag .
Был упомянут тринадцатый синтаксический элемент, который далее может упоминаться как slice_cross_component_alf_cr_aps_id. Значение тринадцатого синтаксического элемента указывает id_adaptation_parameter_set_id, на который ссылается цветовой компонент Cr слайса.A thirteenth syntax element was mentioned, which can be further referred to as slice_cross_component_alf_cr_aps_id. The value of the thirteenth syntax element specifies the id_adaptation_parameter_set_id referenced by the slice's Cr color component.
Когда значение двенадцатого синтаксического элемента равно 1, требованием соответствия битового потока является то, что для всех слайсов текущего изображения ALF APS, на который ссылается тринадцатый синтаксический элемент, должен быть одним и тем же.When the value of the twelfth syntax element is 1, the conformance requirement of the bitstream is that for all slices of the current ALF picture, the APS referenced by the thirteenth syntax element must be the same.
Когда значение двенадцатого синтаксического элемента равно 1, а тринадцатый синтаксический элемент отсутствует, предполагается, что значение тринадцатого синтаксического элемента равно значению восьмого синтаксического элемента.When the value of the twelfth syntactic element is 1 and the thirteenth syntactic element is absent, the value of the thirteenth syntactic element is assumed to be equal to the value of the eighth syntactic element.
slice_cross_component_cr_filters_signalled_minus1 плюс 1 указывает количество межкомпонентных фильтров Cr. Значение slice_cross_component_cr_filters_signalled_minus1 должно находиться в диапазоне от 0 до 3.
Когда двенадцатый синтаксический элемент равен 1, требованием соответствия битового потока является то, что slice_cross_component_cr_filters_signalled_minus1 должен быть меньше или равен значению alf_cross_component_cr_filters_signalled_minus1 в ALF APS, на который ссылается тринадцатый синтаксический элемент текущего слайса.When the twelfth syntax element is 1, a conformance requirement of the bitstream is that slice_cross_component_cr_filters_signalled_minus1 must be less than or equal to the value of alf_cross_component_cr_filters_signalled_minus1 in the ALF APS referenced by the thirteenth syntax element of the current slice.
Когда двенадцатый синтаксический элемент равен 1, а тринадцатый синтаксический элемент отсутствует, предполагается, что значение slice_cross_component_cr_filters_signalled_minus1 равно значению pic_cross_component_cr_filters_signalled_minus1.When the twelfth syntax element is 1 and the thirteenth syntax element is absent, the value of slice_cross_component_cr_filters_signalled_minus1 is assumed to be equal to the value of pic_cross_component_cr_filters_signalled_minus1.
Вариант осуществления 2:Implementation option 2:
В варианте 2 второй синтаксический элемент на уровне SPS (например, sps_ccalf_enabled_flag) больше не вводится, поэтому первый синтаксический элемент (например, sps_alf_enabled_flag) также управляет применением фильтра ccalf.In
Синтаксис альтернативы 2 следующий:The syntax for
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
В этом втором варианте осуществления второй синтаксический элемент, которым может быть sps_ccalf_enabled_flag, может быть предоставлен на уровне SPS. В этом варианте осуществления может быть указано, следует ли включать CCALF или нет, на основе дополнительного синтаксического элемента, такого как pic_ccalf_enabled_present_flag, который указывает, присутствуют ли CCALF, что дополнительные синтаксические элементы, относящиеся к CCALF, и из которого можно дополнительно получить, что для текущего изображения, к которому относится pic_ccalf_enabled_present_flag , должен быть включен CCALF.In this second embodiment, a second syntax element, which may be sps_ccalf_enabled_flag, may be provided at the SPS level. In this embodiment, it may be indicated whether CCALF should be included or not based on an additional syntax element, such as pic_ccalf_enabled_present_flag, which indicates whether CCALF is present, that additional syntax elements related to CCALF, and from which it can be further obtained that CCALF should be included for the current picture to which pic_ccalf_enabled_present_flag refers.
Синтаксис заголовка слайса следующий:The syntax of a slice header is as follows:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
Как видно из вышеизложенного, наличие синтаксических элементов в заголовке слайса, как например slice_ccalf_enabled_flag, slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cb_aps_id, slice_cross_component_cb_filters_signalled_minus1, slice_cross_component_alf_cr_enabled_flag, slice_cross_component_alf_cr_aps_id и slice_cross_component_cr_filters_signalled_minus1 , и/или синтаксических элементов с десятого по тринадцатый, уже упомянутых выше, может зависеть от первого синтаксического элемента, предоставленного на уровне SPS, например, sps_alf_enabled_flag, и синтаксического элемента, предоставленного в заголовке изображения, например, pic_ccalf_enabled_present_flag, и, возможно, дополнительного синтаксического элемента, который предоставляется в заголовке слайса, например, slice_ccalf_enabled_flag.As can be seen from the above, the presence of syntax elements in the slice header, such as slice_ccalf_enabled_flag, slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cb_aps_id, slice_cross_component_cb_filters_signalled_minus1, slice_cross_component_alf_cr_enabled_flag, slice_cross_component_alf_cr_aps_id and slice_cross_component_cr_filters_signalled_minus1 , and/or the tenth through thirteenth syntax elements already mentioned above, may depend on the first syntax element provided at the SPS level, such as sps_alf_enabled_flag , and the syntax element provided in the image header, such as pic_ccalf_enabled_present_flag , and possibly an additional syntax element provided in the slice header, such as slice_ccalf_enabled_flag .
Вариант осуществления 3:Implementation option 3:
Другая альтернатива для записей заголовка изображения CCALF следующая: в этой альтернативе pic_alf_enabled_present_flag, pic_alf_enabled_flag управляет записями заголовка изображения CCALF и заголовком слайса CCALF соответственно.Another alternative for CCALF image header entries is as follows: In this alternative, pic_alf_enabled_present_flag, pic_alf_enabled_flag controls the CCALF image header entries and the CCALF slice header entries respectively.
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
Синтаксис заголовка слайса следующий:The syntax of a slice header is as follows:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
Можно заметить, что !(0)=1 или !(1)=0.It can be seen that !(0)=1 or !(1)=0.
Вариант осуществления 4:Implementation option 4:
Поскольку в текущем дизайне CCALF существует ограничение на то, что slice_cross_component_alf_cb_aps_id, slice_cross_component_alf_cr _aps_id должны быть одинаковыми во всех слайсах, нет смысла повторять этот синтаксический элемент в заголовке слайса, а только сигнализировать pic_cross_component_alf_cb_aps_id и pic_cross_component_alf_cr_aps_id в заголовок изображения. Затем можно сделать вывод, что значения синтаксических элементов slice_cross_component_alf_cb_aps_id и slice_cross_component_alf_cr совпадают со значениями pic_cross_component_alf_cb_aps_id и pic_cross_component_alf_cr_aps_id. Таким образом, объем информации в битовом потоке может быть дополнительно уменьшен.Since there is a constraint in the current CCALF design that slice_cross_component_alf_cb_aps_id, slice_cross_component_alf_cr_aps_id must be the same in all slices, there is no point in repeating this syntax element in the slice header, but only signaling pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id in the picture header. Then it can be inferred that the values of the syntax elements slice_cross_component_alf_cb_aps_id and slice_cross_component_alf_cr are the same as the values of pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id. In this way, the information amount in the bitstream can be further reduced.
Возможный синтаксис следующий:Possible syntax is as follows:
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
Здесь дополнительные синтаксические элементы, которые относятся к CCALF (т.е. по меньшей мере синтаксические элементы, содержащие элемент ccalf или cross_component_alf или cc_alf, предоставляются в зависимости от значения второго синтаксического элемента, сигнализируемого на уровне SPS, то есть в этом варианте осуществления sps_ccalf_enabled_flag .Here, additional syntax elements that belong to CCALF (i.e. at least syntax elements containing the element ccalf or cross_component_alf or cc_alf ) are provided depending on the value of a second syntax element signaled at the SPS level, i.e. in this embodiment sps_ccalf_enabled_flag .
В частности, в зависимости от значения второго синтаксического элемента, в заголовке изображения может быть предусмотрен третий синтаксический элемент, такой как pic_ccalf_enabled_flag , где этот третий синтаксический элемент может указывать, включен ли CCALF для слайсов текущего изображения.In particular, depending on the value of the second syntax element, a third syntax element such as pic_ccalf_enabled_flag may be provided in the image header, where this third syntax element may indicate whether CCALF is enabled for slices of the current image.
Кроме того, в заголовке изображения могут быть предусмотрены четвертый синтаксический элемент , такой как pic_cross_component_alf_cb_enabled_flag , и седьмой синтаксический элемент, такой как pic_cross_component_alf_cb_enabled_flag , в зависимости от значения второго синтаксического элемента.Additionally, the image header may contain a fourth syntax element , such as pic_cross_component_alf_cb_enabled_flag , and a seventh syntax element, such as pic_cross_component_alf_cb_enabled_flag , may be provided, depending on the value of the second syntax element.
Синтаксис заголовка слайса может быть следующим:The syntax for a slice header can be as follows:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
Также для этого варианта осуществления может быть предусмотрено, что синтаксические элементы в заголовке слайса, которые относятся к CCALF, предоставляются в зависимости от значения второго синтаксического элемента, предоставленного на уровне SPS, и/или в зависимости от значения одного или более синтаксических элементов, относящихся к CCALF предоставляется в заголовке изображения, например , pic_ccalf_enabled_present_flag .Also for this embodiment, it may be provided that the syntax elements in the slice header that relate to CCALF are provided depending on the value of a second syntax element provided at the SPS level and/or depending on the value of one or more syntax elements related to CCALF provided in the picture header, for example pic_ccalf_enabled_present_flag .
slice_cross_component_alf_cb_aps_id всегда может считаться таким же, как значение pic_cross_component_alf_cb_aps_id. slice_cross_component_alf_cb_aps_idAlways can be considered the same as the valuepic_cross_component_alf_cb_aps_id.
slice_cross_component_alf_cr_aps_id всегда может считаться таким же, как значение pic_cross_component_alf_cr_aps_id. slice_cross_component_alf_cr_aps_idAlways can be considered the same as the valuepic_cross_component_alf_cr_aps_id.
Другой возможный синтаксис выглядит следующим образом:Another possible syntax is as follows:
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
В синтаксисе в соответствии с приведенной выше таблицей наличие синтаксических элементов, относящихся к CCALF, зависит от значения первого синтаксического элемента, предоставленного на уровне SPS, например, sps_alf_enabled_flag. Второй синтаксический элемент, такой как sps_ccalf_enabled_flag, может быть предоставлен или не предоставлен на уровне SPS в этом варианте осуществления.In the syntax according to the above table, the presence of the syntax elements related to CCALF depends on the value of the first syntax element provided at the SPS level, such as sps_alf_enabled_flag. The second syntax element, such as sps_ccalf_enabled_flag, may or may not be provided at the SPS level in this embodiment.
Синтаксис заголовка слайса может быть следующим:The syntax for a slice header can be as follows:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
slice_cross_component_alf_cb_aps_id всегда подразумевается таким же, как значение pic_cross_component_alf_cb_aps_id. slice_cross_component_alf_cb_aps_idAlways is meant to be the same as the meaningpic_cross_component_alf_cb_aps_id.
slice_cross_component_alf_cr_aps_id всегда подразумевается таким же, как значение pic_cross_component_alf_cr_aps_id. slice_cross_component_alf_cr_aps_idAlways is meant to be the same as the meaningpic_cross_component_alf_cr_aps_id.
Другой возможный синтаксис выглядит следующим образом:Another possible syntax is as follows:
Синтаксис RBSP заголовка изображенияRBSP Image Header Syntax
Синтаксис заголовка слайса следующий:The syntax of a slice header is as follows:
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
В этом варианте осуществления предполагается, что slice_cross_component_alf_cb_aps_id всегда совпадает со значением pic_cross_component_alf_cb_aps_id. In this embodiment , it is assumed that slice_cross_component_alf_cb_aps_id always matches the value of pic_cross_component_alf_cb_aps_id .
В этом варианте осуществления двенадцатый синтаксический элемент, такой как slice_cross_component_alf_cr_aps_id, всегда считается таким же, как значение восьмого синтаксического элемента, такого как pic_cross_component_alf_cr_aps_id). In this embodiment, the twelfth syntactic element is such How slice_cross_component_alf_cr_aps_id, is always considered to be the same as the value of the eighth syntactic element, such aspic_cross_component_alf_cr_aps_id).
Вариант осуществления 5:Implementation option 5:
Другой альтернативный синтаксис может быть следующим: В этом синтаксисе параметры CCALF условно сигнализируются на основе значения второго синтаксического элемента, как уже упоминалось выше. Этот второй синтаксический элемент может быть предоставлен или может содержать флаг, такой как sps_ccalf_enabled_flag.Another alternative syntax might be as follows: In this syntax, the CCALF parameters are conditionally signaled based on the value of a second syntax element, as mentioned above. This second syntax element may be supplied or may contain a flag such as sps_ccalf_enabled_flag.
Синтаксис RBSP набора параметров последовательностиRBSP Sequence Parameter Set Syntax
sps_max_sublayers_minus1firstSubLayer = sps_sublayer_cpb_params_present_flag ? 0 :
sps_max_sublayers_minus1
Как видно из приведенной выше таблицы, второй синтаксический элемент sps_ccalf_enabled_flag предоставляется в зависимости от значения первого синтаксического элемента sps_alf_enabled_flag и, необязательно, в зависимости от четырнадцатого синтаксического элемента, такого как ChromaArrayType. В частности, второй синтаксический элемент может, в некоторых вариантах осуществления, сигнализироваться, если четырнадцатый синтаксический элемент принимает значение, отличное от нуля.As can be seen from the table above, the second syntax element sps_ccalf_enabled_flag is provided depending on the value of the first syntax element sps_alf_enabled_flag and, optionally, depending on a fourteenth syntax element, such as ChromaArrayType. In particular, the second syntax element may, in some embodiments, be signaled if the fourteenth syntax element takes on a value other than zero.
7.3.2.3 Синтаксис RBSP набора параметров последовательности7.3.2.3 RBSP Sequence Parameter Set Syntax
Примечания: ChromaArrayType != 0, то есть это не компонент яркости, а компонент цветности Cb, Cr.Note: ChromaArrayType != 0, that is, this is not a brightness component, but a chroma component Cb, Cr.
ChromaArrayType указывает выборку цветности относительно выборки яркости, как указано в следующей таблице.ChromaArrayType specifies the chroma sampling relative to the luma sampling, as specified in the following table.
В монохромной выборке есть только один массив выборок, который номинально считается массивом яркости.In a monochrome sample, there is only one array of samples, which is nominally considered the luminance array.
В выборке 4:2:0 каждый из двух массивов цветности имеет половину высоты и половину ширины массива яркости.In 4:2:0 sampling, each of the two chroma arrays is half the height and half the width of the luma array.
В выборке 4:2:2 каждый из двух массивов цветности имеет аналогичную высоту и половину ширины массива яркости.In 4:2:2 sampling, each of the two chroma arrays has the same height and half the width of the luma array.
При выборке 4:4:4 каждый из двух массивов цветности имеет ту же высоту и ширину, что и массив яркости.With 4:4:4 sampling, each of the two chroma arrays has the same height and width as the luma array.
Как показано в приведенной выше таблице, второй синтаксический элемент предоставляется, если первый синтаксический элемент указывает «истина», то есть в случае, когда первый синтаксический элемент представляет собой sps_alf_enabled_flag и указывает, что ALF должен быть включен. Кроме того, второй синтаксический элемент предоставляется, если четырнадцатый синтаксический элемент имеет значение, не равное 0.As shown in the table above, the second syntax element is provided if the first syntax element is true, that is, when the first syntax element is sps_alf_enabled_flag and specifies that ALF should be enabled. In addition, the second syntax element is provided if the fourteenth syntax element has a value other than 0.
1.1.1.1 Синтаксис RBSP набора параметров последовательности1.1.1.1 RBSP Sequence Parameter Set Syntax
sps_max_sublayers_minus1firstSubLayer = sps_sublayer_cpb_params_present_flag ? 0 :
sps_max_sublayers_minus1
1.1.1.2 Синтаксис RBSP набора параметров изображения1.1.1.2 RBSP Syntax of Image Parameter Set
slice_height_in_tiles_minus1[ i ] = = 0 ) {if( slice_width_in_tiles_minus1[ i ] = = 0 &&
slice_height_in_tiles_minus1[ i ] = = 0 ) {
Общий синтаксис информации об ограниченияхGeneral syntax for constraint information
7.3.3.2 Общий синтаксис информации об ограничениях7.3.3.2 General syntax of constraint information
ПРИМЕЧАНИЯ:NOTES:
!(0)=1!(0)=1
!(1)=0!(1)=0
7.3.2.4 Синтаксис RBSP набора параметров изображения7.3.2.4 RBSP Syntax of Image Parameter Set
Синтаксис RBSP заголовка изображенияRBSP Image Header Syntax
( i = = 0 | | ( i = = 1 && rpl1_idx_present_flag ) ) )if( num_ref_pic_lists_in_sps[ i ] > 0 && !pps_ref_pic_list_sps_idc[ i ] &&
( i = = 0 | | ( i = = 1 && rpl1_idx_present_flag ) ) )
( i = = 0 | | ( i = = 1 && rpl1_idx_present_flag ) ) )if( num_ref_pic_lists_in_sps[ i ] > 1 &&
( i = = 0 | | ( i = = 1 && rpl1_idx_present_flag ) ) )
!pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 )if( sps_triangle_enabled_flag && MaxNumMergeCand >= 2 &&
!pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1 )
pic_cross_component_alf_cr_enabled_flag if( ChromaArrayType != 0 )
pic_cross_component_alf_cr_enabled_flag
alf_present_in_ph_flag, равный 1, указывает синтаксические элементы для включения ALF, которые могут присутствовать в PH (заголовках изображений), относящихся к PPS. alf_present_in_ph_flag, равный 0, указывает, что синтаксические элементы для включения ALF могут присутствовать в заголовках слайсов, относящихся к PPS. alf_present_in_ph_flag equal to 1 specifies that syntax elements for ALF inclusion may be present in PH (picture headers) belonging to PPS. alf_present_in_ph_flag equal to 0 specifies that syntax elements for ALF inclusion may be present in slice headers belonging to PPS.
7.3.2.6 Синтаксис RBSP заголовка изображения7.3.2.6 RBSP Image Header Syntax
Как показано в приведенной выше таблице, наличие дополнительных синтаксических элементов, относящихся к CCALF, в заголовке изображения, таких как четвертый синтаксический элемент (например, pic_cross_component_alf_cb_enabled_flag) и седьмой синтаксический элемент (например, pic_cross_component_alf_cr_enabled_flag), может зависеть от присутствия и/ или значение второго синтаксического элемента. Наличие пятого синтаксического элемента, такого как pic_cross_component_alf_cb_aps_id, может затем зависеть от второго синтаксического элемента и/или наличия и/или значения четвертого синтаксического элемента, тогда как присутствие и/или значение восьмого синтаксического элемента, такого как pic_cross_component_alf_cr_aps_id, может зависеть о наличии и/или значении второго синтаксического элемента и/или наличии и/или значении седьмого синтаксического элемента.As shown in the table above, the presence of additional CCALF-related syntax elements in the image header, such as the fourth syntactic element (e.g.pic_cross_component_alf_cb_enabled_flag) and the seventh syntactic element (For example, pic_cross_component_alf_cr_enabled_flag), may depend on the presence and/or meaning of a second syntactic element. The presence of a fifth syntactic element, such aspic_cross_component_alf_cb_aps_id,may then depend on the second syntactic element and/or the presence and/or meaning of a fourth syntactic element, while the presence and/or meaning of an eighth syntactic element, such aspic_cross_component_alf_cr_aps_id, may depend on the presence and/or meaning of the second syntactic element and/or the presence and/or meaning of the seventh syntactic element.
7.3.7.1 Общий синтаксис заголовка слайса7.3.7.1 General Slice Header Syntax
В приведенной выше таблице дополнительные синтаксические элементы, относящиеся к CCALF, могут дополнительно зависеть от наличия и/или значения второго синтаксического элемента. Например, десятый синтаксический элемент, такой как slice_cross_component_alf_cb_enabled_flag, может быть предоставлен в зависимости от второго синтаксического элемента. В зависимости от наличия и/или значения этого десятого синтаксического элемента и/или второго синтаксического элемента может быть предоставлен одиннадцатый синтаксический элемент, такой как slice_cross_component_alf_cb_aps_id. Кроме того, в заголовке слайса может быть предусмотрен двенадцатый синтаксический элемент, такой как slice_cross_component_alf_cr_enabled_flag, в зависимости от значения второго синтаксического элемента. В зависимости от наличия и/или значения двенадцатого синтаксического элемента и/или в зависимости от второго синтаксического элемента в заголовке слайса может быть предусмотрен тринадцатый синтаксический элемент, такой как slice_cross_component_alf_cr_aps_id.In the table above, additional syntactic elements related to CCALF may further depend on the presence and/or value of a second syntactic element. For example, a tenth syntactic element such asslice_cross_component_alf_cb_enabled_flag,may be provided depending on the second syntactic element. Depending on the presence and/or value of this tenth syntactic element and/or the second syntactic element, the eleventh syntactic element may be provided,such asslice_cross_component_alf_cb_aps_id. In addition, the slice header may contain a twelfth syntactic element may be provided, such asslice_cross_component_alf_cr_enabled_flag, depending on the value of the second syntactic element. Depending on the presence and/or value of the twelfth syntactic element and/or depending on the second syntactic element in the slice header, there may be a thirteenth syntactic element is provided, such asslice_cross_component_alf_cr_aps_id.
ПРИМЕЧАНИЯ:NOTES:
!(0)=1!(0)=1
!(1)=0!(1)=0
if(sps_alf_enabled_flag && !alf_present_in_ph_flag) означает «если sps_alf_enabled_flag равен true (и) если alf_present_in_ph_flag равен false)»if(sps_alf_enabled_flag && !alf_present_in_ph_flag) means "if sps_alf_enabled_flag is true (and) if alf_present_in_ph_flag is false)"
Синтаксис заголовка слайсаSlice Header Syntax
Общий синтаксис заголовка слайса.General syntax of a slice header.
IDR_N_LP ) | | sps_idr_rpl_present_flag ) ) {if( !pic_rpl_present_flag &&( ( nal_unit_type != IDR_W_RADL && nal_unit_type !=
IDR_N_LP ) | | sps_idr_rpl_present_flag ) ) {
( i = = 0 | | ( i = = 1 && rpl1_idx_present_flag ) ) )if( num_ref_pic_lists_in_sps[ i ] > 0 && !pps_ref_pic_list_sps_idc[ i ] &&
( i = = 0 | | ( i = = 1 && rpl1_idx_present_flag ) ) )
IDR_N_LP ) | | sps_idr_rpl_present_flag ) ) {if( pic_rpl_present_flag | | ( ( nal_unit_type != IDR_W_RADL && nal_unit_type !=
IDR_N_LP ) | | sps_idr_rpl_present_flag ) ) {
( slice_type = = B && num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] > 1 ) ) {if( ( slice_type != I && num_ref_entries[ 0 ][ RplsIdx[ 0 ] ] > 1 ) | |
( slice_type = = B && num_ref_entries[ 1 ][ RplsIdx[ 1 ] ] > 1 ) ) {
( !collocated_from_l0_flag && NumRefIdxActive[ 1 ] > 1 ) )if( ( collocated_from_l0_flag && NumRefIdxActive[ 0 ] > 1 ) | |
( !collocated_from_l0_flag && NumRefIdxActive[ 1 ] > 1 ) )
( pps_weighted_bipred_flag && slice_type = = B ) )if( ( pps_weighted_pred_flag && slice_type = = P ) | |
(pps_weighted_bipred_flag && slice_type == B))
!pic_deblocking_filter_override_present_flag )if( deblocking_filter_override_enabled_flag &&
!pic_deblocking_filter_override_present_flag )
В приведенной выше таблице некоторые элементы показаны зачеркнутыми. Это означает, что в первом варианте осуществления эти элементы могут присутствовать. В альтернативном варианте осуществления эти элементы могут быть отменены, оставив оставшийся синтаксис таким, какой он есть. Например, элемент ChromaArrayType может не предоставляться. Соответственно, любая зависимость от этого элемента, включая условное присутствие других синтаксических элементов, может быть предусмотрена в первом варианте осуществления. В альтернативном варианте осуществления эта зависимость не существует, что приводит, например, к синтаксическим элементам, присутствующим в любом случае, в то время как в альтернативном варианте осуществления они присутствуют только в том случае, если ChromaArrayType имеет конкретное значение.In the table above, some elements are shown crossed out. This means that in the first embodiment, these elements may be present. In an alternative embodiment, these elements may be omitted, leaving the remaining syntax as it is. For example, the ChromaArrayType element may not be provided. Accordingly, any dependency on this element, including the conditional presence of other syntax elements, may be provided in the first embodiment. In an alternative embodiment, this dependency does not exist, resulting, for example, in the syntax elements being present in any case, while in an alternative embodiment they are present only if ChromaArrayType has a specific value.
Аналогично, синтаксические элементы, такие как slice_cross_component_cr_filters_signalled_minus1 и slice_cross_component_cb_filters_signalled_minus1, могут вообще не предоставляться (независимо от того, будет ли присутствовать такой синтаксический элемент, как ChromaArrayType).Similarly, syntax elements such as slice_cross_component_cr_filters_signalled_minus1 and slice_cross_component_cb_filters_signalled_minus1 may not be provided at all (regardless of whether a syntax element such as ChromaArrayType is present).
Семантика вновь введенных синтаксических элементов следующая:The semantics of the newly introduced syntactic elements is as follows:
Значение второго синтаксического элемента, например (sps_ccalf_enabled_flag), равное 0, указывает, что межкомпонентный адаптивный контурный фильтр отключен. Значение первого синтаксического элемента, равное 1, указывает, что межкомпонентный адаптивный контурный фильтр включен. Это также может иметь обратное значение, т.е. если второй синтаксический элемент имеет значение, равное 1, CCALF может быть отключен, тогда как, если второй синтаксический элемент имеет значение, равное 0, CCALF может быть включен.A value of 0 for the second syntax element, such as (sps_ccalf_enabled_flag) , indicates that the cross-component adaptive loop filter is disabled. A value of 1 for the first syntax element indicates that the cross-component adaptive loop filter is enabled. This can also have the opposite meaning, i.e. if the second syntax element has a value of 1, CCALF can be disabled, whereas if the second syntax element has a value of 0, CCALF can be enabled.
Значение no_ccalf_constraint_flag, равное 1, указывает, что первый синтаксический элемент (например, sps_ccalf_enabled_flag) должен быть равен 0. Значение no_ccalf_constraint_flag, равное 0, не накладывает такого ограничения.A no_ccalf_constraint_flag value of 1 specifies that the first syntax element (for example, sps_ccalf_enabled_flag) must be 0. A no_ccalf_constraint_flag value of 0 imposes no such constraint.
В вариантах осуществления процесс фильтрации подробно представлен ниже.In embodiments, the filtering process is detailed below.
Для обсуждаемых выше вариантов осуществления ниже сделаны некоторые общие замечания относительно значения конкретных синтаксических элементов и последствий того, что эти синтаксические элементы принимают определенные значения. Представленное ниже раскрытие предназначено для охвата любого из приведенных выше вариантов осуществления, в частности, альтернативных вариантов осуществления с 1 по 5.For the embodiments discussed above, some general remarks are made below regarding the meaning of particular syntax elements and the consequences of these syntax elements taking on certain values. The disclosure below is intended to cover any of the embodiments given above, in particular,
8.8 Процесс внутриконтурной фильтрации8.8 In-circuit filtration process
8.8.1 Общие положения8.8.1 General Provisions
…………
4. Когда первый синтаксический элемент (обозначенный выше как sps_alf_enabled_flag) равен 1, применяется следующее:4. When the first syntax element (designated sps_alf_enabled_flag above) is 1, the following applies:
Когда второй синтаксический элемент (например, sps_ccalf_enabled_flag) равен 1, массив восстановленных выборок изображения (до адаптивного контурного фильтра) SL' устанавливается равным массиву восстановленных выборок изображений SL.When the second syntax element (e.g. sps_ccalf_enabled_flag) is 1, the array of reconstructed image samples (before the adaptive loop filter) SL' is set equal to the array of reconstructed image samples S L .
Процесс адаптивной контурный фильтрации, как указано в пункте 8.8.5.1, вызывается с массивом восcтановленных выборок изображения SL, и, когда четырнадцатый синтаксический элемент (в приведенных выше таблицах он обозначен как ChromaArrayType) не равен 0, массивами SCb и SCr в качестве входных данных, и модифицированным восстановленным массивом выборок изображения S'L и, когда четырнадцатый синтаксический элемент не равен 0, массивами S'Cb и S'Cr после адаптивного контурного фильтра в качестве выходных данных.The adaptive loop filtering process as specified in 8.8.5.1 is called with the array of reconstructed image samples S L and, when the fourteenth syntax element (in the tables above it is designated as ChromaArrayType) not equal to 0, the arrays S Cb and S Cr as input, and the modified reconstructed array of image samples S' L and, when the fourteenth syntax element is not equal to 0, the arrays S' Cb and S' Cr after the adaptive loop filter as output.
Массив S′L и, когда четырнадцатый синтаксический элемент не равен 0, массивы S′Cb и S′Cr присваиваются массиву SL, и, когда четырнадцатый синтаксический элемент не равен 0, массивам SCb и SCr (которые представляют собой декодированное изображение) соответственно.The array S′ L and, when the fourteenth syntax element is not equal to 0, the arrays S′ Cb and S′ Cr are assigned to the array S L , and, when the fourteenth syntax element is not equal to 0, to the arrays S Cb and S Cr (which represent the decoded image), respectively.
Когда второй синтаксический элемент (например, sps_ccalf_enabled_flag) равен 1, применяется следующее:When the second syntax element (for example, sps_ccalf_enabled_flag) is 1, the following applies:
Процесс межкомпонентной адаптивной контурный фильтрации, как указано в разделе x.x.x.x, вызывается с массивом восcтановленных выборок изображения SL и, когда четырнадцатый синтаксический элемент (например, ChromaArrayType) не равен 0, массивами SCb и SCr в качестве входных данных и модифицированным восстановленым массивом выборок изображения S'L и, когда четырнадцатый синтаксический элемент не равен 0, массивами S'Cb и S'Cr после межкомпонентного адаптивного контурного фильтра в качестве выходных данных.The process of inter-component adaptive loop filtering, as specified in section xxxx, is called with the array of reconstructed image samples S L and, when the fourteenth syntax element (e.g., ChromaArrayType) is not equal to 0, the arrays S Cb and S Cr as input data and the modified reconstructed array of image samples S' L and, when the fourteenth syntax element is not equal to 0, the arrays S' Cb and S' Cr after the inter-component adaptive loop filter as output data.
Массив S′L и, когда четырнадцатый синтаксический элемент не равен 0, массивы S′Cb и S′Cr присваиваются массиву SL, и, когда четырнадцатый синтаксический элемент не равен 0, массивам SCb и SCr (которые представляют собой декодированное изображение) соответственно.The array S′ L and, when the fourteenth syntax element is not equal to 0, the arrays S′ Cb and S′ Cr are assigned to the array S L , and, when the fourteenth syntax element is not equal to 0, to the arrays S Cb and S Cr (which represent the decoded image), respectively.
Следует отметить, что настоящее изобретение не ограничено представленными здесь альтернативами, а скорее изобретение в очень общем виде позволяет условно сигнализировать данные CCALF, присутствующие в заголовке слайса, в заголовке изображения. Основное преимущество использования данных CCALF в заголовке изображения заключается в том, что снижаются накладные расходы на сигнализацию в заголовке слайса.It should be noted that the present invention is not limited to the alternatives presented here, but rather the invention in a very general form allows conditionally signaling CCALF data present in a slice header in an image header. The main advantage of using CCALF data in an image header is that the signaling overhead in the slice header is reduced.
Изобретение также охватывает случай, когда конкретный синтаксический элемент CCALF, сигнализируемый в заголовке слайса, имеет одно и то же значение во всех слайсах (например, из-за некоторых требований соответствия битового потока), тогда этот конкретный синтаксический элемент больше не сигнализируется в заголовке слайса, а скорее сигнализируется только один раз в заголовке изображения, связанном со всеми слайсами.The invention also covers the case where a particular CCALF syntax element signaled in a slice header has the same meaning in all slices (e.g. due to some bitstream conformance requirements), then that particular syntax element is no longer signaled in the slice header, but rather is signaled only once in the picture header associated with all slices.
Межкомпонентный адаптивный контурный фильтр (CC-ALF) может использоваться как контурный фильтр и как этап постобработки соответственно.The Cross-Component Adaptive Loop Filter (CC-ALF) can be used as a loop filter and as a post-processing step respectively.
CC-ALF использует значения выборок яркости для уточнения каждого компонента цветности. CC_ALF применяется к выборкам яркости для получения поправочного коэффициента для фильтрации выборок цветности.CC-ALF uses the luma sample values to refine each chroma component. CC_ALF is applied to the luma samples to obtain a correction factor for filtering the chroma samples.
JVET-P0080 и JVET-O0630 предлагают новый внутриконтурный фильтр, называемый межкомпонентным фильтром ALF. CC-ALF работает как часть процесса адаптивной контурный фильтрации и использует значения выборок яркости для уточнения каждого компонента цветности (компонента Cr или Cb). Инструмент управляется информацией в битовом потоке, и эта информация включает в себя как (а) коэффициенты фильтра для каждого компонента цветности, так и (б) маску, управляющую применением фильтра для блоков выборок. О коэффициентах фильтра сообщается в наборе параметров адаптации (APS), а о размерах блоков и маске сообщается на уровне слайса.The JVET-P0080 and JVET-O0630 introduce a new in-loop filter called the inter-component ALF. The CC-ALF operates as part of the adaptive loop filtering process and uses the luma sample values to refine each chroma component (Cr or Cb component). The tool is driven by information in the bitstream, and this information includes both (a) the filter coefficients for each chroma component and (b) a mask that controls the application of the filter to blocks of samples. The filter coefficients are reported in the adaptation parameter set (APS), and the block sizes and mask are reported at the slice level.
Можно понять, что Маска - это бит (0 или 1). Здесь маска указывает, следует ли фильтровать блок выборок или нет (маска=1 означает, что он фильтруется) и (маска=0 означает, что он не фильтруется). В основном APS содержит коэффициенты для ALF и другую информацию.It can be understood that Mask is a bit (0 or 1). Here mask indicates whether the block of samples should be filtered or not (mask=1 means it is filtered) and (mask=0 means it is not filtered). Basically, APS contains coefficients for ALF and other information.
Общий вид CC-ALF показан на фиг. 6(а), фиг. 6(б) и фиг. 6(в). Этот общий дизайн может быть применен к любому из вышеупомянутых вариантов осуществления, которые относятся к проблемам, относящимся к CC-ALF. В частности, предполагается, что то, что здесь описано, охватывается каждым из альтернативных вариантов осуществления с 1 по 5.The general appearance of the CC-ALF is shown in Fig. 6(a), Fig. 6(b) and Fig. 6(c). This general design can be applied to any of the above-mentioned embodiments that relate to the problems related to the CC-ALF. In particular, it is assumed that what is described herein is covered by each of the
Расположение фильтра показано на фиг. 6a (см. левую сторону). Форма фильтра показана на фиг. 6b и 6c.The location of the filter is shown in Fig. 6a (see left side). The shape of the filter is shown in Fig. 6b and 6c.
CC-ALF работает путем применения линейного ромбовидного фильтра (рис. 6b и 6c) к каналу яркости для каждого компонента цветности, который выражается какCC-ALF works by applying a linear diamond filter (Figures 6b and 6c) to the luma channel for each chroma component, which is expressed as
гдеWhere
(x, y) - уточняемое местоположение i-го компонента цветности;(x, y) - the specified location of the i-th color component;
(xC, yC) - местоположение яркости на основе (x, y);(xC, yC) - brightness location based on (x, y);
Si - поддержка фильтра яркости для компонента цветности I;Si - support for luminance filter for chroma component I;
ci(x0,y0) - коэффициенты фильтра.ci(x 0 ,y 0 ) - filter coefficients.
Следует отметить, что имеется первый компонент цветности (например, цветовой компонент cb), когда i=1 для компонента цветности i, и имеется второй компонент цветности (например, цветовой компонент cr), когда i=2 для компонента цветности i.It should be noted that there is a first chroma component (e.g., chroma component cb) when i=1 for chroma component i, and there is a second chroma component (e.g., chroma component cr) when i=2 for chroma component i.
К основным характеристикам CC-ALF относятся:The main characteristics of CC-ALF include:
Положение яркости ? вокруг которого центрируется область поддержки, вычисляется на основе коэффициента пространственного масштабирования между плоскостями яркости и цветности. В основном CCALF использует выборки яркости для уточнения выборок цветности. Поэтому фильтр применяется к выборкам яркости, а затем выводится поправочный коэффициент для цветности.Brightness position ? around which the support region is centered is calculated based on the spatial scaling factor between the luma and chroma planes. Basically, CCALF uses luma samples to refine chroma samples. Therefore, the filter is applied to the luma samples, and then a correction factor for chroma is derived.
Все коэффициенты фильтра передаются в APS и имеют 8-битный динамический диапазон.All filter coefficients are transferred to APS and have 8-bit dynamic range.
На APS можно ссылаться в заголовке слайса.APS can be referenced in the slice header.
Коэффициенты CC-ALF, используемые для каждого компонента цветности слайса, также сохраняются в буфере, соответствующем временному подуровню. Повторное использование этих наборов временных коэффициентов фильтрации подуровня упрощается с помощью флагов уровня слайса. Можно понять, что временные подуровни в основном определяются на основе опорной информации.The CC-ALF coefficients used for each slice chroma component are also stored in a buffer corresponding to the temporal sublayer. Reuse of these sets of sublayer temporal filter coefficients is simplified by slice-level flags. It can be seen that the temporal sublayers are mainly determined based on reference information.
Применение фильтров CC-ALF контролируется переменным размером блока и сигнализируется контекстно-кодированным флагом, полученным для каждого блока выборок. Размер блока вместе с разрешающим флагом CC-ALF принимается на уровне слайса для каждого компонента цветности.The application of CC-ALF filters is controlled by a variable block size and signaled by a context-coded flag received for each block of samples. The block size together with the CC-ALF enable flag is received at the slice level for each chroma component.
Заполнение границ для горизонтальных виртуальных границ использует повторение. Для остальных границ используется тот же тип заполнения, что и для обычного ALF.Border padding for horizontal virtual borders uses repetition. The rest of the borders use the same padding type as regular ALF.
Фиг. 8 представлена блок-схема, показывающая записи заголовка изображения для CCALF, которые определяют общие данные CCALF, и все слайсы могут затем наследовать эту общую информацию по сравнению с фиг. 7.Fig. 8 is a block diagram showing the image header entries for CCALF that define the common CCALF data, and all slices can then inherit this common information compared to Fig. 7.
Фиг. 16 представляет собой схематическую диаграмму структуры 5000 данных, структура 5000 данных может представлять часть битового потока 21, сформированного кодером на фиг. 2 и принимается декодером на фиг. 3. Структура 5000 данных (то есть битовый поток 5000 видео) может содержать VPS 5005; SPS 5010; PPS 5015; и по меньшей мере четыре слайса 5020, 5025, 5030 и 5035. Слайс 5020 может содержать заголовок 5040 и данные 5045. Слайсы 5025, 5030, 5035 аналогичны слайсу 5020. Данные 5045 могут содержать по меньшей мере три блока 5050, 5055 и 5060, то есть кодированное представление по меньшей мере трех блоков 5050, 5055 и 5060. Хотя показаны четыре слайса 5020-5035, битовый поток 5000 видео содержит любое подходящее количество слайсов. Хотя показаны три блока 5050-5060, данные 5045 содержат любое подходящее количество блоков. Кроме того, каждый оставшийся слайс 5025, 5030, 5035 также содержит блоки. Таким образом, в то время как битовый поток 5000 видео содержит, например, кодированное представление многочисленных блоков, битовый поток 5000 видео содержит один SPS 5010 и значительно меньше заголовков слайсов, чем блоков. Понятно, что битовый поток, включающий в себя множество синтаксических элементов, относящихся к CC-ALF, также может быть показан на фиг. 16. Как показано синтаксисом выше и ниже, множество синтаксических элементов, относящихся к CC-ALF, четко определены. Кроме того, процесс кодирования или декодирования битового потока четко указан в синтаксисе и/или семантике, отмеченных выше и ниже.Fig. 16 is a schematic diagram of a
Показанный здесь битовый поток может быть получен путем кодирования видеопоследовательности с использованием любого из вышеописанных вариантов осуществления. В частности, этот битовый поток может быть получен или может включать в себя синтаксические элементы и, в частности, синтаксические элементы, относящиеся к CC-ALF, как пояснено в приведенных выше альтернативных вариантах осуществления 1-5.The bitstream shown here may be obtained by encoding a video sequence using any of the embodiments described above. In particular, this bitstream may be obtained or may include syntax elements and, in particular, syntax elements related to CC-ALF, as explained in the above alternative embodiments 1-5.
Фиг. 14 показывает блок-схему способа 4200 кодирования, например, видео. Этот способ может быть реализован, например, с использованием кодера согласно фиг. 12, но также может быть использован любой другой кодер и устройство кодирования, раскрытые в данном документе, для выполнения этого способа.Fig. 14 shows a block diagram of a
Способ 4200 кодирования содержит применение 4201 межкомпонентного адаптивного контурного фильтра CC-ALF для уточнения компонента цветности и формирование 4202 битового потока, включающего в себя множество синтаксических элементов, относящихся к CC-ALF, при этом упомянутое множество синтаксических элементов относящихся к CC-ALF, указывают информацию, относящуюся к CC-ALF. В битовом потоке, сформированном на этапе 4202, упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на любом одном или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса. Упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS.The
Фиг. 15 показывает блок-схему способа 4300 декодирования, например, видео из битового потока и т.п. Этот способ 4300 может быть реализован, например, с использованием декодера согласно фиг. 13. Также любой другой декодер и устройство декодирования, раскрытые в настоящем документе, могут использоваться для выполнения способа 4300.Fig. 15 shows a block diagram of a
Способ 4300 содержит синтаксический анализ 4301 множества синтаксических элементов, относящихся к межкомпонентному адаптивному контурному фильтру, CC-ALF, из битового потока, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, получается из любого одного или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса. Упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS. Способ 4300 дополнительно содержит этап 4302 выполнения процесса CC-ALF с использованием по меньшей мере одного из упомянутого множества синтаксических элементов, относящихся к CC-ALF.The
В одном варианте осуществления предоставляется способ кодирования, реализуемый устройством кодирования, содержщий:In one embodiment, an encoding method implemented by an encoding device is provided, comprising:
выполнение процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения межкомпонентного адаптивного контурного фильтра (CC-ALF);performing a filtering process (such as a cross-component filtering process) by applying a cross-component adaptive loop filter (CC-ALF);
формирование битового потока, включающего в себя множество синтаксических элементов, относящихся к CC-ALF (таких как M синтаксических элементов, относящихся к CC-ALF, и M>=1, а M является целым числом), при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, указывают информацию, относящуюся к CC-ALF,generating a bit stream including a plurality of syntactic elements related to the CC-ALF (such as M syntactic elements related to the CC-ALF, and M>=1, and M is an integer), wherein said plurality of syntactic elements related to the CC-ALF indicate information related to the CC-ALF,
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на любом одном или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла; или при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на уровне набора параметров последовательности (SPS) и/или в заголовке изображения.wherein said plurality of syntax elements related to the CC-ALF are signaled at any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a picture parameter set (PPS) level, a picture header, a slice header or a tile header; or wherein said plurality of syntax elements related to the CC-ALF are signaled at a sequence parameter set (SPS) level and/or in a picture header.
С помощью этого способа может предоставляться битовый поток, размер которого уменьшается, поскольку информация, относящаяся, например, ко всем слайсам изображения, может быть предоставлена в заголовке изображения только один раз.By means of this method, a bitstream can be provided whose size is reduced, since information relating to, for example, all slices of an image can be provided in the image header only once.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит: первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag), при этом первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag) сигнализируется на уровне набора параметров последовательности (SPS). Этот индикатор может указывать, могут ли ALF или CC-ALF или оба быть включены или нет для всей последовательности.In one embodiment, said plurality of syntax elements related to CC-ALF comprises: a first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), wherein the first syntax element (e.g., a first indicator, such as sps_ccalf_enabled_flag) is signaled at the sequence parameter set (SPS) level. This indicator may indicate whether ALF or CC-ALF or both can be enabled or not for the entire sequence.
В дополнительном варианте осуществления первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag) указывает, включен или нет межкомпонентный адаптивный контурный фильтр (CC-ALF) на уровне последовательности, илиIn a further embodiment, the first syntax element (e.g., a first indicator such as sps_ccalf_enabled_flag) indicates whether or not the cross-component adaptive loop filter (CC-ALF) is enabled at the sequence level, or
при этом первый синтаксический элемент (например, первый индикатор, такой как sps_alf_enabled_flag) указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр (CC-ALF), на уровне последовательности. С помощью этого первого синтаксического элемента режимы адаптивного контурного фильтра могут быть специально предоставлены на уровне последовательности для всех изображений или частей последовательности.wherein the first syntax element (e.g. the first indicator such as sps_alf_enabled_flag) indicates whether the adaptive loop filter (ALF) containing the cross-component adaptive loop filter (CC-ALF) is enabled or not at the sequence level. With this first syntax element, the adaptive loop filter modes can be specifically provided at the sequence level for all images or parts of a sequence.
Кроме того, может быть предусмотрено, что первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или первый синтаксический элемент имеет первое значение («истина» или 1). С помощью этого значения может быть указано, разрешены ли ALF и/или CC-ALF, используя, предпочтительно, только одно битовое значение.In addition, it can be provided that the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ("true" or 1) or the first syntax element has the first value ("true" or 1). With this value it can be indicated whether ALF and/or CC-ALF are enabled, preferably using only one bit value.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:In one embodiment, said plurality of CC-ALF related syntax elements further comprises:
второй синтаксический элемент (например, второй индикатор, такой как pic_ccalf_enabled_present_flag), если первый синтаксический элемент (например, sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или первый синтаксический элемент имеет первое значение («истина» или 1), в котором второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag) сигнализируется в заголовке изображения; илиa second syntax element (e.g., a second indicator such as pic_ccalf_enabled_present_flag) if the first syntax element (e.g., sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or the first syntax element has the first value ('true' or 1) in which the second syntax element (such as pic_ccalf_enabled_present_flag) is signaled in the image header; or
девятый синтаксический элемент (например, девятый индикатор, такой как pic_alf_enabled_present_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или первый синтаксический элемент имеет первое значение («истина» или 1), при этом девятый синтаксический элемент (такой как pic_alf_enabled_present_flag ) сигнализируется в заголовке изображения.the ninth syntactic element (e.g. the ninth indicator, such aspic_alf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or the first syntax element has the first value ('true' or 1), and the ninth syntax element (such aspic_alf_enabled_present_flag) is signaled in the image header.
То, что второй синтаксический элемент предоставляется, если первый синтаксический элемент установлен в качестве первого значения (и, соответственно, для девятого синтаксического элемента), может пониматься как означающий, что соответствующий синтаксический элемент предоставляется единственным или по меньшей мере одним, если первый синтаксический элемент имеет первое значение и не предоставляется в любом другом случае. Этот вариант осуществления, тем не менее, может предусматривать, что второй и девятый синтаксические элементы предоставляются или присутствуют независимо от значения первого синтаксического элемента. Это значение может быть применено к наличию или отсутствию всех дополнительных синтаксических элементов, упомянутых здесь, при условии, что эти синтаксические элементы считаются присутствующими, если другой синтаксический элемент принимает конкретное значение.That the second syntax element is provided if the first syntax element is set to the first value (and accordingly for the ninth syntax element) may be understood as meaning that the corresponding syntax element is provided alone or at least once if the first syntax element has the first value and is not provided in any other case. This embodiment may, however, provide that the second and ninth syntax elements are provided or present regardless of the value of the first syntax element. This meaning may be applied to the presence or absence of all additional syntax elements mentioned herein, provided that these syntax elements are considered to be present if another syntax element takes a specific value.
С помощью второго и девятого синтаксических элементов можно указать, разрешены ли ALF и/или CC-ALF для слайсов изображения с использованием уменьшенного количества битов.The second and ninth syntax elements can be used to specify whether ALF and/or CC-ALF are enabled for image slices using reduced bits.
В одном варианте осуществления второй синтаксический элемент (например, второй индикатор, такой как pic_ccalf_enabled_present_flag) указывает, присутствует ли в заголовке изображения третий синтаксический элемент и/или четвертый набор синтаксических элементов.In one embodiment, the second syntax element (e.g., a second indicator such as pic_ccalf_enabled_present_flag) indicates whether the third syntax element and/or the fourth set of syntax elements are present in the image header.
Кроме того, может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:In addition, it may be envisaged that said set of syntactic elements related to CC-ALF additionally comprises:
третий синтаксический элемент (например, третий индикатор, такой как pic_ccalf_enabled_flag или pic_alf_enabled_flag), если второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag) или девятый синтаксический элемент (такой как pic_alf_enabled_present_flag) установлен как первое значение («истина» или 1) , или второй синтаксический элемент или девятый синтаксический элемент имеет первое значение («истина» или 1), при этом третий синтаксический элемент (такой как pic_ccalf_enabled_flag или pic_alf_enabled_flag) сигнализируется в заголовке изображения.a third syntactic element (e.g. a third indicator such aspic_ccalf_enabled_flag or pic_alf_enabled_flag), if the second syntax element (such as pic_ccalf_enabled_present_flag) or the ninth syntax element (such aspic_alf_enabled_present_flag) is set to the first value ('true' or 1), or the second syntactic element or the ninth syntactic element has the first value ('true' or 1), and the third syntactic element(suchHow pic_ccalf_enabled_flag or pic_alf_enabled_flag) is signaled in the image header.
В дополнительном варианте осуществления третий синтаксический элемент (например, третий индикатор, такой как pic_ccalf_enabled_flag) указывает, включен ли межкомпонентный адаптивный контурный фильтр (CCALF) для всех слайсов, связанных с заголовком изображения, или нет, илиIn a further embodiment, a third syntax element (e.g., a third indicator such as pic_ccalf_enabled_flag ) indicates whether the cross-component adaptive contour filter (CCALF) is enabled for all slices associated with the picture header or not, or
при этом третий синтаксический элемент (например, третий индикатор, такой как pic_alf_enabled_flag) указывает, включен ли адаптивный контурный фильтр, содержащий межкомпонентный адаптивный контурный фильтр (CCALF), для всех слайсов, связанных с заголовком изображения, или нет. Таким образом, информация о применении ALF или CC-ALF может передаваться для всех слайсов изображения с использованием уменьшенного количества информации.wherein the third syntax element (e.g. the third indicator such as pic_alf_enabled_flag ) indicates whether the adaptive loop filter containing the cross-component adaptive loop filter (CCALF) is enabled for all slices associated with the image header or not. In this way, the information about the application of ALF or CC-ALF can be conveyed for all slices of the image using a reduced amount of information.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:In a further embodiment, said plurality of CC-ALF related syntax elements further comprises:
четвертый набор синтаксических элементов, если третий синтаксический элемент (например, третий индикатор, такой как pic_ccalf_enabled_flag или pic_alf_enabled_flag) установлен как первое значение («истина» или 1) или третий синтаксический элемент имеет первое значение («истина» или 1), при этом четвертый набор синтаксических элементов сигнализируется в заголовке изображения (например, на уровне заголовка изображения), или четвертый набор синтаксических элементов переносится элементами заголовка изображения.a fourth set of syntax elements if the third syntax element (e.g., a third indicator such as pic_ccalf_enabled_flag or pic_alf_enabled_flag ) is set to the first value ('true' or 1) or the third syntax element has the first value ('true' or 1), where the fourth set of syntax elements is signaled in the image header (e.g., at the image header level), or the fourth set of syntax elements is carried by image header elements.
В частности, в одном варианте осуществления четвертый набор синтаксических элементов содержит:In particular, in one embodiment, the fourth set of syntax elements comprises:
Дополнительно или альтернативно может быть предусмотрено, что четвертый набор синтаксических элементов содержит: Additionally or alternatively, it may be provided that the fourth set of syntactic elements comprises:
Кроме того, дополнительно или альтернативно четвертый набор синтаксических элементов содержит: In addition, additionally or alternatively, the fourth set of syntactic elements contains:
В приведенных выше вариантах осуществления релевантная информация о применяемых фильтрах может предоставляться для всех слайсов, уже находящихся в заголовке изображения, что потенциально уменьшает размер битового потока.In the above embodiments, relevant information about the filters to be applied may be provided for all slices already in the image header, potentially reducing the bitstream size.
В дополнительном варианте осуществления предусмотрено, что для всех слайсов одного и того же изображения одна и та же информация, относящаяся к CC-ALF (такая как aps_ids), наследуется от заголовка изображения. Таким образом, нет необходимости дополнительно включать информацию, представленную в заголовке изображения, в заголовки слайсов и т.п., тем самым потенциально уменьшая количество информации, предоставляемой в битовом потоке.In a further embodiment, it is provided that for all slices of the same image, the same CC-ALF related information (such as aps_ids) is inherited from the image header. Thus, there is no need to additionally include the information provided in the image header in slice headers, etc., thereby potentially reducing the amount of information provided in the bitstream.
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит:In one embodiment, said plurality of CC-ALF related syntax elements comprises:
первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag), при этом первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag) сигнализируется на уровне набора параметров последовательности (SPS),a first syntax element (e.g., a first indicator such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), wherein the first syntax element (e.g., a first indicator such as sps_ccalf_enabled_flag) is signaled at the sequence parameter set (SPS) level,
второй синтаксический элемент (например, второй индикатор, такой как pic_ccalf_enabled_present_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1), при этом второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag) сигнализируется в заголовке изображения.a second syntax element (e.g. a second indicator such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1), and the second syntax element (such as pic_ccalf_enabled_present_flag) is signaled in the image header.
Кроме того, упомянутое множество синтаксических элементов, относящихся к CC-ALF, может содержать:In addition, the said set of syntactic elements related to CC-ALF may contain:
пятый синтаксический элемент (например, пятый индикатор, такой как slice_ccalf_enabled_flag или slice_alf_enabled_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1) , и, если второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag или pic_alf_enabled_present_flag) установлен как второе значение («ложь» или 0) или имеет второе значение («ложь» или 0), при этом пятый синтаксический элемент (такой как slice_ccalf_enabled_flag или slice_alf_enabled_flag) сигнализируется в заголовок слайса.the fifth syntactic element (e.g. the fifth indicator, such asslice_ccalf_enabled_flagorslice_alf_enabled_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1) , and if the second syntax element (such as pic_ccalf_enabled_present_flag or pic_alf_enabled_present_flag) is set to the second value ('false' or 0) or has the second value ('false' or 0), where the fifth syntactic element (such asslice_ccalf_enabled_flagorslice_alf_enabled_flag) is signaled in the slice header.
Также может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:It may also be envisaged that said set of syntactic elements related to CC-ALF additionally comprises:
шестой набор синтаксических элементов, если пятый синтаксический элемент (например, пятый индикатор, такой как slice_ccalf_enabled_flag или slice_alf_enabled_flag) установлен как первое значение («истина» или 1) или пятый синтаксический элемент имеет первое значение («истина» или 1), при этом шестой набор синтаксических элементов сигнализируется в заголовке слайса, или шестой набор синтаксических элементов переносится записями заголовка слайса. Этот набор синтаксических элементов может, например, указывать параметры, которые должны использоваться в ALF или CC-ALF. Предоставляя этот набор, потенциально зависящий от значения пятого синтаксического элемента, размер битового потока может быть дополнительно уменьшен.a sixth set of syntax elements, if the fifth syntax element (e.g., a fifth indicator such as slice_ccalf_enabled_flag or slice_alf_enabled_flag ) is set to the first value ('true' or 1) or the fifth syntax element has the first value ('true' or 1), where the sixth set of syntax elements is signaled in the slice header or the sixth set of syntax elements is carried by slice header records. This set of syntax elements may, for example, indicate parameters to be used in ALF or CC-ALF. By providing this set, potentially dependent on the value of the fifth syntax element, the size of the bitstream may be further reduced.
В частности, может быть предусмотрено, что шестой набор синтаксических элементов содержит: In particular, it may be envisaged that the sixth set of syntactic elements contains:
Дополнительно или альтернативно может быть предусмотрено, что шестой набор синтаксических элементов содержит: Additionally or alternatively, it may be provided that the sixth set of syntactic elements comprises:
Кроме того, может быть предусмотрено, что шестой набор синтаксических элементов содержит:In addition, it may be envisaged that the sixth set of syntactic elements contains:
В дополнительном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:In a further embodiment, said plurality of CC-ALF related syntax elements further comprises:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id) и восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1) .a seventh syntax element (for example, a seventh indicator such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element (for example, an eighth indicator such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1).
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:In one embodiment, said plurality of CC-ALF related syntax elements further comprises:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id) и восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1), и, если девятый синтаксический элемент (такой как pic_alf_enabled_present_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1).a seventh syntax element (e.g., a seventh indicator such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element (e.g., an eighth indicator such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1), and if the ninth syntax element (such as pic_alf_enabled_present_flag ) is set to the first value ('true' or 1) or has the first value ('true' or 1).
В одном варианте осуществления упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:In one embodiment, said plurality of CC-ALF related syntax elements further comprises:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id ), восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id) и второй синтаксический элемент (например, pic_ccalf_enabled_present_flag), если первый синтаксический элемент (например, sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1) , и, если девятый синтаксический элемент (например, pic_alf_enabled_present_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1).the seventh syntactic element (e.g. the seventh indicator, such aspic_cross_component_alf_cb_aps_id), the eighth syntax element (e.g. the eighth indicator, such as pic_cross_component_alf_cr_aps_id), and the second syntax element (e.g.pic_ccalf_enabled_present_flag),if the first syntax element (e.g. sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1) , and if the ninth syntax element (For example, pic_alf_enabled_present_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1).
Также может быть предусмотрено, что упомянутое множество синтаксических элементов, относящихся к CC-ALF, дополнительно содержит:It may also be envisaged that said set of syntactic elements related to CC-ALF additionally comprises:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id), восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id) и девятый синтаксический элемент (например, pic_alf_enabled_present_flag), если первый синтаксический элемент (например, sps_ccalf_enabled_flag или sps_alf_enabled_flag) установлен как первое значение («истина» или 1) или имеет первое значение («истина» или 1).a seventh syntax element (e.g., a seventh indicator such as pic_cross_component_alf_cb_aps_id), an eighth syntax element (e.g., an eighth indicator such as pic_cross_component_alf_cr_aps_id), and a ninth syntax element (e.g., pic_alf_enabled_present_flag) if the first syntax element (e.g., sps_ccalf_enabled_flag or sps_alf_enabled_flag) is set to the first value ('true' or 1) or has the first value ('true' or 1).
Более того, в одном варианте осуществления CC-ALF применяется для выполнения обработки фильтрации одной или более выборок яркости компонента яркости текущего блока изображения для уточнения выборки цветности (такой, как каждая выборка цветности) компонента цветности текущего блока изображения.Moreover, in one embodiment, the CC-ALF is employed to perform filtering processing on one or more luminance samples of a luminance component of a current image block to refine a chroma sample (such as each chroma sample) of a chroma component of the current image block.
В частности, может быть предусмотрено, что CC-ALF выполнен с возможностью уточнения каждого компонента цветности с использованием значений выборок яркости.In particular, it may be envisaged that the CC-ALF is configured to refine each chrominance component using the luminance sample values.
В одном варианте осуществления CC-ALF работает как часть процесса адаптивной контурный фильтрации.In one embodiment, CC-ALF operates as part of an adaptive loop filtering process.
Также может быть предусмотрено, что блок изображения содержит блок яркости и блоки цветности,It may also be envisaged that the image block contains a luminance block and color blocks,
при этом первый блок цветности представляет собой первый компонент цветности (такой как компонент Cb) блока изображения, а второй блок цветности представляет собой второй компонент цветности (такой как компонент Cr) блока изображения.wherein the first chroma block represents a first chroma component (such as a Cb component) of the image block, and the second chroma block represents a second chroma component (such as a Cr component) of the image block.
Настоящее раскрытие также относится к способу кодирования, реализуемому устройством кодирования, содержащему:The present disclosure also relates to an encoding method implemented by an encoding device comprising:
определение того, включен ли межкомпонентный ALF (CC-ALF) или нет;determining whether the cross-component ALF (CC-ALF) is enabled or not;
формирование битового потока, включающего один или более синтаксических элементов (например, синтаксический элемент, относящийся к CC-ALF, такой как pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag или pic_cross_component_alf_cr_enabled_flag), где упомянутые один или более синтаксических элементов указывают, включен ли межкомпонентный ALF (CC-ALF) или нет на уровне заголовка изображения и соответствующую информацию, относящуюся к CC-ALF, при этом синтаксические элементы сигнализируются на уровне заголовка изображения. Таким образом, релевантная информация для последующего декодирования может предоставляться с уменьшенным размером в битовом потоке.generating a bitstream including one or more syntactic elements (e.g. a syntactic element related to CC-ALF, such how pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag or pic_cross_component_alf_cr_enabled_flag), wherein said one or more syntax elements indicate whether inter-component ALF (CC-ALF) is enabled or not at the image header level and corresponding information related to CC-ALF, wherein the syntax elements are signaled at the image header level. In this way, relevant information for subsequent decoding can be provided with a reduced size in the bitstream.
Также может быть предусмотрено, что CC-ALF применяется для выполнения обработки фильтрации одной или более выборок яркости компонента яркости текущего блока изображения для уточнения выборки цветности (например, каждой выборки цветности) компонента цветности текущего блока изображения.It may also be provided that the CC-ALF is used to perform filtering processing on one or more luminance samples of the luminance component of the current image block to refine a chroma sample (e.g., each chroma sample) of the chroma component of the current image block.
В одном варианте осуществления способ дополнительно содержит:In one embodiment, the method further comprises:
выполнение обработки фильтрации компонента яркости текущего блока изображения, который принадлежит изображению, с использованием фильтра CC-ALF, при этом одна или более выборок яркости компонента яркости текущего блока изображения используются для уточнения по меньшей мере одной выборки цветности (например, каждой выборки цветности) компонента цветности текущего блока изображения.performing filtering processing of a luminance component of a current image block that belongs to the image using the CC-ALF filter, wherein one or more luminance samples of the luminance component of the current image block are used to refine at least one chroma sample (for example, each chroma sample) of the chroma component of the current image block.
Также может быть предусмотрено, что CC-ALF выполнен с возможностью уточнения каждого компонента цветности с использованием значений выборок яркости.It may also be envisaged that the CC-ALF is configured to refine each chrominance component using the luminance sample values.
В дополнительном варианте осуществления CC-ALF работает как часть процесса адаптивной контурный фильтрации.In a further embodiment, CC-ALF operates as part of an adaptive loop filtering process.
Также может быть предусмотрено, что блок изображения содержит блок яркости и блоки цветности,It may also be envisaged that the image block contains a luminance block and color blocks,
при этом первый блок цветности представляет собой первый компонент цветности (такой как компонент Cb) блока изображения, а второй блок цветности представляет собой второй компонент цветности (такой как компонент Cr) блока изображения.wherein the first chroma block represents a first chroma component (such as a Cb component) of the image block, and the second chroma block represents a second chroma component (such as a Cr component) of the image block.
Настоящее раскрытие дополнительно относится к способу декодирования, реализуемому устройством декодирования, при этом способ содержит:The present disclosure further relates to a decoding method implemented by a decoding device, the method comprising:
синтаксический анализ одного или более синтаксических элементов из битового потока видеосигнала, при этом упомянутые один или более синтаксических элементов указывают информацию, относящуюся к межкомпонентному адаптивному контурному фильтру (CC-ALF), при этом упомянутые один или более синтаксических элементов получаются из любого одного или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла битового потока; или при этом упомянутые один или более синтаксических элементов получаются из уровня набора параметров последовательности (SPS) и/или заголовка изображения; иparsing one or more syntax elements from a video bitstream, wherein said one or more syntax elements indicate information related to a cross-component adaptive loop filter (CC-ALF), wherein said one or more syntax elements are obtained from any one or more of a video parameter set (VPS) layer, a sequence parameter set (SPS) layer, a picture parameter set (PPS) layer, a picture header, a slice header, or a tile header of the bitstream; or wherein said one or more syntax elements are obtained from a sequence parameter set (SPS) layer and/or a picture header; and
выполнение процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения CC-ALF на основе синтаксических элементов или на основе значений синтаксических элементов.performing a filtering process (such as a cross-component filtering process) by applying CC-ALF based on syntactic elements or based on the values of syntactic elements.
Информация, которая может быть необходима для определения применяемого способа фильтрации и способа его применения, может предоставляться вместе с этим в битовом потоке, который имеет уменьшенный размер, но при этом допускает надежное декодирование.Information that may be necessary to determine the filtering method to be applied and how it is applied may be provided along with it in a bitstream that is reduced in size but still allows reliable decoding.
Настоящее раскрытие дополнительно описывает способ декодирования, реализуемый устройством декодирования, при этом способ содержит:The present disclosure further describes a decoding method implemented by a decoding device, wherein the method comprises:
синтаксический анализ множества синтаксических элементов из битового потока видеосигнала, при этом синтаксические элементы получаются из любого одного или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла битового потока; или при этом синтаксические элементы получаются из уровня набора параметров последовательности (SPS) и/или заголовка изображения;parsing a plurality of syntax elements from a video bitstream, wherein the syntax elements are obtained from any one or more of a video parameter set (VPS) layer, a sequence parameter set (SPS) layer, a picture parameter set (PPS) layer, a picture header, a slice header, or a tile header of the bitstream; or wherein the syntax elements are obtained from a sequence parameter set (SPS) layer and/or a picture header;
определение информации, относящейся к межкомпонентному адаптивному контурному фильтру (CC-ALF), на основе одного или более синтаксических элементов из упомянутого множества синтаксических элементов, при этомdetermining information related to a cross-component adaptive loop filter (CC-ALF) based on one or more syntactic elements from said plurality of syntactic elements, wherein
выполнение процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения CC-ALF на основе информации, относящейся к CC-ALF.performing a filtering process (such as a cross-component filtering process) by applying the CC-ALF based on the information related to the CC-ALF.
Информация, которая может быть необходима для определения применяемого способа фильтрации и способа его применения, может предоставляться вместе с этим в битовом потоке, который имеет уменьшенный размер, но при этом допускает надежное декодирование.Information that may be necessary to determine the filtering method to be applied and how it is applied may be provided along with it in a bitstream that is reduced in size but still allows reliable decoding.
Может быть предусмотрено, что упомянутые один или более синтаксических элементов или упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) содержат: первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag), при этом первый синтаксический элемент элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag) получается из уровня набора параметров последовательности (SPS).It may be envisaged that said one or more syntax elements or said plurality of syntax elements (such as syntax elements related to CC-ALF) comprise: a first syntax element (for example a first indicator such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), wherein the first syntax element (for example a first indicator such as sps_ccalf_enabled_flag) is obtained from a sequence parameter set (SPS) level.
В частности, может быть дополнительно предусмотрено, что первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag) указывает, включен или нет межкомпонентный адаптивный контурный фильтр (CC-ALF) на уровне последовательности, илиIn particular, it may be further provided that the first syntax element (e.g. the first indicator, such as sps_ccalf_enabled_flag) indicates whether the cross-component adaptive loop filter (CC-ALF) is enabled at the sequence level, or
при этом первый синтаксический элемент (например, первый индикатор, такой как sps_alf_enabled_flag) указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр (CC-ALF), на уровне последовательности.wherein the first syntax element (e.g., the first indicator, such as sps_alf_enabled_flag) indicates whether or not the adaptive loop filter (ALF) containing the cross-component adaptive loop filter (CC-ALF) is enabled at the sequence level.
Таким образом, информация о том, какой способ фильтрации должен быть применен, может быть предоставлена с уменьшенным объемом информации для декодера в битовом потоке.In this way, information about which filtering method should be applied can be provided with a reduced amount of information to the decoder in the bitstream.
В одном варианте осуществления первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1), или первый синтаксический элемент имеет первое значение («истина» или 1).In one embodiment, the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is output as the first value ('true' or 1), or the first syntax element has the first value ('true' or 1).
Также может быть предусмотрено, что упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:It may also be envisaged that said plurality of syntactic elements (such as syntactic elements related to CC-ALF) additionally comprise:
второй синтаксический элемент (например, второй индикатор, такой как pic_ccalf_enabled_present_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1) или первый синтаксический элемент имеет первое значение («истина» или 1), в котором второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag) получается из заголовка изображения; илиa second syntax element (such as a second indicator such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is derived as the first value ('true' or 1) or the first syntax element has the first value ('true' or 1) in which the second syntax element (such as pic_ccalf_enabled_present_flag) is obtained from the image header; or
девятый синтаксический элемент (например, девятый индикатор, такой как pic_alf_enabled_present_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1) или первый синтаксический элемент имеет первое значение («истина» или 1), при этом девятый синтаксический элемент (такой как pic_alf_enabled_present_flag) получается из заголовка изображения.a ninth syntax element (e.g. a ninth indicator such as pic_alf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is output as the first value ('true' or 1) or the first syntax element has the first value ('true' or 1), and the ninth syntax element (such as pic_alf_enabled_present_flag ) is obtained from the image header.
В дополнительном варианте осуществления второй синтаксический элемент (например, второй индикатор, такой как pic_ccalf_enabled_present_flag) указывает, присутствует ли в заголовке изображения третий синтаксический элемент и/или четвертый набор синтаксических элементов.In a further embodiment, the second syntax element (e.g., a second indicator such as pic_ccalf_enabled_present_flag) indicates whether the third syntax element and/or the fourth set of syntax elements are present in the image header.
Упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) могут дополнительно содержать:The said set of syntactic elements (such as syntactic elements related to CC-ALF) may further comprise:
третий синтаксический элемент (например, третий индикатор, такой как pic_ccalf_enabled_flag или pic_alf_enabled_flag), если второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag) или девятый синтаксический элемент (такой как pic_alf_enabled_present_flag) выводится как первое значение («истина» или 1) , или второй синтаксический элемент или девятый синтаксический элемент имеет первое значение («истина» или 1), при этом третий синтаксический элемент (такой как pic_ccalf_enabled_flag или pic_alf_enabled_flag) получается из заголовка изображения.a third syntactic element (e.g. a third indicator such aspic_ccalf_enabled_flagor pic_alf_enabled_flag) if the second syntax element (such as pic_ccalf_enabled_present_flag) or the ninth syntax element (such aspic_alf_enabled_present_flag) is output as the first value ('true' or 1), or the second syntactic element or the ninth syntactic element has the first value ('true' or 1), and the third syntactic element (such aspic_ccalf_enabled_flag or pic_alf_enabled_flag) is obtained from the image title.
В частности, может быть предусмотрено, что третий синтаксический элемент (например, третий индикатор, такой как pic_ccalf_enabled_flag) указывает, включен ли межкомпонентный адаптивный контурный фильтр (CCALF) для всех слайсов, связанных с заголовком изображения, или нет, илиIn particular, it may be provided that a third syntax element (e.g. a third indicator such as pic_ccalf_enabled_flag) indicates whether the cross-component adaptive contour filter (CCALF) is enabled for all slices associated with the picture header or not, or
при этом третий синтаксический элемент (например, третий индикатор, такой как pic_alf_enabled_flag) указывает, включен ли адаптивный контурный фильтр, содержащий межкомпонентный адаптивный контурный фильтр (CCALF), для всех слайсов, связанных с заголовком изображения, или нет.where the third syntax element (e.g. the third indicator such as pic_alf_enabled_flag) indicates whether the adaptive loop filter containing the cross-component adaptive loop filter (CCALF) is enabled for all slices associated with the image header or not.
В одном варианте осуществления упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:In one embodiment, said plurality of syntax elements (such as syntax elements related to CC-ALF) further comprise:
четвертый набор синтаксических элементов, если третий синтаксический элемент (например, третий индикатор, такой как pic_ccalf_enabled_flag или pic_alf_enabled_flag) выводится как первое значение («истина» или 1) или третий синтаксический элемент имеет первое значение («истина» или 1), при этом четвертый набор синтаксических элементов получается из заголовка изображения (например, на уровне заголовка изображения) или четвертый набор синтаксических элементов переносится элементами заголовка изображения.a fourth set of syntax elements if the third syntax element (e.g., a third indicator such as pic_ccalf_enabled_flag or pic_alf_enabled_flag ) is output as the first value ('true' or 1) or the third syntax element has the first value ('true' or 1) and the fourth set of syntax elements is obtained from the image header (e.g., at the image header level) or the fourth set of syntax elements is carried by image header elements.
Этот набор синтаксических элементов может быть предоставлен только в том случае, если третий синтаксический элемент принимает или выводится как первое значение и может не присутствовать в противном случае, или значения набора синтаксических элементов могут быть установлены на значение по умолчанию, например 0, если третий синтаксический элемент принимает другое значение. В обоих случаях надежное предоставление соответствующей информации для декодирования может быть обеспечено при уменьшенном размере битового потока.This set of syntax elements may be provided only if the third syntax element takes or is derived as the first value and may not be present otherwise, or the values of the set of syntax elements may be set to a default value, such as 0, if the third syntax element takes another value. In both cases, reliable provision of relevant decoding information can be ensured with a reduced bitstream size.
В частности, четвертый набор синтаксических элементов может содержать: In particular, the fourth set of syntactic elements may contain:
Альтернативно или дополнительно четвертый набор синтаксических элементов может содержать:Alternatively or additionally, the fourth set of syntactic elements may contain:
В дополнительном варианте осуществления четвертый набор синтаксических элементов может содержать:In a further embodiment, the fourth set of syntax elements may comprise:
Может быть предусмотрено, что для всех слайсов одного и того же изображения одна и та же информация, относящаяся к CC-ALF (такая как aps_ids), наследуется от заголовка изображения. Таким образом, количество информации, предоставляемой в битовом потоке для указания декодеру информации, относящейся к CC-ALF, для слайсов изображения, может быть уменьшено.It may be envisaged that for all slices of the same picture the same CC-ALF related information (such as aps_ids) is inherited from the picture header. In this way the amount of information provided in the bitstream to indicate to the decoder the CC-ALF related information for the picture slices may be reduced.
В одном варианте осуществления упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) содержат:In one embodiment, said plurality of syntax elements (such as syntax elements related to CC-ALF) comprise:
первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag), при этом первый синтаксический элемент (например, первый индикатор, такой как sps_ccalf_enabled_flag) получается из уровня набора параметров последовательности (SPS),a first syntax element (e.g., a first indicator such as sps_ccalf_enabled_flag or sps_alf_enabled_flag), where the first syntax element (e.g., a first indicator such as sps_ccalf_enabled_flag) is obtained from the sequence parameter set (SPS) level,
второй синтаксический элемент (например, второй индикатор, такой как pic_ccalf_enabled_present_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1), при этом второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag) получается из заголовка изображения.a second syntax element (e.g. a second indicator such as pic_ccalf_enabled_present_flag) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is inferred as the first value ('true' or 1) or has the first value ('true' or 1), where the second syntax element (such as pic_ccalf_enabled_present_flag) is obtained from the image header.
В дополнительном варианте осуществления упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:In a further embodiment, said plurality of syntax elements (such as syntax elements related to CC-ALF) further comprise:
пятый синтаксический элемент (например, пятый индикатор, такой как slice_ccalf_enabled_flag или slice_alf_enabled_flag), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1) , и, если второй синтаксический элемент (такой как pic_ccalf_enabled_present_flag или pic_alf_enabled_present_flag) получен как второе значение («ложь» или 0) или имеет второе значение («ложь» или 0), при этом пятый синтаксический элемент (такой как slice_ccalf_enabled_flag или slice_alf_enabled_flag) получается из заголовка слайса.a fifth syntax element (e.g. a fifth indicator such as slice_ccalf_enabled_flag or slice_alf_enabled_flag ) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag ) is output as the first value ('true' or 1) or has the first value ('true' or 1) , and if the second syntax element (such as pic_ccalf_enabled_present_flag or pic_alf_enabled_present_flag ) is output as the second value ('false' or 0) or has the second value ('false' or 0), where the fifth syntax element (such as slice_ccalf_enabled_flag or slice_alf_enabled_flag ) is obtained from the slice header.
Может быть предусмотрено, что упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:It may be envisaged that said set of syntactic elements (such as syntactic elements related to CC-ALF) additionally comprise:
шестой набор синтаксических элементов, если пятый синтаксический элемент (например, пятый индикатор, такой как slice_ccalf_enabled_flag или slice_alf_enabled_flag) выводится как первое значение («истина» или 1) или пятый синтаксический элемент имеет первое значение («истина» или 1), при этом шестой набор синтаксических элементов получается из заголовка слайса, или шестой набор синтаксических элементов переносится записями заголовка слайса.a sixth set of syntax elements if the fifth syntax element (e.g., the fifth indicator such as slice_ccalf_enabled_flag or slice_alf_enabled_flag ) is output as the first value ('true' or 1), or the fifth syntax element has the first value ('true' or 1), and the sixth set of syntax elements is obtained from the slice header, or the sixth set of syntax elements is carried by slice header records.
В частности, может быть предусмотрено, что шестой набор синтаксических элементов содержит:In particular, it may be envisaged that the sixth set of syntactic elements contains:
Альтернативно или дополнительно может быть предусмотрено, что шестой набор синтаксических элементов содержит: Alternatively or additionally, it may be provided that the sixth set of syntactic elements comprises:
Аналогичным образом может быть предусмотрено, что шестой набор синтаксических элементов содержит: Similarly, it can be envisaged that the sixth set of syntactic elements contains:
В одном варианте осуществления упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:In one embodiment, said plurality of syntax elements (such as syntax elements related to CC-ALF) further comprise:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id) и восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1) .a seventh syntax element (for example, a seventh indicator such as pic_cross_component_alf_cb_aps_id ) and an eighth syntax element (for example, an eighth indicator such as pic_cross_component_alf_cr_aps_id ) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag ) is inferred to be the first value ('true' or 1) or has the first value ('true' or 1).
Также может быть предусмотрено, что упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:It may also be envisaged that said plurality of syntactic elements (such as syntactic elements related to CC-ALF) additionally comprise:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id) и восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id), если первый синтаксический элемент (такой как sps_ccalf_enabled_flag или sps_alf_enabled_flag) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1), и, если девятый синтаксический элемент (такой как pic_alf_enabled_present_flag) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1).a seventh syntax element (e.g., a seventh indicator such as pic_cross_component_alf_cb_aps_id) and an eighth syntax element (e.g., an eighth indicator such as pic_cross_component_alf_cr_aps_id) if the first syntax element (such as sps_ccalf_enabled_flag or sps_alf_enabled_flag) is output as the first value ('true' or 1) or has the first value ('true' or 1), and if the ninth syntax element (such as pic_alf_enabled_present_flag ) is output as the first value ('true' or 1) or has the first value ('true' or 1).
В другом варианте осуществления упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:In another embodiment, said plurality of syntax elements (such as syntax elements related to CC-ALF) further comprise:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id ), восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id) и второй синтаксический элемент (например, pic_ccalf_enabled_present_flag), если первый синтаксический элемент (например, sps_ccalf_enabled_flag или sps_alf_enabled_flag ) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1) , и, если девятый синтаксический элемент (например, pic_alf_enabled_present_flag) выводится как первое значение («истина» или 1) или имеет первое значение ( «истина» или 1).the seventh syntactic element (e.g. the seventh indicator, such aspic_cross_component_alf_cb_aps_id), the eighth syntax element (e.g. the eighth indicator, such as pic_cross_component_alf_cr_aps_id), and the second syntax element (e.g.pic_ccalf_enabled_present_flag),if the first syntax element (e.g. sps_ccalf_enabled_flag or sps_alf_enabled_flag ) is output as the first value ('true' or 1) or has the first value ('true' or 1) , and if the ninth syntax element (For example, pic_alf_enabled_present_flag) is output as the first value ("true" or 1) or has the first value ("true" or 1).
Также может быть предусмотрено, что упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) дополнительно содержат:It may also be envisaged that said plurality of syntactic elements (such as syntactic elements related to CC-ALF) additionally comprise:
седьмой синтаксический элемент (например, седьмой индикатор, такой как pic_cross_component_alf_cb_aps_id), восьмой синтаксический элемент (например, восьмой индикатор, такой как pic_cross_component_alf_cr_aps_id) и девятый синтаксический элемент (например, pic_alf_enabled_present_flag), если первый синтаксический элемент (например, sps_ccalf_enabled_flag или sps_alf_enabled_flag ) выводится как первое значение («истина» или 1) или имеет первое значение («истина» или 1).a seventh syntax element (e.g., a seventh indicator such as pic_cross_component_alf_cb_aps_id), an eighth syntax element (e.g., an eighth indicator such as pic_cross_component_alf_cr_aps_id), and a ninth syntax element (e.g., pic_alf_enabled_present_flag) if the first syntax element (e.g., sps_ccalf_enabled_flag or sps_alf_enabled_flag ) is inferred to be the first value ('true' or 1) or has the first value ('true' or 1).
В одном варианте осуществления CC-ALF применяется для выполнения обработки фильтрации одной или более выборок яркости компонента яркости текущего блока изображения для уточнения выборки цветности (например, каждой выборки цветности) компонента цветности текущего блока изображения.In one embodiment, the CC-ALF is used to perform filtering processing on one or more samples of a luminance component of a current image block to refine a chroma sample (e.g., each chroma sample) of a chroma component of the current image block.
CC-ALF может быть выполнен с возможностью уточнения каждого компонента цветности с использованием значений выборок яркости.CC-ALF can be designed to refine each chrominance component using luminance sample values.
Также может быть предусмотрено, что CC-ALF работает как часть процесса адаптивной контурный фильтрации.It can also be envisaged that CC-ALF operates as part of an adaptive loop filtering process.
В одном варианте осуществления блок изображения содержит блок яркости и блоки цветности,In one embodiment, the image block comprises a luminance block and chroma blocks,
при этом первый блок цветности представляет собой первый компонент цветности (такой как компонент Cb) блока изображения, а второй блок цветности представляет собой второй компонент цветности (такой как компонент Cr) блока изображения.wherein the first chroma block represents a first chroma component (such as a Cb component) of the image block, and the second chroma block represents a second chroma component (such as a Cr component) of the image block.
Настоящее раскрытие дополнительно относится к способу декодирования, реализуемому устройством декодирования, содержащему:The present disclosure further relates to a decoding method implemented by a decoding device comprising:
синтаксический анализ из битового потока видеосигнала одного или более синтаксических элементов (например, M синтаксических элементов, относящихся к CC-ALF, при этом M является целым числом и M>=1, например, pic_ccalf_enabled_flag, pic_cross_component_alf_cb_enabled_flag или pic_cross_component_alf_cr_enabled_flag), при этом упомянутые один или более синтаксических элементов указывают, включен или нет межкомпонентный ALF (CCALF) на уровне заголовка изображения, и соответствующую информацию, относящуюся к CCALF, при этом упомянутые один или более синтаксических элементов получаются из уровня заголовка изображения.parsing from the video bitstream one or more syntactic elements (e.g. M syntactic elements related to CC-ALF, where M is an integer and M>=1, for example, pic_ccalf_enabled_flag,pic_cross_component_alf_cb_enabled_flag or pic_cross_component_alf_cr_enabled_flag), wherein said one or more syntax elements indicate whether or not inter-component ALF (CCALF) is included at the image header level, and corresponding information related to CCALF, wherein said one or more syntax elements are obtained from the image header level.
выполнение процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения CC-ALF в ответ на определение того, что CC-ALF включен.performing a filtering process (such as a cross-component filtering process) by applying CC-ALF in response to determining that CC-ALF is enabled.
Этот способ может соответствующим образом применять CC-ALF во время декодирования, позволяя уменьшить размер битового потока.This method can appropriately apply CC-ALF during decoding, allowing the bitstream size to be reduced.
В одном варианте осуществления CC-ALF применяется для выполнения обработки фильтрации одной или более выборок яркости компонента яркости текущего блока изображения для уточнения выборки цветности (например, каждой выборки цветности) компонента цветности текущего блока изображения.In one embodiment, the CC-ALF is used to perform filtering processing on one or more samples of a luminance component of a current image block to refine a chroma sample (e.g., each chroma sample) of a chroma component of the current image block.
Также может быть предусмотрено, что CC-ALF выполнен с возможностью уточнения каждого компонента цветности с использованием значений выборок яркости.It may also be envisaged that the CC-ALF is configured to refine each chrominance component using the luminance sample values.
В дополнительном варианте осуществления CC-ALF работает как часть процесса адаптивной контурный фильтрации.In a further embodiment, CC-ALF operates as part of an adaptive loop filtering process.
Варианты осуществления могут дополнительно предусматривать, что блок изображения содержит блок яркости и блоки цветности,Embodiments may further provide that the image block comprises a luminance block and chroma blocks,
при этом первый блок цветности представляет собой первый компонент цветности (такой как компонент Cb) блока изображения, а второй блок цветности представляет собой второй компонент цветности (такой как компонент Cr) блока изображения.wherein the first chroma block represents a first chroma component (such as a Cb component) of the image block, and the second chroma block represents a second chroma component (such as a Cr component) of the image block.
Настоящее раскрытие дополнительно обеспечивает устройство для кодирования видеоданных, содержащее:The present disclosure further provides an apparatus for encoding video data, comprising:
память видеоданных; иvideo data memory; and
видеокодер, при этом видеокодер выполнен с возможностью:video encoder, wherein the video encoder is designed with the ability to:
выполнения процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения межкомпонентного адаптивного контурного фильтра (CC-ALF);performing a filtering process (such as a cross-component filtering process) by applying a cross-component adaptive loop filter (CC-ALF);
формирования битового потока для видеосигнала путем включения множества синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF), при этом упомянутое множество синтаксических элементов указывают информацию, относящуюся к CC-ALF, forming a bit stream for a video signal by including a plurality of syntax elements (such as syntax elements related to a CC-ALF), wherein said plurality of syntax elements indicate information related to the CC-ALF,
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, получается из любого одного или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла; илиwherein said plurality of syntax elements related to the CC-ALF are obtained from any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a picture parameter set (PPS) level, a picture header, a slice header, or a tile header; or
при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, получается из уровня набора параметров последовательности (SPS) и/или заголовка изображения.wherein said set of syntactic elements related to CC-ALF is obtained from the sequence parameter set (SPS) level and/or the image header.
Это устройство может реализовать кодирование, в результате которого битовый поток имеет уменьшенный размер.This device can implement encoding that results in a bitstream that is reduced in size.
Кроме того, предусмотрено устройство для декодирования видеоданных, содержащее:In addition, a device for decoding video data is provided, comprising:
память видеоданных; иvideo data memory; and
видеодекодер, при этом видеодекодер выполнен с возможностью:a video decoder, wherein the video decoder is configured to:
синтаксического анализа множества синтаксических элементов из битового потока видеосигнала, при этом упомянутое множество синтаксических элементов получаются из любого одного или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла битового потока, или при этом упомянутое множество синтаксических элементов получаются из уровня набора параметров последовательности (SPS) и/или заголовка изображения битового потока;parsing a plurality of syntax elements from a video bitstream, wherein said plurality of syntax elements are obtained from any one or more of a video parameter set (VPS) layer, a sequence parameter set (SPS) layer, a picture parameter set (PPS) layer, a picture header, a slice header or a tile header of the bitstream, or wherein said plurality of syntax elements are obtained from a sequence parameter set (SPS) layer and/or a picture header of the bitstream;
определения информации, относящейся к межкомпонентному адаптивному контурному фильтру (CC-ALF), на основе одного или более синтаксических элементов из упомянутого множества синтаксических элементов; иdetermining information related to a cross-component adaptive loop filter (CC-ALF) based on one or more syntactic elements from said plurality of syntactic elements; and
выполнения процесса фильтрации (такого как процесс межкомпонентной фильтрации) путем применения CC-ALF на основе информации, относящейся к CC-ALF.performing a filtering process (such as a cross-component filtering process) by applying the CC-ALF based on the information related to the CC-ALF.
Этот декодер может выполнять надежное декодирование, требуя битового потока с уменьшенным размером для получения информации, относящейся к фильтру, который должен применяться во время декодирования.This decoder can perform robust decoding by requiring a reduced-size bitstream to obtain information related to the filter to be applied during decoding.
Настоящее раскрытие дополнительно обеспечивает кодер, содержащий схему обработки для выполнения способа в соответствии с любым из вышеприведенных вариантов осуществления.The present disclosure further provides an encoder comprising a processing circuit for performing the method according to any of the above embodiments.
Настоящее раскрытие также относится к декодеру, при этом декодер содержит схему обработки для выполнения способа согласно любому из вышеприведенных вариантов осуществления.The present disclosure also relates to a decoder, wherein the decoder comprises a processing circuit for performing the method according to any of the above embodiments.
Кроме того, предоставляется компьютерный программный продукт, содержащий программный код для выполнения способа в соответствии с любым из вышеприведенных вариантов осуществления.In addition, a computer program product is provided containing a program code for performing the method in accordance with any of the above embodiments.
Настоящее раскрытие дополнительно относится к декодеру, при этом декодер содержит:The present disclosure further relates to a decoder, wherein the decoder comprises:
один или более процессоров; иone or more processors; and
энергонезависимый считываемый компьютером носитель данных, соединенный с процессорами и хранящий программу для выполнения процессорами, при этом программа, когда она выполняется процессорами, настраивает декодер для выполнения способа согласно любому из вышеприведенных вариантов осуществления.a non-volatile computer-readable storage medium coupled to the processors and storing a program for execution by the processors, wherein the program, when executed by the processors, configures the decoder to perform the method according to any of the above embodiments.
Кроме того, в настоящем раскрытии предусмотрен кодер, содержащий:In addition, the present disclosure provides an encoder comprising:
один или более процессоров; иone or more processors; and
энергонезависимый считываемый компьютером носитель данных, соединенный с процессорами и хранящий программу для выполнения процессорами, при этом программа, когда она выполняется процессорами, конфигурирует кодер для выполнения способа согласно любому из вышеприведенных вариантов осуществления.a non-volatile computer-readable storage medium coupled to the processors and storing a program for execution by the processors, wherein the program, when executed by the processors, configures the encoder to perform the method according to any of the above embodiments.
Кроме того, предоставляется энергонезависимый носитель записи, который включает в себя кодированный битовый поток, декодированный устройством декодирования изображения, битовый поток формируется путем разделения кадра видеосигнала или сигнала изображения на множество блоков и включает в себя множество синтаксических элементы (такие как синтаксические элементы, относящиеся к CC-ALF), при этом упомянутое множество синтаксических элементов указывают информацию, относящуюся к CC-ALF, In addition, a non-volatile recording medium is provided that includes an encoded bit stream decoded by an image decoding device, the bit stream is formed by dividing a frame of a video signal or an image signal into a plurality of blocks and includes a plurality of syntax elements (such as syntax elements related to a CC-ALF), wherein said plurality of syntax elements indicate information related to a CC-ALF,
при этом упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) получается из любого одного или более из уровня набора параметров видео (VPS), уровня набора параметров последовательности (SPS), уровня набора параметров изображения (PPS), заголовка изображения, заголовка слайса или заголовка тайла, илиwherein said plurality of syntax elements (such as syntax elements related to CC-ALF) are obtained from any one or more of a video parameter set (VPS) level, a sequence parameter set (SPS) level, a picture parameter set (PPS) level, a picture header, a slice header, or a tile header, or
при этом упомянутое множество синтаксических элементов (таких как синтаксические элементы, относящиеся к CC-ALF) получается из по меньшей мере одного из уровня набора параметров последовательности (SPS) или заголовка изображения.wherein said plurality of syntax elements (such as syntax elements related to CC-ALF) are obtained from at least one of a sequence parameter set (SPS) level or an image header.
Настоящее раскрытие также относится к устройству, содержащему:The present disclosure also relates to a device comprising:
энергонезависимый считываемый компьютером носитель, на котором сохранены инструкции, которые при выполнении одним или более процессорами предписывают упомянутому одному или более процессорам выполнять операции для формирования данных изображения, соответствующих битовому видеопотоку, при этом данные изображения содержат:a non-volatile computer-readable medium on which instructions are stored that, when executed by one or more processors, cause said one or more processors to perform operations for generating image data corresponding to a video bitstream, wherein the image data comprises:
множество изображений в битовом видеопотоке, включающее в себя изображение, содержащее N слайсов; иa plurality of images in a video bitstream, including an image containing N slices; and
заголовок изображения, связанный с N слайсами изображения,image header associated with N image slices,
при этом один или более из или каждый из N слайсов содержат множество блоков выборок, закодированных с помощью энтропии,wherein one or more of or each of the N slices contains a plurality of blocks of samples encoded using entropy,
при этом информация фильтрации CC-ALF или параметры фильтра CC-ALF наследуются N слайсами из заголовка изображения или N слайсов наследуют данные фильтрации ALF из заголовка изображения.in this case, CC-ALF filtering information or CC-ALF filter parameters are inherited by N slices from the image header or N slices inherit ALF filtering data from the image header.
В соответствии с любым из вышеприведенных вариантов осуществления может быть дополнительно предусмотрено, чтоIn accordance with any of the above embodiments, it may be further provided that
Значения slice_cross_component_alf_cr_aps_id и slice_cross_component_alf_cb_aps_id совпадают со значениями pic_cross_component_alf_cb_aps_id и pic_cross_component_alf_cr_aps_id.The values of slice_cross_component_alf_cr_aps_id and slice_cross_component_alf_cb_aps_id are the same as the values of pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id.
В дополнительном варианте осуществления pic_cross_component_alf_cb_aps_id и pic_cross_component_alf_cr_aps_id получаются из заголовка изображения.In a further embodiment, pic_cross_component_alf_cb_aps_id and pic_cross_component_alf_cr_aps_id are obtained from the image header.
Также может быть предусмотрено, что синтаксический элемент, относящийся к CCALF, получается только один раз в заголовке изображения, связанном со всеми N слайсами.It can also be provided that a syntax element related to CCALF occurs only once in the image header associated with all N slices.
В одном варианте осуществления N представляет собой положительное целое число больше 1.In one embodiment, N is a positive integer greater than 1.
В одном варианте осуществления предоставляется способ кодирования битового потока видео, реализуемый устройством кодирования, при этом способ кодирования содержит:In one embodiment, a method for encoding a video bitstream is provided, implemented by an encoding device, wherein the encoding method comprises:
формирование битового потока для видеосигнала путем включения множества синтаксических элементов (например, синтаксического элемента, относящегося к ALF, такого как sps_alf_enabled_flag, и/или синтаксического элемента, относящегося к CCALF, такого как sps_ccalf_enabled_flag), при этом упомянутое множество синтаксических элементов содержит флаг включения межкомпонентного адаптивного контурного фильтра (CC-ALF) (например, sps_ccalf_enabled_flag) иgenerating a bitstream for a video signal by including a plurality of syntax elements (e.g., a syntax element related to ALF, such as sps_alf_enabled_flag, and/or a syntax element related to CCALF, such as sps_ccalf_enabled_flag), wherein said plurality of syntax elements comprise a cross-component adaptive loop filter (CC-ALF) enable flag (e.g., sps_ccalf_enabled_flag) and
при этом параметры, относящиеся к CC-ALF, сигнализируются условно по меньшей мере на основании значения флага включения CC-ALF (такого как sps_ccalf_enabled_flag).wherein the CC-ALF related parameters are signaled conditionally based at least on the value of the CC-ALF enable flag (such as sps_ccalf_enabled_flag).
Это может предоставить битовый поток, содержащий соответствующую информацию для декодирования, но имеющий уменьшенный размер.This can provide a bitstream that contains the relevant information for decoding, but has a reduced size.
Кроме того, в соответствии с настоящим раскрытием предоставлен способ декодирования битового потока видео, реализуемый устройством декодирования, при этом способ декодирования содержит:Furthermore, according to the present disclosure, a method for decoding a video bitstream is provided, implemented by a decoding device, wherein the decoding method comprises:
получение (S110) множества синтаксических элементов из битового потока видео;obtaining (S110) a plurality of syntax elements from a video bitstream;
при этом упомянутое множество синтаксических элементов содержит флаг включения межкомпонентного адаптивного контурного фильтра (CC-ALF) (такой как sps_ccalf_enabled_flag), иwherein said plurality of syntax elements comprises a cross-component adaptive loop filter (CC-ALF) enable flag (such as sps_ccalf_enabled_flag), and
при этом параметры, относящиеся к CC-ALF, сигнализируются условно по меньшей мере на основании значения флага включения CCALF (такого как sps_ccalf_enabled_flag).whereby the CC-ALF related parameters are signaled conditionally based at least on the value of the CCALF enable flag (such as sps_ccalf_enabled_flag).
Этот способ позволяет выполнять надежное декодирование даже при уменьшении размера битового потока.This method allows reliable decoding even when the bitstream size is reduced.
В одном варианте осуществления, в случае, когда одно или более условий удовлетворены, флаг включения CCALF (такой как sps_ccalf_enabled_flag) сигнализируется на уровне набора параметров последовательности (SPS) битового потока, при этом упомянутые одно или более условий содержат: когда значение первого флага (такого как sps_alf_enabled_flag), который сигнализируется на уровне набора параметров последовательности (SPS) битового потока имеет разрешающее значение (такое как первое значение, например «истина» или 1), иIn one embodiment, in the case where one or more conditions are satisfied, a CCALF enable flag (such as sps_ccalf_enabled_flag) is signaled at the bitstream sequence parameter set (SPS) level, wherein the one or more conditions comprise: when the value of a first flag (such as sps_alf_enabled_flag) that is signaled at the bitstream sequence parameter set (SPS) level has an enabling value (such as a first value, for example, "true" or 1), and
при этом флаг включения CCALF указывает, включен или нет межкомпонентный адаптивный контурный фильтр (CCALF) на уровне последовательности или уровне SPS.where the CCALF enable flag indicates whether the cross-component adaptive loop filter (CCALF) is enabled at the sequence level or the SPS level.
Также может быть предусмотрено, что синтаксические элементы содержат третий флаг (такой как alf_present_in_ph_flag), и третий флаг сигнализирует об уровне набора параметров изображения (PPS) битового потока, и при этом третий флаг указывает, присутствует ли в PH (заголовках изображений) один или более синтаксических элементов для включения ALF , ссылаясь на PPS, или нет.Syntax elements may also be provided to contain a third flag (such asalf_present_in_ph_flag), and the third flag signals the Picture Parameter Set (PPS) level of the bitstream, and the third flag indicates whether one or more syntax elements for ALF inclusion are present in the PH (Picture Headers), referring to the PPS, or not.
Также может быть предусмотрено, что третий флаг (alf_present_in_ph_flag), равный 1, указывает, что синтаксические элементы для включения ALF могут присутствовать в PH (заголовках изображений), относящихся к PPS. Третий флаг (alf_present_in_ph_flag), равный 0, указывает синтаксические элементы для включения ALF, которые могут присутствовать в заголовках слайсов, относящихся к PPS.It can also be envisaged that the third flag (alf_present_in_ph_flag), equal to 1, indicates that the syntax elements for ALF inclusion may be present in PH (picture headers) belonging to the PPS. The third flag (alf_present_in_ph_flag), equal to 0, indicates the syntax elements for ALF inclusion that may be present in slice headers belonging to the PPS.
В одном варианте осуществления предусмотрено, что если значение первого флага (такого как sps_alf_enabled_flag) является разрешающим значением (таким как первое значение, например «истина» или 1), а значение третьего флага (alf_present_in_ph_flag) является разрешающим значением (например, первое значение, например «истина» или 1), иIn one embodiment, it is provided that if the value of the first flag (such as sps_alf_enabled_flag) is an enabling value (such as a first value, such as "true" or 1), and the value of the third flag (alf_present_in_ph_flag) is an enabling value (such as a first value, such as "true" or 1), and
если значение флага включения CCALF (например, sps_ccalf_enabled_flag) является разрешающим значением (например, первым значением, например, «истина» или 1), параметры, связанные с межкомпонентной адаптивной контурной фильтрацией (CCALF) (например, синтаксические элементы для включения CCALF) сигнализируется на уровне picture_header битового потока.if the value of the CCALF enable flag (e.g.sps_ccalf_enabled_flag) is the enabling value (e.g. the first value, e.g. "true" or 1), the parameters related to cross-component adaptive loop filtering (CCALF) (e.g. the syntax elements for enabling CCALF) are signaled at the picture_header level of the bitstream.
В еще одном варианте осуществления предусмотрено, что если значение первого флага (такого как sps_alf_enabled_flag) является разрешающим значением (таким как первое значение, например «истина» или 1), а значение третьего флага (alf_present_in_ph_flag) является отключающее значение (например, второе значение, например, «ложь» или 0), иIn another embodiment, it is provided that if the value of the first flag (such as sps_alf_enabled_flag) is an enabling value (such as the first value, such as "true" or 1), and the value of the third flag (alf_present_in_ph_flag) is a disabling value (such as the second value, such as "false" or 0), and
если значение флага включения CCALF (например, sps_ccalf_enabled_flag) является разрешающим значением (например, первым значением, например, «истина» или 1), параметры, связанные с межкомпонентной адаптивной контурной фильтрацией (CCALF) (например, синтаксические элементы для включения CCALF) сообщается об уровне slice_header битового потока.if the value of the CCALF enable flag (e.g.sps_ccalf_enabled_flag) is The enabling value (e.g. the first value, such as "true" or 1), parameters related to cross-component adaptive loop filtering (CCALF) (e.g. syntax elements to enable CCALF) are reported at the slice_header level of the bitstream.
В дополнительном варианте осуществления предусмотрено, что флаг включения CC-ALF (такой как sps_ccalf_enabled_flag), равный 0, указывает, что межкомпонентный адаптивный контурный фильтр отключен; илиIn a further embodiment, a CC-ALF enable flag (such as sps_ccalf_enabled_flag) equal to 0 indicates that the inter-component adaptive loop filter is disabled; or
флаг включения CC-ALF (такой как sps_ccalf_enabled_flag), равный 1, указывает, что межкомпонентный адаптивный контурный фильтр включен.A CC-ALF enable flag (such as sps_ccalf_enabled_flag) equal to 1 indicates that the inter-component adaptive loop filter is enabled.
Кроме того, может быть предусмотрено, что синтаксические элементы содержат:In addition, it may be envisaged that syntactic elements contain:
второй флаг (например, no_ccalf_constraint_flag), равный 1, указывает, что флаг включения CCALF (например, sps_ccalf_enabled_flag) равен 0; или второй флаг (такой как no_ccalf_constraint_flag), равный 0, не накладывает такое ограничение.a second flag (such as no_ccalf_constraint_flag ) equal to 1 indicates that the CCALF enable flag (such as sps_ccalf_enabled_flag ) is 0; or a second flag (such as no_ccalf_constraint_flag ) equal to 0 imposes no such constraint.
В одном варианте осуществления способ дополнительно содержит:In one embodiment, the method further comprises:
выполнение процесса фильтрации (такого как процесс межкомпонентной адаптивной контурный фильтрации) на восстановленном изображении (таком как восстановленный массив выборок яркости SL, восстановленный массив выборок цветности SCb и/или восстановленный массив выборок цветности SCr), чтобы получить отфильтрованное восстановленное изображение (такое как модифицированный восстановленный массив выборок яркости S'L, модифицированный восстановленный массив выборок цветности S'Cb и/или модифицированный восстановленный массив выборок цветности S'Cr).performing a filtering process (such as an inter-component adaptive loop filtering process) on the reconstructed image (such as the reconstructed array of luminance samples S L , the reconstructed array of chrominance samples S Cb and/or the reconstructed array of chrominance samples S Cr ) to obtain a filtered reconstructed image (such as a modified reconstructed array of luminance samples S' L , a modified reconstructed array of chrominance samples S' Cb and/or a modified reconstructed array of chrominance samples S' Cr ).
Настоящее раскрытие дополнительно обеспечивает закодированный битовый поток для видеосигнала посредством включения множества синтаксических элементов (например, синтаксического элемента, относящегося к ALF, такого как sps_alf_enabled_flag, и/или синтаксического элемента, относящегося к CCALF, такого как sps_ccalf_enabled_flag), при этом упомянутое множество синтаксических элементов содержит флаг включения межкомпонентного адаптивного контурного фильтра (CCALF) (например, sps_ccalf_enabled_flag) иThe present disclosure further provides an encoded bitstream for a video signal by including a plurality of syntax elements (e.g., a syntax element related to ALF, such as sps_alf_enabled_flag, and/or a syntax element related to CCALF, such as sps_ccalf_enabled_flag), wherein said plurality of syntax elements comprise a cross-component adaptive loop filter (CCALF) enable flag (e.g., sps_ccalf_enabled_flag) and
при этом параметры, относящиеся к CCALF, сигнализируются условно по меньшей мере на основе значения флага включения CCALF (такого как sps_ccalf_enabled_flag).whereby CCALF-related parameters are signaled conditionally based at least on the value of the CCALF enable flag (such as sps_ccalf_enabled_flag).
Битовый поток может быть уменьшен в размере, обеспечивая при этом информацию, которая будет использоваться при декодировании при надежном применении CC-ALF.The bitstream can be reduced in size while still providing information to be used for decoding when CC-ALF is used reliably.
Фиг. 12 показывает вариант осуществления кодера 4000. Кодер 4000 может быть реализован с использованием любой схемы обработки, обозначенной здесь позицией 4001, для выполнения способа кодирования видео. В частности, схема 4001 обработки может быть выполнена с возможностью применения межкомпонентного адаптивного контурного фильтра CC-ALF для уточнения компонента цветности. Схема обработки может быть дополнительно выполнена с возможностью формирования битового потока, включающего в себя множество синтаксических элементов, относящихся к CC-ALF, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, указывают информацию, относящуюся к CC-ALF, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, сигнализируется на любом одном или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса.Fig. 12 shows an embodiment of an
Упомянутое множество синтаксических элементов, относящихся к CC-ALF, в этом контексте содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS.Said set of syntax elements related to CC-ALF in this context comprises a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising an inter-component adaptive loop filter is enabled at the sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether or not the inter-component adaptive loop filter is enabled at the sequence level, and the second syntax element is signaled at the SPS level.
Кодер может дополнительно содержать приемник 4002 для приема видео, подлежащего кодированию, и передатчик 4003 для передачи битового потока, содержащего по меньшей мере упомянутое множество синтаксических элементов.The encoder may further comprise a
Фиг. 13 показывает вариант осуществления декодера 4100. Декодер 4100 может быть реализован с использованием любой схемы 4101 обработки для выполнения способа декодирования видео. В частности, схема 4101 обработки может быть выполнена с возможностью синтаксического анализа множества синтаксических элементов, связанных с межкомпонентным адаптивным контурным фильтром, CC-ALF, из битового потока, при этом упомянутое множество синтаксических элементов, относящихся к CC-ALF, получается из любого одного или более из уровня набора параметров последовательности (SPS), заголовка изображения или заголовка слайса.Fig. 13 shows an embodiment of a
В частности, упомянутое множество синтаксических элементов, относящихся к CC-ALF, содержит первый синтаксический элемент, который указывает, включен или нет адаптивный контурный фильтр (ALF), содержащий межкомпонентный адаптивный контурный фильтр, на уровне последовательности, и первый синтаксический элемент сигнализируется на уровне SPS, и второй синтаксический элемент, который указывает, включен или нет межкомпонентный адаптивный контурный фильтр на уровне последовательности, и второй синтаксический элемент сигнализируется на уровне SPS.In particular, said plurality of syntax elements related to CC-ALF comprises a first syntax element that indicates whether or not an adaptive loop filter (ALF) comprising an inter-component adaptive loop filter is enabled at the sequence level, and the first syntax element is signaled at the SPS level, and a second syntax element that indicates whether or not the inter-component adaptive loop filter is enabled at the sequence level, and the second syntax element is signaled at the SPS level.
Схема обработки может быть дополнительно выполнена с возможностью выполнения процесса CC-ALF с использованием по меньшей мере одного из упомянутого множества синтаксических элементов, относящихся к CC-ALF.The processing circuit may be further configured to perform the CC-ALF process using at least one of said plurality of syntax elements related to the CC-ALF.
Более того, декодер 4100 может содержать приемник 4102 для приема битового потока. Кроме того, декодер может содержать передатчик 4103 для вывода декодированного видео, например, на не показанное здесь устройство вывода.Moreover, the
Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.The following explains the applications of the encoding method and the decoding method as shown in the above embodiments and the system using them.
Фиг. 10 является блок-схемой, показывающей систему 3100 доставки контента для реализации услуги распространения контента. Данная система 3100 доставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и опционально включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.Fig. 10 is a block diagram showing a content delivery system 3100 for implementing a content distribution service. This content delivery system 3100 includes a
Устройство 3102 захвата формирует данные и может кодировать данные способом кодирования, показанным в вышеуказанных вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на Фигурах), а сервер кодирует эти данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения упомянутым, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, КПК, устанавливаемое на транспортное средство устройство, или комбинацию любых из них, или подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, описанное выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку видеокодирования. Когда данные включают в себя аудио (т.е. речь), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку аудиокодирования. Для некоторых практических сценариев устройство 3102 захвата распространяет закодированные видео- и аудиоданные путем их совместного мультиплексирования. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распространяет закодированные аудиоданные и закодированные видеоданные на терминальное устройство 3106 по отдельности.The
В системе 3100 доставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR) / цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.In the content delivery system 3100, the
Для терминального устройства со своим дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR) / цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.For a terminal device with its own display, such as a smartphone or tablet 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3112, a TV 3114, a personal digital assistant (PDA) 3122 or a device installed on a vehicle 3124, the terminal device can transmit decoded data to its display. For a terminal device not equipped with a display, such as an STB 3116, a videoconferencing system 3118 or a video surveillance system 3120, a contact is established therein with an
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.When each device in this system performs encoding or decoding, an image encoding device or an image decoding device may be used, as shown in the above-mentioned embodiments.
Фиг. 11 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.Fig. 11 is a diagram showing the structure of an
После того, как блок 3202 обработки протокола обработает поток, формируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на закодированные аудиоданные и закодированные видеоданные. Как описано выше, в других практических сценариях, например, в системе видеоконференцсвязи, закодированные аудиоданные и закодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.After the
Посредством обработки демультиплексирования формируются элементарный поток (ES) видео, ES аудио и, опционально, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует ES видео с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для формирования видеокадра и подает эти данные в блок 3212 синхронизации. Аудиодекодер 3212 декодирует аудио ES для формирования аудиокадра и подает эти данные в блок 3212 синхронизации. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на Фиг. Y) перед его подачей в блок 3212 синхронизации. Точно так же аудиокадр может сохраняться в буфере (не показан на Фиг. Y) перед его подачей в блок 3212 синхронизации.By means of demultiplexing processing, an elementary stream (ES) of video, an audio ES and, optionally, subtitles are generated. The
Блок 3212 синхронизации синхронизирует видеокадр и аудиокадр и подает видео/аудио в видео/аудио дисплей 3214. Например, блок 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может кодироваться в синтаксисе с использованием временных меток, касающихся представления кодированных аудио- и видеоданных, а также временных меток, касающихся доставки самого потока данных.The
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.If subtitles are included in the stream, the
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображения, либо устройство декодирования изображения в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.The present invention is not limited to the above-mentioned system, and either the image encoding device or the image decoding device in the above-mentioned embodiments may be included in another system such as an automobile system.
Математические операторыMathematical operators
Математические операторы, используемые в этой заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и вещественнозначное деление. Соглашения о нумерации и подсчете определяют начало с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т. д.The mathematical operators used in this application are similar to those used in the C programming language. However, the results of integer division and arithmetic shift operations are defined more precisely, and additional operations such as exponentiation and real-valued division are defined. The numbering and counting conventions specify a 0-based convention, such that "first" is equivalent to 0, "second" is equivalent to 1, and so on.
Арифметические операторыArithmetic operators
Следующие арифметические операторы определены следующим образом: The following arithmetic operators are defined as follows:
Логические операторыLogical operators
Следующие логические операторы определены следующим образом:The following logical operators are defined as follows:
x && y Булево логическое «и» для x и yx && y Boolean logical "and" for x and y
х || y Булево логическое «или» для x и yx || y Boolean logical "or" for x and y
!Булево логическое «не»!Boolean logical "not"
x?y:z Если x равен «ИСТИНА» или не равен 0, вычисляется значение y; в противном случае вычисляется значение z.x?y:z If x is TRUE or not 0, evaluate to y; otherwise evaluate to z.
Операторы отношенияRelational operators
Следующие операторы отношения определены следующим образом:The following relational operators are defined as follows:
>Больше>More
>=Больше или равно>=Greater than or equal to
<Меньше<Less
<=Меньше или равно<=Less than or equal to
= =Равно= =Equal
!=Не равно!=Not equal
Когда оператор сравнения применяется к синтаксическому элементу или переменной, которому(ой) присвоено значение «na» (б not applicable, не применимо), значение «na» обрабатывается как отдельное значение для синтаксического элемента или переменной. Значение «na» не считается равным любому другому значению.When a comparison operator is applied to a syntax element or variable that is assigned the value "na" (not applicable), the value "na" is treated as a distinct value for the syntax element or variable. The value "na" is not considered equal to any other value.
Битовые операторыBitwise operators
Следующие побитовые операторы определены следующим образом:The following bitwise operators are defined as follows:
&Побитовое «и». При работе над целочисленными аргументами оперирует над представлением дополнения до двух целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.&Bitwise and. When operating on integer arguments, operates on the two's complement representation of the integer value. When operating on a binary argument that has fewer bits than another argument, the shorter argument is expanded by adding the more significant bits that are 0.
|Побитовое «или». При работе над целочисленными аргументами оперирует над представлением дополнения до двух целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.|Bitwise "or". When operating on integer arguments, operates on the two's complement representation of the integer value. When operating on a binary argument that has fewer bits than the other argument, the shorter argument is expanded by adding the more significant bits that are 0.
^При работе над целочисленными аргументами оперирует над представлением дополнения до двух целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.^When operating on integer arguments, operates on the two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is expanded by adding the more significant bits that are 0.
x >> y Арифметический сдвиг вправо целочисленного представления дополнения до двух x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в старшие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB для x до операции сдвига.x >> y Arithmetic right shift of the two's complement integer representation of x by y binary digits. This function is defined only for nonnegative integer values y. The bits shifted to the most significant bits (MSB) as a result of a right shift have a value equal to the MSB of x before the shift operation.
x << y Арифметический сдвиг влево целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в младшие биты (LSB) в результате сдвига влево, имеют значение, равное 0.x << y Left arithmetic shift of the two's complement integer representation of x by y binary digits. This function is defined only for non-negative integer values of y. Bits shifted into the least significant bits (LSB) as a result of a left shift have the value 0.
Операторы присваиванияAssignment operators
Следующие арифметические операторы определены следующим образом:The following arithmetic operators are defined as follows:
=Оператор присвоения=Assignment operator
++Приращение, т.е. x++ эквивалентно x=x+1; при использовании в индексе массива оценивается в значение переменной до операции приращения.++Increment, i.e. x++ is equivalent to x =
--Уменьшение, т.е. x- - эквивалентно x=x-1; при использовании в индексе массива оценивает значение переменной до операции уменьшения.--Decrement, i.e. x- is equivalent to x = x- 1; when used in an array index, evaluates the variable to the value before the decrement operation.
+=Приращение на указанную величину, т.е. x+=3 эквивалентно x=x+3, и x+=(-3) эквивалентно x=x+(-3)+=Increment by the specified amount, i.e. x+=3 is equivalent to x=x+3, and x+=(-3) is equivalent to x=x+(-3)
-=Уменьшение на указанную величину, т.е. x-=3 эквивалентно x=x-3, а x-=(-3) эквивалентно x=x-(-3).-=Decrease by the specified amount, i.e. x-=3 is equivalent to x=x-3, and x-=(-3) is equivalent to x=x-(-3).
Обозначение диапазонаRange designation
Следующее обозначение используется для специфицирования диапазона значений:The following notation is used to specify a range of values:
x=y..z x принимает целочисленные значения от y до z включительно, где x, y и z являются целыми числами, а z больше y.x=y..z x takes integer values from y to z inclusive, where x, y and z are integers and z is greater than y.
Математические функцииMathematical functions
Определены следующие математические функции:The following mathematical functions are defined:
Abs(x)= Abs(x)=
Asin(x)тригонометрическая функция арксинуса, работающая с аргументом x, который находится в диапазоне от -1,0 до 1,0 включительно, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах радианAsin(x) is the arcsine trigonometric function, operating on an argument x that is in the range -1.0 to 1.0 inclusive, with an output value in the range -π÷2 to π÷2 inclusive, in units of radians.
Atan(x)тригонометрическая функция арктангенса, работающая с аргументом x, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах радианAtan(x) is an arctangent trigonometric function operating on an argument x, with an output value in the range -π÷2 to π÷2 inclusive, in units of radians.
Atan2(y, x)= Atan2(y, x)=
Ceil(x)наименьшее целое число, которое больше или равно x.Ceil(x) is the smallest integer greater than or equal to x.
Clip1Y(x)=Clip3( 0, ( 1 << BitDepthY ) - 1, x )Clip1Y(x)=Clip3( 0, ( 1 << BitDepthY ) - 1, x )
Clip1C(x)=Clip3( 0, ( 1 << BitDepthC ) - 1, x )Clip1C(x)=Clip3( 0, ( 1 << BitDepthC ) - 1, x )
Clip3(x, y, z)= Clip3(x, y, z)=
Cos(x)тригонометрическая функция косинуса, работающая с аргументом x в единицах радиан.Cos(x) is the trigonometric cosine function, operating with argument x in units of radians.
Floor(x) наибольшее целое число, меньшее или равное x.Floor(x) is the largest integer less than or equal to x.
GetCurrMsb(a, b, c, d)= GetCurrMsb(a, b, c, d)=
Ln(x)натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма, равная 2,718 281 828…).Ln(x) is the natural logarithm of x (logarithm to the base e, where e is the constant of the base of the natural logarithm, equal to 2.718 281 828…).
Log2(x) - логарифм x по основанию 2Log2(x) - logarithm of x to
Log10(x) - логарифм x по основанию 10.Log10(x) is the logarithm of x to the
Min(x, y)= Min(x, y)=
Max(x, y)= Max(x, y)=
Round( x )=Sign( x ) * Floor( Abs( x ) + 0,5)Round( x )=Sign( x ) * Floor( Abs( x ) + 0.5)
Sign(x)= Sign(x)=
Sin(x)тригонометрическая функция синуса, работающая с аргументом x в единицах радиан.Sin(x) is the trigonometric sine function, operating with argument x in units of radians.
Sqrt(x)= Sqrt(x)=
Swap(x, y)=(y, x)Swap(x, y)=(y, x)
Tan(x)тригонометрическая функция тангенса, работающая с аргументом x в единицах радиан.Tan(x) is a trigonometric tangent function that operates on an argument x in units of radians.
Порядок приоритетности операцийOrder of priority of operations
Когда порядок приоритетности в выражении явно не указан с помощью круглых скобок, применяются следующие правила:When the order of precedence in an expression is not explicitly indicated by parentheses, the following rules apply:
-- Операции с более высоким приоритетом выполняются перед любой операцией с более низким приоритетом.-- Operations with higher priority are executed before any operation with lower priority.
-- Операции с одинаковым приоритетом выполняются последовательно слева направо.-- Operations with the same priority are performed sequentially from left to right.
В таблице ниже указан приоритет операций от наивысшего к низшему; более высокая позиция в таблице указывает на более высокий приоритет.The table below lists the priority of operations from highest to lowest; a higher position in the table indicates a higher priority.
Для тех операторов, которые также используются в языке программирования C, порядок приоритетности, используемый в этом описании, является таким же, что и в языке программирования C.For those operators that are also used in the C programming language, the order of precedence used in this description is the same as in the C programming language.
Таблица: Приоритетность операций от наивысшей (в верхней части таблицы) до низшей (в нижней части таблицы) Table: Priority of operations from highest (at the top of the table) to lowest (at the bottom of the table)
Текстовое описание логических операцийText description of logical operations
В тексте определение логических операций, которое математически бы описывалось в следующей форме:In the text, the definition of logical operations, which would be mathematically described in the following form:
if( условие 0 )if( condition 0 )
определение 0definition 0
else if( условие 1 )else if( condition 1 )
определение 1
… else /* информативный комментарий по оставшемуся условию */… else /* informative comment on the remaining condition */
определение ndefinition of n
может быть описано следующим образом:can be described as follows:
… как указано ниже / … применяется следующее:… as specified below / … the following applies:
- Если условие 0, определение 0- If condition 0, definition 0
- Иначе, Если условие 1, определение 1- Otherwise, If
- …- …
-- Иначе (информативный комментарий по оставшемуся условию), определение n.-- Otherwise (informative comment on the remaining condition), definition n.
Каждое определение "если … Иначе, если … Иначе, …" в тексте вводится словами "… как указано ниже" или "…применяется следующее", за которым сразу следует "если …". Последним условием "если … Иначе, если … Иначе, …" всегда является "Иначе, …". Чередование определений "если … Иначе, если … Иначе, …" могут быть идентифицированы путем сопоставления "… как указано ниже" или "… применяется следующее" с завершающим "Иначе, …".Each "if ... Else, if ... Else, ..." clause in the text is introduced by the words "... as specified below" or "... the following applies" followed immediately by "if ...". The final clause of an "if ... Else, if ... Else, ..." clause is always "Otherwise, ...". Alternating "if ... Else, if ... Else, ..." clauses can be identified by matching "... as specified below" or "... the following applies" with a final "Otherwise, ...".
В тексте определение логических операций, которое математически бы описывалось в следующей форме:In the text, the definition of logical operations, which would be mathematically described in the following form:
if( условие 0a && условие 0b )if( condition 0a && condition 0b )
определение 0definition 0
else if( условие 1a | | условие 1b )else if( condition 1a | | condition 1b )
определение 1
……
elseelse
определение ndefinition of n
может быть описано следующим образом:can be described as follows:
… как указано ниже / … применяется следующее:… as specified below / … the following applies:
-- Если все из следующих условий выполняются, определение 0:-- If all of the following conditions are true, definition 0:
- условие 0a- condition 0a
- условие 0b- condition 0b
-- Иначе, если истинными являются одно или более из следующих условий, определение 1:-- Otherwise, if one or more of the following conditions are true, Definition 1:
- условие 1a- condition 1a
- условие 1b- condition 1b
- …- …
- Иначе, определение n- Otherwise, the definition of n
В тексте определение логических операций, которое математически бы описывалось в следующей форме:In the text, the definition of logical operations, which would be mathematically described in the following form:
if( условие 0 )if( condition 0 )
определение 0definition 0
if( условие 1 )if( condition 1 )
определение 1
может быть описано следующим образом:can be described as follows:
Когда условие 0, определение 0When condition is 0, definition is 0
Когда условие 1, определение 1When
Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодирования, следует отметить, что варианты осуществления системы 10 кодирования/декодирования, кодера 20 и декодера 30 (и, соответственно, системы 10), а также другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования/декодирования неподвижного изображения, т.е. обработки или кодирования/декодирования отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании/декодировании видео. В общем, только блоки 244 межкадрового предсказания (кодер) и 344 (декодер) могут не быть доступны в случае, если кодирование/декодирование для обработки изображения ограничено одним изображением 17. Все другие функциональные возможности (также именуемые инструментами или технологиями) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки неподвижных изображений, например вычисления 204/304 остатка, преобразования 206, квантования 208, обратного квантования 210/310, (обратного) преобразования 212/312, разделения 262/362, внутрикадрового предсказания 254/354 и/или контурной фильтрации 220, 320 и энтропийного кодирования/декодирования 270 и энтропийного декодирования 304.Although embodiments of the present invention have been primarily described in terms of video coding, it should be noted that embodiments of encoding/
Варианты осуществления, например кодера 20 и декодера 30, а также описанные в данном документе функции, например применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, микропрограммным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на считываемом компьютером носителе или передаваться через среду связи в виде одной или более инструкций или кода и исполняться аппаратным блоком обработки. Считываемые компьютером носители могут включать в себя считываемые компьютером носители, которые соответствуют материальному носителю, например носителю данных, или среде связи, в том числе любой среде, которая обеспечивает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальным считываемым компьютером запоминающим носителям, которые являются долговременными, или (2) среде связи, такой как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ одним или более компьютерами или одним или более процессорами для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.Embodiments, such as the encoder 20 and the decoder 30, as well as the functions described herein, such as with respect to the encoder 20 and the decoder 30, can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions can be stored on a computer-readable medium or transmitted via a communication medium in the form of one or more instructions or code and executed by a hardware processing unit. Computer-readable media can include computer-readable media that correspond to a tangible medium, such as a storage medium, or a communication medium, including any medium that enables transmission of a computer program from one place to another, such as according to a communication protocol. Thus, computer-readable media can typically correspond to (1) tangible computer-readable storage media that are non-transitory, or (2) a communication medium, such as a signal or a carrier wave. The storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the techniques described in this disclosure. The computer program product may include a computer-readable medium.
В качестве примера, а не ограничения, такие считываемые компьютером носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть считываемой компьютером средой. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная-, радио- и микроволновая- связь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная-, радио- и микроволновая- связь, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители хранения данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные носители, а вместо этого направлены на долговременные, материальные запоминающие носители. Понятие «диск», используемове в данном документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным образом, а диски (discs) воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.By way of example, and not limitation, such computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection is properly called a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave communications, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave communications are included within the definition of medium. However, it should be understood that computer-readable media and storage media do not include connections, carrier waves, signals, or other transient media, but instead are directed to non-transitory, tangible storage media. The term "disc" as used herein includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where discs typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.
Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах функциональные возможности, описанные в данном документе, могут быть предоставлены в рамках специализированных аппаратных и/или программных блоков, выполненных с возможностью кодирования и декодирования, или включены в комбинированный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSP), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the above-mentioned structures or any other structure suitable for implementing the techniques described herein. Furthermore, in some aspects, the functionality described herein may be provided within specialized hardware and/or software units configured to encode and decode, or included in a combined codec. Furthermore, the techniques may be fully implemented in one or more circuits or logic elements.
Способы этого раскрытия могут быть реализованы в большом количестве устройств или аппаратных компонентов, в том числе беспроводной телефон, интегральная схема (ИС) или набор ИС (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены совокупностью взаимодействующих аппаратных блоков, в том числе одним или более процессорами, как описано выше, вместе с подходящим программным обеспечением и/или микропрограммным обеспечением.The methods of this disclosure may be implemented in a variety of devices or hardware components, including a wireless telephone, an integrated circuit (IC), or a set of ICs (e.g., a chipset). This disclosure describes various components, modules, or blocks to highlight functional aspects of devices capable of performing the disclosed technologies, but does not necessarily require implementation by different hardware blocks. Rather, as described above, the various blocks may be combined into a codec hardware block or provided by a plurality of interacting hardware blocks, including one or more processors, as described above, together with suitable software and/or firmware.
Claims (37)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EPPCT/EP2019/086984 | 2019-12-23 | ||
US62/960,147 | 2020-01-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2827439C1 true RU2827439C1 (en) | 2024-09-26 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8548062B2 (en) * | 2010-07-16 | 2013-10-01 | Sharp Laboratories Of America, Inc. | System for low resolution power reduction with deblocking flag |
CN104683819A (en) * | 2015-01-31 | 2015-06-03 | 北京大学 | A method and device for adaptive loop filtering |
RU2573743C1 (en) * | 2012-01-19 | 2016-01-27 | Квэлкомм Инкорпорейтед | Signalling of deblocking filter parameters in video coding |
US10200700B2 (en) * | 2014-06-20 | 2019-02-05 | Qualcomm Incorporated | Cross-component prediction in video coding |
US10225554B2 (en) * | 2011-02-10 | 2019-03-05 | Velos Media, Llc | Image processing device and image processing method |
US10419757B2 (en) * | 2016-08-31 | 2019-09-17 | Qualcomm Incorporated | Cross-component filter |
US10440396B2 (en) * | 2017-03-28 | 2019-10-08 | Qualcomm Incorporated | Filter information sharing among color components |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8548062B2 (en) * | 2010-07-16 | 2013-10-01 | Sharp Laboratories Of America, Inc. | System for low resolution power reduction with deblocking flag |
US10225554B2 (en) * | 2011-02-10 | 2019-03-05 | Velos Media, Llc | Image processing device and image processing method |
RU2573743C1 (en) * | 2012-01-19 | 2016-01-27 | Квэлкомм Инкорпорейтед | Signalling of deblocking filter parameters in video coding |
US10200700B2 (en) * | 2014-06-20 | 2019-02-05 | Qualcomm Incorporated | Cross-component prediction in video coding |
CN104683819A (en) * | 2015-01-31 | 2015-06-03 | 北京大学 | A method and device for adaptive loop filtering |
US10419757B2 (en) * | 2016-08-31 | 2019-09-17 | Qualcomm Incorporated | Cross-component filter |
US10440396B2 (en) * | 2017-03-28 | 2019-10-08 | Qualcomm Incorporated | Filter information sharing among color components |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7541096B2 (en) | Cross-component adaptive loop filtering for video coding. | |
US20220345748A1 (en) | Encoder, decoder and corresponding methods and apparatus | |
JP7436646B2 (en) | Encoders, decoders and corresponding methods for simplifying picture header signaling | |
US11968357B2 (en) | Apparatuses and methods for encoding and decoding based on syntax element values | |
US11601680B2 (en) | Encoder, a decoder and corresponding methods for tile configuration signaling | |
AU2021201606A1 (en) | Method and apparatus of signaling the number of candidates for merge mode | |
JP2023509052A (en) | Encoders, decoders and corresponding methods | |
RU2827439C1 (en) | Cross-component adaptive loop filtering for video encoding | |
RU2823668C1 (en) | Encoder, decoder and related methods | |
RU2830551C1 (en) | Encoder, decoder and related methods | |
RU2834015C1 (en) | Encoder, decoder and related methods | |
RU2829116C1 (en) | Encoding device, decoding device and corresponding methods and equipment | |
RU2823267C1 (en) | Method and hardware component for signalling number of candidates for merging mode | |
RU2828202C1 (en) | Encoder, decoder and corresponding methods for signaling sub-images in set of sequence parameters | |
RU2832719C1 (en) | Encoder, decoder and related methods | |
RU2831978C1 (en) | Encoder, decoder and corresponding signaling methods and semantics in parameter sets | |
RU2823042C1 (en) | Encoder, decoder and corresponding methods to simplify signaling of picture header | |
JP7414976B2 (en) | Encoders, decoders and corresponding methods | |
RU2833184C1 (en) | Method and device for signaling chromaticity quantisation parameters |