СИНТАКСИЧЕСКИЕ ЭЛЕМЕНТЫ ДЛЯ КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ ВИДЕО Российский патент 2023 года по МПК H04N19/105 

Описание патента на изобретение RU2802368C2

Область техники, к которой относится изобретение

По меньшей мере, один из настоящих вариантов осуществления, в общем, относится к синтаксическим элементам для кодирования или декодирования видео.

Уровень техники

Чтобы достигать высокой эффективности сжатия, схемы кодирования изображений и видео обычно используют прогнозирование и преобразование для того, чтобы использовать пространственную и временную избыточность в видеоконтенте. Обычно, внутреннее (intra) или взаимное (inter) прогнозирование используется для того, чтобы использовать внутри- или межкадровую корреляцию, после этого разности между исходным блоком и прогнозированным блоком, зачастую обозначаемые в качестве ошибок прогнозирования или остатков прогнозирования, преобразуются, квантуются и энтропийно кодируются. Чтобы восстанавливать видео, сжатые данные декодируются посредством обратных процессов, соответствующих энтропийному кодированию, квантованию, преобразованию и прогнозированию.

Сущность изобретения

Согласно первому аспекту, по меньшей мере, одного варианта осуществления, представляется видеосигнал, причем видеосигнал форматируется с возможностью включать в себя информацию согласно стандарту кодирования видео и содержит поток битов, содержащий видеоконтент и высокоуровневую синтаксическую информацию, причем упомянутая высокоуровневая синтаксическая информация содержит, по меньшей мере, один параметр из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования.

Согласно второму аспекту, по меньшей мере, одного варианта осуществления, представляется носитель данных, причем носитель данных содержит закодированные на нем сигнальные видеоданные, причем видеосигнал форматируется с возможностью включать в себя информацию согласно стандарту кодирования видео и содержит поток битов, содержащий видеоконтент и высокоуровневую синтаксическую информацию, причем упомянутая высокоуровневая синтаксическая информация содержит, по меньшей мере, один параметр из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования.

Согласно третьему аспекту, по меньшей мере, одного варианта осуществления, представляется оборудование, причем оборудование содержит видеокодер для кодирования данных кадров, по меньшей мере, для одного блока в кадре, при этом кодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования, и при этом упомянутые параметры вставляются в высокоуровневые синтаксические элементы кодированных данных кадров.

Согласно четвертому аспекту, по меньшей мере, одного варианта осуществления, представляется способ, при этом способ содержит кодирование данных кадров, по меньшей мере, для одного блока в кадре, при этом кодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования, и вставку параметров в высокоуровневые синтаксические элементы кодированных данных кадров.

Согласно пятому аспекту, по меньшей мере, одного варианта осуществления, представляется оборудование, причем оборудование содержит видеодекодер для декодирования данных кадров, по меньшей мере, для одного блока в кадре, при этом декодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования, и при этом упомянутые параметры получаются из высокоуровневых синтаксических элементов кодированных данных кадров.

Согласно шестому аспекту, по меньшей мере, одного варианта осуществления, представляется способ, при этом способ содержит получение параметров из высокоуровневых синтаксических элементов кодированных данных кадров и декодирование данных кадров, по меньшей мере, для одного блока в кадре, при этом декодирование выполняется с использованием, по меньшей мере, одного параметра из параметра, представляющего тип сегментации, параметра, представляющего тип режима внутреннего прогнозирования, параметра, представляющего адаптацию размеров блоков для контурного фильтра на основе дискретизированного адаптивного смещения, и параметра, представляющего режим компенсации освещенности для блоков бипрогнозирования.

Согласно седьмому аспекту, по меньшей мере, одного варианта осуществления, представляется энергонезависимый машиночитаемый носитель, причем энергонезависимый машиночитаемый носитель содержит контент данных, сформированный согласно третьему или четвертому аспекту.

Согласно седьмому аспекту, по меньшей мере, одного варианта осуществления, представляется компьютерная программа, содержащая инструкции с программным кодом, выполняемые посредством процессора, причем компьютерная программа реализует этапы способа согласно, по меньшей мере, четвертому или шестому аспекту.

Согласно восьмому аспекту, по меньшей мере, одного варианта осуществления, представляется компьютерный программный продукт, который сохранен на энергонезависимом машиночитаемом носителе и содержит инструкции с программным кодом, выполняемые посредством процессора, причем компьютерный программный продукт реализует этапы способа согласно, по меньшей мере, четвертому или шестому аспекту.

Краткое описание чертежей

Фиг. 1 иллюстрирует пример видеокодера 100, такого как кодер по стандарту высокоэффективного кодирования видео (HEVC).

Фиг. 2 иллюстрирует блок-схему примера видеодекодера 200, такого как HEVC-декодер.

Фиг. 3 иллюстрирует пример единицы дерева кодирования и дерева кодирования в сжатой области.

Фиг. 4 иллюстрирует пример разделения CTU на единицы кодирования, единицы прогнозирования и единицы преобразования.

Фиг. 5 иллюстрирует пример CTU-представления в виде дерева квадрантов плюс двоичного дерева (QTBT).

Фиг. 6 иллюстрирует примерный расширенный набор сегментации единиц кодирования.

Фиг. 7 иллюстрирует пример режима внутреннего прогнозирования с двумя опорными слоями.

Фиг. 8 иллюстрирует примерный вариант осуществления режима компенсации для двунаправленной компенсации освещенности.

Фиг. 9 иллюстрирует интерпретацию bt-split-flag согласно примерному варианту осуществления.

Фиг. 10 иллюстрирует блок-схему примера системы, в которой реализуются различные аспекты и варианты осуществления.

Фиг. 11 иллюстрирует блок-схему последовательности операций примера способа кодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования.

Фиг. 12 иллюстрирует блок-схему последовательности операций примера части способа декодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования.

Осуществление изобретения

По меньшей мере, в одном варианте осуществления, использование новых инструментальных средств кодирования, описанных ниже, приводит в результате к повышению эффективности кодирования. В примерном варианте осуществления, эффективное сигнализирование этих инструментальных средств кодирования представляет собой передачу информации, представляющей инструментальные средства кодирования, используемые для кодирования, например, из устройства кодера в приемное устройство (например, декодер или дисплей), так что соответствующие инструментальные средства используются для каскада декодирования. Эти инструментальные средства содержат новые режимы сегментации, новые режимы внутреннего прогнозирования, повышенную гибкость для дискретизированного адаптивного смещения и новый режим компенсации освещенности для блоков бипрогнозирования. Следовательно, предложенный новый синтаксис, собирающий множество инструментальных средств кодирования, обеспечивает более эффективное кодирование видео.

Фиг. 1 иллюстрирует пример видеокодера 100, такого как кодер по стандарту высокоэффективного кодирования видео (HEVC). Фиг. 1 также может иллюстрировать кодер, в котором вносятся улучшения в HEVC-стандарт, либо кодер с использованием технологий, аналогичных HEVC, такой как кодер по стандарту JEM (по стандарту объединенной исследовательской группы по тестовой модели), разрабатываемый посредством JVET (объединенной исследовательской группы по видеостандартам).

В настоящей заявке, термины "восстановленный" и "декодированный" могут использоваться взаимозаменяемо, термины "закодированный (encoded)" или "кодированный (coded)" могут использоваться взаимозаменяемо, и термины "изображение", "кадр" и "кинокадр" могут использоваться взаимозаменяемо. Обычно, но не обязательно, термин "восстановленный" используется на стороне кодера, в то время как "декодированный" используется на стороне декодера.

Перед кодированием, видеопоследовательность может проходить через обработку перед кодированием (101). Например, она выполняется посредством применения преобразования цветов к входному цветному кадру (например, преобразования из RGB 4:4:4 в YCbCr 4:2:0) или выполнения повторного преобразования компонентов входного кадра, чтобы получать распространение сигналов, более устойчивое к сжатию (например, с использованием частотной коррекции гистограммы одного из цветовых компонентов). Метаданные могут быть ассоциированы с предварительной обработкой и присоединены к потоку битов.

В HEVC, для того, чтобы кодировать видеопоследовательность с помощью одного или более кадров, кадр сегментируется (102) на одну или более серий последовательных макроблоков, причем каждая серия последовательных макроблоков (срез, slice) может включать в себя один или более сегментов серий последовательных макроблоков. Сегмент серий последовательных макроблоков организуется в единицы кодирования, единицы прогнозирования и единицы преобразования. HEVC-спецификация различает "блоки" и "единицы", при этом "блок" адресует конкретную область в массиве выборок (например, сигнал яркости, Y), а "единица" включает в себя совместно размещенные блоки всех кодированных цветовых компонентов (Y, Cb, Cr или монохромного), синтаксические элементы и прогнозирующие данные, которые ассоциированы с блоками (например, векторы движения).

Для кодирования в HEVC, кадр сегментируется на блоки дерева кодирования (CTB) квадратной формы с конфигурируемым размером, и последовательный набор блоков дерева кодирования группируется в серию последовательных макроблоков. Единица дерева кодирования (CTU) содержит CTB кодированных цветовых компонентов. CTB представляет собой корень сегментации на дерево квадрантов на блоки кодирования (CB), и блок кодирования может сегментироваться на один или более блоков прогнозирования (PB) и формирует корень сегментации на дерево квадрантов на блоки преобразования (TB). Согласно блоку кодирования, блоку прогнозирования и блоку преобразования, единица кодирования (CU) включает в себя единицы прогнозирования (PU) и набор с древовидной структурой единиц преобразования (TU), PU включает в себя информацию прогнозирования для всех цветовых компонентов, и TU включает в себя синтаксическую структуру остаточного кодирования для каждого цветового компонента. Размер CB, PB и TB компонента сигнала яркости применяется к соответствующей CU, PU и TU. В настоящей заявке, термин "блок" может использоваться как означающий, например, любое из CTU, CU, PU, TU, CB, PB и TB. Помимо этого, "блок" также может использоваться как означающий макроблок и сегмент, как указано в H.264/AVC или других стандартах кодирования видео, и если обобщить, как означающий массив данных различных размеров.

