ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка на патент испрашивает приоритет международной заявки на патент PCT/RU2019/000664, поданной 23.09.2019.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления настоящей заявки (раскрытия) в целом относятся к области обработки снимков и, более конкретно, к способу и устройству для сигнализации параметров квантования цветности.
УРОВЕНЬ ТЕХНИКИ
Видеокодирование (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-Ray диски, системы сбора и редактирования видеоконтента и видеокамеры приложений безопасности.
Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоснимков. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео, желательны улучшенные способы сжатия и декомпрессии, которые улучшают степень сжатия с минимальными потерями качества снимка или вовсе без таких потерь.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящей заявки предоставляют устройства и способы кодирования и декодирования согласно независимым пунктам формулы изобретения.
Вышеупомянутые и другие цели достигаются изобретением по независимым пунктам формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
Настоящее раскрытие предоставляет:
Способ обратного квантования текущего блока снимка, при этом способ выполняется декодером и способ содержит:
прием битового потока;
получение флага управления объединенными остатками компонентов цветности (JCCR) из битового потока;
получение информации соотнесения цветности из битового потока на основе флага управления JCCR;
получение по меньшей мере одного смещения параметра квантования (QP) цветности из битового потока на основе флага управления JCCR;
получение значения QP для текущего блока цветности на основе полученной информации соотнесения цветности и по меньшей мере одного полученного смещения QP цветности;
выполнение обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Здесь сигнализация смещений QP заголовков Сегмента и PPS для компонента цветности для режима JCCR; и сигнализация информации соотнесения цветности SPS для режима кодирования JCCR выполняется.
В зависимости от флага управления JCCR SPS будет выполняться сигнализация/декодирование смещения объединенных остатков компонентов цветности. Из-за обусловленной сигнализации смещения объединенных остатков компонентов цветности требуется сигнализировать меньше информации, что может сэкономить ресурсы.
В способе, описанном выше, битовый поток может содержать синтаксис уровня SPS, а флаг управления JCCR может быть получен из синтаксиса уровня SPS.
В способе, описанном выше, флаг управления JCCR может быть флагом sps_joint_cbcr_enabled_flag.
Здесь sps_joint_cbcr_enabled_flag указывает, задействовано или нет объединенное кодирование остатков цветности. Где sps_joint_cbcr_enabled_flag, равный 1, указывает, что объединенное кодирование остатков цветности задействовано для закодированной послойно видеопоследовательности (CLVS), sps_joint_cbcr_enabled_flag, равное 0, указывает, что объединенное кодирование остатков цветности не задействовано для закодированной послойно видеопоследовательности; при этом, при его отсутствии предполагается, что значение sps_joint_cbcr_enabled_flag равно 0.
В способе, как описано выше, если значение sps_joint_cbcr_enabled_flag равно 1, то по меньшей мере одно полученное смещение QP цветности может быть указано посредством slice_joint_cbcr_qp_offset. Где slice_joint_cbcr_qp_offset представляет собой синтаксический элемент, который может быть представлен в синтаксисе заголовка сегмента и указывает разность, которая должна быть добавлена к значению pps_joint_cbcr_qp_offset_value при определении значения Qp'CbCr. Значение slice_joint_cbcr_qp_offset должно находиться в диапазоне от -12 до +12 включительно. Когда slice_joint_cbcr_qp_offset отсутствует, то предполагается, что он равен 0. Значение pps_joint_cbcr_qp_offset_value+slice_joint_cbcr_qp_offset должно находиться в диапазоне от -12 до +12 включительно.
Здесь флаг slice_joint_cbcr_qp_offset может также обозначаться как sh_joint_cbcr_qp_offset.
В способе, описанном выше, информация соотнесения цветности может содержать delta_qp_in_val_minus1[i][j] и delta_qp_out_val[i][j], и информация соотнесения цветности может быть получена из синтаксиса уровня SPS, содержащегося в битовом потоке.
Здесь sps_delta_qp_in_val_minus1[i][j] задает значение дельты, используемое для выведения входной координаты j-й точки поворота i-й таблицы соотнесения QP цветности; где значение sps_delta_qp_in_val_minus1[0][j], если оно не присутствует, считается равным 0; где i, j представляют собой целые числа. Где delta_qp_out_val[i][j] задает значение дельты, используемое для выведения выходной координаты j-й точки поворота i-й таблицы соотнесения QP цветности. Когда delta_qp_out_val[0][j] отсутствует в битовом потоке, то значение delta_qp_out_val[0][j] считается равным 0. Где delta_qp_out_val также может обозначаться как sps_delta_qp_diff_val.
В описанном выше способе синтаксис уровня SPS может содержать следующую структуру:
Таким образом, сигнализация смещений QP заголовков Сегмента и PPS для компонента цветности для режима JCCR; и сигнализация информации соотнесения цветности SPS для режима кодирования JCCR может выполняться в зависимости от флага управления JCCR SPS в соответствии с вышеприведенными таблицами. Например, флаг управления JCCR sps является флагом sps_joint_cbcr_enabled_flag, сигнализируемый синтаксисом уровня SPS, например, синтаксисом seq_parameter_set_rbsp. В частности, можно увидеть, что значение индекса «i» определяется на основе значения sps_joint_cbcr_enabled_flag, таким образом, можно избежать избыточной сигнализации синтаксических элементов JCCR, когда инструмент JCCR не задействован. Можно видеть, что сигнализация/декодирование pps_joint_cbcr_qp_offset зависит от sps_joint_cbcr_enabled_flag, то есть только когда значение sps_joint_cbcr_enabled_flag равно "истина" (true) (например, 1), pps_joint_cbcr_qp_offset будет сигнализирован или может быть декодирован. Из-за условной сигнализации pps_joint_cbcr_qp_offset необходимо передавать меньше информации, что может сэкономить ресурсы.
Здесь seq_parameter_set_rbsp относится к синтаксису Необработанной Полезной Нагрузки Байтовой Последовательности (Raw Byte Sequence Payload (RBSP)) набору параметров последовательности; где sps_num_points_in_qp_table_minus1[i] плюс 1 задает количество точек, используемых для описания i-й таблицы соотнесения QP цветности; где значение sps_num_points_in_qp_table_minus1[i] находится в диапазоне от 0 до 36; где при его отсутствии предполагается, что значение sps_num_points_in_qp_table_minus1[0] равно 0.
В способе, как описано выше, получение по меньшей мере одного смещения QP цветности из битового потока на основе флага управления JCCR может содержать получение на основе флага управления JCCR, по меньшей мере одного смещения QP цветности из синтаксиса уровня набора параметров снимка (PPS) битового потока.
В описанном выше способе синтаксис уровня PPS может содержать следующую структуру:
Здесь pic_parameter_set_rbsp относится к синтаксису RBSP набора параметров снимка; где pps_cb_qp_offset и pps_cr_qp_offset задают смещения для параметра Qp'Y квантования яркости, используемого для выведения Qp'Cb и Qp'Cr, соответственно; при этом значения pps_cb_qp_offset и pps_cr_qp_offset находятся в диапазоне от -12 до +12 включительно; при этом, когда значение sps_chroma_format_idc равно 0, то pps_cb_qp_offset и pps_cr_qp_offset не используются в процессе декодирования и декодеры должны игнорировать их значение; при этом, если они не представлены, предполагается, что значения pps_cb_qp_offset и pps_cr_qp_offset равны 0; где sps_joint_cbcr_enabled_flag, равный 1, указывает, что объединенное кодирование остатков цветности задействовано для закодированной послойно видеопоследовательности (CLVS), где sps_joint_cbcr_enabled_flag, равное 0, указывает, что объединенное кодирование остатков цветности не задействовано для CLVS; где значение sps_joint_cbcr_enabled_flag, если оно не присутствует, считается равным 0, при этом pps_joint_cbcr_qp_offset_value указывает смещение параметра Qp'Y квантования яркости, используемого для выведения Qp'CbCr; при этом значение pps_joint_cbcr_qp_offset_value находится в диапазоне от -12 до +12 включительно.
Настоящее раскрытие дополнительно предоставляет способ обратного квантования текущего блока снимка, при этом способ выполняется декодером и способ содержит:
прием битового потока, при этом битовый поток содержит синтаксис Заголовка Сегмента и синтаксис PPS;
получение синтаксических элементов из синтаксиса PPS, при этом полученные синтаксические элементы содержат по меньшей мере одно смещение параметра квантования (QP) цветности;
получение информации смещения QP цветности из Заголовка Сегмента, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS;
определение значения QP для текущего блока цветности в зависимости от по меньшей мере одного смещения QP цветности, полученного из синтаксиса PPS, и информации смещения QP цветности, полученной из синтаксиса Заголовка Сегмента;
выполнение обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Таким образом, сигнализация смещений QP заголовков Сегмента и PPS для компонента цветности выполняется независимо друг от друга в соответствии с показанной выше таблицей. Вместо этого ранее в синтаксисе уровня PPS сигнализировался флаг pps_slice_chroma_qp_offsets_present_flag, который управляет наличием каких-либо дополнительных смещений, сигнализируемых в заголовке сегмента, то есть на стороне декодера декодер должен проверить значение pps_slice_chroma_qp_offsets_present_flag, чтобы определить, есть ли какие-либо дополнительные смещения, сигнализированные в заголовке сегмента. По сравнению с предыдущим способом, теперь в описанном выше способе флаг pps_slice_chroma_qp_offsets_present_flag больше не сигнализируется. Другими словами, в заголовке сегмента всегда сигнализируются смещения, поэтому декодер знает, что в заголовке сегмента сигнализируются дополнительные смещения, не проверяя значение pps_slice_chroma_qp_offsets_present_flag, другими словами, синтаксис уровня PPS и синтаксис Заголовка Сегмента всегда оба будут включать в себя смещения. Таким образом, декодирование/сигнализация смещений QP цветности в заголовке сегмента становится проще.
В способе, как описано выше по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, может содержать: pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset и cu_chroma_qp_offset_enabled_flag.
В описанном выше способе, если значение cu_chroma_qp_offset_enabled_flag равно 1, то по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, может дополнительно содержать: cu_chroma_qp_offset_subdiv, chroma_qp_offset_list_len_minus1, cb_qp_offset_list[i], cr_qp_offset_list[i] и joint_cbcr_qp_offset_list[i], где 0 ≤ i ≤ chroma_qp_offset_list_len_minus1 и i является целым числом.
В способе, как описано выше, информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, может содержать: slice_cb_qp_offset и slice_cr_qp_offset.
В описанном выше способе, если значение sps_joint_cbcr_enabled_flag, содержащегося в битовом потоке, равно 1, то информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, может дополнительно содержать: slice_joint_cbcr_qp_offset.
В способе, описанном выше, синтаксис PPS может содержать следующую структуру:
В способе, описанном выше, синтаксис Заголовка Сегмента может содержать следующую структуру:
В описанном выше способе флаг pps_slice_chroma_qp_offsets_present_flag может быть опущен в синтаксисе PPS; или
Заголовок Сегмента и синтаксис PPS всегда могут содержать элементы, относящиеся к по меньшей мере одному смещению QP цветности.
Настоящее раскрытие дополнительно предоставляет способ обратного квантования текущего блока снимка, при этом способ выполняется кодером и способ содержит:
кодирование флага управления объединенными остатками компонентов цветности (JCCR) в битовый поток;
кодирование информации соотнесения цветности в битовый поток на основе флага управления JCCR;
кодирование по меньшей мере одного смещения параметра квантования (QP) цветности в битовый поток на основе флага управления JCCR;
предоставление битового потока.
В способе, описанном выше, битовый поток может содержать синтаксис уровня SPS, и флаг управления JCCR кодирован в синтаксис уровня SPS.
В способе, описанном выше, флаг управления JCCR может быть флагом sps_joint_cbcr_enabled_flag.
В способе, описанном выше, если значение sps_joint_cbcr_enabled_flag равно 1, то по меньшей мере одно кодированное смещение QP цветности может быть указано посредством slice_joint_cbcr_qp_offset.
В способе, как описано выше, информация соотнесения цветности может содержать delta_qp_in_val_minus1[i][j] и delta_qp_out_val[i][j], и информация соотнесения цветности может быть кодирована в синтаксис уровня SPS, содержащемся в битовом потоке.
В описанном выше способе синтаксис уровня SPS может содержать следующую структуру:
Где same_qp_table_for_chroma указывает, сколько таблиц соотнесения QP цветности было сигнализировано. Если значение same_qp_table_for_chroma, равное 1, указывает, что сигнализируется только одна таблица соотнесения QP цветности, и эта таблица применяется к остаткам Cb и Cr, а также к объединенным остаткам Cb-Cr, когда sps_joint_cbcr_enabled_flag равен 1. Значение same_qp_table_for_chroma, равное 0, указывает, что таблицы соотнесения QP цветности, две для Cb и Cr и одна дополнительная для объединенных Cb-Cr, когда флаг sps_joint_cbcr_enabled_flag равен 1, сигнализируются в SPS. Когда в битовом потоке отсутствует параметр same_qp_table_for_chroma, предполагается, что значение same_qp_table_for_chroma равно 1.
Где num_points_in_qp_table_minus1[i] плюс 1 указывает количество точек, используемых для описания i-й таблицы соотнесения QP цветности. Значение num_points_in_qp_table_minus1[i] должно находиться в диапазоне от 0 до 63+QpBdOffset включительно. Когда num_points_in_qp_table_minus1[0] отсутствует в битовом потоке, предполагается, что значение num_points_in_qp_table_minus1[0] равно 0.
В способе, как описано выше, кодирование по меньшей мере одного смещения QP цветности в битовый поток на основе флага управления JCCR может содержать:
кодирование, на основе флага управления JCCR, по меньшей мере одного смещения QP цветности в синтаксис уровня набора параметров снимка (PPS) битового потока.
В описанном выше способе синтаксис уровня PPS может содержать следующую структуру:
Настоящее раскрытие может дополнительно предоставлять способ обратного квантования текущего блока снимка, при этом способ выполняется кодером и способ содержит:
кодирование синтаксических элементов из Заголовка Сегмента и синтаксиса PPS в битовый поток, при этом синтаксические элементы содержат по меньшей мере одно смещение параметра квантования (QP) цветности;
кодирование информации смещения QP цветности из Заголовка Сегмента в битовый поток, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS;
предоставление битового потока.
В способе, как описано выше по меньшей мере одно смещение QP цветности, кодированное из синтаксиса PPS, может содержать: pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset и cu_chroma_qp_offset_enabled_flag.
В описанном выше способе, если значение cu_chroma_qp_offset_enabled_flag равно 1, то по меньшей мере одно смещение QP цветности, кодированное из синтаксиса PPS, может дополнительно содержать: cu_chroma_qp_offset_subdiv, chroma_qp_offset_list_len_minus1, cb_qp_offset_list[i], cr_qp_offset_list[i] и joint_cbcr_qp_offset_list[ i ], где 0 ≤ i ≤ chroma_qp_offset_list_len_minus1 и i является целым числом.
В способе, как описано выше, информация смещения QP цветности, кодированная из синтаксиса Заголовка Сегмента, может содержать: slice_cb_qp_offset и slice_cr_qp_offset.
В описанном выше способе, если значение sps_joint_cbcr_enabled_flag, содержащегося в битовом потоке, равно 1, то информация смещения QP цветности, кодированная из синтаксиса Заголовка Сегмента, может дополнительно содержать: slice_joint_cbcr_qp_offset.
В способе, описанном выше, синтаксис PPS может содержать следующую структуру:
В способе, описанном выше, синтаксис Заголовка Сегмента может содержать следующую структуру:
.
В описанном выше способе флаг pps_slice_chroma_qp_offsets_present_flag может быть опущен в синтаксисе PPS; или
Заголовок сегмента и синтаксис PPS всегда могут содержать элементы, относящиеся к по меньшей мере одному смещению QP цветности.
Настоящее раскрытие дополнительно предоставляет декодер, содержащий схему обработки для выполнения способа в соответствии со способом, описанным выше.
Настоящее раскрытие дополнительно предоставляет кодер, содержащий схему обработки для выполнения описанного выше способа.
Настоящее раскрытие также предоставляет компьютерный программный продукт, содержащий программный код для выполнения способа, как описано выше, при его исполнении на компьютере или процессоре.
Настоящее раскрытие дополнительно предоставляет декодер, содержащий: один или более процессоров; и долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, при этом программы при их исполнении процессорами конфигурируют декодер для выполнения описанного выше способа.
Настоящее раскрытие дополнительно предоставляет кодер, содержащий: один или более процессоров; и
долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, причем программы при их исполнении процессорами, конфигурируют кодер для выполнения способа, как описано выше.
Настоящее раскрытие дополнительно предоставляет долговременный машиночитаемый носитель, несущий программный код, который при его исполнении компьютерным устройством предписывает компьютерному устройству выполнять описанный выше способ.
Настоящее раскрытие дополнительно предоставляет декодер, содержащий: модуль приема, выполненный с возможностью приема битового потока; первый модуль получения, выполненный с возможностью получения флага управления объединенными остатками компонентов цветности (JCCR) из битового потока; второй модуль получения, выполненный с возможностью получения информации соотнесения цветности из битового потока на основе флага управления JCCR; третий модуль получения, выполненный с возможностью получения по меньшей мере одного смещения параметра квантования (QP) цветности из битового потока на основе флага управления JCCR; четвертый модуль получения, выполненный с возможностью получения значения QP для текущего блока цветности на основе полученной информации соотнесения цветности и по меньшей мере одного полученного смещения QP цветности, модуль обратного квантования, выполненный с возможностью выполнения обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
В описанном выше декодере битовый поток может содержать синтаксис уровня SPS, а флаг управления JCCR может быть получен из синтаксиса уровня SPS.
В декодере, как описано выше, флаг управления JCCR может быть флагом sps_joint_cbcr_enabled_flag.
В декодере, как описано выше, если значение sps_joint_cbcr_enabled_flag равно 1, то по меньшей мере одно полученное смещение QP цветности может быть указано посредством slice_joint_cbcr_qp_offset.
В декодере, как описано выше, информация соотнесения цветности может содержать delta_qp_in_val_minus1[i][j] и delta_qp_out_val[i][j], а информация соотнесения цветности может быть получена из синтаксиса уровня SPS, содержащегося в битовом потоке.
В декодере, как описано выше, синтаксис уровня SPS может содержать следующую структуру:
.
В декодере, как описано выше, получение по меньшей мере одного смещения QP цветности из битового потока на основе флага управления JCCR может включать в себя получение, на основе флага управления JCCR, по меньшей мере одного смещения QP цветности из синтаксиса уровня набора параметров снимка (PPS) битового потока.
В декодере, как описано выше, синтаксис уровня PPS может содержать следующую структуру:
Настоящее раскрытие дополнительно предоставляет декодер, содержащий: модуль приема, выполненный с возможностью приема битового потока, при этом битовый поток содержит синтаксис Заголовка Сегмента и синтаксис PPS; первый модуль получения, выполненный с возможностью получения синтаксических элементов из синтаксиса PPS, при этом полученные синтаксические элементы содержат смещения параметров квантования (QP) цветности; второй модуль получения, выполненный с возможностью получения информации смещения QP цветности из Заголовка Сегмента, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS; модуль определения, выполненный с возможностью определения значения QP для текущего блока цветности в зависимости от смещения QP цветности, полученного из синтаксиса PPS, и информации смещения QP цветности, полученной из синтаксиса Заголовка Сегмента; модуль обратного квантования, выполненный с возможностью выполнения обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
В декодере, как описано выше по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, может содержать: pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset и cu_chroma_qp_offset_enabled_flag.
В описанном выше декодере, если значение cu_chroma_qp_offset_enabled_flag равно 1, по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, может дополнительно содержать: cu_chroma_qp_offset_subdiv, chroma_qp_offset_list_len_minus1, cb_qp_offset_list[i], cr_qp_offset_list[i] и joint_cbcr_qp_offset_list[i], где 0 ≤ i ≤ chroma_qp_offset_list_len_minus1 и i является целым числом.
В декодере, как описано выше, информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, может содержать: slice_cb_qp_offset и slice_cr_qp_offset.
В описанном выше декодере, если значение sps_joint_cbcr_enabled_flag, содержащееся в битовом потоке, равно 1, то информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, может дополнительно содержать: slice_joint_cbcr_qp_offset.
В декодере, как описано выше, синтаксис PPS может содержать следующую структуру:
В декодере, как описано выше, синтаксис заголовка сегмента может содержать следующую структуру:
В декодере, как описано выше, флаг pps_slice_chroma_qp_offsets_present_flag может быть опущен в синтаксисе PPS; или
Заголовок сегмента и синтаксис PPS всегда могут содержать элементы, относящиеся к по меньшей мере одному смещению QP цветности.
Настоящее раскрытие дополнительно предоставляет кодер, содержащий: первый модуль кодирования, выполненный с возможностью кодирования флага управления объединенными остатками компонентов цветности (JCCR) в битовый поток; второй модуль кодирования, выполненный с возможностью кодирования информации соотнесения цветности в битовый поток на основе флага управления JCCR; третий модуль кодирования, выполненный с возможностью кодирования по меньшей мере одного смещения параметра квантования (QP) цветности в битовый поток на основе флага управления JCCR; модуль предоставления, выполненный с возможностью предоставления битового потока.
В кодере, как описано выше, битовый поток может содержать синтаксис уровня SPS, и флаг управления JCCR может быть получен из синтаксиса уровня SPS.
В кодере, как описано выше, флаг управления JCCR может быть флагом sps_joint_cbcr_enabled_flag.
В кодере, как описано выше, если значение sps_joint_cbcr_enabled_flag равно 1, то по меньшей мере одно полученное смещение QP цветности может быть указано посредством slice_joint_cbcr_qp_offset.
В кодере, как описано выше, информация соотнесения цветности может содержать delta_qp_in_val_minus1[i][j] и delta_qp_out_val[i][j], а информация соотнесения цветности может быть получена из синтаксиса уровня SPS, содержащегося в битовом потоке.
В кодере, как описано выше, синтаксис уровня SPS может содержать следующую структуру:
.
В кодере, как описано выше, получение по меньшей мере одного смещения QP цветности из битового потока на основе флага управления JCCR может включать в себя получение, на основе флага управления JCCR, по меньшей мере одного смещения QP цветности из синтаксиса уровня набора параметров снимка (PPS) битового потока.
В кодере, как описано выше, синтаксис уровня PPS может содержать следующую структуру:
Настоящее раскрытие дополнительно предоставляет кодер, содержащий: первый модуль кодирования, выполненный с возможностью кодирования синтаксических элементов из Заголовка Сегмента и синтаксиса PPS в битовый поток, при этом синтаксические элементы содержат смещения параметров квантования (QP) цветности; второй модуль кодирования, выполненный с возможностью кодирования информации смещения QP цветности из Заголовка Сегмента в битовый поток, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS; модуль предоставления, выполненный с возможностью предоставления битового потока.
В кодере, как описано выше по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, может содержать: pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset и cu_chroma_qp_offset_enabled_flag.
В кодере, как описано выше, если значение cu_chroma_qp_offset_enabled_flag равно 1, по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, может дополнительно содержать: cu_chroma_qp_offset_subdiv, chroma_qp_offset_list_len_minus1, cb_qp_offset_list[i], cr_qp_offset_list[i] и joint_cbcr_qp_offset_list[i], где 0 ≤ i ≤ chroma_qp_offset_list_len_minus1 и i является целым числом.
В кодере, как описано выше, информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, может содержать: slice_cb_qp_offset и slice_cr_qp_offset.
В кодере, как описано выше, если значение sps_joint_cbcr_enabled_flag, содержащегося в битовом потоке, равно 1, то информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, может дополнительно содержать: slice_joint_cbcr_qp_offset.
В кодере, как описано выше, синтаксис PPS может содержать следующую структуру:
В кодере, как описано выше, синтаксис Заголовка Сегмента может содержать следующую структуру:
В кодере, как описано выше, флаг pps_slice_chroma_qp_offsets_present_flag может быть опущен в синтаксисе PPS; или
Заголовок сегмента и синтаксис PPS всегда могут содержать элементы, относящиеся к по меньшей мере одному смещению QP цветности.
Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в нижеследующем описании. Другие особенности, цели и преимущества будут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
В следующих вариантах осуществления изобретения описаны более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:
Фиг.1A является блок-схемой, показывающей пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления настоящего изобретения;
Фиг.1B является блок-схемой, показывающей другой пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления настоящего изобретения;
Фиг.2 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления настоящего изобретения;
Фиг.3 является блок-схемой, показывающей пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления настоящего изобретения;
Фиг.4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;
Фиг.5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;
Фиг.6 является блок-схемой, показывающей примерную структуру системы 3100 предоставления контента, которая реализует службу доставки контента.
Фиг.7 является блок-схемой, показывающей структуру примерного терминального устройства
Фиг.8 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, при этом способ выполняется декодером, согласно одному варианту осуществления настоящего раскрытия.
Фиг.9 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, при этом способ выполняется декодером, согласно дополнительному варианту осуществления настоящего раскрытия.
Фиг.10 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, при этом способ выполняется кодером, согласно одному варианту осуществления настоящего раскрытия.
Фиг.11 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, причем этот способ выполняется кодером согласно настоящему раскрытию.
Фиг.12 иллюстрирует декодер согласно одному варианту осуществления настоящего раскрытия.
Фиг.13 иллюстрирует декодер согласно другому варианту осуществления настоящего раскрытия.
Фиг.14 иллюстрирует кодер согласно одному варианту осуществления настоящего раскрытия.
Фиг.15 иллюстрирует кодер согласно другому варианту осуществления настоящего раскрытия.
В последующем одинаковые ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным функциям, если явно не указано иное.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть данного раскрытия и которые показывают, в качестве иллюстрации, конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых варианты осуществления настоящего изобретения могут быть использованы. Понятно, что варианты осуществления данного изобретения могут быть использованы в других аспектах и содержат структурные или логические изменения, не показанные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.
Например, должно понятно, что раскрытие в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описывается на основе одного или множества блоков, например функциональных блоков, соответствующий метод может включать в себя в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап выполнения функциональные возможности одного или множества модулей или множества этапов, каждый из которых выполняет функциональные возможности одного или более из множества модулей), даже если такой один или множество этапов явно не описаны или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
Видеокодирование обычно относится к обработке последовательности снимков, которые образуют видео или видеопоследовательность. Вместо термина «снимок» можно использовать термин «кадр» или «изображение» как синонимы в области видеокодирования. Видеокодирование (или кодирование в общем смысле) содержит две части видеокодирование и декодирование видео. Видеокодирование выполняется на стороне источника, обычно содержащее обработку (например, посредством сжатия) исходных видеоснимков для уменьшения объема данных, необходимых для представления видеоснимков (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне получателя и обычно включает в себя обратную обработку по сравнению с кодером для восстановления видеоснимков. Варианты осуществления, относящиеся к «кодированию» видеоснимков (или снимков в целом, следует понимать как относящиеся либо к «кодированию», либо к «декодированию» видеоснимков или соответственных видеопоследовательностей. Объединение кодирующей части и декодирующей части также называется CODEC (кодирование и декодирование).
В случае кодирования видео без потерь исходные видеоснимки могут быть восстановлены, т.е. Восстановленные видеоснимки имеют то же качество, что и исходные видеоснимки (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дальнейшее сжатие, например, посредством квантования, чтобы уменьшить объем данных, представляющих видеоснимки, которые не могут быть полностью восстановлены в декодере, т.е. качество восстановленных видеоснимков ниже или хуже по сравнению с к качеству исходных видеоснимков.
Несколько стандартов видеокодирования принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области дискретных отсчетов и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждый снимок видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например, с использованием пространственного (внутри снимка) (интра) предсказания и/или временного (между снимками) (интер) предсказания для генерации блока предсказания, вычитая блок предсказания из текущего блока (блок, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжатие), тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку, чтобы восстановить текущий блок для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, интра- и интер-предсказание) и/или восстановление для обработки, то есть кодирования, последующих блоков.
В следующих вариантах осуществления системы 10 видеокодирования кодер 20 и декодер 30 описываются на основе фигур с 1 по 3.
Фиг.1A является схематической блок-схемой, иллюстрирующей примерную систему 10 кодирования, например систему 10 видеокодирования (или вкратце систему 10 кодирования), которая может использовать методики этой настоящей заявки. Видеокодер 20 (или вкратце кодер 20) и видеодекодер 30 (или вкратце декодер 30) системы 10 кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методик в соответствии с различными примерами, описанными в настоящей заявке.
Как показано на Фиг.1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 снимка, например, в устройство-получатель 14 для декодирования кодированных данных 13 снимка.
Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. в необязательном порядке, содержать источник 16 снимка, препроцессор (или модуль предварительной обработки) 18, например препроцессор 18 снимка, и интерфейс связи или модуль 22 связи.
Источник 16 снимка может содержать или быть устройством захвата снимка любого типа, например, камерой для захвата реального снимка и/или любого вида устройством генерации снимка, например процессор компьютерной графики для генерации компьютерного анимированного снимка, или любое другое устройство для получения и/или предоставления реального снимка, сгенерированного компьютером снимка (например, содержимое экрана, снимок виртуальной реальности (VR)) и/или любое их сочетание (например, снимок дополненной реальности (AR)). Источником снимка может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых снимков.
В отличие от препроцессора 18 и обработки, выполняемой модулем 18 предварительной обработки, снимок или данные 17 снимка также могут называться необработанным снимком или данными 17 необработанного снимка.
Препроцессор 18 выполнен с возможностью приема данных 17 (необработанного) снимка и выполнения предварительной обработки данных 17 снимка для получения предварительно обработанного снимка 19 или данных 19 предварительно обработанного снимка. Предварительная обработка, выполняемая препроцессором 18, может, например, включать в себя обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или уменьшение шума. Можно понять, что модуль 18 предварительной обработки может быть необязательным компонентом.
Видеокодер 20 выполнен с возможностью приема данных 19 предварительно обработанного снимка и предоставления данных 21 кодированного снимка (дополнительные подробности будут описаны ниже, например, на основе Фиг.2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема данных 21 кодированного снимка и для передачи данных 21 кодированного снимка (или любой их дальнейшей обработанной версии) по каналу 13 связи на другое устройство, например, на устройство-получатель 14 или любое другое устройство для хранения или прямого восстановления.
Устройство-получатель 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. в необязательном порядке, содержать интерфейс или модуль 28 связи, постпроцессор 32 и устройство 34 отображения.
Интерфейс 28 связи устройства-получателя 14 выполнен с возможностью приема данных 21 кодированного снимка (или любой их дальнейшей обработанной версии), например, непосредственно от устройства-источника 12 или из любого другого источника, например запоминающего устройства, например устройство хранения данных кодированного снимка, и предоставить данные 21 кодированного снимка в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема данных 21 кодированного снимка или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки данных 21 кодированного снимка в соответствующий формат, например, в пакеты, и/или обработки данных кодированного снимка с использованием любого типа кодирования передачи или обработки для передачи по каналу связи или сети связи.
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования или обработки передачи и/или распаковки для получения данных 21 кодированного снимка.
И интерфейс 22 связи, и интерфейс 28 связи могут быть выполнены как однонаправленные интерфейсы связи, как показано стрелкой для канала 13 связи на Фиг.1A, указывающего от устройства-источника 12 к устройству-получателю 14, или как интерфейсы двунаправленной связи, и может быть сконфигурирован, например, для отправки и приема сообщений, например для установки соединения, для подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, к передаче данных кодированного снимка.
Декодер 30 выполнен с возможностью приема данных 21 кодированного снимка и предоставления данных 31 декодированного снимка или декодированного снимка 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг.3 или Фиг.5).
Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки данных 31 декодированного снимка (также называемых данными восстановленного снимка), например, декодированного снимка 31, для получения данных 33 снимка 33 с постобработкой, например снимка 33 с постобработкой. Постобработка, выполняемая модулем 32 постобработки, может включать в себя, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную дискретизацию, или любую другую обработку, например, для подготовки данных декодированного снимка 31 для отображения, например, с помощью устройства 34 отображения.
Устройство 34 отображения устройства-получателя 14 выполнено с возможностью приема данных 33 снимка с постобработкой для отображения снимка, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного снимка, например интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, микро-светодиодные дисплеи, жидкие кристаллы на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.
Хотя Фиг.1A изображает устройство-источник 12 и устройство-получатель 14 как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности, устройство-источник 12 или соответствующие функциональные возможности и устройство-получатель 14 или соответствующие функциональные возможности. В таких вариантах осуществления устройство-источник 12 или соответствующие функциональные возможности и устройство-получатель 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любого их сочетания.
Как будет очевидно для специального элемента на основании описания, наличие и (точное) разделение функциональных возможностей различных модулей или функций в устройстве-источнике 12 и/или устройстве-получателе 14, как показано на Фиг.1A, может варьироваться в зависимости от фактического устройства и применения.
Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30), или как кодер 20, так и декодер 30 могут быть реализованы через схемы обработки, как показано на Фиг.1B, такие как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, оборудование, предназначенные для видеокодирования или любые их сочетания. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 на Фиг.2 и/или любой другой кодирующей системе или подсистеме, описанной здесь. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 на Фиг.3 и/или любую другую систему или подсистему декодера, описанную в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, как описано ниже. Как показано на Фиг.5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг.1B.
Устройство-источник 12 и устройство-получатель 14 могут включать в себя любое из широкого диапазона устройств, включая любые виды портативных или стационарных устройств, например портативные или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, наборы- приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потоковой передачи видео (например, серверы служб контента или серверы доставки контента), устройство приемника широковещания, устройство передатчика широковещания и т.п. и могут использовать или не использовать любой вид операционной системы. В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут быть оборудованы для беспроводной связи. Таким образом, устройство-источник 12 и устройство-получатель 14 могут быть устройствами беспроводной связи.
В некоторых случаях система 10 видеокодирования, проиллюстрированная на Фиг.1A является просто примером, и методики настоящей заявки могут применяться к настройкам кодирования видео (например, видеокодирования или видеодекодирования), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются по сети и т.п. Устройство кодирования видео может кодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
Для удобства описания варианты осуществления изобретения описаны здесь, например, со ссылкой на высокоэффективное видеокодирование (HEVC) или на опорное программное обеспечение универсального кодирования видео (VVC), стандарта кодирования видео следующего поколения, разработанного Объединенной группой сотрудничества по кодированию видео (JCT-VC) Группы экспертов ITU-T по кодированию видео (VCEG) и Группы экспертов ISO/IEC по движущимся изображениям (MPEG). Специалист в данной области техники поймет, что варианты осуществления изобретения не ограничиваются HEVC или VVC.
Кодер и способ кодирования
На Фиг.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, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
Модуль 204 вычисления остатка, модуль 206 обработки преобразования, модуль 208 квантования, модуль 260 выбора режима могут относится к формированию прямого пути сигнала кодера 20, тогда как модуль 210 обратного квантования, модуль 212 обработки обратного преобразования, модуль 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 (DPB) декодированных снимков, модуль 244 интер-предсказания и модуль 254 интра-предсказания могут относится к формированию обратного пути сигнала видеокодера 20, при этом обратный путь сигнала видеокодера 20 соответствует пути сигнала декодера (см. видеодекодер 30 на Фиг.3). Модуль 210 обратного квантования, модуль 212 обработки обратного преобразования, модуль 214 восстановления, контурный фильтр 220, буфер 230 (DPB) декодированных снимков, модуль 244 интер-предсказания и модуль 254 интра-предсказания также относятся к формированию «Встроенного декодера» видеокодера 20.
Снимки и разбиение снимков (снимки и блоки)
Кодер 20 может быть выполнен с возможностью приема, например, через ввод 201 снимка 17 (или данных 17 снимка), например снимка из последовательности снимков, образующих видео или видеопоследовательность. Принятый снимок или данные снимка также могут представлять собой предварительно обработанный снимок 19 (или предварительно обработанные данные 19 снимка). Для простоты нижеследующее описание ссылается на снимок 17. Снимок 17 также может именоваться текущим снимком или снимком, который подлежит кодированию (в частности, при видеокодировании, чтобы отличать текущий снимок от других снимков, например, ранее кодированных и/или декодированных снимков той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущий снимок).
(Цифровой) снимок представляет собой или может рассматриваться как двумерный массив или матрица дискретных отсчетов со значениями интенсивности. Дискретный отсчет в массиве также может называться пикселем (сокращенная форма элемента снимка) или пикселем. Количество дискретных отсчетов в горизонтальном и вертикальном направлении (или по оси) массива или снимка определяет размер и/или разрешение снимка. Для представления цвета обычно используются три цветовых компонента, то есть снимок может быть представлен или включать в себя три массива дискретных отсчетов. В формате RBG или цветовом пространстве снимок содержит соответствующий массив дискретных отсчетов красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткой яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом снимке), в то время как два компонента цветности (или короткой цветности) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, снимок в формате YCbCr содержит массив дискретных отсчетов яркости значений дискретных отсчетов яркости (Y) и два массива дискретных отсчетов цветности значений цветности (Cb и Cr). Снимки в формате RGB могут быть преобразованы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или преобразование. Если снимок является монохромным, то он может содержать только массив дискретных отсчетов яркости. Соответственно, снимок может быть, например, массивом дискретных отсчетов яркости в монохромном формате или массивом дискретных отсчетов яркости и двумя соответствующими массивами дискретных отсчетов цветности в цветовой формат 4:2:0, 4:2:2 и 4:4:4.
Варианты осуществления видеокодера 20 могут содержать модуль разбиения снимка (не показан на фиг.2), выполненный с возможностью разбиения снимка 17 на множество (обычно не перекрывающихся) блоков 203 снимка. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или единичными блоками дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разбиения снимка может быть выполнен с возможностью использования одного и того же размера блока для всех снимков видеопоследовательности и соответствующей сетки, определяющей размер блока, или для изменения размера блока между снимками или подмножествами или группами снимков, а также для разбиения каждого снимка на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 снимка 17, например одного, нескольких или всех блоков, образующих снимок 17. Блок 203 снимка также может называться блоком текущего снимка или блоком снимка, который должен быть кодирован.
Подобно снимку 17, блок 203 снимка снова является или может рассматриваться как двумерный массив или матрица дискретных отсчетов со значениями интенсивности (значениями дискретных отсчетов), хотя и меньшего размера, чем снимок 17. Другими словами, блок 203 может содержать, например, один массив дискретных отсчетов (например, массив яркости в случае монохромного снимка 17 или массив яркости или цветности цветного снимка) или три массива дискретных отсчетов (например, массив яркости и два массива цветности в случае цветного снимка 17) или любое другое количество и/или вид массивов в зависимости от применяемого цветового формата. Количество дискретных отсчетов в горизонтальном и вертикальном направлении (или по оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, массив дискретных отсчетов MxN (M-столбец на N-строка) или массив MxN коэффициентов преобразования.
Варианты осуществления видеокодера 20, как показано на Фиг.2, могут быть выполнены с возможностью кодирования снимка 17 блок за блоком, например, кодирование и предсказание выполняются для каждого блока 203.
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования снимка с использованием сегментов (также называемых видеосегментами), при этом снимок может быть разделен или кодирован с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, клеток (tile) (H.265/HEVC и VVC) или фрагментов (brick) (VVC)).
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования снимка с использованием сегментов/групп клеток (также называемых группами клеток) и/или клеток (также называемых видеоклетками), в котором снимок может быть разделено или кодировано с использованием одного или более сегментов/групп клеток (обычно не перекрывающихся), и каждый сегмент/группа клеток может содержать, например, один или более блоков (например, CTU) или одну или более клеток, при этом каждая клетка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.
Вычисление остатка
Модуль 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также упоминаемого как остаток 205) на основе блока 203 снимка и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, посредством вычитания значений дискретных отсчетов блока 265 предсказания из значений дискретных отсчетов блока 203 снимка, дискретный отсчет за дискретным отсчетом (пиксель за пикселем), чтобы получить остаточный блок 205 в области дискретных отсчетов.
Преобразование
Модуль 206 обработки преобразования может быть выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусного преобразования (DST), к значениям дискретных отсчетов остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
Модуль 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования обычно выбираются на основе определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью двойки для операций сдвига, разрядность коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например, модулем 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например, модулем 312 обработки обратного преобразования в видеокодере 30), и соответствующие коэффициенты масштабирования для прямого преобразования, например, посредством модуля 206 обработки преобразования, в кодере 20 может быть определено соответственно.
Варианты осуществления видеокодера 20 (соответственно модуль 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например типа преобразования или преобразований, например, непосредственно или кодированы или сжаты через модуль 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.
Квантование
Модуль 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например, посредством применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.
Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большие размеры шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, и соответствующее и/или обратное деквантование, например, посредством модуля 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть изменен из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования, и кодер может передавать их в декодер, например, в битовом потоке. Квантование - это операция с потерями, при которой потери возрастают с увеличением размеров этапов квантования.
Основной параметр квантования сигнализируется в битовом потоке для всех компонентов яркости и цветности вместе. Однако параметры квантования для компонентов цветности могут быть сдвинуты от основного на уровнях снимков/сегментов или групп клеток внутри одного снимка/единичного блока кодирования внутри одного сегмента или группы клеток. Для этой цели битовый поток может содержать смещения PPS для двух компонентов цветности (синтаксические элементы pps_cb_qp_offset и pps_cr_qp_offset); смещения сегментов для двух компонентов цветности (slice_cb_qp_offset и slice_cr_qp_offset); и два списка смещений (cb_qp_offset_list и cr_qp_offset_list), которые обычно сигнализируются в PPS и позволяют применять смещение QP для уровня CU, отправляя на уровне CU индекс, указывающий таблицы.
Варианты осуществления видеокодера 20 (соответственно модуль 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или кодированных через модуль 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.
Обратное квантование
Модуль 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, посредством применения обратной схемы квантования, применяемой блоком 208 квантования, на основе или с использованием того же размера шага квантования в качестве модуля 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя обычно не идентичны коэффициентам преобразования из-за потери при квантовании - коэффициентам 207 преобразования.
Обратное преобразование
Модуль 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования, применяемого блоком 206 обработки преобразования, например обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусоидального преобразования (DST) или других обратных преобразования, чтобы получить восстановленный остаточный блок 213 (или соответствующие коэффициенты 213 деквантования) в области дискретных отсчетов. Восстановленный остаточный блок 213 также может называться блоком 213 преобразования.
Восстановление
Модуль 214 восстановления (например, сумматор 214) выполнен с возможностью добавления блока 213 преобразования (то есть восстановленного остаточного блока 213) к блоку 265 предсказания, чтобы получить восстановленный блок 215 в области дискретных отсчетов, например, посредством добавления (дискретный отсчет за дискретным отсчетом) значений дискретных отсчетов восстановленных остаточный блок 213 и значения дискретных отсчетов блока 265 предсказания.
Фильтрация
Модуль 220 контурного фильтра (или сокращенно «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215 для получения фильтрованного блока 221 или, в общем, для фильтрации восстановленных дискретных отсчетов для получения отфильтрованных значений дискретных отсчетов. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Модуль 220 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением дискретных отсчетов (SAO) или один или более других фильтров, например адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любое их сочетание. В одном примере модуль 220 контурного фильтра может содержать фильтр устранения блочности, фильтр SAO и фильтр ALF. Порядок процесса фильтрации может быть фильтром удаления блочности, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным преобразователем). Этот процесс выполняется перед устранением блочности. В другом примере процесс фильтрации с устранением блочности может также применяться к внутренним краям подблока, например краям аффинных подблоков, краям подблоков ATMVP, краям преобразования подблоков (SBT) и краям внутри подблока (ISP). Хотя модуль 220 контурного фильтра показан на Фиг.2 как контурный фильтр, в других конфигурациях модуль 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может именоваться отфильтрованным восстановленным блоком 221.
Варианты осуществления кодера 20 (соответственно модуль 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация об адаптивном смещении дискретных отсчетов), например, напрямую или энтропийно кодированных с помощью блока 270 энтропийного кодирования или любого другого блока энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра для декодирования.
Буфер декодированных снимков
Буфер 230 декодированных снимков (DPB) может быть памятью, в которой хранятся опорные снимки или, в общем, данные опорных снимков для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть образован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных снимков может быть выполнен с возможностью хранения одного или более фильтрованных блоков 221. Буфер 230 декодированных снимков может быть дополнительно выполнен с возможностью хранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, того же самого текущего снимка или разных снимков, например ранее восстановленных снимков, и может предоставлять полные ранее восстановленные, т.е. декодированные, снимки (и соответствующие опорные блоки и дискретные отсчеты) и/или частично восстановленный текущий снимок (и соответствующие опорные блоки и дискретные отсчеты), например, для интер-предсказания. Буфер 230 декодированных снимков (DPB) также может быть выполнен с возможностью хранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных дискретных отсчетов, например если восстановленный блок 215 не фильтруется модулем 220 контурного фильтра, или любой другой дополнительно обработанной версии восстановленных блоков или дискретных отсчетов.
Выбор режима (Разбиение и Предсказание)
Модуль 260 выбора режима содержит модуль 262 разбиения, модуль 244 интер-предсказания и модуль 254 интра-предсказания и выполнен с возможностью приема или получения данных исходного снимка, например исходного блока 203 (текущего блока 203 текущего снимка 17), и данных восстановленного снимка, например отфильтрованных и/или нефильтрованных восстановленных дискретных отсчетов или блоков того же самого (текущего) снимка и/или из одного или множества ранее декодированных снимков, например из буфера 230 декодированных снимков или других буферов (например, линейного (строкового) буфера, не показан). Данные восстановленного снимка используются в качестве данных опорного снимка для предсказания, например интер-предсказания или интра-предсказания, чтобы получить блок 265 предсказания или предиктор 265.
Модуль 260 выбора режима может быть выполнен с возможностью определения или выбора разбиения для текущего режима предсказания блока (включая отсутствие разбиения) и режима предсказания (например, режима внутреннего или интер-предсказания) и генерации соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
Варианты осуществления модуля 260 выбора режима могут быть выполнены с возможностью выбора разбиения и режима предсказания (например, из тех, которые поддерживаются или доступны для модуля 260 выбора режима), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные издержки на сигнализацию (минимальные издержки на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба. Модуль 260 выбора режима может быть выполнен с возможностью определения режима разбиения и предсказания на основе оптимизации искажения скорости (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как «лучший», «минимум», «оптимальный» и т.д. В этом контексте не обязательно относятся к общему «лучшему», «минимуму», «оптимальному» и т.д., Но также могут относиться к выполнению прекращения или критерий выбора, такой как значение, превышающее или падающее ниже порогового значения, или другие характеристик, потенциально ведущие к «неоптимальному выбору», но уменьшающие сложность и время обработки.
Другими словами, модуль 262 разбиения может быть выполнен с возможностью разбиения снимка из видеопоследовательности на последовательность единичных блоков дерева кодирования (CTU), а CTU 203 может быть дополнительно разделен на более мелкие блочные разделы или подблоки (которые снова образуют блоков), например, итеративно с использованием разбиения на квадранты (QT), двоичного разбиения (BT) или разбиения на троичное дерево (TT) или любого их сочетания, и для выполнения, например, предсказания для каждого из разбиений блока или подблоков, при этом выбор режима включает в себя выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разбиений или подблоков блока.
Далее более подробно поясняется разбиение (например, посредством модуля 260 разбиения) и обработка предсказания (посредством модуля 244 интер-предсказания и модуля 254 интра-предсказания), выполняемые примерным видеокодером 20.
Разбиение
Модуль 262 разбиения может быть выполнен с возможностью разбиения снимка из видеопоследовательности на последовательность единичных блоков дерева кодирования (CTU), а модуль 262 разбиения может разбивать (или разделять) блок 203 дерева кодирования (CTU) на меньшие разделы, например блоки меньшего размера квадратного или прямоугольного размера. Для снимка, который имеет три массива дискретных отсчетов, 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).
Например, единичный блок дерева кодирования (CTU) может быть или содержать CTB дискретных отсчетов яркости, два соответствующих CTB дискретных отсчетов цветности снимка, которое имеет три массива дискретных отсчетов, или CTB дискретных отсчетов монохромного снимка или снимка, которое кодируется. с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования дискретных отсчетов. Соответственно, блок дерева кодирования (CTB) может быть блоком NxN дискретных отсчетов для некоторого значения N, так что разбиение компонента на CTB является разбиением. Единичный блок кодирования (CU) может быть или содержать блок кодирования дискретных отсчетов яркости, два соответствующих блока кодирования дискретных отсчетов цветности снимка, которое имеет три массива дискретных отсчетов, или блок кодирования дискретных отсчетов монохромного снимка или снимка, который кодируется с использованием трех отдельных цветовых плоскости и синтаксические структуры, используемые для кодирования дискретных отсчетов. Соответственно, блок кодирования (CB) может быть блоком MxN дискретных отсчетов для некоторых значений M и N, так что разбиение CTB на блоки кодирования является разбиением.
В вариантах осуществления, например, согласно HEVC, единичный блок дерева кодирования (CTU) может быть разделена на CU с использованием структуры дерева квадрантов, обозначенной как дерево кодирования. Решение о том, кодировать ли область снимка с использованием межснимочного (интер) (временного) или внутриснимочного (интра) (пространственного) предсказания, принимается на уровне конечных CU. Каждый концевой CU может быть дополнительно разделен на один, два или четыре PU в соответствии с типом разбиения PU. Внутри одного PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока посредством применения процесса предсказания на основе типа разбиения PU, концевой CU может быть разделен на блоки преобразования (TU) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для 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. Конструкция конвейерной обработки делит снимок на блоки данных виртуального конвейера (VPDU), которые определены как неперекрывающиеся блоки в снимке. В аппаратных декодерах последовательные блоки VPDU обрабатываются несколькими этапами конвейера одновременно. Размер VPDU примерно пропорционален размеру буфера на большинстве этапов конвейера, поэтому важно, чтобы размер VPDU был небольшим. В большинстве аппаратных декодеров размер VPDU может быть установлен равным максимальному размеру блока преобразования (TB). Однако в VVC разбиение троичного дерева (TT) и двоичного дерева (BT) может привести к увеличению размера VPDU.
Кроме того, следует отметить, что, когда часть блока узла дерева превышает нижнюю или правую границу снимка, блок узла дерева принудительно разделяется до тех пор, пока все дискретные отсчеты каждого кодированного CU не окажутся внутри границ снимка.
В качестве примера инструмент интра-подразбиений (Intra Sub-Partitions (ISP)) может разделять блоки яркости с внутренним предсказанием по вертикали или горизонтали на 2 или 4 подразбиения в зависимости от размера блока.
В одном примере модуль 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разбиения, описанных в данном документе.
Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, предварительно определенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы интра-предсказания и/или режимы интер-предсказания.
Интра-предсказание
Набор режимов интра-предсказания может содержать 35 различных режимов интра-предсказания, например ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов интра-предсказания, например, ненаправленные режимы, такие как режим постоянного тока (или среднего) и планарный режим, или направленные режимы, например, как определено для VVC. В качестве примера, несколько обычных режимов углового интра-предсказания адаптивно заменяются режимами широкоугольного интра-предсказания для неквадратных блоков, например, как определено в VVC. В качестве другого примера, чтобы избежать операций деления для предсказания DC, только длинная сторона используется для вычисления среднего для неквадратных блоков. Более того, результаты интра-предсказания планарного режима могут быть дополнительно модифицированы с помощью способа объединения позиционно-зависимого интра-предсказания (PDPC).
Модуль 254 интра-предсказания выполнен с возможностью использования восстановленных дискретных отсчетов соседних блоков одного и того же текущего снимка для генерации блока 265 интра-предсказания согласно режиму интра-предсказания набора режимов интра-предсказания.
Модуль 254 интра-предсказания (или, в общем, модуль 260 выбора режима) дополнительно выполнен с возможностью вывода параметров интра-предсказания (или, в общем, информации, указывающей выбранный режим интра-предсказания для блока) в модуль 270 энтропийного кодирования в форме синтаксиса элементы 266 для включения в данные 21 кодированного снимка, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Интер-предсказание
Набор (или возможно) режимы интер-предсказания зависит от доступных опорных снимков (т.е. предыдущим, по меньшей мере, частично декодированных снимков, например, хранится в DBP 230) и других параметрах интер-предсказания, например, используется ли весь опорный снимок или только часть, например, область поиска окна вокруг области текущего блока, опорного снимка для поиска наилучшего соответствия опорного блока, и/или, например, применяются ли интерполяции пикселей, например, интерполяция половины/полу-пикселя, четверть пикселя и/или 1/16 пикселя или нет.
В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска, прямой режим и/или другой режим интер-предсказания.
Например, при расширенном предсказании с объединением список потенциально подходящих вариантов на объединение для такого режима создается посредством включения следующих пяти типов потенциально подходящих вариантов по порядку: Пространственный MVP из пространственных соседних CU, Temporal 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 делится равномерно на два треугольных разбиения с использованием либо диагонального разбиения, либо антидиагонального разбиения. Кроме того, режим двойного предсказания выходит за рамки простого усреднения, чтобы обеспечить взвешенное усреднение двух сигналов предсказания.
Модуль 244 интер-предсказания может включать в себя модуль оценки движения (ME) (не показан на фиг.2) и модуль компенсации движения (MC) (оба не показаны на фиг.2). Модуль оценки движения может быть выполнен с возможностью приема или получения блока 203 снимка (блока 203 текущего снимка текущего снимка 17) и декодированного снимка 231, или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или более множество других/различных ранее декодированных снимков 231 для оценки движения. Например, видеопоследовательность может содержать текущий снимок и ранее декодированные снимки 231, или, другими словами, текущий снимок и ранее декодированные снимки 231 могут быть частью или формировать последовательность снимков, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или различных снимков из множества других снимков и обеспечивает опорный снимок (или индекс опорного снимка) и/или смещение (пространственное смещение) между положением (координатами X, Y) опорного блока и положением текущего блока в качестве взаимосвязанных параметров предсказания в модуль оценки движения. Это смещение также называется вектором движения (MV).
Модуль компенсации движения выполнен с возможностью получения, например, приема параметра интер-предсказания и выполнения интер-предсказания на основе или с использованием параметра интер-предсказания для получения блока 265 интер-предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя выборку или генерацию блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно выполнение интерполяции до субпиксельной точности. Интерполяционная фильтрация может генерировать дополнительные дискретные отсчеты пикселей из дискретных отсчетов известных пикселей, таким образом потенциально увеличивая количество блоков предсказания потенциально подходящих вариантов, которые могут использоваться для кодирования блока снимка. После приема вектора движения для PU текущего блока снимка модуль компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных снимков.
Модуль компенсации движения также может генерировать синтаксические элементы, связанные с блоками и видеосегментами, для использования видеодекодером 30 при декодировании блоков снимка видеосегмента. В дополнение или в качестве альтернативы сегментам и соответствующим элементам синтаксиса могут генерироваться или использоваться группы клеток и/или клетки и соответствующие синтаксические элементы.
Энтропийное кодирование
Модуль 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), схемы контекстно-адаптивного VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с разбиением интервала вероятности (PIPE) или другого способа или методики энтропийного кодирования) или обхода (без сжатия) в отношении квантованных коэффициентов 209, параметров интер-предсказания, параметров интра-предсказания, параметров контурного фильтра и/или других элементов синтаксиса для получения данных 21 кодированного снимка, которые могут выводиться через вывод 272, например в форме кодированного битового потока 21, так что, например, видеодекодер 30 может принимать и использовать эти параметры для декодирования. Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.
Другие изменения в структуре видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования. В другой реализации кодер 20 может иметь модуль 208 квантования и модуль 210 обратного квантования, объединенные в единый блок.
Декодер и способ декодирования
На Фиг.3 показан пример видеодекодера 30, который выполнен с возможностью реализации способов настоящей заявки. Видеодекодер 30 выполнен с возможностью приема данных 21 кодированного снимка (например, кодированного битового потока 21), например кодированных кодером 20, чтобы получить декодированный снимок 331. Данные кодированного снимка или кодированный битовый поток содержат информацию для декодирования данных кодированного снимка, например данных, которые представляют блоки снимка кодированного сегмента видео (и/или клеток или групп клеток) и связанные синтаксические элементы.
В примере на Фиг.3, декодер 30 содержит модуль 304 энтропийного декодирования, модуль 310 обратного квантования, модуль 312 обработки обратного преобразования, модуль 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 (DPB) декодированных снимков, модуль 360 применения режима, модуль 344 интер-предсказания и модуль 354 интра-предсказания. Модуль 344 интер-предсказания может быть или включать в себя модуль компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 100 на Фиг.2.
Как описано в отношении кодера 20, модуль 210 обратного квантования, модуль 212 обработки обратного преобразования, модуль 214 восстановления, контурный фильтр 220, буфер 230 (DPB) декодированных снимков, модуль 344 интер-предсказания и модуль 354 интра-предсказания также относятся к формированию «встроенного декодера» видеокодера 20. Соответственно, модуль 310 обратного квантования может быть идентичен по функции модулю 110 обратного квантования, модуль 312 обработки обратного преобразования может быть идентичен по функции модулю 212 обработки обратного преобразования, модуль 314 восстановления может быть идентичен по функции модулю 214 восстановления, контурный фильтр 320 может быть идентичен по функции контурному фильтру 220, а буфер 330 декодированных снимков может быть идентичен по функции буферу 230 декодированных снимков. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применимы соответственно и к соответствующим блокам и функциям видеодекодера 30.
Энтропийное декодирование
Модуль 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 кодированного снимка) и выполнения, например, энтропийного декодирования для данных 21 кодированного снимка, чтобы получить, например, квантованные коэффициенты 309 и/или параметры декодированного кодирования (не показаны на Фиг.3), например, любые или все из параметров интер-предсказания (например, индекс опорного снимка и вектор движения), параметр интра-предсказания (например, индекс или режим интра-предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра и/или другие синтаксические элементы. Модуль 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении модуля 270 энтропийного кодирования кодера 20. Модуль 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров интер-предсказания, параметра интра-предсказания и/или других элементов синтаксиса модулю 360 применения режима и других параметров другим модулям декодера 30. Видеодекодер 30 может принимать синтаксические элементы на уровне видеосегмента и/или уровне видеоблока. В дополнение или в качестве альтернативы сегментам и соответствующим синтаксическим элементам могут приниматься и/или использоваться группы клеток и/или клетки и соответствующие синтаксические элементы.
Обратное квантование
Модуль 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из данных 21 кодированного снимка (например, посредством синтаксического анализа и/или декодирования, например, посредством модуля 304 энтропийного декодирования) и применять на основе параметров квантования обратное квантование к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеосегменте (или клетке или группе клеток), для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена.
Обратное преобразование
Модуль 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также называемых коэффициентами 311 преобразования, и для применения преобразования к деквантованным коэффициентам 311, чтобы получить восстановленные остаточные блоки 213 в области дискретных отсчетов. Восстановленные остаточные блоки 213 также могут упоминаться как блоки 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или принципиально аналогичным процессом обратного преобразования. Модуль 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из данных 21 кодированного снимка (например, посредством синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое должно применяться к деквантованным коэффициентам 311.
Восстановление
Модуль 314 восстановления (например, сумматор 314) может быть выполнен с возможностью добавления восстановленного остаточного блока 313 к блоку 365 предсказания, чтобы получить восстановленный блок 315 в области дискретных отсчетов, например, посредством добавления значений дискретных отсчетов восстановленных остаточный блок 313 и значения дискретных отсчетов блока 365 предсказания.
Фильтрация
Модуль 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Модуль 320 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением дискретных отсчетов (SAO) или один или более других фильтров, например адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любое их сочетание. В одном примере модуль 220 контурного фильтра может содержать фильтр устранения блочности, фильтр SAO и фильтр ALF. Порядок процесса фильтрации может быть фильтром расформирования блоков, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным преобразователем). Этот процесс выполняется перед расформированием блоков. В другом примере процесс фильтрации расформирования блоков может также применяться к внутренним краям подблока, например краям аффинных подблоков, краям подблоков ATMVP, краям преобразования подблоков (SBT) и краям внутри подблока (ISP). Хотя модуль 320 контурного фильтра показан на Фиг.3 как контурный фильтр, в других конфигурациях модуль 320 контурного фильтра может быть реализован как постконтурный фильтр.
Буфер декодированных снимков
Декодированные видеоблоки 321 снимка затем сохраняются в буфере 330 декодированных снимков, который сохраняет декодированные снимки 331 в качестве опорных снимков для последующей компенсации движения для других снимков и/или для вывода, соответственно, отображения.
Декодер 30 выполнен с возможностью вывода декодированного снимка 311, например, через вывод 312 для представления или просмотра пользователю.
Предсказание
Модуль 344 интер-предсказания может быть идентичен модулю 244 интер-предсказания (в частности, модулю компенсации движения), а модуль 354 интра-предсказания может быть идентичен модулю 254 интер-предсказания по функции, и принимает решения по разбиению или разделению и выполняет предсказание на основе параметров разбиения и/или предсказания или соответствующей информации, принимаемой из кодированных данных 21 изображения (например, посредством анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Модуль 360 применения режима может быть выполнен с возможностью осуществления предсказания (интра- или интер-предсказания) для каждого блока на основе восстановленных снимков, блоков или соответствующих дискретных отсчетов (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда видеосегмент кодируется как сегмент с интра-кодированием (I), модуль 354 интра-предсказания модуля 360 применения режима конфигурируется для генерации блока 365 предсказания для блока снимка текущего видеосегмента на основе сигнального режима интра-предсказания и данных из ранее декодированные блоки текущего снимка. Когда видеоиснимок кодируется с интер-кодированием (то есть B или P) сегмент, модуль 344 интер-предсказания (например, модуль компенсации движения) модуля 360 применения режима конфигурируется для создания блоков 365 предсказания для видеоблока текущего видео. сегмент на основе векторов движения и других элементов синтаксиса, полученных от модуля 304 энтропийного декодирования. Для интер-предсказания блоки предсказания могут быть созданы из одного из опорных снимков в одном из списков опорных снимков. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя методики построения по умолчанию на основе опорных снимков, хранящихся в DPB 330. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп клеток (например, групп видеоклеток) и/или клеток (например, видеоклеток) в дополнение или альтернативно к сегментам (например, видеосегментам), например, видео может быть кодировано с использованием групп I, P или B клеток и/или клеток.
Модуль 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеосегмента посредством анализа векторов движения или связанной информации и других элементов синтаксиса, и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, модуль 360 применения режима использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков видеосегмента, типа сегмента интер-предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информация о конструкции для одного или более списков опорных снимков для сегмента, векторы движения для каждого видеоблока с интер-кодированием сегмента, статус интер-предсказания для каждого видеоблока с интер-кодированием сегмента и другие информация для декодирования видеоблоков в текущем видеосегменте. То же самое или подобное может применяться для вариантов осуществления или посредством вариантов осуществления с использованием групп клеток (например, групп видеоклеток) и/или клеток (например, видеоклеток) в дополнение или альтернативно к сегментам (например, видеосегментам), например, видео может быть кодировано с использованием групп I, P или B клеток и/или клеток.
Варианты осуществления видеодекодера 30, как показано на фиг.3, могут быть выполнены с возможностью разбиения и/или декодирования снимка с использованием сегментов (также называемых видео сегментами), при этом снимок может быть разделен на или декодировано с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, клеток (tile) (H.265/HEVC и VVC) или фрагментов (brick) (VVC)).
Варианты осуществления видеодекодера 30, как показано на фиг.3, могут быть выполнены с возможностью разбиения и/или декодирования снимка с использованием групп сегментов/клеток (также называемых группами клеток) и/или клеток (также называемых видеоклетками), при этом снимок может быть разделен на или декодировано с использованием одной или более групп сегментов/клеток (обычно не перекрывающихся), и каждая группа сегментов/клеток может содержать, например, один или более блоков (например, CTU) или одну или более клеток, при этом каждая клетка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.
Другие варианты видеодекодера 30 могут использоваться для декодирования данных 21 кодированного снимка. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без модуля 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь модуль 310 обратного квантования и модуль 312 обработки обратного преобразования, объединенные в один модуль.
Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после интерполяционной фильтрации, вывода вектора движения или контурной фильтрации может выполняться дополнительная операция, такая как обрезка или сдвиг, над результатом обработки интерполяционной фильтрации, вывода вектора движения или контурной фильтрации.
Следует отметить, что дополнительные операции могут применяться к получаемым векторам движения текущего блока (в том числе, но без ограничения, к векторам движения контрольной точки аффинного режима, векторам движения подблока в аффинном, планарном режимах, режиме 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.
Фиг.4 является схематической диаграммой устройства 400 видеокодирования согласно варианту осуществления раскрытия. Устройство 400 видеокодирования подходит для реализации раскрытых вариантов осуществления, как описано в данном документе. В варианте осуществления устройство 400 видеокодирования может быть декодером, таким как видеодекодер 30 с Фиг.1A или кодер, такой как видеокодер 20 с Фиг.1А.
Устройство 400 видеокодирования содержит входные порты 410 (или порты 410 ввода) и модули 420 приемника (Rx) для приема данных; процессор, логический модуль или центральный процессор (CPU) 430 для обработки данных; модули 440 передатчика (Tx) и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодирования может также содержать оптико-электрические (OE) компоненты и электрическо-оптические (EO) компоненты, подключенные к входным портам 410, модулям 420 приемника, модулям 440 передатчика и выходным портам 450 для выход или попадание оптических или электрических сигналов.
Процессор 430 реализован аппаратно и программно. Процессор 430 может быть реализован как одна или более микросхем ЦП, ядер (например, как многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 поддерживает связь с входными портами 410, модулями 420 приемника, модулями 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, разрешение модуля 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 видеокодирования и обеспечивает преобразование устройства 400 видеокодирования в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть, например, энергозависимой и/или долговременной и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM)).
Фиг.5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба из устройства-источника 12 и устройства-получателя 14 с Фиг.1 согласно примерному варианту осуществления.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
Память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502, используя шину 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные здесь способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь способы.
Устройство 500 может также включать в себя одно или более устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным воспринимать сенсорные вводы (касанием). Дисплей 518 может быть соединен с процессором 502 через шину 512.
Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из многочисленных шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один встраиваемый блок, такой как карта памяти, или множество блоков, таких как множество карт памяти. Таким образом, устройство 500 может быть реализовано в самых разнообразных конфигурациях.
Объединенное кодирование остатков цветности (JVET-M0305)
Объединенное кодирование остатков цветности предлагает режим кодирования остатков цветности, в котором один блок объединенных остатков используется для описания остатков обоих блоков Cb и Cr в одном и том же единичном блоке преобразования. Когда режим объединенных остатков активен, указанный объединенный остаток добавляется к блоку предсказания Cb и вычитается из блока предсказания Cr. На стороне кодера алгоритм использует среднее положительного остатка Cb и отрицательного остатка Cr в качестве входных данных для процесса преобразования и квантования.
Идея объединенного кодирования Cb и Cr основана на том факте, что остатки Cb и Cr обратно коррелируются друг с другом. В этом режиме имеется единственный остаток, указанный для двух блоков цветности единичного блока преобразования. Указанный остаток добавляется к блоку предсказания в первом канале (обычно представляющему Cb) и вычитается из блока предсказания во втором канале (обычно представляющему Cr).
Режим объединенных остатков указывается флагом в битовом потоке, если флаги кодированного блока (cbf) как для Cb, так и для Cr верны. Если режим активирован, то декодируется один остаточный блок. Синтаксис битового потока и процесс декодирования блоков объединенных остатков аналогичны остатку Cb в VTM-3. Остатки блоков Cr генерируются посредством инвертирования декодированного объединенного остатка. Поскольку одиночный остаток используется для представления остатков двух блоков, параметр смещения QP цветности уменьшается на 2, когда активен режим объединенных остатков цветности.
На стороне кодера в качестве объединенного остатка используется среднее положительного остатка Cb и отрицательного остатка Cr:
resJoint=(resCb - resCr) / 2
Кодирование объединенных остатков цветности с множеством режимов (JVET-N0282)
Кодирование объединенных остатков цветности с множеством режимов является расширением кодирования объединенных остатков цветности, предложенного в JVET-M0305. В отличие от JVET-M0305, в котором было предложено добавить один режим кодирования объединенных остатков цветности (определяемый как Cr=-Cb), в этом вкладе предлагаются три режима кодирования объединенных остатков цветности с различными коэффициентами смешивания (определяемыми как Cr=±Cb/2, Cr=±Cb, Cb=±Cr/2). Знак, используемый для выведения второго остатка цветности, кодируется в заголовке группы клеток. Использование режима объединенного кодирования цветности указывается флагом уровня TU, а выбранный режим неявно указывается флагами кодированных блоков цветности.
Поддерживаются три режима кодирования объединенных остатков цветности. Во всех этих трех режимах кодирования объединенных остатков цветности один блок преобразования цветности кодируется (с использованием кодирования остатков VTM 4), а другой блок дискретных отсчетов остатков цветности выводится с использованием простых арифметических операций.
Поддерживаются следующие три режима объединенного кодирования цветности:
Режим 1: Cb кодируется, а Cr выводится в соответствии с Cr=CSign * Cb/2;
Режим 2: Cb кодируется, а Cr выводится согласно Cr=CSign * Cb * ;
Режим 3: Cr кодируется, а Cb выводится в соответствии с Cb=CSign * Cr/2,
где CSign представляет знак, используемый для выведения второго блока остатка цветности. CSign указывается с использованием синтаксического элемента заголовка группы клеток; это либо -1, либо 1. Обратите внимание, что если CSign равен -1, режим 2 совпадает с режимом объединенного кодирования цветности, предложенным в JVET-M0305.
Использование кодирования объединенных остатков цветности указывается флагом уровня TU tu_joint_chroma_residual_flag. Этот флаг присутствует, если один или оба из двух синтаксических элементов флага кодированного блока цветности (CBF) равны 1. Если tu_joint_chroma_residual_flag равен 1, используется один из режимов кодирования объединенных остатков цветности. Используемый режим обозначается CBF цветности, как указано в следующей таблице:
Если выбран режим объединенного кодирования (QP) цветности для кодирования объединенного компонента цветности уменьшается на 1 (для режимов 1 и 3) или 2 (для режима 2).
На стороне кодера объединенный остаток цветности выводится посредством соответствующего понижающего микширования остатков Cb и Cr. Один из трех поддерживаемых режимов кодирования цветности выбирается предварительно на основе минимизации искажения микширования (т. е. искажения, полученного при первом понижающем микшировании остатков Cb и Cr и последующем восстановлении или повышающем микшировании остатков Cb и Cr из объединенного остатка цветности без квантования). Только предварительно выбранный режим проверяется как дополнительный режим в процессе выбора режима (т. е. с использованием преобразования, квантования и энтропийного кодирования). Из-за несложного предварительного выбора одного потенциально подходящего режима для каждого TU время кодирования практически не меняется по сравнению с JVET-M0305.
Синтаксический элемент заголовка группы клеток, который указывает знак (CSign) для выведения второго компонента цветности, определяется посредством анализа корреляции между подвергнутым фильтрации верхних частот версиями исходных компонентов Cb и Cr для группы клеток.
Кодирование объединенных остатков цветности
В тестах CE7-2.1/2 обсуждаются расширения методики кодирования объединенных остатков цветности, впервые описанной в JVET-M0305, посредством предложения более широкого диапазона параметров и режимов объединенного кодирования. В частности, обсуждается следующее:
1) CE7-2.1: Расширение VTM 5.0 за счет задействования трех режимов объединенного кодирования цветности вместо одного, как в конфигурации 1 JVET-N0282, сигнализируемых с использованием синтаксических элементов флага кодированного блока цветности (CBF). Эти режимы кодирования применяют упрощенные преобразования вращения между компонентами, как показано в таблице 1.
2) CE7-2.2: Аналогичен CE7-2.1, но позволяет передавать два сигнала объединенных остатков цветности (вместо одного) в случае режима объединенного кодирования цветности, сигнализируемого через CBFCb=1, CBFCr=1. Преобразование вращения, связанное с этим режимом, представляет собой преобразование Адамара, см. Таблицу 2.
Нормативное восстановление остатков цветности
Таким образом, в отличие от M0305, в котором было предложено добавить один режим кодирования объединенных остатков цветности в одном канале (задаваемый как Cr=-Cb), в расширениях поддерживаются три режима кодирования объединенных остатков цветности с разными коэффициентами смешения (микширования). Режимы дополнительно характеризуются знаком (то есть знаком весовых коэффициентов объединенного декодирования, CSign в JVET-N0282), используемым для выведения второго остатка цветности, который кодируется в заголовке сегмента. Использование (активация) режима объединенного кодирования цветности указывается флагом уровня TU tu_joint_cbcr_residual_flag, а выбранный режим неявно указывается посредством флагов CBF цветности. Флаг tu_joint_cbcr_residual_flag присутствует, если один или оба CBF цветности для TU равны 1.
Как и в VTM 5.0, может сигнализироваться смещение QP цветности (кодированное на уровне сегмента) специально для использования с конкретными режимами объединенного кодирования цветности. Когда соответствующий режим объединенного кодирования цветности (режимы 2 и 4 являются последующим описанием) активен в TU, это смещение QP цветности добавляется к применяемому QP цветности, полученному из яркости, во время квантования и декодирования этого TU. Для других режимов (режимы 1 и 3 в последующем описании) QP цветности выводятся таким же образом, как и для обычных блоков Cb или Cr.
Нормативный процесс восстановления остатков цветности (resCb и resCr) из переданных блоков преобразования (resJointC или, для CE7-2.2, resJointC1 и resJointC2) сведен в следующие таблицы.
Таблица 1. Восстановление остатков цветности в CE7-2.1. Значение CSign - это значение знака (+1 или -1), которое указывается в заголовке сегмента, resJointC[][] - это переданный остаток.
Таблица 2. Восстановление остатков цветности в CE7-2.2. Значение CSign является значением знака (+1 или -1), кодированным в заголовке группы клеток, resJointC1[][] и resJointC2[][] являются переданными остатками. Восстановление для случая tu_cbf_cb=0, tu_cbf_cr=1 зависит от значения флага joint_cbcr_alt_mode_flag, также передаваемого в заголовке сегмента.
1
Ненормативное определение объединенных остатков цветности в кодере
В рассматриваемой реализации кодера объединенные компоненты цветности выводятся, как поясняется ниже. В зависимости от режима (перечисленного в таблицах выше) resJointC{1,2} генерируются кодировщиком следующим образом:
Если режим равен 4 (преобразование Адамара, передаются два остатка), то объединенные остатки определяются по формуле
resJointC1[x][y]=(resCb[x][y] + CSign * resCr[x][y] ) / 2
resJointC2[x][y]=(resCb [x][y] - CSign * resCr[х][у] ) / 2.
В противном случае, если режим равен 2 (одиночный остаток с восстановлением Cb=C, Cr=CSign * C), объединенный остаток определяется по формуле
resJointC[x][y]=(resCb[x][y] + CSign * resCr[x][y]) / 2.
В противном случае, если режим равен 1 (одиночный остаток с восстановлением Cb=C, Cr=(CSign * C)/2), объединенный остаток определяется по формуле
resJointC[x][y]=(4 * resCb[x][y] + 2 * CSign * resCr[x][y])/5.
В противном случае (режим равен 3, т. е. одиночный остаток, восстановление Cr=C, Cb=(CSign * C)/2) объединенный остаток определяется по формуле
resJointC[x][y]=(4 * resCr[x][y] + 2*CSign * resCb[x][y])/5.
Более подробная информация о том, как кодировщик выбирает режим соединения по TU, приведена в разд. 2.4 JVET-N0282.
Первый вариант осуществления настоящего раскрытия
В первом варианте осуществления настоящего раскрытия сигнализация смещений QP заголовков Сегмента и PPS для компонента цветности выполняется независимо друг от друга в соответствии со следующими таблицами.
Здесь pic_parameter_set_rbsp относится к синтаксису RBSP набора параметров снимка;
где pps_cb_qp_offset и pps_cr_qp_offset задают смещения для параметра Qp'Y квантования яркости, используемого для выведения Qp'Cb и Qp'Cr, соответственно;
при этом значения pps_cb_qp_offset и pps_cr_qp_offset находятся в диапазоне от -12 до +12 включительно;
при этом, когда значение sps_chroma_format_idc равно 0, то pps_cb_qp_offset и pps_cr_qp_offset не используются в процессе декодирования и декодеры должны игнорировать их значение;
при этом, если они не представлены, предполагается, что значения pps_cb_qp_offset и pps_cr_qp_offset равны 0;
где sps_joint_cbcr_enabled_flag, равный 1, указывает, что объединенное кодирование остатков цветности задействовано для закодированной послойно видеопоследовательности (CLVS),
где sps_joint_cbcr_enabled_flag, равный 0, указывает, что объединенное кодирование остатков цветности не задействовано для CLVS;
при этом, при его отсутствии предполагается, что значение sps_joint_cbcr_enabled_flag равно 0.
где pps_joint_cbcr_qp_offset_value задает смещение параметра Qp'Y квантования яркости, используемого для выведения Qp'CbCr;
при этом значение pps_joint_cbcr_qp_offset_value находится в диапазоне от -12 до +12 включительно;
В предшествующем уровне техники флаг pps_slice_chroma_qp_offsets_present_flag сигнализируется в синтаксисе уровня PPS, который управляет тем, есть ли какие-либо дополнительные смещения, сигнализируемые в заголовке сегмента, то есть на стороне декодера декодер должен проверить значение pps_slice_chroma_qp_offsets_present_flag, чтобы определить, есть ли какие-либо дополнительные смещения, сигнализируемые в заголовке сегмента. По сравнению с предшествующим уровнем техники, в первом варианте осуществления флаг pps_slice_chroma_qp_offsets_present_flag больше не сигнализируется, другими словами, в заголовке сегмента всегда сигнализируются смещения, поэтому декодер знает, что в заголовке сегмента сигнализируются дополнительные смещения без проверки значения pps_slice_chroma_qp_offsets_present_flag, другими словами, синтаксис уровня PPS и синтаксис Заголовка Сегмента оба всегда будут включать в себя смещения. Таким образом, декодирование/сигнализация смещений QP цветности в заголовке сегмента становится проще.
Второй вариант осуществления настоящего раскрытия
Во втором варианте осуществления настоящего изобретения сигнализация смещений QP заголовков Сегмента и PPS для компонента цветности для режима JCCR; и сигнализация информации соотнесения цветности SPS для режима кодирования JCCR выполняется в зависимости от флага управления JCCR SPS в соответствии со следующими таблицами. Например, флаг управления JCCR SPS является флагом sps_joint_cbcr_enabled_flag, сигнализируемый синтаксисом уровня SPS, например, синтаксисом seq_parameter_set_rbsp.
Можно видеть, что значение «i» определяется на основе значения sps_joint_cbcr_enabled_flag, поэтому можно избежать избыточной сигнализации синтаксических элементов JCCR, когда инструмент JCCR не задействован.
Можно видеть, что сигнализация/декодирование pps_joint_cbcr_qp_offset зависит от sps_joint_cbcr_enabled_flag, то есть только когда значение sps_joint_cbcr_enabled_flag равно "истина" (true) (например, 1), pps_joint_cbcr_qp_offset будет сигнализирован или может быть декодирован. Из-за условной сигнализации pps_joint_cbcr_qp_offset необходимо передавать меньше информации, что может сэкономить ресурсы.
Здесь следует отметить, что sps_joint_cbcr_enabled_flag, равный 1, указывает, что объединенное кодирование остатков цветности включено для закодированной послойно видеопоследовательности (CLVS), sps_joint_cbcr_enabled_flag, равное 0, указывает, что объединенное кодирование остатков цветности не задействовано для закодированной послойно видеопоследовательности; при этом, при его отсутствии предполагается, что значение sps_joint_cbcr_enabled_flag равно 0.
Далее следует отметить, что где seq_parameter_set_rbsp относится к синтаксису Необработанной Полезной Нагрузки Байтовой Последовательности (Raw Byte Sequence Payload (RBSP)) набору параметров последовательности; где sps_num_points_in_qp_table_minus1[i] плюс 1 задает количество точек, используемых для описания i-й таблицы соотнесения QP цветности; где значение sps_num_points_in_qp_table_minus1[i] находится в диапазоне от 0 до 36; где при его отсутствии предполагается, что значение sps_num_points_in_qp_table_minus1[0] равно 0.
Ниже приводится объяснение применений способа кодирования, и способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.
Фиг.6 - это блок-схема, показывающая систему 3100 предоставления контента для реализации службы распространения контента. Эта система 3100 предоставления контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и, в необязательном порядке, включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, помимо прочего, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любое их сочетание и т.п.
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает кодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, помимо прочего, камеру, смартфон или планшет, компьютер или портативный компьютер, систему видеоконференцсвязи, PDA, установленное на транспортном средстве устройство или сочетание любого из них или тому подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя звук (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования звука. Для некоторых практических сценариев устройство 3102 захвата распределяет кодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на терминальное устройство 3106.
В системе 3100 предоставления контента терминальное устройство 310 принимает и воспроизводит кодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, установленное в транспортном средстве устройство 3124, или их сочетание, или подобное, способное декодировать вышеупомянутые кодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, как описано выше. Когда кодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда кодированные данные включают в себя звук, аудиодекодер, включенный в терминальное устройство, получает приоритет для выполнения обработки декодирования звука.
Для терминального устройства с дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеорегистратора (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или установленное в транспортном средстве устройство 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, например STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования снимка или устройство декодирования снимка, как показано в вышеупомянутых вариантах осуществления.
Фиг.7 - схема, показывающая структуру примера терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, модуль 3202 обработки протокола анализирует протокол передачи потока. Протокол включает в себя, помимо прочего, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP), или любое их сочетание или тому подобное.
После того, как модуль 3202 обработки протокола обработает поток, создается файл потока. Файл выводится в модуль 3204 демультиплексирования. Модуль 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования модуля 3204 демультиплексирования.
Посредством обработки демультиплексирования генерируются элементарный поток (ES) видео, ES аудио и, в необязательном порядке, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерации видеокадра и подает эти данные в модуль 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES для генерации аудиокадра и подает эти данные в модуль 3212 синхронизации. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на Фиг.7) перед подачей его в модуль 3212 синхронизации. Точно так же аудиокадр может сохраняться в буфере (не показан на Фиг.7) перед подачей его в модуль 3212 синхронизации.
Модуль 3212 синхронизации синхронизирует видеокадр и аудиокадр и подает видео/аудио на видео/аудио дисплей 3214. Например, модуль 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может закодироваться в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки самого потока данных.
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры, синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования снимка, либо устройство декодирования снимка в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.
Кроме того, Фиг.8 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, при этом способ выполняется декодером, согласно одному варианту осуществления настоящего раскрытия. На Фиг.8 показано, что способ обратного квантования текущего блока снимка, при этом способ выполняется декодером, включает в себя этапы:
(1601) прием битового потока; (1603) получение флага управления объединенными остатками компонентов цветности (JCCR) из битового потока; (1605) получение информации соотнесения цветности из битового потока на основе флага управления JCCR; (1607) получение по меньшей мере одного смещения параметра квантования (QP) цветности из битового потока на основе флага управления JCCR; (1609) получение значения QP для текущего блока цветности на основе полученной информации соотнесения цветности и по меньшей мере одного полученного смещения QP цветности; и (1611) выполнение обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Кроме того, на Фиг.9 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, при этом способ выполняется декодером, согласно дополнительному варианту осуществления настоящего раскрытия. На Фиг.9, способ обратного квантования текущего блока снимка, при этом способ выполняется декодером, и показано, что способ содержит следующие этапы: (1651) прием битового потока, при этом битовый поток содержит синтаксис Заголовка Сегмента и синтаксис PPS; (1653) получение синтаксических элементов из синтаксиса PPS, при этом полученные синтаксические элементы содержат смещения параметров квантования (QP) цветности; (1655) получение информации смещения QP цветности из Заголовка Сегмента, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS; (1657) определение значения QP для текущего блока цветности в зависимости от смещения QP цветности, полученного из синтаксиса PPS, и информации смещения QP цветности, полученной из синтаксиса Заголовка Сегмента; и (1659) выполнение обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Более того, Фиг.10 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, при этом способ выполняется кодером, согласно одному варианту осуществления настоящего раскрытия. На Фиг.10 показано, что способ обратного квантования текущего блока снимка, при этом способ выполняется кодером, включает в себя следующие этапы: (2601) кодирование флага управления объединенными остатками компонентов цветности (JCCR) в битовый поток; (2603) кодирование информации соотнесения цветности в битовый поток на основе флага управления JCCR; (2605) кодирование смещения по меньшей мере одного параметра квантования (QP) цветности в битовый поток на основе флага управления JCCR; и (2607) предоставление битового потока.
Более того, Фиг.11 иллюстрирует блок-схему последовательности операций способа обратного квантования текущего блока снимка, причем этот способ выполняется кодером согласно настоящему раскрытию. На Фиг.11 показано, что способ обратного квантования текущего блока снимка, при этом способ выполняется кодером, включает в себя следующие этапы:
(2651) кодирование синтаксических элементов из Заголовка Сегмента и синтаксиса PPS в битовый поток, при этом синтаксические элементы содержат смещения параметров квантования (QP) цветности; (2653) кодирование информации смещения QP цветности из Заголовка Сегмента в битовый поток, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS; и (2655) предоставление битового потока.
Кроме того, Фиг.12 иллюстрирует декодер 30 согласно одному варианту осуществления настоящего изобретения. Декодер 30 по Фиг.12 содержит: модуль 3001 приема, выполненный с возможностью приема битового потока; первый модуль 3003 получения, выполненный с возможностью получения флага управления объединенными остатками компонентов цветности (JCCR) из битового потока; второй модуль 3005 получения, выполненный с возможностью получения информации соотнесения цветности из битового потока на основе флага управления JCCR; третий модуль 3007 получения, выполненный с возможностью получения по меньшей мере одного смещения параметра квантования (QP) цветности из битового потока на основе флага управления JCCR; четвертый модуль 3009 получения, выполненный с возможностью получения значения QP для текущего блока цветности на основе полученной информации соотнесения цветности и по меньшей мере одного полученного смещения QP цветности; и блок (3011) обратного квантования, выполненный с возможностью выполнения обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Кроме того, Фиг.13 иллюстрирует декодер 30 согласно другому варианту осуществления настоящего раскрытия. Декодер 30 по Фиг.13 содержит: модуль 3051 приема, выполненный с возможностью приема битового потока, при этом битовый поток содержит синтаксис Заголовка Сегмента и синтаксис PPS; первый модуль 3053 получения, выполненный с возможностью получения синтаксических элементов из синтаксиса PPS, при этом полученные синтаксические элементы содержат смещения параметров квантования (QP) цветности; второй модуль 3055 получения, выполненный с возможностью получения информации смещения QP цветности из Заголовка Сегмента, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS; модуль 3057 определения, выполненный с возможностью определения значения QP для текущего блока цветности в зависимости от смещения QP цветности, полученного из синтаксиса PPS, и информации смещения QP цветности, полученной из синтаксиса Заголовка Сегмента; и модуль 3059 обратного квантования, выполненный с возможностью выполнения обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Кроме того, Фиг.14 показан кодер 20 согласно одному варианту осуществления настоящего раскрытия. Кодер 20 с Фиг.14 содержит: первый модуль 2001 кодирования, выполненный с возможностью кодирования флага управления объединенными остатками компонентов цветности (JCCR) в битовый поток; второй модуль 2003 кодирования, выполненный с возможностью кодирования информации соотнесения цветности в битовый поток на основе флага управления JCCR; третий модуль 2005 кодирования, выполненный с возможностью кодирования по меньшей мере одного смещения параметра квантования (QP) цветности в битовый поток на основе флага управления JCCR; и модуль 2007 предоставления, выполненный с возможностью предоставления битового потока.
Кроме того, Фиг.15 показан кодер 20 согласно другому варианту осуществления настоящего раскрытия. Кодер 20 с Фиг.15 содержит: первый модуль 2051 кодирования, выполненный с возможностью кодирования синтаксических элементов из Заголовка Сегмента и синтаксиса PPS в битовый поток, при этом синтаксические элементы содержат смещения параметров квантования (QP) цветности;
второй модуль 2053 кодирования, выполненный с возможностью кодирования информации смещения QP цветности из Заголовка Сегмента в битовый поток, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS; и модуль 2055 предоставления, выполненный с возможностью предоставления битового потока.
Математические операторы
Математические операторы, используемые в настоящей заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и деление с действительным знаком. Правила нумерации и подсчета обычно начинаются с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т.д.
Арифметические операторы
Следующие арифметические операторы определены следующим образом:
Логические операторы
Следующие логические операторы определены следующим образом:
x && y Булево логическое "и" для x и y
х || y Булево логическое "или" для x и y
! Булево логическое «не»
x?y:z Если x равен ИСТИНЕ или не равен 0, вычисляется значение y; в противном случае вычисляется значение z.
Операторы отношения
Следующие операторы отношения определены следующим образом:
> Больше чем
>= Больше или равно
< Менее чем
<= Меньше или равно
== Равно
!= Не равно
Когда оператор отношения применяется к элементу или переменной синтаксиса, которой присвоено значение «na» (не применимо), значение «na» обрабатывается как отдельное значение для элемента или переменной синтаксиса. Значение «na» не считается равным любому другому значению.
Побитовые операторы
Следующие побитовые операторы определены следующим образом:
& Побитовое "и". При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется посредством добавления более значимых битов, равных 0.
| Побитовое "или". При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется посредством добавления более значимых битов, равных 0.
^ Побитовое «исключающее ИЛИ». При работе с целочисленными аргументами оперирует дополнительным до двух представлением целочисленного значения. При работе с двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется посредством добавления более значимых битов, равных 0.
x >> y Арифметический сдвиг вправо целочисленного представления x с двоичным дополнением на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Биты, сдвинутые в старшие значащие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB x до операции сдвига.
x << y Арифметический сдвиг влево целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Биты, сдвинутые в младшие значащие биты (LSB) в результате сдвига влево, имеют значение, равное 0.
Операторы присваивания
Следующие арифметические операторы определены следующим образом:
= Оператор присваивания
++ Приращение, т.е. x++ эквивалентно x=x+1; при использовании в индексе массива оценивается в значение переменной до операции приращения.
-- Уменьшение, т.е. x-- эквивалентно x=x-1; при использовании в индексе массива оценивает значение переменной до операции уменьшения.
+= Приращение на указанную величину, т.е. x+=3 эквивалентно x=x+3, а x+=(-3) эквивалентно x=x+(-3).
-= Уменьшение на указанную величину, т.е. x-=3 эквивалентно x=x-3, а x-=(-3) эквивалентно x=x-(-3).
Обозначение диапазона
Следующее обозначение используется для указания диапазона значений:
x=y..z x принимает целочисленные значения от y до z, включительно, где x, y и z являются целыми числами, и z больше y.
Математические функции
Определены следующие математические функции:
Abs(x)=
Asin(x) тригонометрическая функция арксинуса, работающая с аргументом x, который находится в диапазоне от -1,0 до 1,0 включительно, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах счисления радиан.
Atan(x) тригонометрическая функция арктангенса, работающая с аргументом x, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах счисления радиан.
Ceil(x) наименьшее целое число, большее или равное x.
Clip1Y(x)=Clip3(0, (1 << BitDepthY) - 1, x)
Clip1C(x)=Clip3(0, (1 << BitDepthC) - 1, x)
Cos(x) тригонометрическая функция косинуса, работающая с аргументом x в единицах счисления радиан.
Floor(x) наибольшее целое количество, меньшее или равное x.
Ln(x) натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма 2,781 281 828…).
Log2(x) логарифм x по основанию 2.
Log10(x) логарифм x по основанию 10.
Min(x, y)=
Max(x, y)=
Round(x)=Sign(x)*Floor(Abs(x)+)
Sign(x)=
Sin(x) тригонометрическая функция синуса, работающая с аргументом x в единицах счисления радиан.
Sqrt(x)=
Swap(x, y)=(y, x)
Tan(x) тригонометрическая функция тангенса, работающая с аргументом x в единицах счисления радиан.
Порядок приоритетности операций
Когда порядок приоритетности в выражении явно не указан с помощью круглых скобок, применяются следующие правила:
- Операции с более высоким приоритетом оцениваются перед любой операцией с более низким приоритетом.
- Операции с одинаковым приоритетом оцениваются последовательно слева направо.
В таблице ниже указан приоритет операций от наивысшего к низшему; более высокая позиция в таблице указывает на более высокий приоритет.
Для тех операторов, которые также используются в языке программирования C, порядок приоритетности, используемый в этом описании, является таким же, что и в языке программирования C.
Таблица: Приоритетность операций от наивысшего (в верхней части таблицы) до низшего (в нижней части таблицы)
", "x%y"
"
Текстовое описание логических операций
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
если(условие 0)
операторная конструкция 0
иначе если(условие 1)
операторная конструкция 1
…
иначе /* информативный комментарий по оставшемуся условию */
операторная конструкция n
может быть описано следующим образом:
… как указано ниже /… применяется следующее:
- Если условие 0, операторная конструкция 0
- Иначе, Если условие 1, операторная конструкция 1
-…
-- Иначе (информативный комментарий по оставшемуся условию), операторная конструкция n.
Каждая операторная конструкция «Если… Иначе, Если… Иначе,…» в тексте вводится словами «… как указано ниже» или «…применяется следующее», за которым сразу следует «Если…». Последним условием «Если… Иначе Если… Иначе,…» всегда является «Иначе,…». Чередование определений «Если… Иначе Если… Иначе,…» может быть идентифицировано посредством сопоставления «… как указано ниже» или «… применяется следующее» с завершающим «Иначе,…».
В тексте операторная конструкция логических операций, которая математически бы описывалась в следующей форме:
если(условие 0a && условие 0b)
операторная конструкция 0
иначе если(условие 1a || условие 1b)
операторная конструкция 1
…
иначе
операторная конструкция n
может быть описано следующим образом:
… как указано ниже /… применяется следующее:
-- Если все из следующих условий истинны, операторная конструкция 0:
- условие 0a
- условие 0b
- Иначе, если истинными являются одно или более из следующих условий, операторная конструкция 1:
- условие 1a
- условие 1b
-…
- Иначе, операторная конструкция n
В тексте операторная конструкция логических операций, которая математически бы описывалась в следующей форме:
если(условие 0)
операторная конструкция 0
если(условие 1)
операторная конструкция 1
может быть описано следующим образом:
Когда условие 0, операторная конструкция 0
Когда условие 1, операторная конструкция 1.
Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодирования, следует отметить, что варианты осуществления системы 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.
Варианты осуществления, например кодера 20 и декодера 30, а также описанные в данном документе функции, например применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, встроенным программным обеспечением или любым их сочетанием. Если реализованы в программном обеспечении, функции могут храниться на машиночитаемом носителе или передаваться по среде связи в виде одной или более инструкций или кода выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например носителю данных, или среде передачи, включая в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются долговременными, или (2) средам передачи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
В качестве примера, но не ограничений, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновая печь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновая связь, включены в определение носителя. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого направлены на долговременные материальные носители данных. Диск и диск, используемые здесь, включают компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным способом, а диски воспроизводят данные оптически с помощью лазеров. Объединения вышеперечисленного также должны быть включены в объем машиночитаемых носителей.
Инструкции могут выполняться одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые логические матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый здесь, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных здесь методик. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, сконфигурированных для кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
Методики этого раскрытия могут быть реализованы в большом количестве устройств или устройств, включая беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включая один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.
Настоящее раскрытие обеспечивает следующие девятнадцать дополнительных аспектов:
Первый аспект способа обратного квантования текущего блока снимка, в котором способ выполняется декодером, и способ содержит:
прием битового потока, при этом битовый поток содержит синтаксис Заголовка Сегмента и синтаксис PPS;
получение синтаксических элементов из синтаксиса PPS, при этом полученные синтаксические элементы содержат смещения параметров квантования цветности (QP);
получение информации смещения QP цветности из Заголовка Сегмента, при этом информация смещения QP получена независимо от каких-либо синтаксических элементов PPS в синтаксисе PPS;
определение значения QP для текущего блока цветности в зависимости от смещений QP цветности, полученных из синтаксиса PPS, и информации смещения QP цветности, полученной из синтаксиса Заголовка Сегмента;
выполнение обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Второй аспект способа согласно первому аспекту, в котором по меньшей мере одно смещение QP цветности, полученное из синтаксиса PPS, содержит: pps_cb_qp_offset, pps_cr_qp_offset, pps_joint_cbcr_qp_offset и cu_chroma_qp_offset_enabled_flag.
Третий аспект способа согласно второму аспекту, в котором, если значение cu_chroma_qp_offset_enabled_flag истинно (например, значение cu_chroma_qp_offset_enabled_flag равно 1), смещения QP цветности, полученные из синтаксиса PPS, дополнительно содержат: cu_chroma_qp_offset_subdiv, chroma_qp_offset_list_len_minus1, cb_qp_offset[i], cr_qp_offset_list[i] и joint_cbcr_qp_offset_list[i], где 0 ≤ i ≤ chroma_qp_offset_list_len_minus1 и i является целым числом.
Четвертый аспект способа согласно любому из аспектов с первого по третий, в котором информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, содержит: slice_cb_qp_offset и slice_cr_qp_offset.
Пятый аспект способа согласно четвертому аспекту, в котором, если значение sps_joint_cbcr_enabled_flag (например, элемент синтаксиса уровня SPS, содержащийся в битовом потоке) является истинным (например, значение sps_joint_cbcr_enabled_flag равно 1), информация смещения QP цветности, полученная из синтаксиса Заголовка Сегмента, дополнительно содержит: slice_joint_cbcr_qp_offset.
Шестой аспект способа в соответствии с любым из аспектов с первого по пятый, в котором синтаксис PPS содержит следующую структуру:
Седьмой аспект способа в соответствии с любым из аспектов с первого по шестой, в котором синтаксис Заголовка Сегмента содержит следующую структуру:
Восьмой аспект способа согласно любому из аспектов с первого по седьмой, в котором флаг pps_slice_chroma_qp_offsets_present_flag опущен в синтаксисе PPS; или
при этом заголовок сегмента и синтаксис PPS всегда содержат элементы, относящиеся к смещению QP цветности.
Девятый аспект способа обратного квантования текущего блока снимка, в котором способ выполняется декодером, и способ содержит:
прием битового потока;
получение флага управления объединенными остатками компонентов цветности (JCCR) из битового потока;
получение информации соотнесения цветности из битового потока на основе флага управления JCCR;
получение смещений параметров квантования (QP) цветности из битового потока на основе флага управления JCCR;
получение значения QP для текущего блока цветности на основе полученной информации соотнесения цветности и полученных смещений QP цветности;
выполнение обратного квантования в отношении текущего блока цветности с использованием определенного значения QP.
Десятый аспект способа согласно девятому аспекту, в котором битовый поток содержит синтаксис уровня SPS, и флаг управления JCCR получен из синтаксиса уровня SPS.
Одиннадцатый аспект способа согласно девятому или десятому аспекту, в котором флаг управления JCCR представляет собой sps_joint_cbcr_enabled_flag.
Двенадцатый аспект способа в соответствии с любым из аспектов с девятого по одиннадцатый, в котором информация соотнесения цветности содержит delta_qp_in_val_minus1[i][j] и delta_qp_out_val[i][j], и информация соотнесения цветности получена из синтаксиса уровня SPS, содержащегося битовым потоком.
Тринадцатый аспект способа по любому одному из аспектов с девятого по двенадцатый, в котором синтаксис уровня SPS содержит следующую структуру:
.
Четырнадцатый аспект способа согласно любому из аспектов с девятого по тринадцатый, в котором получение смещений QP цветности из битового потока на основе флага управления JCCR содержит:
получение, на основе флага управления JCCR, смещения QP цветности из синтаксиса уровня PPS битового потока.
Пятнадцатый аспект способа в соответствии с четырнадцатым аспектом, в котором синтаксис уровня PPS содержит следующую структуру:
Шестнадцатый аспект декодера, содержащего схему обработки для осуществления способа в соответствии с любым из аспектов с первого по пятнадцатый.
Семнадцатый аспект компьютерного программного продукта, содержащего программный код для выполнения способа в соответствии с любым из предыдущих аспектов при его исполнении на компьютере или процессоре.
Восемнадцатый аспект декодера, содержащего:
один или более процессоров; и
долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, при этом программы при их исполнении процессорами конфигурируют декодер для выполнения способа в соответствии с любым из предыдущих аспектов.
Девятнадцатый аспект долговременного машиночитаемого носителя данных, содержащего программный код, который при его исполнении компьютерным устройством предписывает компьютерному устройству выполнять способ любого из предыдущих аспектов.
название | год | авторы | номер документа |
---|---|---|---|
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ ВЫПОЛНЕНИЯ УСТРАНЕНИЯ БЛОЧНОСТИ ЦВЕТНОСТИ ДЛЯ БЛОКОВ, ИСПОЛЬЗУЮЩИХ КОДИРОВАНИЕ ОБЪЕДИНЕННОЙ ЦВЕТНОСТИ | 2020 |
|
RU2816918C2 |
Способ и устройство для видеокодирования | 2020 |
|
RU2782516C1 |
ВИДЕОКОДЕР, ВИДЕОДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ | 2019 |
|
RU2793802C2 |
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ О СИГНАЛИЗАЦИИ СИНТАКСИСА ВЫСОКОГО УРОВНЯ | 2021 |
|
RU2826547C1 |
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ | 2020 |
|
RU2824186C2 |
ПАРАМЕТР КВАНТОВАНИЯ ДЛЯ ДЕБЛОКИРУЮЩЕЙ ФИЛЬТРАЦИИ ЦВЕТНОСТИ | 2020 |
|
RU2822510C1 |
СПОСОБ И АППАРАТНЫЙ КОМПОНЕНТ СИГНАЛИЗАЦИИ ЧИСЛА КАНДИДАТОВ ДЛЯ РЕЖИМА СЛИЯНИЯ | 2021 |
|
RU2823267C1 |
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ДЛЯ СПИСКА ОБЪЕДИНЕНИЯ IBC | 2020 |
|
RU2817030C2 |
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ | 2021 |
|
RU2832719C1 |
ГИБКИЕ РАЗБИЕНИЯ ТАЙЛОВ | 2019 |
|
RU2760850C1 |
Изобретение относится к области обработки снимков и, более конкретно, к способу и устройству для сигнализации параметров квантования цветности. Технический результат заключается в обеспечении улучшенной степени сжатия видео с минимальными потерями качества снимка. Такой результат достигается за счет приема битового потока; получения флага управления объединенными остатками компонентов цветности (JCCR) из битового потока; получения информации соотнесения цветности из битового потока на основе флага управления JCCR; получения по меньшей мере одного смещения параметра квантования (QP) цветности из битового потока на основе флага управления JCCR; получения значения QP для текущего блока цветности на основе полученной информации соотнесения цветности и по меньшей мере одного полученного смещения QP цветности; выполнения обратного квантования в отношении текущего блока цветности с использованием определенного значения QP. 6 н. и 9 з.п. ф-лы, 16 ил.
1. Способ обратного квантования текущего блока снимка, при этом способ выполняется декодером и содержит этапы, на которых:
принимают битовый поток;
получают флаг управления объединенными остатками компонентов цветности (JCCR) из битового потока;
получают информацию соотнесения цветности из битового потока на основе флага управления JCCR;
получают по меньшей мере одно смещение параметра квантования (QP) цветности из битового потока на основе флага управления JCCR;
получают значение QP для текущего блока цветности на основе полученной информации соотнесения цветности и по меньшей мере одного полученного смещения QP цветности;
выполняют обратное квантование в отношении текущего блока цветности с использованием этого определенного значения QP.
2. Способ по п.1, в котором битовый поток содержит синтаксис уровня SPS, и флаг управления JCCR получен из синтаксиса уровня SPS.
3. Способ по п.1 или 2, в котором флаг управления JCCR является флагом sps_joint_cbcr_enabled_flag.
4. Способ по п.3, в котором если значение sps_joint_cbcr_enabled_flag равно 1, то по меньшей мере одно полученное смещение QP цветности задано посредством slice_joint_cbcr_qp_offset.
5. Способ по любому одному из пп.2-4, в котором синтаксис уровня SPS содержит следующую структуру:
6. Способ по любому одному из пп.1-5, в котором получение по меньшей мере одного смещения QP цветности из битового потока на основе флага управления JCCR содержит этап, на котором получают на основе флага управления JCCR по меньшей мере одно смещение QP цветности из синтаксиса уровня набора параметров снимка (PPS) битового потока.
7. Способ кодирования текущего блока снимка, при этом способ выполняется кодером и способ содержит этапы, на которых:
кодируют флаг управления объединенными остатками компонентов цветности (JCCR) в битовый поток;
кодируют информацию соотнесения цветности в битовый поток на основе флага управления JCCR;
кодируют по меньшей мере одно смещение параметра квантования (QP) цветности в битовый поток на основе флага управления JCCR;
предоставляют битовый поток.
8. Способ по п.7, в котором битовый поток содержит синтаксис уровня SPS, и флаг управления JCCR кодирован в синтаксис уровня SPS.
9. Способ по п.7 или 8, в котором флаг управления JCCR является флагом sps_joint_cbcr_enabled_flag.
10. Способ по п.9, в котором если значение sps_joint_cbcr_enabled_flag равно 1, то по меньшей мере одно кодированное смещение QP цветности задано посредством slice_joint_cbcr_qp_offset.
11. Способ по любому одному из пп.7-10, в котором кодирование по меньшей мере одного смещения QP цветности в битовый поток на основе флага управления JCCR содержит этап, на котором кодируют, на основе флага управления JCCR, по меньшей мере одно смещение QP цветности в синтаксис уровня набора параметров снимка (PPS) битового потока.
12. Машиночитаемый носитель, содержащий программный код для выполнения способа по любому одному из предшествующих пп.1-6 при его исполнении на компьютере или процессоре.
13. Машиночитаемый носитель, содержащий программный код для выполнения способа по любому одному из предшествующих пп.7-11 при его исполнении на компьютере или процессоре.
14. Декодер, содержащий:
один или более процессоров; и
долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, при этом программы при их исполнении процессорами конфигурируют декодер для выполнения способа по любому одному из предшествующих пп.1-6.
15. Кодер, содержащий:
один или более процессоров; и
долговременный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для исполнения процессорами, при этом программы при их исполнении процессорами конфигурируют кодер для выполнения способа по любому одному из предшествующих пп.7-11.
Bross B | |||
et al | |||
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
JVET MEETING; 20190703 - 20190712; GOTHENBURG; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16), no | |||
Перекатываемый затвор для водоемов | 1922 |
|
SU2001A1 |
Adarsh K |
Авторы
Даты
2025-01-14—Публикация
2020-09-23—Подача