В примере кодера 100, кадр кодируется посредством элементов кодера, как описано ниже. Кадр, который должен кодироваться, обрабатывается в единицах CU. Каждая CU кодируется использованием внутреннего или взаимного режима. Когда CU кодируется во внутреннем режиме, он выполняет внутреннее прогнозирование (160). Во взаимном режиме, выполняются оценка (175) и компенсация (170) движения. Кодер определяет (105) то, какой из внутреннего режима или взаимного режима следует использовать для кодирования CU, и указывает решение по внутреннему/взаимному режиму посредством флага режима прогнозирования. Остатки прогнозирования вычисляются посредством вычитания (110) прогнозированного блока из исходного блока изображений.

CU во внутреннем режиме прогнозируются из восстановленных соседних выборок в идентичной серии последовательных макроблоков. В HEVC доступен набор из 35 режимов внутреннего прогнозирования, включающий в себя DC, плоский и 33 режима углового прогнозирования. Опорный элемент внутреннего прогнозирования восстанавливается из строки и столбца, смежных с текущим блоком. Опорный элемент в два раза превышает размер блока в горизонтальном и вертикальном направлениях с использованием доступных выборок из ранее восстановленных блоков. Когда режим углового прогнозирования используется для внутреннего прогнозирования, опорные выборки могут копироваться вдоль направления, указываемого посредством режима углового прогнозирования.

Применимый режим внутреннего прогнозирования сигналов яркости для текущего блока может кодироваться с использованием двух различных вариантов. Если применимый режим включается в конструируемый список из трех наиболее вероятных режимов (MPM), режим сигнализируется посредством индекса в MPM-списке. В противном случае, режим сигнализируется посредством преобразования в двоичную форму фиксированной длины индекса режима. Три наиболее вероятных режима извлекаются из режимов внутреннего прогнозирования верхнего и левого соседних блоков.

Для взаимной CU, соответствующий блок кодирования дополнительно сегментируется на один или более блоков прогнозирования. Взаимное прогнозирование выполняется на уровне PB, и соответствующая PU содержит информацию относительно того, как выполняется взаимное прогнозирование. Информация движения (например, вектор движения и индекс опорного кадра) может сигнализироваться в двух способах, а именно, в "режиме объединения" и в "усовершенствованном прогнозировании векторов движения (AMVP)".

В режиме объединения, видеокодер или декодер собирает список возможных вариантов на основе уже кодированных блоков, и видеокодер сигнализирует индекс для одного из возможных вариантов в списке возможных вариантов. На стороне декодера, вектор движения (MV) и индекс опорного кадра восстанавливаются на основе сигнализируемого возможного варианта.

В AMVP, видеокодер или декодер собирает списки возможных вариантов на основе векторов движения, определенных из уже кодированных блоков. Видеокодер затем сигнализирует индекс в списке возможных вариантов, чтобы идентифицировать предиктор вектора движения (MVP), и сигнализирует разность векторов движения (MVD). На стороне декодера, вектор движения (MV) восстанавливается в качестве MVP+MVD. Применимый индекс опорного кадра также явно кодируется в PU-синтаксисе для AMVP.

Остатки прогнозирования затем преобразуются (125) и квантуются (130), что включает в себя, по меньшей мере, один вариант осуществления для адаптации параметра квантования сигналов цветности, описанный ниже. Преобразования, в общем, основаны на разделимых преобразованиях. Например, DCT-преобразование сначала применяется в горизонтальном направлении, затем в вертикальном направлении. В последних кодеках, таких как JEM, преобразования, используемые в обоих направлениях (например, DCT в одном направлении, DST в другой), могут отличаться, что приводит к широкому спектру двумерных преобразований, тогда как в предыдущих кодеках, разнообразие двумерных преобразований для данного размера блока обычно ограничивается.

Квантованные коэффициенты преобразования, а также векторы движения и другие синтаксические элементы энтропийно кодируются (145), чтобы выводить поток битов. Кодер также может пропускать преобразование и применять квантование непосредственно к непреобразованному остаточному сигналу на основе TU 4×4. Кодер также может обходить как преобразование, так и квантование, т.е. остаток кодируется непосредственно без применения процесса преобразования или квантования. При прямом PCM-кодировании, прогнозирование не применяется, и выборки единиц кодирования непосредственно кодируются в поток битов.

Кодер декодирует кодированный блок, чтобы предоставлять опорный элемент для дополнительных прогнозирований. Квантованные коэффициенты преобразования деквантуются (140) и обратно преобразуются (150), чтобы декодировать остатки прогнозирования. При комбинировании (155) декодированных остатков прогнозирования и прогнозированного блока, восстанавливается блок изображений. Внутриконтурные фильтры (165) применяются к восстановленному кадру, например, чтобы выполнять удаление блочности/фильтрацию на основе SAO (дискретизированного адаптивного смещения), с тем чтобы уменьшать артефакты кодирования. Фильтрованное изображение сохраняется в буфере опорных кадров (180).

Фиг. 2 иллюстрирует блок-схему примера видеодекодера 200, такого как HEVC-декодер. В примере декодера 200, поток битов декодируется посредством элементов декодера, как описано ниже. Видеодекодер 200, в общем, выполняет проход декодирования, обратный по отношению к проходу кодирования, как описано на фиг. 1, который выполняет декодирование видео в качестве части кодирования видеоданных. Фиг. 2 также может иллюстрировать декодер, в котором вносятся улучшения в HEVC-стандарт, или декодер с использованием технологий, аналогичных HEVC, такой как JEM-декодер.

В частности, ввод декодера включает в себя поток видеобитов, который может формироваться посредством видеокодера 100. Поток битов сначала энтропийно декодируется (230), чтобы получать коэффициенты преобразования, векторы движения, информацию сегментации кадров и другую кодированную информацию. Информация сегментации кадров указывает размер CTU и способ, которым CTU разбивается на CU и возможно на PU, если применимо. Декодер в силу этого может разделять (235) кадр на CTU, а каждую CTU - на CU, согласно информации сегментации декодированных кадров. Коэффициенты преобразования деквантуются (240), что включает в себя, по меньшей мере, один вариант осуществления для адаптации параметра квантования сигналов цветности, описанный ниже, и обратно преобразуются (250), чтобы декодировать остатки прогнозирования.

При комбинировании (255) декодированных остатков прогнозирования и прогнозированного блока, восстанавливается блок изображений. Прогнозированный блок может получаться (270) из внутреннего прогнозирования (260) или прогнозирования с компенсацией движения (т.е. взаимного прогнозирования) (275). Как описано выше, AMVP и технологии на основе режима объединения могут использоваться для того, чтобы извлекать векторы движения для компенсации движения, которая может использовать интерполяционные фильтры, чтобы вычислять интерполированные значения для субцелочисленных выборок опорного блока. Внутриконтурные фильтры (265) применяются к восстановленному изображению. Фильтрованное изображение сохраняется в буфере опорных кадров (280).

Декодированный кадр дополнительно может проходить через обработку после декодирования (285), например, обратное преобразование цветов (например, преобразование из YCbCr 4:2:0 в RGB 4:4:4) или обратное повторное преобразование, выполняющее инверсию процесса повторного преобразования, выполняемого при обработке перед кодированием (101). Обработка после декодирования может использовать метаданные, извлекаемые при обработке перед кодированием и сигнализируемые в потоке битов.

Фиг. 3 иллюстрирует пример единицы дерева кодирования и дерева кодирования в сжатой области. В HEVC-стандарте сжатия видео, кадр разделяется на так называемые единицы дерева кодирования (CTU), размер которых типично составляет 64×64, 128×128 или 256×256 пикселов. Каждая CTU представляется посредством дерева кодирования в сжатой области. Оно представляет собой разделение на дерево квадрантов CTU, в котором каждый лист называется "единицей кодирования (CU)".

Фиг. 4 иллюстрирует пример разделения CTU на единицы кодирования, единицы прогнозирования и единицы преобразования. Для каждой CU затем предоставляются некоторые параметры внутреннего или взаимного прогнозирования (информация прогнозирования). Для этого, она пространственно сегментируется на одну или более единиц прогнозирования (PU), причем каждой PU назначается некоторая информация прогнозирования. Режим внутреннего или взаимного кодирования назначается на уровне CU.

Новые появляющиеся инструментальные средства сжатия видео, включающие в себя представление в виде единиц дерева кодирования в сжатой области, предлагаются для того, чтобы представлять данные кадров более гибким способом. Преимущество этого более гибкого представления дерева кодирования состоит в том, что оно обеспечивает повышенную эффективность сжатия по сравнению с CU/PU/TU-компоновкой HEVC-стандарта.

Фиг. 5 иллюстрирует пример CTU-представления в виде дерева квадрантов плюс двоичного дерева (QTBT). Инструментальное средство кодирования на основе дерева квадрантов плюс двоичного дерева (QTBT) обеспечивает такую повышенную гибкость. QTBT заключается в дереве кодирования, в котором единицы кодирования могут разбиваться в виде дерева квадрантов и в виде двоичного дерева. Разбиение единицы кодирования определяется на стороне кодера через процедуру оптимизации искажения в зависимости от скорости передачи, которая определяет QTBT-представление CTU с функцией минимальных затрат на искажение в зависимости от скорости передачи. В QTBT-технологии, CU имеет квадратную или прямоугольную форму. Размер единицы кодирования всегда имеет степень 2 и типично составляет от 4 до 128. Помимо этого множества прямоугольных форм для единицы кодирования, такое CTU-представление имеет следующие различные характеристики по сравнению с HEVC. QTBT-разложение CTU состоит из двух стадий: сначала CTU разбивается в виде дерева квадрантов, затем каждый лист дерева квадрантов может дополнительно разделяться в двоичном виде. Это проиллюстрировано в правой части чертежа, в которой сплошные линии представляют линии для фаз разложения на дерево квадрантов, и пунктирные линии представляют двоичное разложение, которое пространственно встраивается в листья дерева квадрантов. Во внутренних сериях последовательных макроблоков, структура сегментации на блоки сигналов яркости и сигналов цветности разделяется и определяется независимо. CU-сегментация на единицы прогнозирований или единицу преобразования более не используется. Другими словами, каждая единица кодирования систематически состоит из одной единицы прогнозирования (типа сегмента единиц прогнозирования 2Nx2N) и одной единицы преобразования (без разделения на дерево преобразования).

Фиг. 6 иллюстрирует примерный расширенный набор сегментации единиц кодирования. В режимах разбиения на асимметричное двоичное дерево (ABT), прямоугольная единица кодирования с размером (ширина и высота), которая должна разбиваться через один из режимов асимметричного двоичного разбиения, например, HOR_UP (вверх по горизонтали), должна приводить к 2 субъединицам кодирования с соответствующими прямоугольными размерами и Помимо этого, может использоваться так называемая сегментация на троичное дерево CU, приводящая к набору возможных сегментов, приведенных на фиг. 5. Троичное дерево состоит в разбиении CU на древовидную суб-CU с размером (1/4, 1/2, 1/4) относительно родительской CU в рассматриваемой ориентации (например: HOR_TRIPLE для режима горизонтального разбиения).

Значительное повышение эффективности кодирования обеспечивается с использованием одного или более вариантов осуществления новых топологий, описанных выше.

Фиг. 7 иллюстрирует пример режима внутреннего прогнозирования с двумя опорными слоями. Фактически, новые режимы внутреннего прогнозирования рассматриваются в улучшенном синтаксисе. Первый новый внутренний режим гибели называется "множественным опорным внутренним прогнозированием (MRIP)". Это инструментальное средство упрощает использование нескольких опорных слоев для внутреннего прогнозирования блока. Типично, 2 опорных слоя используются для внутреннего прогнозирования, при этом каждый опорный слой состоит из левого опорного массива и верхнего опорного массива. Каждый опорный слой конструируется посредством замены опорных выборок и затем предварительно фильтруется.

С использованием каждого опорного слоя, конструируется прогнозирование для блока, типично как выполняется в HEVC или в JEM. Конечное прогнозирование формируется в качестве среднего взвешенного прогнозирований, выполненных из двух опорных слоев. Прогнозированию из самого ближнего опорного слоя присваивается более высокий весовой коэффициент, чем прогнозированию из самого дальнего слоя. Типичные используемые весовые коэффициенты равны 3 и 1.

В последней части процесса прогнозирования, несколько опорных слоев могут использоваться для того, чтобы сглаживать граничные выборки для определенных режимов прогнозирования, с использованием зависимого от режима процесса.

В примерном варианте осуществления, инструментальные средства сжатия видео включают в себя также адаптивный размер блока для дискретизированного адаптивного смещения (SAO). Это инструментальное средство представляет собой контурный фильтр, указываемый в HEVC. В HEVC, SAO-процесс классифицирует восстановленные выборки одного блока на несколько классов, и выборки, принадлежащие некоторым классам, корректируются со смещениями. SAO-параметры кодируются в расчете на блок либо могут быть унаследованы только из левого или верхнего соседних блоков.

Дополнительные улучшения предлагаются посредством задания палитрового SAO-режима. SAO-палитра сохраняет идентичные SAO-параметры в расчете на блок, но блоки могут наследовать эти параметры из всех других блоков. Это обеспечивает большую гибкость для SAO посредством расширения диапазона возможных SAO-параметров для одного блока. SAO-палитра состоит из набора различных SAO-параметров. Для каждого блока, индекс кодируется, чтобы указывать то, какой SAO-параметр следует использовать.

Фиг. 8 иллюстрирует примерный вариант осуществления режима компенсации для двунаправленной компенсации освещенности. Компенсация освещенности (IC) обеспечивает возможность коррекции блочных прогнозных выборок (SMC), полученных через компенсацию движения, посредством возможного рассмотрения пространственного или временного варьирования локальной освещенности.

SIC=ai . SMC+bi

В случае бипрогнозирования, IC-параметры оцениваются с использованием выборок двух опорных выборок CU, как проиллюстрировано на фиг. 8. Во-первых, IC-параметры (a, b) оцениваются между двумя опорными блоками, затем IC-параметры (ai, bi) i=0,1 между опорным и текущим блоками извлекаются следующим образом:

где:

Если CU-размер меньше или равен 8 по ширине или высоте, IC-параметры оцениваются с использованием однонаправленного процесса. Когда CU-размер превышает 8, выбор между использованием IC-параметров, извлекаемых из двунаправленного или однонаправленного процесса, осуществляется посредством выбора IC-параметров, которые минимизируют разность среднего IC-компенсированных опорных блоков. Двунаправленный оптический поток (BIO) активируется с помощью инструментального средства двунаправленной компенсации освещенности.

Множество инструментальных средств, введенных выше, выбираются и используются посредством видеокодера 100 и должны получаться и использоваться посредством видеодекодера 200. С этой целью, информация, представляющая использование этих инструментальных средств, переносится в кодированном потоке битов, сформированном посредством видеокодера, и получается посредством видеодекодера 200 в форме высокоуровневой синтаксической информации. С этой целью, соответствующий синтаксис задается и описывается в дальнейшем в этом документе. Этот синтаксис, собирающий множество инструментальных средств, обеспечивает повышенную эффективность кодирования.

Эта синтаксическая структура использует синтаксическую HEVC-структуру в качестве основы и включает в себя некоторые дополнительные синтаксические элементы. Синтаксические элементы, сообщаемые в курсивном полужирном шрифте и выделенные серым цветом в следующих таблицах, соответствуют дополнительным синтаксическим элементам согласно примерному варианту осуществления. Следует отметить, что синтаксические элементы могут иметь формы или названия, отличающиеся от форм и названий, показанных в синтаксических таблицах, при одновременной обработке идентичных функций. Синтаксические элементы могут постоянно размещаться на различных уровнях, например, некоторые синтаксические элементы могут быть размещены в наборе параметров последовательности (SPS), и некоторые синтаксические элементы могут быть размещены в наборе параметров кадра (PPS).

Нижеприведенная таблица 1 иллюстрирует набор параметров последовательности (SPS) и вводит новые синтаксические элементы, вставленные в этот набор параметров, согласно, по меньшей мере, одному примерному варианту осуществления, более точно: multi_type_tree_enabled_primary, log2_min_cu_size_minus2, log2_max_cu_size_minus4, log2_max_tu_size_minus2, sep_tree_mode_intra, multi_type_tree_enabled_secondary, sps_bdip_enabled_flag, sps_mrip_enabled_flag, use_erp_aqp_flag, use_high_perf_chroma_qp_table, abt_one_third_flag, sps_num_intra_mode_ratio.

pic_parameter_set_rbsp() { Дескриптор sps_video_parameter_set_id u(4) sps_max_sub_layers_minus1 u(3) sps_temporal_id_nesting_flag u(1) profile_tier_level(1, vps_max_sub_layers_minus1) sps_seq_parameter_set_id ue(v) chroma_format_idc ue(v) if(chroma_format_idc==3) { separate_colour_plane_flag u(1) pic_width_in_luma_samples ue(v) pic_height_in_luma_samples ue(v) conformance_window_flag u(1) if(conformance_window_flag) { conf_win_left_offset ue(v) conf_win_right_offset ue(v) conf_win_top_offset ue(v) conf_win_bottom_offset ue(v) } bit_depth_luma_minus8 ue(v) bit_depth_chroma_minus8 ue(v) log2_max_pic_order_cnt_lsb_minus4 ue(v) sps_sub_layer_ordering_info_present_flag u(1) for (i=(sps_sub_layer_ordering_info_present_flag ? 0 : sps_max_sub_layers_minus1)
- i<=sps_max_sub_layers_minus1; i++){
sps_max_dec_pic_buffering_minus1[i] ue(v) sps_max_num_reorder_pics[i] ue(v) sps_max_latency_increase_plus1[i] ue(v) } multi_type_tree_enabled_primary ue(v) log2_min_cu_size_minus2 ue(v) log2_max_cu_size_minus4 ue(v) log2_max_tu_size_minus2 ue(v) sep_tree_mode_intra u(1) if(sep_tree_mode_intra) multi_type_tree_enabled_secondary ue(v) sample_adaptive_offset_enabled_flag u(1) pcm_enabled_flag u(1) if(pcm_enabled_flag) { pcm_sample_bit_depth_luma_minus1 u(4) pcm_sample_bit_depth_chroma_minus1 u(4) log2_min_pcm_luma_coding_block_size_minus3 ue(v) log2_diff_max_min_pcm_luma_coding_block_size ue(v) pcm_loop_filter_disabled_flag u(1) } num_short_term_ref_pic_sets ue(v) for (i=0; i<num_short_term_ref_pic_sets; i++) st_ref_pic_set(i) long_term_ref_pics_present_flag u(1) if(long_term_ref_pics_present_flag) { num_long_term_ref_pics_sps ue(v) for (i=0; i<num_long_term_pics; i++) { lt_ref_pic_poc_lsb_sps[i] u(v) used_by_curr_pic_lt_sps_flag[i] u(1) } } sps_temporal_mvp_enabled_flag u(1) vui_parameters_present_flag u(1) if(vui_parameters_present_flag) vui_parameters() use_imv u(1) fruc_merge_mode u(1) if(fruc_merge_mode) { idx_num_template ue(v) idx_num_template_ic ue(v) fruc_template_affine u(1) } mode_bilateral_TM ue(v) optical_flow_filtering ue(v) atmvp_flag u(1) sps_lic_enabled_flag u(1) sps_bidir_ic_present_flag u(1) sps_use_intra_emt u(1) sps_use_inter_emt u(1) sps_nsst_enabled_flag u(1) sps_cross_component_prediction_enabled_flag u(1) sps_intra_4tap_filter_enabled_flag u(1) sps_intra_boundary_filter_enabled_flag u(1) sps_obmc_flag u(1) if(sps_obmc_flag) obmc_blk_size ue(v) obmc_for_sub_block u(1) sps_affine_enabled_flag u(1) use_NL_Bil_flag u(1) sps_bdip_enabled_flag u(1) sps_mrip_enabled_flag u(1) num_predicted_coef_signs u(4) mc_frame_pad u(1) use_erp_aqp_flag u(1) use_chroma_qp_table if(use_chroma_qp_table) use_high_perf_chroma_qp_table u(1) log2_intra131modes_min_area_minus6 ue(v) log2_intra65modes_min_area_minus4 ue(v) abt_one_third_flag u(1) sps_num_intra_mode_ratio u(1) if(sps_range_extension_flag) sps_range_extension() if(sps_multilayer_extension_flag) sps_multilayer_extension()/* указано в приложении F */ if(sps_3d_extension_flag) sps_3d_extension()/* указано в приложении I */ if(sps_extension_5bits) while(more_rbsp_data()) sps_extension_data_flag u(1) rbsp_trailing_bits() }

Таблица 1. Модифицированный набор параметров последовательности

Новые синтаксические элементы задаются следующим образом:

- use_high_perf_chroma_qp_table: Этот синтаксический элемент указывает QP-таблицу сигналов цветности, используемую для того извлекать QP, используемый при декодировании компонентов сигнала цветности, ассоциированных с серией последовательных макроблоков, в качестве функции базового QP сигналов цветности, ассоциированного с компонентами сигнала цветности рассматриваемой серии последовательных макроблоков.

- multi_type_tree_enabled_primary: Этот синтаксический элемент указывает тип сегментации, разрешенной в кодированных сериях последовательных макроблоков. По меньшей мере, в одной реализации, этот синтаксический элемент сигнализируется на уровне последовательности (в SPS) и в силу этого применяется ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS. Например, первое значение этого синтаксического элемента обеспечивает возможность сегментации на дерево квадрантов и двоичное дерево (QTBT) (NO-SPLIT, QT-SPLIT, HOR и VER по фиг. 5), второе значение обеспечивает возможность сегментации на QTBT плюс троичное дерево (TT) (NO-SPLIT, QT-SPLIT, HOR, VER, HOR_TRIPLE и VER_TRIPLE по фиг. 5), третье значение обеспечивает возможность сегментации на QTBT плюс асимметричное двоичное дерево (ABT) (NO-SPLIT, QT-SPLIT, HOR, VER, HOR-UP, HOR_DOWN, VER_LEFT и VER_RIGHT по фиг. 5), четвертое значение обеспечивает возможность сегментации на QTBT плюс TT плюс ABT (все случаи разбиения по фиг. 5).

- sep_tree_mode_intra: Этот синтаксический элемент указывает то, используется или нет отдельное дерево кодирования для блоков сигналов яркости и сигналов цветности. Когда sep_tree_mode_intra равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования, и в силу этого сегментация блоков сигналов яркости и сигналов цветности является независимой. По меньшей мере, в одной реализации, этот синтаксический элемент сигнализируется на уровне последовательности (в SPS) и в силу этого применяется ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS.

- multi_type_tree_enabled_secondary: Этот синтаксический элемент указывает то, что тип сегментации разрешается для блоков сигналов цветности в кодированных сериях последовательных макроблоков. Значения, которые может принимать этот синтаксический элемент, типично являются идентичными значениям синтаксического элемента multi_type_tree_enabled_primary. По меньшей мере, в одной реализации, этот синтаксический элемент сигнализируется на уровне последовательности (в SPS) и в силу этого применяется ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS.

- sps_bdip_enabled_flag: Этот синтаксический элемент указывает то, что двунаправленное внутреннее прогнозирование, описанное в JVET-J0022, разрешается в кодированных сериях последовательных макроблоков, содержащихся в рассматриваемой кодированной видеопоследовательности.

- sps_mrip_enabled_flag: Этот синтаксический элемент указывает то, что инструментальное средство множественного опорного внутреннего прогнозирования используется при декодировании кодированных серий последовательных макроблоков, содержащихся в рассматриваемом кодированном потоке видеобитов.

- use_erp_aqp_flag: Этот синтаксический элемент указывает то, активируется или нет пространственно адаптивное квантование для VR360 ERP-контента, как описано в JVET-J0022, в кодированных сериях последовательных макроблоков.

- abt_one_third_flag: Этот синтаксический элемент указывает то, активируется или нет асимметричная сегментация на два сегмента с горизонтальной или вертикальной размерностью, составляющей 1/3 и 2/3 либо 2/3 и 1/3, соответственно, от горизонтальной или вертикальной размерности начальной CU, в кодированных сериях последовательных макроблоков.

- sps_num_intra_mode_ratio: Этот синтаксический элемент указывает то, как извлекать число внутреннего прогнозирования, используемого для размеров блоков, равных кратному 3 по ширине или высоте.

Помимо этого, следующие три синтаксических элемента используются для того, чтобы управлять размером единиц кодирования (CU) и единиц преобразования (TU). По меньшей мере, в одной реализации, эти синтаксические элементы сигнализируются на уровне последовательности (в SPS) и в силу этого применяются ко всем кодированным сериям последовательных макроблоков, которые используют этот SPS.

- log2_min_cu_size_minus2 указывает минимальный CU-размер.

- log2_max_cu_size_minus4 указывает максимальный CU-размер.

- log2_max_tu_size_minus2 указывает максимальный TU-размер.

В варианте осуществления, новые синтаксические элементы, введенные выше, вводятся не в наборе параметров последовательности, а в наборе параметров кадра (PPS).

Нижеприведенная таблица 2 иллюстрирует набор параметров последовательности (SPS) и вводит новые синтаксические элементы, вставленные в этот набор параметров, согласно, по меньшей мере, одному примерному варианту осуществления, более точно:

- slice_sao_size_id: Этот синтаксический элемент указывает размер блоков, для которых SAO применяется для кодированной серии последовательных макроблоков.

- slice_bidir_ic_enable_flag: указывает то, активируется или нет двунаправленная компенсация освещенности для кодированной серии последовательных макроблоков.

slice_segment_header() { Дескриптор first_slice_segment_in_pic_flag u(1) if(nal_unit_type>=BLA_W_LP && nal_unit_type<=RSV_IRAP_VCL23) no_output_of_prior_pics_flag u(1) slice_pic_parameter_set_id ue(v) if(!first_slice_segment_in_pic_flag){ if(dependent_slice_segments_enabled_flag) dependent_slice_segment_flag u(1) slice_segment_address u(v) } if(!dependent_slice_segment_flag){ for (i=0; i<num_extra_slice_header_bits; i++) slice_reserved_flag[i] u(1) slice_type ue(v) if(output_flag_present_flag) pic_output_flag u(1) if(separate_colour_plane_flag==1) colour_plane_id u(2) if(nal_unit_type !=IDR_W_RADL && nal_unit_type !=IDR_N_LP) { slice_pic_order_cnt_lsb u(v) short_term_ref_pic_set_sps_flag u(1) if(!short_term_ref_pic_set_sps_flag) st_ref_pic_set(num_short_term_ref_pic_sets) else if(num_short_term_ref_pic_sets>1) short_term_ref_pic_set_idx u(v) if(long_term_ref_pics_present_flag) { if(num_long_term_ref_pics_sps>0) num_long_term_sps ue(v) num_long_term_pics ue(v) for(i=0; i<num_long_term_sps+num_long_term_pics; i++) { if(i<num_long_term_sps) { if(num_long_term_ref_pics_sps>1) lt_idx_sps[i] u(v) } else { poc_lsb_lt[i] u(v) used_by_curr_pic_lt_flag[i] u(1) } delta_poc_msb_present_flag[i] u(1) if(delta_poc_msb_present_flag[i]) delta_poc_msb_cycle_lt[i] ue(v) } } if(sps_temporal_mvp_enabled_flag) slice_temporal_mvp_enabled_flag u(1) } if(sample_adaptive_offset_enabled_flag) { slice_sao_luma_flag u(1) if(ChromaArrayType != 0) slice_sao_chroma_flag u(1) } if(slice_sao_luma_flag || slice_sao_chroma_flag) { slice_sao_size_id u(3) if(slice_type==P || slice_type==B) { num_ref_idx_active_override_flag u(1) if(num_ref_idx_active_override_flag) { num_ref_idx_l0_active_minus1 ue(v) if(slice_type==B) num_ref_idx_l1_active_minus1 ue(v) } if(lists_modification_present_flag && NumPicTotalCurr>1) ref_pic_lists_modification() if(slice_type==B) mvd_l1_zero_flag u(1) if(cabac_init_present_flag) cabac_init_flag u(1) if(slice_temporal_mvp_enabled_flag) { if(slice_type==B) collocated_from_l0_flag u(1) if((collocated_from_l0_flag && num_ref_idx_l0_active_minus1>0) | |
(! collocated_from_l0_flag && num_ref_idx_l1_active_minus1>0))
collocated_ref_idx ue(v) } if((weighted_pred_flag && slice_type==P) | |
(weighted_bipred_flag && slice_type==B))
pred_weight_table() if(sps_ic_present_flag && slice_type !=I) { slice_ic_enable_flag u(1) if(sps_bidir_ic_present_flag && slice_ic_enable_flag) slice_bidir_ic_enable_flag u(1) max_search_depth_region_tree ue(v) for (i=0; i<max_search_depth_region_tree; i++) max_search_depth_prediction_tree[i] ue(v) if(slice_type !=I) for (i=0; i<max_search_depth_region_tree; i++) max_search_depth_prediction_tree_chroma[i] if(slice_type !=I) max_num_merge_cand ue(v) slice_qp_delta se(v) if(pps_slice_chroma_qp_offsets_present_flag) { slice_cb_qp_offset se(v) slice_cr_qp_offset se(v) } if(chroma_qp_offset_list_enabled_flag) cu_chroma_qp_offset_enabled_flag u(1) if(deblocking_filter_override_enabled_flag) deblocking_filter_override_flag u(1) if(deblocking_filter_override_flag) { slice_deblocking_filter_disabled_flag u(1) if(!slice_deblocking_filter_disabled_flag) { slice_beta_offset_div2 se(v) slice_tc_offset_div2 se(v) } } if(pps_loop_filter_across_slices_enabled_flag &&
(slice_sao_luma_flag || slice_sao_chroma_flag | |
! slice_deblocking_filter_disabled_flag))
slice_loop_filter_across_slices_enabled_flag u(1) } if(tiles_enabled_flag || entropy_coding_sync_enabled_flag) { num_entry_point_offsets ue(v) if(num_entry_point_offsets>0) { offset_len_minus1 ue(v) for (i=0; i<num_entry_point_offsets; i++) entry_point_offset_minus1[i] u(v) } } if(pps_clip_adaptive_enable_flag) clip_adaptive_flag u(1) if(clip_adaptive_flag) { clip_adaptive_y_min ue(v) clip_adaptive_y_max ue(v) clip_adaptive_flag_chroma u(1) if(clip_adaptive_flag_chroma) { clip_adaptive_c0_min ue(v) clip_adaptive_c0_max ue(v) clip_adaptive_c1_min ue(v) clip_adaptive_c1_max ue(v) } } } if(sps_affine_enabled_flag && slice_type !=I) { affine_control_flag[0] u(1) affine_control_flag[1] u(1) } if(slice_segment_header_extension_present_flag) { slice_segment_header_extension_length ue(v) for (i=0; i<slice_segment_header_extension_length; i++) slice_segment_header_extension_data_byte[i] u(8) } byte_alignment() }

Таблица 2. Заголовок серии последовательных макроблоков

Нижеприведенные таблицы 3, 4, 5, 6 иллюстрируют синтаксис дерева кодирования, модифицированный, чтобы поддерживать дополнительные режимы сегментации согласно, по меньшей мере, одному примерному варианту осуществления. В частности, синтаксис для обеспечения возможности асимметричной сегментации указывается в coding_binary_tree(). Новые синтаксические элементы вставляются в синтаксис дерева кодирования, более точно:

- asymmetricSplitFlag, который указывает то, разрешается или нет асимметричное двоичное разбиение для текущей CU, и

- asymmetric_type, который указывает тип асимметричного двоичного разбиения. Он может принимать два значения, чтобы обеспечивать возможность горизонтального разбиения вверх или вниз либо вертикального разбиения влево или вправо.

Помимо этого, параметр btSplitMode интерпретируется по-другому.

coding_tree_unit() { Дескриптор xCtb=(% CtbAddrInRs PicWidthInCtbsY)<<CtbLog2SizeY yCtb=(CtbAddrInRs/PicWidthInCtbsY)<<CtbLog2SizeY if(slice_sao_luma_flag || slice_sao_chroma_flag) if(slice_type==I) { coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, LUMA_TREE, 0, 0) coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, CHROMA_TREE, 0, 0) } else { coding_tree(xCtb, yCtb, CtbSizeX, CtbSizeY, LUMA_CHROMA_TREE, 0, 0) } }

Таблица 3. coding_tree_unit

coding_tree(x0, y0, log2CbSize, cqtDepth){ Дескриптор if(x0+(1<<log2CbSize)<=pic_width_in_luma_samples &&
- y0+(1<<log2CbSize)<=pic_height_in_luma_samples &&
log2CbSize==MinCbLog2SizeY)
split_cu_flag[x0][y0] ae(v) if(split_cu_flag[x0][y0]) { x1=x0+(1<<(log2CbSize-1)) y1=y0+(1<<(log2CbSize-1)) coding_tree(x0, y0, log2CbSize-1, cqtDepth+1) if(x1<pic_width_in_luma_samples) coding_tree(x1, y0, log2CbSize-1, cqtDepth+1) if(y1<pic_height_in_luma_samples) coding_tree(x0, y1, log2CbSize-1, cqtDepth+1) if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples) coding_tree(x1, y1, log2CbSize-1, cqtDepth+1) } else coding_binary_tree(x0, y0, 1<<log2CbSize, 1<<log2CbSize, cqtDepth) }

Таблица 4. coding_tree

coding_binary_tree(x0, y0, width, height, cqtDepth) { Дескриптор if(btSplitAllowed(x0,y0,width, height){ bt_split_mode(x0,y0,width, height,cqtDepth) } if(btSplitFlag) { if(btSplitMode==HOR) { x1=x0 y1=y0+(height>>1) sub_width_1=sub_width_0=width; sub_height_1=sub_height_0=(height>>1) } else if(btSplitMode==VER) { x1=x0+(width>>1) y1=y0 sub_width_1=sub_width_0=(width>>1) sub_height_1=sub_height_0=height } else if(btSplitMode==HOR_UP) { x1=x0 y1=y0+(height>>2) sub_width_1=sub_width_0=width sub_height_0=(height>>2) sub_height_1=((height *3)>>2) } else if(btSplitMode==HOR_DOWN) { x1=x0 y1=y0+((height*3)>>2) sub_width_1=sub_width_0=width sub_height_0=((height *3)>>2) sub_height_1=(height>>2) } else if(btSplitMode==VER_LEFT) { x1=x0+(width>>2) y1=y0 sub_width_0=width>>2 sub_width_1=(width *3)>>2 sub_height_1=sub_height_0=height } else if(btSplitMode==VER_RIGHT) { x1=x0+(width*3)>>2 y1=y0 sub_width_0=(width*3)>>2 sub_width_1=width>>2 sub_height_1=sub_height_0=height } coding_binary_tree(x0, y0, sub_width, sub_height, cqtDepth) if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples) coding_binary_tree(x1, y1, sub_width, sub_height, cqtDepth) } } else coding_unit(x0, y0, width, height) }

Таблица 5. coding_binary_tree

bt_split_mode(x0,y0,width, height,cqtDepth){ Дескриптор if(btSplitAllowed(x0,y0,width, height){ btSplitFlag[x0][y0][cbSizeX][cbSizeY] ae(v) } if(btSplitFlag[x0][y0][cbSizeX][cbSizeY]) { if(horizontalSplitAllowed && verticalSplitAllowed){ btSplitOrientation[x0][y0][cbSizeX][cbSizeY] ae(v) } if(btSplitOrientation==HOR && horizontal_asymmetric_allowed || btSplitOrientation==VER && vertical_asymmetric_allowed){ asymmetricSplitFlag[x0][y0][cbSizeX][cbSizeY ] ae(v) if(asymmetricSplitFlag==true){ asymmetric_type[x0][y0][cbSizeX][cbSizeY ] ae(v) } } } }

Таблица 6. bt_split_mode

Фиг. 9 иллюстрирует интерпретацию bt-split-flag согласно, по меньшей мере, одному примерному варианту осуществления. Два синтаксических элемента asymmetricSplitFlag и asymmetric_type используются для того, чтобы указывать значение параметра btSplitMode; btSplitMode указывает режим двоичного разбиения, который применяется к текущей CU; btSplitMode извлекается отлично от предшествующего уровня техники. В JEM, он может принимает значения HOR, VER. В улучшенном синтаксисе, помимо этого, он может принимать значения HOR_UP, HOR_DOWN, VER_LEFT, VER_RIGHT, согласно сегментации, как проиллюстрировано на фиг. 6.

Нижеприведенные таблицы 7, 8, 9 и 10 иллюстрируют синтаксические элементы единицы кодирования и вводят новый синтаксический элемент для режима двунаправленного внутреннего прогнозирования.

coding_unit (x0, y0, cuWidth, cuHeight, treeMode){ Дескриптор if(transquant_bypass_enabled_flag) cu_transquant_bypass_flag ae(v) if(slice_type !=I) cu_skip_flag[x0][y0] ae(v) if(cu_skip_flag[x0][y0]) cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode) else { if(slice_type !=I) pred_mode_flag ae(v) if(CuPredMode[x0][y0]==MODE_INTRA) cu_data_intra(x0, y0, cuWidth, cuHeight, treeMode) else { merge_flag[x0][y0] ae(v) if(merge_flag[x0][y0]) cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode) else cu_data_inter(x0, y0, cuWidth, cuHeight, treeMode) if(cuPredMode[x0][y0] !=MODE_INTRA && !(merge_flag[x0][y0]) rqt_root_cbf ae(v) if(rqt_root_cbf) cu_residual_data(x0, y0, cuWidth, cuHeight, treeMode) } } }

Таблица 7. coding_unit

cu_data_merge(x0, y0, cuWidth, cuHeight, treeMode){ Дескриптор if(fruc_merge_enabled_flag) fruc_merge_mode[x0][y0] ae(v) if(fruc_merge_mode[x0][y0]) if(lic_enabled_flag && fruc_merge_mode[x0][y0]==1) lic_flag[x0][y0] ae(v) if(fruc_merge_mode[x0][y0]==1 && MaxNumMergeCand>1) merge_idx[x0][y0] ae(v) if(lic_enabled_flag) lic_flag[x0][y0] ae(v) else if(MaxNumMergeCand>1) merge_idx[x0][y0] }

Таблица 8. cu_data_merge

cu_data_intra(x0, y0, cuWidth, cuHeight, treeMode){ Дескриптор if(treeMode and LUMA_TREE) { prev_intra_luma_pred_flag[x0][y0] ae(v) if(prev_intra_luma_pred_flag[x0][y0]) { merge_idx[x0][y0] ae(v) } else { second_mpm_flag[x0][y0] ae(v) if(ciip_luma_mpm_flag[x0][y0]) second_mpm[x0][y0] f(5) else rem_intra_luma_pred_mode[x0][y0] ae(v) } if(bdip_enable_flag && ((luma_mode>=2 && luma_mode<18) || (luma_mode>=114 && luma_mode<130) bdip_enable_flag [x0][y0] ae(v) } if(treeMode and CHROMA_TREE) { intra_chroma_pred_mode[x0][y0] ae(v) } }

Таблица 9. cu_data_intra

cu_data_inter(x0, y0, cuWidth, cuHeight, treeMode){ Дескриптор if(slice_type==B) inter_pred_idc[x0][y0] ae(v) if(affine_enabled_flag && cuWidth>8 && cuHeight>8) affine_flag[x0][y0] ae(v) if(inter_pred_idc[x0][y0] !=PRED_L1) { if(num_ref_idx_l0_active_minus1>0) ref_idx_l0[x0][y0] ae(v) if(affine_flag[x0][y0]) { mvd_gr0(x0, y0, 0, AFFINE_LEFT) ae(v) mvd_gr0(x0, y0, 0, AFFINE_RIGHT) ae(v) } else mvd_ gr0(x0, y0, 0, AFFINE_OFF) mvp_l0_flag[x0][y0] ae(v) } if(inter_pred_idc[x0][y0] !=PRED_L0) { if(num_ref_idx_l1_active_minus1>0) ref_idx_l1[x0][y0] ae(v) if(mvd_l1_zero_flag && inter_pred_idc[x0][y0]==PRED_BI) { MvdL1[x0][y0][0]=0 MvdL1[x0][y0][1]=0 } else if(affine_flag[x0][y0]) { mvd_gr0(x0, y0, 1, AFFINE_LEFT) ae(v) mvd_gr0(x0, y0, 1, AFFINE_RIGHT) ae(v) } else mvd_gr0(x0, y0, 1, AFFINE_OFF) mvp_l1_flag[x0][y0] ae(v) } if(imv_enabled_flag && CuHasNonZeroMvd) imv_mode[x0][y0] ae(v) if(affine[x0][y0] || CuHasNonZeroMvd) { if(inter_pred_idc[x0][y0] !=PRED_L1) { if(affine_flag[x0][y0]) { mvd_remain(x0, y0, 0, AFFINE_LEFT) ae(v) mvd_remain(x0, y0, 0, AFFINE_RIGHT) ae(v) } else mvd_remain(x0, y0, 0, AFFINE_OFF) ae(v) } if(inter_pred_idc[x0][y0] !=PRED_L0) { if(mvd_l1_zero_flag && inter_pred_idc[x0][y0]==PRED_BI) { MvdL1[x0][y0][0]=0 MvdL1[x0][y0][1]=0 } else if(affine_flag[x0][y0]) { mvd_gr0(x0, y0, 1, AFFINE_LEFT) ae(v) mvd_gr0(x0, y0, 1, AFFINE_RIGHT) ae(v) } else mvd_gr0(x0, y0, 1, AFFINE_OFF) ae(v) } } if(obmc_enabled_flag && cuWidth*cuHeight<=16*16) obmc_flag[x0][y0] ae(v) if(lic_enabled_flag && !affine_flag[x0][y0]) lic_flag[x0][y0] ae(v) }

Таблица 10. cu_data_inter

cu_residual_data(x0, y0, cuWidth, cuHeight, treeMode){ Дескриптор if(treeMode and CHROMA_TREE) { cbf_cb[x0][y0] ae(v) cbf_cr[x0][y0] ae(v) } if(treeMode and LUMA_TREE) { if(CuPredMode[x0][y0] !=MODE_INTRA | |
- cbf_cb[x0][y0] || cbf_cr[x0][y0])
cbf_luma[x0][y0] ae(v) } if(treeMode and CHROMA_TREE) { if(cbf_cb[x0][y0]) residual_coding(x0, y0, cuWidth/2, cuHeight/2, treeMode, 1) if(cbf_cr[x0][y0]) residual_coding(x0, y0, cuWidth/2, cuHeight/2, treeMode, 2) } if(treeMode and LUMA_TREE) { if(emt_enable_flag && cuWidth<=64 && cuHeight<=64) emt_cu_flag[x0][y0] ae(v) residual_coding(x0, y0, cuWidth, cuHeight, treeMode, 0) }

Таблица 11. cu_residual_data

Несколько из синтаксических элементов, поясненных в этом документе, задаются как массивы. Например, btSplitFlag задается как массив с размерностью 4, индексированный посредством горизонтальной и вертикальной позиций в кадре и посредством размеров по горизонтали и вертикали кодированного блока. Для упрощений системы обозначений, в семантическом описании синтаксических элементов, индексы не сохраняются (например, btSplitFlag[x0][y0][cbSizeX][cbSizeY] помечается просто как btSplitFlag).

Фиг. 10 иллюстрирует блок-схему примера системы, в которой реализуются различные аспекты и варианты осуществления. Система 1000 может быть осуществлена в качестве устройства, включающего в себя различные компоненты, описанные ниже, и выполнена с возможностью выполнять один или более аспектов, описанных в данной заявке. Примеры таких устройств включают в себя, но не только, различные электронные устройства, такие как персональные компьютеры, переносные компьютеры, смартфоны, планшетные компьютеры, цифровые мультимедийные абонентские приставки, цифровые телевизионные приемники, персональные записывающие видеосистемы, соединенные бытовые приборы, кодеры, транскодеры и серверы. Элементы системы 1000, отдельно или в комбинации, могут быть осуществлены в одной интегральной схеме, в нескольких IC и/или в дискретных компонентах. Например, по меньшей мере, в одном варианте осуществления, элементы обработки и кодера/декодера системы 1000 распределяются по нескольким IC и/или дискретных компонентам. В различных вариантах осуществления, система 1000 функционально соединяется с другими аналогичными системами или с другими электронными устройствами, например, через шину связи или через выделенные порты ввода и/или вывода. В различных вариантах осуществления, система 1000 выполнена с возможностью реализовывать один или более аспектов, описанных в этом документе.

Система 1000 включает в себя, по меньшей мере, один процессор 1010, выполненный с возможностью выполнять инструкции, загруженные в него, для реализации, например, различных аспектов, описанных в этом документе. Процессор 1010 может включать в себя встраиваемое запоминающее устройство, интерфейс ввода-вывода и различные другие схемы, как известно в данной области техники. Система 1000 включает в себя, по меньшей мере, одно запоминающее устройство 1020 (например, энергозависимое запоминающее устройство и/или энергонезависимое запоминающее устройство). Система 1000 включает в себя устройство 1040 хранения данных, которое может включать в себя энергонезависимое запоминающее устройство и/или энергозависимое запоминающее устройство, в том числе, но не только, EEPROM, ROM, PROM, RAM, DRAM, SRAM, флэш-память, накопитель на магнитных дисках и/или накопитель на оптических дисках. Устройство 1040 хранения данных может включать в себя внутреннее устройство хранения данных, подключенное устройство хранения данных и/или сетевое доступное устройство хранения данных, в качестве неограничивающих примеров.

Система 1000 включает в себя сконфигурированный модуль 1030 кодера/декодера, например, выполненный с в возможностью обрабатывать данные, чтобы предоставлять кодированное видео или декодированное видео, и модуль 1030 кодера/декодера может включать в себя собственный процессор и запоминающее устройство. Модуль 1030 кодера/декодера представляет модуль(и), который может быть включен в устройство, чтобы выполнять функции кодирования и/или декодирования. Как известно, устройство может включать в себя один или оба из модулей кодирования и декодирования. Дополнительно, модуль 1030 кодера/декодера может реализовываться как отдельный элемент системы 1000 или может быть включен в процессор 1010 в качестве комбинации аппаратных средств и программного обеспечения, как известно специалистам в данной области техники.

Программный код, который должен загружаться в процессор 1010 или кодер/декодер 1030, чтобы выполнять различные аспекты, описанные в этом документе, может сохраняться на устройстве 1040 хранения данных и затем загружаться в запоминающее устройство 1020 для выполнения посредством процессора 1010. В соответствии с различными вариантами осуществления, одно или более из процессора 1010, запоминающего устройства 1020, устройства 1040 хранения данных и модуля 1030 кодера/декодера могут сохранять один или более различных элементов в ходе выполнения процессов, описанных в этом документе. Такие сохраненные элементы могут включать в себя, но не только, входное видео, декодированное видео или части декодированного видео, потока битов, матрицы, переменные и промежуточные или конечные результаты из обработки уравнений, формул, операций и оперативной логики.

В нескольких вариантах осуществления, запоминающее устройство в процессоре 1010 и/или модуле 1030 кодера/декодера используется для того, чтобы сохранять инструкции и предоставлять оперативное запоминающее устройство для обработки, которая требуется во время кодирования или декодирования. Тем не менее, в других вариантах осуществления, запоминающее устройство, внешнее для обрабатывающего устройства (например, обрабатывающее устройство может представлять собой либо процессор 1010, либо модуль 1030 кодера/декодера), используется для одной или более из этих функций. Внешнее запоминающее устройство может представлять собой запоминающее устройство 1020 и/или устройство 1040 хранения данных, например, динамическое энергозависимое запоминающее устройство и/или энергонезависимую флэш-память. В нескольких вариантах осуществления, внешняя энергонезависимая флэш-память используется для того, чтобы сохранять операционную систему телевизионного приемника. По меньшей мере, в одном варианте осуществления, быстрое внешнее динамическое энергозависимое запоминающее устройство, такое как RAM, используется в качестве оперативного запоминающего устройства для операций кодирования и декодирования видео, к примеру, для MPEG-2, HEVC или VVC (стандарта универсального кодирования видео).

Ввод в элементы системы 1000 может предоставляться через различные устройства ввода, как указано в блоке 1130. Такие устройства ввода включают в себя, но не только(i) RF-часть, которая принимает RF-сигнал, передаваемый, например, по радиоинтерфейсу посредством широковещательного передающего устройства, (ii) композитный входной контактный вывод, (iii) входной контактный USB-вывод и/или (iv) входной контактный HDMI-вывод.

В различных вариантах осуществления, устройства ввода блока 1130 имеют ассоциированные соответствующие элементы обработки ввода, как известно в данной области техники. Например, RF-часть может быть ассоциирована с элементами, необходимыми для (i) выбора требуемой частоты (также называемого "выбором сигнала" или "ограничением полосы частот сигнала полосой частот"), (ii) преобразования с понижением частоты выбранного сигнала, (iii) ограничения полосы частот снова до более узкой полосы частот, чтобы выбирать (например) полосу частоты сигнала, которая может упоминаться как канал в конкретных вариантах осуществления, (iv) демодуляции преобразованного с понижением частоты сигнала с ограниченной полосой частот, (v) выполнения коррекции ошибок и (vi) демультиплексирования, чтобы выбирать требуемый поток пакетов данных. RF-часть различных вариантов осуществления включает в себя один или более элементов для того, чтобы выполнять эти функции, например, модули выбора частоты, модули выбора сигналов, модули ограничения полосы частот, модули выбора каналов, фильтры, преобразователи с понижением частоты, демодуляторы, модули коррекции ошибок и демультиплексоры. RF-часть может включать в себя тюнер, который выполняет различные эти функции, включающие в себя, например, преобразование с понижением частоты принимаемого сигнала до более низкой частоты (например, до промежуточной частоты или до частоты практически в полосе модулирующих частот) либо до полосы модулирующих частот. В одном варианте осуществления абонентской приставки, RF-часть и ее ассоциированный элемент обработки ввода принимают RF-сигнал, передаваемый по проводной (например, по кабелю) среде и выполняет выбор частоты посредством фильтрации, преобразования с понижением частоты и фильтрации снова в требуемую полосу частот. Различные варианты осуществления перекомпонуют порядок вышеописанных (и других) элементов, удаляют некоторые из этих элементов и/или добавляют другие элементы, выполняющие аналогичные или различные функции. Добавление элементов может включать в себя вставку элементов между существующими элементами, такую как, например, вставка усилителей и аналого-цифрового преобразователя. В различных вариантах осуществления, RF-часть включает в себя антенну.

Дополнительно, контактные USB- и/или HDMI-выводы могут включать в себя соответствующие интерфейсные процессоры для соединения системы 1000 с другими электронными устройствами через USB- и/или HDMI-соединения. Следует понимать, что различные аспекты обработки ввода, например, коррекция ошибок Рида-Соломона, могут реализовываться, например, в отдельной IC обработки ввода или в процессоре 1010 при необходимости. Аналогично, аспекты интерфейсной USB- или HDMI-обработки могут реализовываться в отдельных интерфейсных IC или в процессоре 1010 при необходимости. Демодулированный и демультиплексированный поток после коррекции ошибок предоставляется в различные обрабатывающие элементы, включающие в себя, например, процессор 1010 и кодер/декодер 1030, работающие в комбинации с запоминающими элементами и элементами хранения данных, чтобы обрабатывать поток данных при необходимости для представления на устройстве вывода.

Различные элементы системы 1000 могут предоставляться в интегрированном корпусе. В интегрированном корпусе, различные элементы могут взаимно соединяться и передавать данные между собой с использованием подходящей компоновки соединений, например, внутренней шины, как известно в данной области техники, включающей в себя I2C-шину, монтажные и печатные платы.

Система 1000 включает в себя интерфейс 1050 связи, который обеспечивает связь с другими устройствами через канал 1060 связи. Интерфейс 1050 связи может включать в себя, но не только, приемо-передающее устройство, выполненное с возможностью передавать и принимать данные по каналу 1060 связи. Интерфейс 1050 связи может включать в себя, но не только, модем или сетевую карту, и канал 1060 связи может реализовываться, например, в проводной и/или беспроводной среде.

Данные передаются в потоковом режиме в систему 1000, в различных вариантах осуществления, с использованием Wi-Fi-сети, такой как IEEE 802.11. Wi-Fi-сигнал этих вариантов осуществления принимается по каналу 1060 связи и интерфейсу 1050 связи, которые адаптируются к Wi-Fi-связи. Канал 1060 связи этих вариантов осуществления типично соединяется с точкой доступа или маршрутизатором, который предоставляет доступ к внешним сетям, включающим в себя Интернет для обеспечения возможности работы приложений потоковой передачи данных и другой связи поверх сетей. Другие варианты осуществления предоставляют передаваемые в потоковом режиме данные в систему 1000 с использованием абонентской приставки, которая доставляет данные по HDMI-соединению входного блока 1130. Еще другие варианты осуществления предоставляют передаваемые в потоковом режиме данные в систему 1000 с использованием RF-соединения входного блока 1130.

Система 1000 может предоставлять выходной сигнал в различные устройства вывода, включающие в себя дисплей 1100, динамики 1110 и другие периферийные устройства 1120. Другие периферийные устройства 1120 включают в себя, в различных примерах вариантов осуществления, одно или более из автономного DVR, проигрывателя дисков, стереосистемы, системы освещения и других устройств, которые предоставляют функцию на основе вывода системы 1000. В различных вариантах осуществления, управляющие сигналы передаются между системой 1000 и дисплеем 1100, динамиками 1110 или другими периферийными устройствами 1120 с использованием сигнализации, такой как AV.Link, CEC или другие протоколы связи, которые обеспечивают управление между устройствами с или без вмешательства пользователя. Устройства вывода могут функционально соединяться с системой 1000 через выделенные соединения через соответствующие интерфейсы 1070, 1080 и 1090. Альтернативно, устройства вывода могут соединяться с системой 1000 с использованием канала 1060 связи через интерфейс 1050 связи. Дисплей 1100 и динамики 1110 могут интегрироваться в одном модуле с другими компонентами системы 1000 в электронном устройстве, таком как, например, телевизионный приемник. В различных вариантах осуществления, интерфейс 1070 отображения включает в себя драйвер дисплея, такой как, например, микросхема контроллера синхронизации (T Con).

Дисплей 1100 и динамик 1110 альтернативно могут быть отдельными от одного или более других компонентов, например, если RF-часть ввода 1130 представляет собой часть отдельной абонентской приставки. В различных вариантах осуществления, в которых дисплей 1100 и динамики 1110 представляют собой внешние компоненты, выходной сигнал может предоставляться через выделенные выходные соединения, включающие в себя, например, HDMI-порты, USB-порты или COMP-выводы. Реализации, описанные в данном документе, могут осуществляться, например, в способе или процессе, оборудовании, программно-реализованной программе, потоке данных или сигнале. Даже если поясняется только в контексте одной формы реализации (например, поясняется только как способ), реализация поясненных признаков также может осуществляться в других формах (например, как устройство или программа). Оборудование может реализовываться, например, в соответствующих аппаратных средствах, программном обеспечении и микропрограммном обеспечении. Способы могут реализовываться, например, в таком оборудовании, как, например, процессор, который означает устройства обработки в целом, включающие в себя, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые устройства (PDA) и другие устройства, которые упрощают обмен информацией между конечными пользователями.

Фиг. 11 иллюстрирует блок-схему последовательности операций примера способа кодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования. Такой способ кодирования может осуществляться посредством системы 1000, описанной на фиг. 10, и более точно, может реализовываться посредством процессора 1010. По меньшей мере, в одном варианте осуществления, на этапе 1190, процессор 1010 выбирает инструментальные средства кодирования, которые должны использоваться. Выбор может осуществляться с использованием различных технологий. Выбор может осуществляться пользователем через конфигурационный параметр кодирования (типично флаг), который указывает инструментальные средства, которые должны использоваться (а также соответствующие параметры при необходимости) во время процессов кодирования и декодирования. В примерном варианте осуществления, выбор осуществляется посредством задания значения для значения в файле, причем флаг считывается посредством устройства кодирования, которое интерпретирует значение флага, чтобы выбирать то, какое инструментальное средство следует использовать. В примерном варианте осуществления, выбор осуществляется посредством выполняемой вручную операции выбора, пользователем, конфигурационных параметров кодирования с использованием графического пользовательского интерфейса, который обрабатывает устройство кодера. После того как этот выбор осуществляется, кодирование выполняется на этапе 1193 с использованием выбранного инструментального средства из числа других инструментальных средств кодирования, и выбор инструментальных средств сигнализируется в высокоуровневых синтаксических элементах (например, в следующем SPS, PPS или даже заголовке серии последовательных макроблоков).

Фиг. 12 иллюстрирует блок-схему последовательности операций примера части способа декодирования согласно варианту осуществления с использованием новых инструментальных средств кодирования. Такой способ декодирования может осуществляться посредством системы 1000, описанной на фиг. 10, и более точно, может реализовываться посредством процессора 1010. По меньшей мере, в одном варианте осуществления, на этапе 1200, процессор 1010 осуществляет доступ к сигналу (например, принимаемому в интерфейсе ввода или считываемому из средства поддержки мультимедийной среды), извлекает и анализирует высокоуровневые синтаксические элементы, чтобы определять инструментальные средства, которые выбраны в устройстве кодирования. На этапе 1210, эти инструментальные средства используются для того, чтобы выполнять декодирование и формировать декодированное изображение, которое, например, может предоставляться в устройство или отображаться на устройстве.

Ссылка на "один вариант осуществления" или "вариант осуществления" либо "одну реализацию" или "реализацию", а также другие их разновидности означает то, что конкретный признак, структура, характеристика, и т.д., описанная в связи с вариантом осуществления, включается, по меньшей мере, в один вариант осуществления. Таким образом, вхождения фразы "в одном варианте осуществления" или "в варианте осуществления" либо "в одной реализации" или "в реализации", а также всех их разновидностей, появляющиеся в различных местах в подробном описании, не обязательно ссылаются на тот же самый вариант осуществления.

Дополнительно, эта заявка или ее формула изобретения может ссылаться на "определение" различных фрагментов информации. Определение информации может включать в себя, например, одно или более из оценки информации, вычисления информации, прогнозирования информации или извлечения информации из запоминающего устройства.

Дополнительно, эта заявка или ее формула изобретения может ссылаться на "осуществление доступа" к различным фрагментам информации. Осуществление доступа к информации может включать в себя, например, одно или более из приема информации, извлечения информации (например, из запоминающего устройства), сохранения информации, перемещения информации, копирования информации, вычисления информации, прогнозирования информации или оценки информации.

Дополнительно, эта заявка или ее формула изобретения может ссылаться на "прием" различных фрагментов информации. Прием, аналогично "осуществлению доступа", должен быть общим термином. Прием информации может включать в себя, например, одно или более из осуществления доступа к информации или извлечения информации (например, из запоминающего устройства или оптического мультимедийного устройства хранения данных). Дополнительно, "прием" типично предусмотрен, так или иначе, в ходе таких операций, как, например, сохранение информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, прогнозирование информации или оценка информации.

Следует принимать во внимание, что использование любого из следующих "/", "и/или" и "по меньшей мере, одно из", например, в случаях "A/B", "A и/или B" и "по меньшей мере, одно из A и B" имеет намерение охватывать выбор только первого перечисленного варианта (A) или выбор только второго перечисленного варианта (B), или выбор обоих вариантов (A и B). В качестве дополнительного примера, в случаях "A, B и/или C" и "по меньшей мере, одно из A, B и C", такая формулировка имеет намерение охватывать выбор только первого перечисленного варианта (A) или выбор только второго перечисленного варианта (B), или выбор только третьего перечисленного варианта (C), или выбор только первого и второго перечисленных вариантов (A и B), или выбор только первого и третьего перечисленных вариантов (A и C), или выбор только второго и третьего перечисленных вариантов (B и C), или выбор всех трех вариантов (A и B, и C). Это может распространяться, как очевидно для специалистов в данной области техники, на все перечисленные элементы.

Специалистам данной области техники должно быть очевидным, что реализации также могут формировать множество сигналов, отформатированных с возможностью переносить информацию, которая, например, может сохраняться или передаваться. Информация может включать в себя, например, инструкции для осуществления способа или данные, сформированные посредством одной из описанных реализаций. Например, сигнал может иметь такой формат, чтобы переносить поток битов описанного варианта осуществления. Этот сигнал, например, может форматироваться как электромагнитная волна (к примеру, с использованием радиочастотного участка спектра) или как сигнал в полосе модулирующих частот. Форматирование может включать в себя, например, кодирование потока данных и модуляцию несущей с кодированным потоком данных. Информация, которую переносит сигнал, например, может представлять собой аналоговую или цифровую информацию. Как известно, сигнал может передаваться по множеству различных линий проводной или беспроводной связи. Сигнал может сохраняться на машиночитаемом носителе.

В разновидности первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого аспекта, по меньшей мере, варианта осуществления, параметр, представляющий тип сегментации, содержит первое значение для сегментации на дерево квадрантов и двоичное дерево, второе значение для сегментации на дерево квадрантов и двоичное дерево плюс сегментации на троичное дерево, третье значение для сегментации на дерево квадрантов и двоичное дерево плюс сегментации на асимметричное двоичное дерево и четвертое значение для сегментации на дерево квадрантов и двоичное дерево плюс сегментации на троичное дерево плюс сегментации на асимметричное двоичное дерево.

В разновидности первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого аспекта, по меньшей мере, одного варианта осуществления, упомянутые параметры дополнительно содержат размер блоков, для которых дискретизированное адаптивное смещение применяется для кодированной серии последовательных макроблоков.

В разновидности первого, второго, третьего, четвертого, пятого, шестого, седьмого и восьмого аспекта, по меньшей мере, одного варианта осуществления, тип режима внутреннего прогнозирования содержит, по меньшей мере, один из режима внутреннего бипрогнозирования и режима множественного опорного внутреннего прогнозирования.

Похожие патенты RU2802368C2

название год авторы номер документа
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА НА ОСНОВЕ БУФЕРА КАРТИНОК ДЕКОДЕРА 2012
  • Мисра Киран
  • Сигалл Кристофер А.
RU2645270C1
ИНИЦИАЛИЗАЦИЯ КОНТЕКСТА НА ОСНОВЕ БУФЕРА КАРТИНОК ДЕКОДЕРА 2012
  • Мисра Киран
  • Сигалл Кристофер А.
RU2597523C2
СПОСОБ ДЛЯ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ MPM-СПИСКА И ОБОРУДОВАНИЕ ДЛЯ ЭТОГО 2020
  • Лим, Дзаехиун
  • Ли, Линг
  • Хео, Дзин
  • Чой, Дзангвон
  • Ким, Сеунгхван
RU2801266C2
СИГНАЛИЗАЦИЯ ГЛОБАЛЬНОГО ВЕКТОРА ДВИЖЕНИЯ В ЗАГОЛОВКЕ ИЗОБРАЖЕНИЯ 2020
  • Калва, Хари
  • Фёрхт, Боривой
  • Аджич, Велибор
RU2808638C2
ОГРАНИЧЕННЫЙ ГЛОБАЛЬНЫМ ДВИЖЕНИЕМ ВЕКТОР ДВИЖЕНИЯ ПРИ МЕЖКАДРОВОМ ПРОГНОЗИРОВАНИИ 2020
  • Калва, Хари
  • Фёрхт, Боривой
  • Аджич, Велибор
RU2806442C2
РАСШИРЕНИЕ ЗАГОЛОВКА ВЫРЕЗКИ ДЛЯ ТРЕХМЕРНОГО ВИДЕО ДЛЯ ПРОГНОЗИРОВАНИЯ ЗАГОЛОВКОВ ВЫРЕЗОК 2012
  • Чэнь Ин
  • Ван Е-Куй
  • Карчевич Марта
RU2549168C1
СПОСОБ ДЛЯ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ MPM-СПИСКА И ОБОРУДОВАНИЕ ДЛЯ ЭТОГО 2023
  • Лим, Дзаехиун
  • Ли, Линг
  • Хео, Дзин
  • Чой, Дзангвон
  • Ким, Сеунгхван
RU2813279C1
СИСТЕМЫ И СПОСОБЫ СИГНАЛИЗАЦИИ ПАРАМЕТРОВ ПРИ КОДИРОВАНИИ ВИДЕОСИГНАЛОВ 2019
  • Дешпанде, Сачин Г.
RU2771478C1
СПОСОБ И АППАРАТУРА ПРЕДСКАЗАНИЯ ВИДЕОИЗОБРАЖЕНИЙ 2019
  • Чэнь, Хуаньбан
  • Ян, Хайтао
RU2787812C2
ПРОГНОЗИРОВАНИЕ ЗАГОЛОВКОВ ФРАГМЕНТОВ ДЛЯ КАРТ ГЛУБИНЫ В ТРЕХМЕРНЫХ ВИДЕОКОДЕКАХ 2012
  • Чэнь Ин
  • Карчевич Марта
RU2562419C1

Иллюстрации к изобретению RU 2 802 368 C2

Реферат патента 2023 года СИНТАКСИЧЕСКИЕ ЭЛЕМЕНТЫ ДЛЯ КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ ВИДЕО

Изобретение относится к кодированию видео, а именно к синтаксическим элементам для кодирования или декодирования видео. Техническим результатом является повышение эффективности кодирования видео. Результат достигается тем, что эффективное сигнализирование инструментальных средств кодирования представляет собой передачу информации, представляющей инструментальные средства кодирования, используемые для кодирования, например, из устройства кодера в приемное устройство (например, декодер или дисплей), так что соответствующие инструментальные средства используются для каскада декодирования. Эти инструментальные средства содержат новые режимы сегментации, новые режимы внутреннего прогнозирования, повышенную гибкость для дискретизированного адаптивного смещения и новый режим компенсации освещенности для блоков бипрогнозирования на основе единственного флага, выполненного с возможностью определения того, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования, и при этом упомянутый выше единственный флаг вставляется в высокоуровневые синтаксические элементы кодированных данных кадра. 6 н. и 8 з.п. ф-лы, 12 ил., 11 табл.

Формула изобретения RU 2 802 368 C2

1. Видеокодер для кодирования данных кадров видео, при этом видеокодер выполнен с возможностью кодировать данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, выполненного с возможностью определения того, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования, и вставлять единственный флаг в высокоуровневые синтаксические элементы кодированных данных кадра.

2. Устройство по п. 1, при этом единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.

3. Устройство по п. 1 или 2, при этом единственный флаг выполнен с возможностью сигнализироваться в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.

4. Способ кодирования данных кадров видео, при этом способ осуществляется видеокодером и содержит этапы, на которых:

кодируют данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, определяющего, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования, и

вставляют единственный флаг в высокоуровневые синтаксические элементы кодированных данных кадра.

5. Способ по п. 4, в котором, когда единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.

6. Способ по п. 4 или 5, в котором единственный флаг сигнализируется в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.

7. Видеодекодер для декодирования данных кадров видео, при этом видеокодер выполнен с возможностью получать параметры из высокоуровневых синтаксических элементов кодированных данных кадра и декодировать данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, выполненного с возможностью определения того, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования.

8. Устройство по п. 7, при этом единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.

9. Устройство по п. 7 или 8, при этом единственный флаг выполнен с возможностью сигнализироваться в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.

10. Способ декодирования данных кадров видео, при этом способ осуществляется видеокодером и содержит этапы, на которых:

получают параметры из высокоуровневых синтаксических элементов кодированных данных кадра, и

декодируют данные кадра для по меньшей мере одного блока в кадре на основе единственного флага, определяющего, используются ли при кодировании для блоков сигналов яркости и сигналов цветности независимые деревья кодирования или общие деревья кодирования.

11. Способ по п. 10, в котором, когда единственный флаг равен 1, блоки сигналов яркости и сигналов цветности используют независимые деревья кодирования.

12. Способ по п. 10 или 11, в котором единственный флаг сигнализируется в наборе параметров последовательности на уровне последовательности, чтобы применяться ко всем кодированным срезам с использованием упомянутого набора параметров последовательности.

13. Энергонезависимый машиночитаемый носитель, на котором сохранены инструкции с программным кодом, исполняемые процессором для реализации этапов способа по п. 4.

14. Энергонезависимый машиночитаемый носитель, на котором сохранены инструкции с программным кодом, исполняемые процессором для реализации этапов способа по п. 10.

Документы, цитированные в отчете о поиске Патент 2023 года RU2802368C2

WO 2016074567 A1, 2016.05.19
US 2017272748 A1, 2017.09.21
WO 2017123980 A1, 2017.07.20
СИНТАКСИЧЕСКИЕ РАСШИРЕНИЯ ВЫСОКОГО УРОВНЯ ДЛЯ ВЫСОКОЭФФЕКТИВНОГО ВИДЕОКОДИРОВАНИЯ 2013
  • Чэнь Ин
  • Ван Е-Куй
  • Чжан Ли
RU2636692C2
US 2016286230 A1, 2016.09.29
US 2014376611 A1, 2014.12.25
НАБОРЫ ПАРАМЕТРОВ КОДИРОВАНИЯ ДЛЯ РАЗЛИЧНЫХ РАЗМЕРНОСТЕЙ В КОДИРОВАНИИ ВИДЕО 2012
  • Чэнь Ин
  • Карчевич Марта
  • Ван Е-Куй
RU2575986C2

RU 2 802 368 C2

Авторы

Лелеаннек, Фабрис

Гальпэн, Франк

Пуарье, Танжи

Франсуа, Эдуар

Даты

2023-08-28Публикация

2019-05-28Подача