ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ
[0001] Данная патентная заявка испрашивает приоритет по предварительной патентной заявке США №. 62/888,267, поданной 16 августа 2019 г. Jianle Chen, et al., и озаглавленной «Ограничения для ALF APS», которая включена сюда посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее раскрытие в целом относится к кодированию видео и, в частности, к эффективной сигнализации параметров инструмента кодирования, используемых для сжатия видеоданных при кодировании видео.
УРОВЕНЬ ТЕХНИКИ
[0003] Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими потребностями в видео более высокого качества, желательны улучшенные методики сжатия и декомпрессии, которые улучшают степень сжатия с минимальными потерями качества изображения или вообще без таких потерь.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] В одном варианте осуществления раскрытие включает в себя способ, реализованный в декодере, причем способ включает в себя: прием приемником декодера битового потока, содержащего набор параметров адаптации (APS) адаптивного контурного фильтра (ALF), включающий в себя сигнальный флаг яркостного фильтра ALF. (alf_luma_filter_signal_flag) и сигнальный флаг фильтра цветности ALF (alf_chroma_filter_signal_flag), где по меньшей мере один из alf_luma_filter_signal_flag или alf_chroma_filter_signal_flag равен единице; и декодирование процессором декодера слайса на основе параметров ALF в ALF APS.
[0005] APS может использоваться для хранения данных, относящихся к нескольким слайсам, но не ко всему изображению. APS может содержать параметры ALF. Параметры ALF могут управлять применением процесса ALF только к компонентам яркости в слайсе, только к компонентам цветности в слайсе или к обоим компонентам яркости и компонентам цветности в слайсе. ALF APS может содержать флаги, указывающие тип данных, содержащихся в APS. Однако сигнализация на основе флагов, связанная с ALF APS, неэффективна в некоторых системах кодирования видео. Например, можно установить флаги, чтобы указать, что ALF APS содержит только набор фильтров яркости, только набор фильтров цветности, набор фильтров яркости и набор цветов цветности или ни набор фильтров яркости, ни набор фильтров цветности. ALF APS, который не содержит наборов фильтров яркости и цветности, бесполезен. Тем не менее, стандартизированный кодек должен поддерживать любую опцию, разрешенную стандартом. Таким образом, использование ALF APS, не содержащего наборов фильтров яркости и цветности, приводит к неэффективной конструкции кодека, который должен поддерживать вариант, который не должен возникать. В настоящих примерах применяются ограничения для повышения эффективности сигнализации ALF APS и результирующих конструкций кодеков. Например, ALF APS ограничивается таким образом, что один или оба флага сигнала фильтра яркости ALF и флага сигнала фильтра цветности ALF в ALF APS установлены в единицу. Это гарантирует, что ALF APS включает в себя по меньшей мере набор фильтров яркости или набор фильтров цветности и, следовательно, не является пустым. В качестве другого примера заголовок слайса, связанный с слайсом, может содержать ALF APS ID компонента яркости, который указывает, что ALF APS содержит соответствующий набор фильтров яркости. Когда это происходит, может применяться ограничение, заключающееся в том, что флаг сигнала фильтра яркости ALF в ALF APS устанавливается равным единице. Это гарантирует, что ALF APS содержит данные яркости, когда заголовок слайса ссылается на ALF APS по отношению к данным яркости. В качестве другого примера, заголовок слайса, связанный с слайсом, может содержать ALF APS ID компонента цветности , который указывает, что ALF APS содержит соответствующий набор фильтров цветности. Когда это происходит, может применяться ограничение, заключающееся в том, что флаг сигнала фильтра цветности ALF в ALF APS устанавливается равным единице. Это гарантирует, что ALF APS содержит данные цветности, когда заголовок слайса ссылается на ALF APS по отношению к данным цветности. Эти ограничения могут гарантировать, что ненужная сигнализация ALF APS будет исключена, и что ALF APS будет содержать данные, необходимые для фильтрации декодированных слайсов. Такие ограничения могут быть проверены гипотетическим эталонным декодером (HRD) в кодере. HRD может проверить закодированный битовый поток на соответствие стандартам, чтобы гарантировать, что эти проблемные случаи не возникнут. Следовательно, эти ограничения позволяют декодеру предположить, что такие проблемные случаи не возникали в битовом потоке. Следовательно, декодер может быть упрощен, чтобы избежать поддержки таких проблемных случаев. Соответственно, настоящие ограничения предотвращают ошибки, повышают эффективность кодирования и/или уменьшают сложность кодера и/или декодера. Таким образом, настоящие примеры могут увеличить функциональные возможности системы кодирования видео при одновременном снижении использования сетевых ресурсов, ресурсов памяти и/или ресурсов обработки в кодере и/или декодере.
[0006] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой флаг alf_luma_filter_signal_flag указывает, передается ли набор фильтров яркости в ALF APS.
[0007] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой значение alf_luma_filter_signal_flag ALF APS ограничено равным единице, когда идентификатор (ID) ALF APS компонента яркости в заголовке слайса (slice_alf_aps_id_luma[ i ]), связанный со слайсом, равен APS ID в ALF APS.
[0008] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой slice_alf_aps_id_luma[i] задает APS ID (adaptation_parameter_set_id) i-го ALF APS, на который ссылается компонент яркости слайса.
[0009] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой флаг alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS.
[0010] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой значение alf_chroma_filter_signal_flag ALF APS ограничено равным единице, когда ALF APS ID компонента цветности в заголовке слайса, связанном с слайсом (slice_alf_aps_id_chroma) равен APS ID в ALF APS.
[0011] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой slice_alf_aps_id_chroma задает adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайса.
[0012] В варианте осуществления раскрытие включает в себя способ, реализованный в кодере, включающий: кодирование процессором кодера слайса в битовый поток как часть закодированной видеопоследовательности; определение процессором параметров ALF для применения к слайсу; кодирование процессором параметров ALF в набор параметров адаптации ALF (APS) в битовом потоке, причем ALF APS включает в себя флаг сигнала фильтра яркости ALF (alf_luma_filter_signal_flag) и флаг сигнала фильтра цветности ALF (alf_chroma_filter_signal_flag), при этом по меньшей мере один из alf_luma_filter_signal_flag или alf_chroma_filter_signal_flag равен единице; и сохранение в памяти, связанной с процессором, битового потока для передачи в декодер.
[0013] APS может использоваться для хранения данных, относящихся к нескольким слайсам, но не ко всему изображению. APS может содержать параметры ALF. Параметры ALF могут управлять применением процесса ALF только к компонентам яркости в слайсе, только к компонентам цветности в слайсе или к обоим компонентам яркости и компонентам цветности в слайсе. ALF APS может содержать флаги, указывающие тип данных, содержащихся в APS. Однако сигнализация на основе флагов, связанная с ALF APS, неэффективна в некоторых системах кодирования видео. Например, можно установить флаги, чтобы указать, что ALF APS содержит только набор фильтров яркости, только набор фильтров цветности, и набор фильтров яркости, и набор фильтров цветности, или ни набор фильтров яркости, ни набор фильтров цветности. ALF APS, который не содержит наборов фильтров яркости и цветности, бесполезен. Тем не менее, стандартизированный кодек должен поддерживать любую опцию, разрешенную стандартом. Таким образом, использование ALF APS, не содержащего наборов фильтров яркости и цветности, приводит к неэффективной конструкции кодека, который должен поддерживать вариант, который не должен возникать. В настоящих примерах применяются ограничения для повышения эффективности сигнализации ALF APS и результирующих конструкций кодеков. Например, ALF APS ограничивается таким образом, что один или оба флага сигнала фильтра яркости ALF и флага сигнала фильтра цветности ALF в ALF APS установлены в единицу. Это гарантирует, что ALF APS включает в себя по меньшей мере набор фильтров яркости или набор фильтров цветности и, следовательно, не является пустым. В качестве другого примера заголовок слайса, связанный с слайсом, может содержать ALF APS ID компонента яркости, который указывает, что ALF APS содержит соответствующий набор фильтров яркости. Когда это происходит, может применяться ограничение, заключающееся в том, что флаг сигнала фильтра яркости ALF в ALF APS устанавливается равным единице. Это гарантирует, что ALF APS содержит данные яркости, когда заголовок слайса ссылается на ALF APS по отношению к данным яркости. В качестве другого примера, заголовок слайса, связанный с слайсом, может содержать ALF APS ID компонента цветности , который указывает, что ALF APS содержит соответствующий набор фильтров цветности. Когда это происходит, может применяться ограничение, заключающееся в том, что флаг сигнала фильтра цветности ALF в ALF APS устанавливается равным единице. Это гарантирует, что ALF APS содержит данные цветности, когда заголовок слайса ссылается на ALF APS по отношению к данным цветности. Эти ограничения могут гарантировать, что ненужная сигнализация ALF APS будет исключена, и что ALF APS будет содержать данные, необходимые для фильтрации декодированных слайсов. Такие ограничения могут быть проверены гипотетическим эталонным декодером (HRD) в кодере. HRD может проверить закодированный битовый поток на соответствие стандартам, чтобы гарантировать, что эти проблемные случаи не возникнут. Следовательно, эти ограничения позволяют декодеру предположить, что такие проблемные случаи не возникали в битовом потоке. Следовательно, декодер может быть упрощен, чтобы избежать поддержки таких проблемных случаев. Соответственно, настоящие ограничения предотвращают ошибки, повышают эффективность кодирования и/или уменьшают сложность кодера и/или декодера. Таким образом, настоящие примеры могут увеличить функциональные возможности системы кодирования видео при одновременном снижении использования сетевых ресурсов, ресурсов памяти и/или ресурсов обработки в кодере и/или декодере.
[0014] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой флаг alf_luma_filter_signal_flag указывает, передается ли набор фильтров яркости в ALF APS.
[0015] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, при этом значение alf_luma_filter_signal_flag ALF APS ограничено равным единице, когда ALF APS ID компонента яркости в заголовке слайса (slice_alf_aps_id_luma[i]) связанный со слайсом, равен APS ID в ALF APS.
[0016] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой slice_alf_aps_id_luma[i] задает adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса.
[0017] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой флаг alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS.
[0018] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой значение alf_chroma_filter_signal_flag ALF APS ограничено равным единице, когда ALF APS ID компонента цветности в заголовке слайса, связанном с слайсом (slice_alf_aps_id_chroma ) равен APS ID в ALF APS.
[0019] Необязательно, в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой slice_alf_aps_id_chroma задает adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайса.
[0020] В одном варианте осуществления раскрытие включает в себя устройство кодирования/декодирования видео, содержащее: процессор, приемник, соединенный с процессором, память, соединенную с процессором, и передатчик, соединенный с процессором, при этом процессор, приемник, память и передатчик выполнены с возможностью осуществлять способ любого из предыдущих аспектов.
[0021] В варианте осуществления изобретение включает в себя долговременный считываемый компьютером носитель, содержащий компьютерный программный продукт для использования устройством кодирования/декодирования видео, причем компьютерный программный продукт содержит выполняемые компьютером инструкции, хранящиеся на долговременном считываемом компьютером носителе, так что при выполнении процессором они предписывают устройству кодирования/декодирования видео выполнять способ по любому из предшествующих аспектов.
[0022] В варианте осуществления раскрытие включает в себя декодер, содержащий: средство приема для приема потока битов, содержащего набор параметров адаптации (APS) адаптивного контурного фильтра (ALF), включающий в себя флаг сигнала фильтра яркости ALF (alf_luma_filter_signal_flag) и флаг сигнала фильтра цветности ALF ( alf_chroma_filter_signal_flag), при этом по меньшей мере один из alf_luma_filter_signal_flag или alf_chroma_filter_signal_flag равен единице; средство декодирования для декодирования слайса на основе параметров ALF в ALF APS; и средство пересылки для пересылки слайса для отображения как части декодированной видеопоследовательности.
[0023] Необязательно, в любом из предшествующих аспектов, другая реализация аспекта обеспечивает декодер дополнительно выполнен с возможностью выполнения способа по любому из предыдущих аспектов.
[0024] В варианте осуществления раскрытие включает в себя кодер, содержащий: средство кодирования слайса для кодирования слайса в битовый поток как часть закодированной видеопоследовательности; средство определения для определения параметров ALF для применения к слайсу; средство кодирования ALF для кодирования параметров ALF в набор параметров адаптации ALF (APS) в битовом потоке, причем ALF APS включает в себя флаг сигнала фильтра яркости ALF (alf_luma_filter_signal_flag) и флаг сигнала фильтра цветности ALF (alf_chroma_filter_signal_flag), при этом по меньшей мере один из alf_luma_filter_signal_flag или alf_chroma_filter_signal_flag равен единице; и средство хранения для сохранения потока битов для связи с декодером.
[0025] Необязательно, в любом из предыдущих аспектов, другая реализация аспекта обеспечивает кодер дополнительно выполнен с возможностью выполнения способа по любому из предыдущих аспектов.
[0026] Для ясности любой из вышеупомянутых вариантов осуществления изобретения может быть объединен с любым одним или несколькими другими вышеупомянутыми вариантами осуществления изобретения, чтобы создать новый вариант осуществления в пределах объема настоящего изобретения.
[0027] Эти и другие особенности будут более понятны из следующего подробного описания, рассматриваемого вместе с сопроводительными чертежами и формулой изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0028] Для более полного понимания этого раскрытия теперь сделана ссылка на следующее краткое описание, взятое в связи с прилагаемыми чертежами и подробным описанием, в котором одинаковые номера позиций представляют одинаковые части.
[0029] Фиг. 1 представляет собой блок-схему последовательности операций примерного способа кодирования/декодирования видеосигнала.
[0030] Фиг. Фиг.2 - принципиальная схема примерной системы кодирования и декодирования (кодека) для видеокодирования.
[0031] Фиг. 3 представляет собой схематичное представление, иллюстрирующее примерный видеокодер.
[0032] Фиг. 4 представляет собой схематичное представление, иллюстрирующее примерный видеодекодер.
[0033] Фиг. 5 является схематической диаграммой, иллюстрирующей пример битового потока, содержащего наборы параметров адаптации (APS) адаптивного контурного фильтра (ALF) с ограничениями параметров.
[0034] Фиг. 6 - схематическая диаграмма примерного устройства кодирования/декодирования видео.
[0035] Фиг. 7 представлена блок-схема примерного способа кодирования видеопоследовательности в битовый поток с использованием ALF APS с ограничениями.
[0036] Фиг. 8 представляет собой блок-схему примерного способа декодирования видеопоследовательности из потока битов с использованием ALF APS с ограничениями.
[0037] Фиг. 9 представляет собой схематическую диаграмму примерной системы для кодирования видеопоследовательности изображений в битовом потоке с использованием ALF APS с ограничениями.
ПОДРОБНОЕ ОПИСАНИЕ
[0038] Прежде всего следует понимать, что хотя иллюстративная реализация одного или более вариантов осуществления представлена ниже, раскрытые системы и/или способы могут быть реализованы с использованием любого числа методик, известных в настоящее время или уже существующих. Раскрытие никоим образом не должно быть ограничено иллюстративными реализациями, чертежами и методиками, проиллюстрированными ниже, в том числе примерными конструкциями и реализациями, проиллюстрированными и описанными в настоящем документе, но может быть изменено в пределах объема прилагаемой формулы изобретения вместе с полным объемом ее эквивалентов.
[0039] Нижеследующие термины определяются следующим образом до тех пор, пока они не используются в данном документе в противоположном контексте. В частности, следующие определения призваны внести дополнительную ясность в настоящее раскрытие. Однако термины могут быть описаны иначе в других контекстах. Соответственно, следующие определения следует рассматривать в качестве дополнения и не следует рассматривать их в качестве ограничивающих любые другие определения в описании, обеспеченном для таких терминов в настоящем документе.
[0040] Битовый поток представляет собой последовательность битов, включающих в себя видеоданные, которые сжаты для передачи между кодером и декодером. Кодер представляет собой устройство, которое выполнено с возможностью использования процессов кодирования для сжатия видеоданных в битовый поток. Кодированная видеопоследовательность представляет собой последовательность кодированных единиц доступа (AU) и поддерживающий синтаксис/параметры. AU представляет собой блок данных, который содержит полный набор видеоданных, относящихся к одному моменту времени (например, одиночному изображению) в видеопоследовательности. Декодер - это устройство, которое выполнено с возможностью использования процессов декодирования для восстановления видеоданных из битового потока. снимков. Декодированная видеопоследовательность - это последовательность снимков, которые были восстановлены декодером при подготовке к отображению пользователю. Изображение представляет собой массив выборок яркости и/или массив выборок цветности, которые создают кадр или его поле. Снимок, который кодируется или декодируется, может называться текущим снимком для ясности обсуждения. Слайс может быть определен как целое число полных тайлов или целое число последовательных строк полных единиц дерева кодирования/декодирования (CTU) в пределах тайла изображения, которые содержатся исключительно в одной единице уровня сетевой абстракции (NAL). Компонент яркости, иногда обозначаемый буквой Y, представляет собой часть видеоданных, отображающую свет. Компонент цветности представляет собой часть видеоданных, которая отображает цвет и может быть обозначена как разностная насыщенность синего (Cb) и разностная насыщенность красного (Cr). Набор параметров адаптации (APS) представляет собой синтаксическую структуру, содержащую синтаксические элементы/параметры, которые применяются к одному или нескольким слайсам в одном или нескольких изображениях. Идентификатор APS (ID) представляет собой значение (например, целое число), которое однозначно идентифицирует APS. Адаптивный контурный фильтр (ALF) - это процесс фильтрации, применяемый как часть декодирования. Например, ALF может использовать линейный фильтр с передаточной функцией, управляемой переменными параметрами, и алгоритм оптимизации, сконфигурированный для настройки переменных параметров. ALF APS - это APS, который содержит параметры ALF и управляет применением процесса ALF к соответствующему слайсу. Параметр ALF - это синтаксический элемент, содержащий данные, относящиеся к управлению процессом ALF. Флаг сигнала фильтра яркости ALF представляет собой параметр ALF, который указывает, что соответствующий ALF APS содержит набор фильтров яркости. Флаг сигнала цветного фильтра ALF представляет собой параметр ALF, который указывает, что соответствующий ALF APS содержит набор фильтров цветности. Набор фильтров яркости представляет собой набор параметров фильтра для управления применением ALF к компонентам яркости в слайсе. Набор фильтров цветности представляет собой набор параметров фильтра для управления применением ALF к компонентам цветности в слайсе. Заголовок слайса является частью закодированного слайса, содержащего элементы данных, относящиеся ко всем видеоданным в слайсе. ALF APS ID компонента яркости представляет собой синтаксический элемент в заголовке слайса, который идентифицирует ALF APS, который содержит набор фильтров яркости, относящийся к слайсу, связанному с заголовком слайса. ALF APS ID компонента цветности представляет собой синтаксический элемент в заголовке слайса, который идентифицирует ALF APS, который содержит набор фильтров цветности, относящийся к слайсу, связанному с заголовком слайса.
[0041] В настоящем документе используются следующие сокращения: адаптивный контурный фильтр (ALF), набор параметров адаптации (APS), блок дерева кодирования (CTB), единица дерева кодирования (CTU), единица кодирования (CU), кодированная видеопоследовательность (CVS), декодированное изображение. Буфер (DPB), внешнее обновление декодирования (EDR), группа изображений (GOP), объединенная группа экспертов по видео (JVET), набор фрагментов с ограничением движения (MCTS), максимальная единица передачи (MTU), уровень абстракции сети (NAL), Счетчик порядка изображений (POC), точка произвольного доступа (RAP), полезная нагрузка последовательности необработанных байтов (RBSP), адаптивное смещение выборки (SAO), дополнительная информация об улучшении (SEI), набор параметров последовательности (SPS), временное предсказание вектора движения (TMVP) , универсальное кодирование видео (VVC) и рабочий проект (WD).
[0042] Многие методики сжатия видео могут использоваться для уменьшения размера видеофайлов с минимальной потерей данных. Для уменьшения размера видеофайлов с минимальной потерей данных можно использовать многие методы сжатия видео. Например, методы сжатия видео могут включать в себя выполнение пространственного (например, внутрикадрового) прогнозирования. Для кодирования/декодирования видео на основе блоков видеослайс (например, видеоизображение или часть видеоизображения) может быть разделен на видеоблоки, которые также могут называться древовидными блоками, блоками дерева кодирования/декодирования (CTB), единицами дерева кодирования/декодирования (CTU), единицами кодирования/декодирования (CU) и/или узлами кодирования/декодирования. Видеоблоки в интра-кодируемом/декодируемом (I) слайсе изображения кодируются/декодируются с использованием пространственного предсказания по отношению к опорным выборкам в соседних блоках в том же самом изображении. Видеоблоки в слайсе интер-кодируемого/декодируемого однонаправленного предсказания (P) или двунаправленного предсказания (B) в изображении могут кодироваться/декодироваться посредством использования пространственного предсказания относительно опорных выборок в соседних блоках в том же самом изображении или временного предсказания относительно опорных выборок в других опорных изображениях. Изображения могут называться кадрами и/или картинками, а опорные изображения могут называться опорными кадрами и/или опорными картинками. Пространственное или временное предсказание приводит к предиктивному блоку, представляющему блок картинки. Остаточные данные представляют собой разности пикселей между исходным блоком картинки и предиктивным блоком. Соответственно, интер-кодируемый/декодируемый блок кодируется согласно вектору движения, который указывает на блок опорных выборок, формирующих предиктивный блок, и остаточным данным, указывающими разность между кодируемым/декодируемым блоком и предиктивным блоком. Интра-кодируемый/декодируемый блок кодируется согласно режиму интра-кодирования/декодирования и остаточным данным. Для дальнейшего сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования. Это приводит к остаточным коэффициентам преобразования, которые могут быть квантованы. Квантованные коэффициенты преобразования могут изначально размещаться в двумерном массиве. Квантованные коэффициенты преобразования могут быть просканированы для создания одномерного вектора коэффициентов преобразования. Энтропийное кодирование/декодирование может быть применено для достижения еще большего сжатия. еще большего сжатия может применяться энтропийное кодирование. Такие.
[0043] Чтобы обеспечить точное декодирование закодированного видео, видео кодируется и декодируется согласно соответствующим стандартам кодирования видео. Стандарты кодирования видео включают Международный союз электросвязи (ITU), Сектор стандартизации (ITU-T) H.261, Международная организация по стандартизации/Международная электротехническая комиссия (ISO/IEC), Группа экспертов по кинематографии (MPEG)-1, часть 2, ITU-T H.262 или ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, Advanced Video Coding (AVC), также известный как ITU-T H.264 или ISO/IEC MPEG -4, часть 10, и высокоэффективное кодирование видео (HEVC), также известное как ITU-T H.265 или MPEG-H, часть 2. AVC включает в себя такие расширения, как Масштабируемое кодирование/декодирование видео (SVC), Многоракурсное кодирование/декодирование видео (MVC) и Многоракурсное кодирование/декодирование видео плюс Глубина (MVC+D), а также трехмерное (3D) AVC (3D-AVC). HEVC включает в себя такие расширения, как Масштабируемое HEVC (SHVC), Многоракурсное HEVC (MV-HEVC) и 3D HEVC (3D-HEVC). Совместная группа экспертов по видео (JVET) ITU-T и ISO/IEC приступила к разработке стандарта видеокодирования, называемого Универсальным видеокодированием (VVC). VVC включен в рабочий проект (WD), который включает в себя JVET-O2001-v14.
[0044] APS может использоваться для хранения данных, относящихся к нескольким слайсам, но не ко всему изображению. В некоторых примерах один и тот же APS может содержать данные, относящиеся к слайсам, разбросанным по множеству изображений (например, по частям множества изображений). APS может содержать параметры ALF. Параметры ALF могут управлять применением процесса ALF только к компонентам яркости в слайсе, только к компонентам цветности в слайсе или к обоим компонентам яркости и компонентам цветности в слайсе. ALF APS может содержать флаги, указывающие тип данных, содержащихся в APS. Однако в некоторых системах видеокодирования сигнализация на основе флага, связанная с ALF APS, может быть неэффективной. Например, можно установить флаги, чтобы указать, что ALF APS содержит только набор фильтров яркости, только набор фильтров цветности, и набор фильтров яркости, и набор фильтров цветности, или ни набор фильтров яркости, ни набор фильтров цветности. ALF APS, который не содержит наборов фильтров яркости и цветности, бесполезен. Тем не менее, стандартизированный кодек должен поддерживать любую опцию, разрешенную стандартом. Таким образом, использование ALF APS, не содержащего наборов фильтров яркости и цветности, приводит к неэффективной конструкции кодека, который должен поддерживать вариант, который не должен возникать.
[0045] Здесь раскрыты различные механизмы, которые применяют ограничения для повышения эффективности сигнализации ALF APS и результирующих конструкций кодеков. Например, ALF APS может быть ограничена таким образом, чтобы один или оба из флага сигнала фильтра яркости ALF и флага сигнала фильтра цветности ALF в ALF APS были установлены в единицу. Это гарантирует, что ALF APS включает в себя по меньшей мере набор фильтров яркости или набор фильтров цветности и, следовательно, не является пустым. В качестве другого примера заголовок слайса, связанный с слайсом, может содержать ALF APS ID компонента яркости, который указывает, что ALF APS содержит соответствующий набор фильтров яркости. Когда это происходит, может применяться ограничение, заключающееся в том, что флаг сигнала фильтра яркости ALF в ALF APS устанавливается равным единице. Это гарантирует, что ALF APS содержит данные яркости, когда заголовок слайса ссылается на ALF APS по отношению к данным яркости. В качестве другого примера, заголовок слайса, связанный с слайсом, может содержать ALF APS ID компонента цветности , который указывает, что ALF APS содержит соответствующий набор фильтров цветности. Когда это происходит, может применяться ограничение, заключающееся в том, что флаг сигнала фильтра цветности ALF в ALF APS устанавливается равным единице. Это гарантирует, что ALF APS содержит данные цветности, когда заголовок слайса ссылается на ALF APS по отношению к данным цветности. Эти ограничения могут гарантировать, что ненужная сигнализация ALF APS будет исключена, и что ALF APS будет содержать данные, необходимые для фильтрации декодированных слайсов. Такие ограничения могут быть включены в гипотетический эталонный декодер (HRD) в кодере. HRD может проверить закодированный битовый поток на соответствие стандартам, чтобы гарантировать, что эти проблемные случаи не возникнут. Следовательно, эти ограничения позволяют декодеру предположить, что такие проблемные случаи не возникали в битовом потоке. Следовательно, декодер может быть упрощен, чтобы избежать поддержки таких проблемных случаев. Соответственно, настоящие ограничения предотвращают ошибки, повышают эффективность кодирования и/или уменьшают сложность кодера и/или декодера. Таким образом, настоящие примеры могут увеличить функциональные возможности системы кодирования видео при одновременном снижении использования сетевых ресурсов, ресурсов памяти и/или ресурсов обработки в кодере и/или декодере.
[0046] Фиг. 1 представляет собой блок-схему последовательности операций примерного рабочего способа 100 кодирования/декодирования видеосигнала. В частности, видеосигнал кодируется в кодере. Процесс кодирования сжимает видеосигнал, используя различные механизмы для уменьшения размера видеофайла. Меньший размер файла позволяет передавать сжатый видеофайл пользователю, уменьшая при этом ассоциированное с этим потребление ресурсов полосы пропускания. Затем декодер декодирует сжатый видеофайл, чтобы восстановить исходный видеосигнал для отображения конечному пользователю. Процесс декодирования как правило зеркально отражает процесс кодирования, что позволяет декодеру последовательно восстанавливать видеосигнал.
[0047] На этапе 101 видеосигнал вводится в кодер. Например, видеосигнал может представлять собой несжатый видеофайл, хранящийся в памяти. В качестве другого примера, видеофайл может быть захвачен устройством видеозахвата, таким как видеокамера, и закодирован для поддержки потоковой передачи видео в режиме реального времени. Видеофайл может включать в себя как аудиокомпонент, так и видеокомпонент. Видеокомпонент содержит ряд кадров изображений, которые при последовательном просмотре создают визуальное впечатление движения. Кадры содержат пиксели, которые выражены в показателях света, называемых в данном документе компонентами яркости (или выборками яркости), и цвета, которые называются компонентами цветности (или выборками цветности). цвета). В некоторых примерах кадры могут также содержать значения глубины для поддержки трехмерного просмотра.
[0048] На этапе 103 видео разделяется на блоки. Разделение включает в себя подразделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, при высокоэффективном кодировании видео (HEVC, High Efficiency Video Coding, также известно как H.265 и MPEG-H Part 2), кадр может быть сначала разделен на единицы дерева кодирования (CTU), которые представляют собой блоки заранее заданного размера (например, 64 на 64 пикселя). CTU содержат выборки как яркости, так и цветности. Деревья кодирования/декодирования могут использоваться для разбиения CTU на блоки, а затем рекурсивного подразделения блоков до тех пор, пока не будут достигнуты конфигурации, которые поддерживают дальнейшее кодирование. Например, компоненты яркости кадра могут быть подразделены до тех пор, пока отдельные блоки не будут содержать относительно однородные значения освещения. Кроме того, компоненты цветности кадра могут быть подразделены до тех пор, пока отдельные блоки не будут содержать относительно однородные значения цвета. Соответственно, механизмы разделения различаются в зависимости от содержимого видеокадров.
[0049] На этапе 105 используются различные механизмы сжатия для сжатия блоков изображения, полученных разделением на этапе 103. Например, может быть использовано интер-предсказание и/или интра-предсказание. Интер-предсказание предназначено для получения преимущества от того факта, что объекты в общей сцене имеют тенденцию появляться в последовательных кадрах. Соответственно, блок, представляющий объект в опорном кадре, не нужно повторно описывать в смежных кадрах. В частности, объект, такой как стол, может оставаться в постоянном положении в течение нескольких кадров. Следовательно, стол описывается один раз, и смежные кадры могут ссылаться обратно на опорный кадр. Механизмы сопоставления образов могут использоваться для сопоставления объектов в нескольких кадрах. Кроме того, движущиеся объекты могут быть представлены в нескольких кадрах, например, из-за движения объекта или движения камеры. В качестве конкретного примера видео может показывать автомобиль, который движется по экрану в течение нескольких кадров. Векторы движения могут быть использованы для описания такого движения. Вектор движения представляет собой двумерный вектор, который обеспечивает смещение из координат объекта в кадре в координаты объекта в опорном кадре. Таким образом, интер-предсказание может кодировать блок изображения в текущем кадре в качестве набора векторов движения, указывающих смещение от соответствующего блока в опорном кадре.
[0050] Интра-предсказание кодирует блоки в общем кадре. Интра-предсказание использует тот факт, что компоненты яркости и цветности имеют тенденцию группироваться в кадре. Например, фрагмент зелени в части дерева имеет тенденцию располагаться рядом с аналогичными фрагментами зелени. Интра-предсказание использует несколько направленных режимов предсказания (например, тридцать три в HEVC), режим Planar (Planar mode) и режим DC (Direct current mode). Направленные режимы указывают, что текущий блок аналогичен/совпадает с выборками соседнего блока в соответствующем направлении. Режим Planar указывает, что ряд блоков вдоль строки/столбца (например, плоскости) может быть интерполирован на основе соседних блоков на краях строки. Планарный режим, по сути, указывает на плавный переход света/цвета через строку/столбец, используя относительно постоянный наклон при изменении значений. Режим DC используется для сглаживания границ и указывает, что блок похож/аналогичен среднему значению, ассоциированному с выборками всех соседних блоков, ассоциированных с угловыми направлениями направленных режимов предсказания. Соответственно, блоки интра-предсказания могут представлять блоки изображения как значения различных реляционных режимов предсказания вместо фактических значений. Кроме того, блоки интер-предсказания могут представлять блоки изображения как значения векторов движения вместо фактических значений. В любом случае в некоторых случаях блоки предсказания могут не точно представлять блоки изображения. Любые различия хранятся в остаточных блоках. Преобразования могут быть применены к остаточным блокам для дальнейшего сжатия файла.
[0051] На этапе 107 могут применяться различные методики фильтрации. В HEVC фильтры применяются по схеме внутриконтурной фильтрации. Основанное на блоках предсказание, рассмотренное выше, может привести к созданию блочных изображений в декодере. Кроме того, схема основанного на блоках предсказания может кодировать блок, а затем восстановить закодированный блок для последующего использования в качестве опорного блока. Схема внутриконтурной фильтрации итеративно применяет к блокам/кадрам фильтры шумоподавления, фильтры деблокирования, адаптивные контурные фильтры и фильтры адаптивного к выборке смещения (SAO). Эти фильтры смягчают такие артефакты блочности, чтобы можно было точно восстановить закодированный файл. Кроме того, эти фильтры смягчают артефакты в восстановленных опорных блоках, так что артефакты с меньшей вероятностью создают дополнительные артефакты в последующих блоках, которые кодируются на основе этих восстановленных опорных блоков.
[0052] После разделения, сжатия и фильтрации видеосигнала полученные данные кодируются в битовый поток на этапе 109. Битовый поток включает в себя данные, рассмотренные выше, а также любые данные сигнализации, необходимые для поддержки надлежащего восстановления видеосигнала в декодере. Например, такие данные могут включать в себя данные разделения, данные предсказания, остаточные блоки и различные флаги, обеспечивающие инструкции кодирования/декодирования, для декодера. Битовый поток может быть сохранен в памяти для передачи на декодер по запросу. может храниться в памяти для передачи декодеру по запросу. Битовый поток. Создание битового потока является итеративным процессом. Соответственно, этапы 101, 103, 105, 107 и 109 могут происходить непрерывно и/или одновременно в отношении многих кадров и блоков. Порядок, показанный на Фиг. 1, представлен для ясности и простоты обсуждения и не предназначен для ограничения процесса кодирования/декодирования видео определенным порядком.
[0053] Декодер принимает битовый поток и начинает процесс декодирования на этапе 111. В частности, декодер использует схему энтропийного декодирования для преобразования битового потока в соответствующие синтаксические и видео данные. Декодер использует синтаксические данные из битового потока для определения разделов для кадров на этапе 111. Разделение должно совпадать с результатами разделения на блоки на этапе 103. Теперь описывается энтропийное кодирование/декодирование, используемое на этапе 111. Кодер принимает множество решений во время процесса сжатия, например выбирает схемы разделения на блоки из нескольких возможных вариантов на основе пространственного расположения значений во входном изображении(-ях). Для сигнализации точных выборов может использоваться большое число бинов. Как используется в данном документе, бин представляет собой двоичное значение, которое обрабатывается как переменная (например, битовое значение, которое может изменяться в зависимости от контекста). Энтропийное кодирование позволяет кодеру отбрасывать любые опции, которые явно не подходят для конкретного случая, оставляя набор допустимых опций. Каждой допустимой опции затем назначается кодовое слово. Длина кодовых слов основана на числе допустимых опций (например, один бин для двух опций, два бина для трех-четырех опций и т. д.). Затем кодер кодирует кодовое слово для выбранной опции. Эта схема уменьшает размер кодовых слов, поскольку кодовые слова настолько велики, насколько это необходимо, чтобы однозначно указывать выбор из небольшого подмножества допустимых опций, в отличие от однозначного указания выбора из потенциально большого набора всех возможных опций. Затем декодер декодирует выбор, определяя набор допустимых опций аналогично кодеру. Посредством определения набора допустимых опций, декодер может считывать кодовое слово и определять выбор, сделанный кодером.
[0054] На этапе 113 декодер выполняет декодирование блоков. В частности, декодер применяет обратные преобразования для формирования остаточных блоков. Затем декодер применяет остаточные блоки и соответствующие блоки предсказания для восстановления блоков изображения согласно разделению. Блоки предсказания могут включать в себя как блоки интра-предсказания, так и блоки интер-предсказания, формируемые кодером на этапе 105. Затем восстановленные блоки изображения размещаются в кадры восстанавливаемого видеосигнала согласно данным разделения, определенным на этапе 111. Синтаксис для этапа 113 также может быть просигнализирован в битовом потоке посредством энтропийного кодирования/декодирования, как описано выше.
[0055] На этапе 115 фильтрация выполняется над кадрами восстановленного видеосигнала способом, аналогичным этапу 107 в кодере. Например, фильтры шумоподавления, фильтры деблокирования, адаптивные контурные фильтры и фильтры SAO могут быть применены к кадрам для удаления артефактов блочности. После фильтрации кадров видеосигнал может выводиться на дисплей на этапе 117 для просмотра конечным пользователем.
[0056] Фиг. 2 представляет собой схематичное представление примерной системы 200 кодирования и декодирования (кодека) для кодирования/декодирования видео. В частности, система 200 кодека обеспечивает функциональные возможности для поддержки реализации рабочего способа 100. Система 200 кодека обобщена так, чтобы представлять компоненты, применяемые как в кодере, так и в декодере. Система 200 кодека принимает и разделяет видеосигнал, как описано в отношении этапов 101 и 103 в рабочем способе 100, в результате чего получается разделенный видеосигнал 201. Затем система 200 кодека сжимает разделенный видеосигнал 201 в закодированный битовый поток, действуя в качестве кодера, как описано в отношении этапов 105, 107 и 109 в способе 100. Действуя в качестве декодера, система 200 кодека формирует выходной видеосигнал из битового потока, как описано в отношении этапов 111, 113, 115 и 117 в рабочем способе 100. Система 200 кодека включает в себя компонент 211 общего управления кодером/декодером, компонент 213 преобразования, масштабирования и квантования, компонент 215 интра-кадровой оценки, компонент 217 интра-кадрового предсказания, компонент 219 компенсации движения, компонент 221 оценки движения, компонент 229 обратного преобразования и масштабирования, компонент 227 анализа для управления фильтром, компонент 225 внутриконтурных фильтров, компонент 223 буфера декодированных изображений и компонент 231 форматирования заголовка и контекстно-адаптивного двоичного арифметического кодирования/декодирования (CABAC). Такие компоненты соединены, как показано. На Фиг. 2 черные линии указывают перемещение данных, подлежащих кодированию/декодированию, а пунктирные линии указывают перемещение управляющих данных, которые управляют работой других компонентов. Все компоненты системы 200 кодека могут присутствовать в кодере. Декодер может включать в себя подмножество компонентов системы 200 кодека. Например, декодер может включать в себя компонент 217 интра-кадрового предсказания, компонент 219 компенсации движения, компонент 229 обратного преобразования и масштабирования, компонент 225 внутриконтурных фильтров и компонент 223 буфера декодированных изображений. Эти компоненты описаны далее.
[0057] Разделенный видеосигнал 201 представляет собой захваченную видеопоследовательность, которая была разделена на блоки пикселей деревом кодирования/декодирования. Дерево кодирования/декодирования использует различные режимы фрагментации для подразделения блока пикселей на более мелкие блоки пикселей. Затем эти блоки могут быть дополнительно подразделены на более мелкие блоки. Блоки могут называться узлами в дереве кодирования/декодирования. Более крупные родительские узлы подвергаются фрагментации на более мелкие дочерние узлы. Число раз, которое узел подразделяется, называется глубиной узла/дерева кодирования/декодирования. Полученные разделением блоки могут быть включены в единицы кодирования/декодирования (CU) в некоторых случаях. Например, CU может быть частью CTU, которая содержит блок яркости, блок(-и) цветности красного (Cr) и блок(-и) синего сигнала цветности (Cb) вместе с соответствующими инструкциями синтаксиса для CU. Режимы фрагментации могут включать двоичное дерево (BT), троичное дерево (TT) и квадратичное дерево (QT), используемые для разделения узла на два, три или четыре дочерних узла, соответственно, различных форм в зависимости от используемых режимов фрагментации. Разделенный видеосигнал 201 пересылается в компонент 211 общего управления кодером/декодером, компонент 213 преобразования, масштабирования и квантования, компонент 215 интра-кадровой оценки, компонент 227 анализа для управления фильтром и компонент 221 оценки движения для сжатия.
[0058] Компонент 211 общего управления кодером/декодером выполнен с возможностью принятия решений, связанных с кодированием изображений видеопоследовательности в битовый поток в соответствии. Например, компонент 211 общего управления кодером/декодером управляет оптимизацией битрейта/размера битового потока в зависимости от качества восстановления. Такие решения могут приниматься на основе доступности пространства хранения/полосы пропускания и запросов разрешения изображения. Компонент 211 общего управления кодером/декодером также управляет использованием буфера с учетом скорости передачи, чтобы смягчить проблемы недостаточного заполнения и переполнения буфера. Чтобы справиться с этими проблемами, компонент 211 общего управления кодером/декодером управляет разделением, предсказанием и фильтрацией посредством других компонентов. Например, компонент 211 общего управления кодером/декодером может динамически увеличивать сложность сжатия для увеличения разрешения и увеличения использования полосы пропускания или уменьшать сложность сжатия для уменьшения разрешения и использования полосы пропускания. Следовательно, компонент 211 общего управления кодером/декодером управляет другими компонентами системы 200 кодека, чтобы сбалансировать качество восстановления видеосигнала с учетом битрейта. Компонент 211 общего управления кодером/декодером создает управляющие данные, которые управляют работой других компонентов. Управляющие данные также пересылаются в компонент 231 форматирования заголовка и CABAC для кодирования в битовом потоке, чтобы сигнализировать параметры для декодирования в декодере.
[0059] Разделенный видеосигнал 201 также отправляется в компонент 221 оценки движения и компонент 219 компенсации движения для интер-предсказания. Кадр или слайс разделенного видеосигнала 201 может быть разбит на несколько видеоблоков. Компонент 221 оценки движения и компонент 219 компенсации движения выполняют кодирование с внутренним межкадровым предсказанием принятых видеоблоков относительно одного или более блоков в одном или более опорных кадрах для обеспечения временного предсказания. Система 200 кодека может выполнять несколько проходов кодирования, например, для выбора надлежащего режима кодирования для каждого блока видеоданных.
[0060] Компонент 221 оценки движения и компонент 219 компенсации движения могут быть в высокой степени интегрированы, но показаны отдельно в концептуальных целях. Оценка движения, выполняемая компонентом 221 оценки движения, представляет собой процесс формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указать сдвиг кодируемого/декодируемого объекта относительно предиктивного блока. Предиктивный блок является блоком, который обнаружен как точно соответствующий блоку, который подлежит кодированию/декодированию, исходя из разности пикселей. Предиктивный блок также может именоваться опорным блоком. Такая разность пикселей может быть определена суммой абсолютных разностей (SAD), суммой квадратов разностей (SSD) или другими показателями различия. HEVC использует несколько кодируемых/декодируемых объектов, в том числе CTU, блоки дерева кодирования/декодирования (CTB) и CU. Например, CTU можно разбить на CTB, которые затем можно разбить на CB для включения в CU. CU может быть закодирована как единица предсказания (PU), содержащая данные предсказания, и/или единица преобразования (TU), содержащая преобразованные остаточные данные для CU. Компонент 221 оценки движения формирует векторы движения, PU и TU с использованием анализа скорость-искажение в рамках процесса оптимизации скорость-искажение. Например, компонент 221 оценки движения может определять несколько опорных блоков, несколько векторов движения и т.д. для текущего блока/кадра и может выбирать опорные блоки, векторы движения и т.д., имеющие наилучшие характеристики скорость-искажение. Наилучшие характеристики скорость-искажение уравновешивают качество восстановления видео (например, объем потерь данных при сжатии) с эффективностью кодирования/декодирования (например, размер окончательного кодирования).
[0061] В некоторых примерах система 200 кодека может вычислять значения для положений субцелочисленных пикселей опорных изображений, сохраненных в компоненте 223 буфера декодированных изображений. Например, система 200 кодека может интерполировать значения положений одной четверти пикселя, положений одной восьмой пикселя или других положений дробных пикселей опорного изображения. Следовательно, компонент 221 оценки движения может выполнять поиск движения относительно положений полных пикселей и положений дробных пикселей и выводить вектор движения с точностью до дробных пикселей. Компонент 221 оценки движения вычисляет вектор движения для PU видеоблока в интер-кодируемом/декодируемом слайсе путем сравнения положения PU с положением предиктивного блока опорного изображения. Компонент 221 оценки движения выводит вычисленный вектор движения в качестве данных движения в компонент 231 форматирования заголовка и CABAC для кодирования и движения для компонента 219 компенсации движения.
[0062] Компенсация движения, выполняемая компонентом 219 компенсации движения, может включать в себя получение или формирование предиктивного блока на основе вектора движения, определенного компонентом 221 оценки движения. Опять же, компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы в некоторых примерах. После приема вектора движения для PU текущего блока видео компонент 219 компенсации движения может находить предиктивный блок, на который указывает вектор движения. Затем формируется остаточный видеоблок путем вычитания значений пикселей предиктивного блока из значений пикселей текущего кодируемого видеоблока, что формирует значения разности пикселей. В общем, компонент 221 оценки движения выполняет оценку движения относительно компонентов яркости, а компонент 219 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости, как для компонентов цветности, так и для компонентов яркости. яркости. Блок предсказания и остаточный блок направляются в компонент 213 масштабирования и квантования преобразования.
[0063] Разделенный видеосигнал 201 также отправляется в компонент 215 интра-кадровой оценки и компонент 217 интра-кадрового предсказания. Как и в случае с компонентом 221 оценки движения и компонентом 219 компенсации движения, компонент 215 интра-кадровой оценки и компонент 217 интра-кадрового предсказания могут быть в высокой степени интегрированы, но в концептуальных целях проиллюстрированы отдельно. Компонент 215 интра-кадровой оценки и компонент 217 интра-кадрового предсказания осуществляют интра-предсказание текущего блока относительно блоков в текущем кадре, в качестве альтернативы интер-предсказанию, выполняемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 интра-кадровой оценки определяет режим интра-предсказания для использования, чтобы кодировать текущий блок. В некоторых примерах компонент 215 интра-кадровой оценки выбирает надлежащий режим интра-предсказания для кодирования текущего блока из множества проверяемых режимов интра-предсказания. Выбранные режимы интра-предсказания затем пересылаются в компонент 231 форматирования заголовка и CABAC для кодирования.
[0064] Например, компонент 215 внутрикадровой оценки вычисляет значения скоростного искажения, используя анализ скоростного искажения для различных тестируемых режимов внутрикадрового прогнозирования, и выбирает режим внутрикадрового прогнозирования, имеющий лучшие характеристики скоростного искажения среди тестированных режимов. Анализ скорость-искажение обычно определяет степень искажения (или ошибку) между закодированным блоком и исходным незакодированным блоком, который был закодирован для получения упомянутого закодированного блока, а также битрейт (например, число битов), используемый для получения упомянутого закодированного блока. Компонент 215 интра-кадровой оценки вычисляет отношения по искажениям и скоростям для различных закодированных блоков, чтобы определить, какой режим интра-предсказания демонстрирует наилучшее значение скорость-искажение для блока. Кроме того, компонент 215 интра-кадровой оценки может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM) на основе оптимизации скорость-искажение (RDO).
[0065] Компонент 217 интра-кадрового предсказания может формировать остаточный блок из предиктивного блока на основе выбранных режимов интра-предсказания, определенных компонентом 215 интра-кадровой оценки, при реализации в кодере, или считывать остаточный блок из битового потока при реализации в декодере. Остаточный блок включает в себя разность значений между предиктивным блоком и исходным блоком, представленную в виде матрицы. Остаточный блок затем пересылается в компонент 213 преобразования, масштабирования и квантования. Компонент 215 интра-кадровой оценки и компонент 217 интра-кадрового предсказания могут работать как над компонентами яркости, так и над компонентами цветности.
[0066] Компонент 213 преобразования, масштабирования и квантования выполнен с возможностью дальнейшего сжатия остаточного блока. Компонент 213 преобразования, масштабирования и квантования применяет преобразование, такое как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий остаточные значения коэффициентов преобразования. Также могут быть использованы вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. Преобразование может переводить остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Компонент 213 преобразования, масштабирования и квантования также выполнен с возможностью масштабирования преобразованной остаточной информации, например на основе частоты. Такое масштабирование включает в себя применение коэффициента масштабирования к остаточной информации, так что информация разных частот квантуется с разными степенями детализации, что может повлиять на конечное визуальное качество восстановленного видео. Компонент 213 преобразования, масштабирования и квантования также выполнен с возможностью квантования коэффициентов преобразования для дальнейшего снижения битрейта. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена посредством корректировки параметра квантования. В некоторых примерах компонент 213 преобразования, масштабирования и квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Квантованные коэффициенты преобразования пересылаются в компонент 231 форматирования заголовка и CABAC для кодирования в битовый поток.
[0067] Компонент 229 обратного преобразования и масштабирования применяет обратную операцию компонента 213 преобразования, масштабирования и квантования для поддержки оценки движения. Компонент 229 обратного преобразования и масштабирования применяет обратное масштабирование, преобразование и/или квантование для восстановления остаточного блока в пиксельной области, например для последующего использования в качестве опорного блока, который может стать предиктивным блоком для другого текущего блока. Компонент 221 оценки движения и/или компонент 219 компенсации движения могут вычислять опорный блок путем прибавления остаточного блока обратно к соответствующему предиктивному блоку для использования при оценке движения более позднего блока/кадра. Фильтры применяются к восстановленным опорным блокам для смягчения артефактов, создаваемых во время масштабирования, квантования и преобразования. В противном случае такие артефакты могут вызвать неточное предсказание (и создать дополнительные артефакты) при предсказании последующих блоков.
[0068] Компонент 227 анализа для управления фильтром и компонент 225 внутриконтурных фильтров применяют фильтры к остаточным блокам и/или к восстановленным блокам изображения. Например, преобразованный остаточный блок из компонента 229 обратного преобразования и масштабирования может быть объединен с соответствующим блоком предсказания из компонента 217 интра-кадрового предсказания и/или компонента 219 компенсации движения для восстановления исходного блока изображения. Затем фильтры могут быть применены к восстановленному блоку изображения. В некоторых примерах фильтры могут быть применены к остаточным блокам. Как и в случае с другими компонентами на Фиг. 2, компонент 227 анализа для управления фильтром и компонент 225 внутриконтурных фильтров являются в высокой степени интегрируемыми и могут быть реализованы вместе, но представлены в концептуальных целях по-отдельности. Фильтры, применяемые к восстановленным опорным блокам, применяются к определенным пространственным областям и включают в себя несколько параметров для корректировки того, как такие фильтры применяются. Компонент 227 анализа для управления фильтром анализирует восстановленные опорные блоки для определения того, где такие фильтры должны применяться, и устанавливает соответствующие параметры. Такие данные пересылаются в компонент 231 форматирования заголовка и CABAC в качестве управляющих фильтром данных для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе управляющих фильтром данных. Фильтры могут включать в себя деблокирующий фильтр, фильтр шумоподавления, SAO-фильтр и адаптивный контурный фильтр. Такие фильтры могут применяться в пространственной/пиксельной области (например, к восстановленному блоку пикселей) или в частотной области, в зависимости от примера.
[0069] При работе в качестве кодера отфильтрованный восстановленный блок изображения, остаточный блок и/или блок предсказания сохраняются в компоненте 223 буфера декодированных изображений для последующего использования при оценке движения, как описано выше. При работе в качестве декодера компонент 223 буфера декодированных изображений сохраняет и пересылает восстановленные и отфильтрованные блоки на дисплей в ходе вывода видеосигнала. Компонент 223 буфера декодированных изображений может представлять собой любое запоминающее устройство, способное сохранять блоки предсказания, остаточные блоки и/или восстановленные блоки изображения.
[0070] Компонент 231 форматирования заголовка и CABAC принимает данные от различных компонентов системы 200 кодека и кодирует такие данные в кодируемый/декодируемый битовый поток для передачи на декодер. В частности, компонент 231 форматирования заголовка и CABAC формирует различные заголовки для кодирования управляющих данных, таких как общие управляющие данные и управляющие фильтром данные. Кроме того, данные предсказания, включающие в себя данные движения и интра-предсказания, а также остаточные данные в форме данных квантованных коэффициентов преобразования, все кодируются в битовом потоке. Окончательный битовый поток включает в себя всю информацию, необходимую декодеру для восстановления исходного разделенного видеосигнала 201. Такая информация может также включать в себя таблицы индексов режимов интра-предсказания (также называемые таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков, указания наиболее вероятных режимов интра-предсказания, указание информации разделения и т. д. Такие данные могут быть закодированы с помощью энтропийного кодирования. энтропийного кодирования. Например, информация может быть закодирована с использованием контекстно-адаптивного кодирования с переменной длиной (CAVLC), CABAC, основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с вероятностным интервалом разделения (PIPE) или другого метода энтропийного кодирования. После энтропийного кодирования кодированный битовый поток может быть передан на устройство (например, видеодекодер) или помещен в архив для последующей передачи или извлечения.
[0071] Фиг. 3 представляет собой блок-схему, иллюстрирующую примерный видеокодер 300. Видеокодер 300 может использоваться для реализации функций кодирования системы 200 кодека и/или реализации этапов 101, 103, 105, 107 и/или 109 рабочего способа 100. Кодер 300 разделяет входной видеосигнал, в результате чего получается разделенный видеосигнал 301, который по существу аналогичен разделенному видеосигналу 201. Затем разделенный видеосигнал 301 сжимается и кодируется в битовый поток компонентами кодера 300.
[0072] В частности, разделенный видеосигнал 301 пересылается в компонент 317 интра-кадрового предсказания для интра-предсказания. Компонент 317 интра-кадрового предсказания может быть по существу аналогичен компоненту 215 интра-кадровой оценки и компоненту 217 интра-кадрового предсказания. Разделенный видеосигнал 301 также пересылается в компонент 321 компенсации движения для интер-предсказания на основе опорных блоков в компоненте 323 буфера декодированных изображений. Компонент 321 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и компоненту 219 компенсации движения. Блоки предсказания и остаточные блоки из компонента 317 интра-кадрового предсказания и компонента 321 компенсации движения пересылаются в компонент 313 преобразования и квантования для преобразования и квантования остаточных блоков. Компонент 313 преобразования и квантования может быть по существу аналогичен компоненту 213 преобразования, масштабирования и квантования. Преобразованные и квантованные остаточные блоки и соответствующие блоки предсказания (вместе с ассоциированными управляющими данными) пересылаются в компонент 331 энтропийного кодирования для кодирования в битовый поток. Компонент 331 энтропийного кодирования может быть по существу аналогичен компоненту 231 форматирования заголовка и CABAC.
[0073] Преобразованные и квантованные остаточные блоки и/или соответствующие блоки предсказания также пересылаются из компонента 313 преобразования и квантования в компонент 329 обратного преобразования и квантования для восстановления в опорные блоки для использования компонентом 321 компенсации движения. Компонент 329 обратного преобразования и квантования может быть по существу аналогичен компоненту 229 обратного преобразования и масштабирования. Внутриконтурные фильтры в компоненте 325 внутриконтурных фильтров также применяются к остаточным блокам и/или восстановленным опорным блокам, в зависимости от примера. Компонент 325 внутриконтурных фильтров может быть по существу аналогичен компоненту 227 анализа для управления фильтром и компоненту 225 внутриконтурных фильтров. Компонент 325 внутриконтурных фильтров может включать в себя несколько фильтров, как описано в отношении компонента 225 внутриконтурных фильтров. Затем отфильтрованные блоки сохраняются в компоненте 323 буфера декодированных изображений для использования в качестве опорных блоков компонентом 321 компенсации движения. Компонент 323 буфера декодированных изображений может быть по существу аналогичен компоненту 223 буфера декодированных изображений.
[0074] Фиг. 4 представляет собой блок-схему, иллюстрирующую примерный видеодекодер 400. Видеодекодер 400 может использоваться для реализации функций декодирования системы 200 кодека и/или реализации этапов 111, 113, 115, и/или 117 рабочего способа 100. способа 400. Декодер 300 принимает поток битов, например, от кодера , и формирует реконструированный выходной видеосигнал на основе потока битов для отображения конечному пользователю.
[0075] Битовый поток принимается компонентом 433 энтропийного декодирования. Компонент 433 энтропийного декодирования выполнен с возможностью реализации схемы энтропийного декодирования, такой как декодирование CAVLC, CABAC, SBAC, PIPE, или других методик энтропийного декодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка для обеспечения контекста для интерпретации дополнительных данных, закодированных как кодовые слова в битовом потоке. Декодированная информация включает в себя любую требуемую информацию для декодирования видеосигнала, такую как общие управляющие данные, управляющие фильтром данные, информация разделения, данные движения, данные предсказания и квантованные коэффициенты преобразования из остаточных блоков. Квантованные коэффициенты преобразования пересылаются в компонент 429 обратного преобразования и квантования для восстановления в остаточные блоки. Компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.
[0076] Восстановленные остаточные блоки и/или блоки предсказания пересылаются в компонент 417 интра-кадрового предсказания для восстановления в блоки изображения на основе операций интра-предсказания. Компонент 417 интра-кадрового предсказания может быть по существу аналогичен компоненту 215 интра-кадровой оценки и компоненту 217 интра-кадрового предсказания. В частности, компонент 417 интра-кадрового предсказания использует режимы предсказания для нахождения опорного блока в кадре и применяет остаточный блок к результату для восстановления интра-предсказанных блоков изображения. Восстановленные интра-предсказанные блоки изображения и/или остаточные блоки и соответствующие данные интер-предсказания пересылаются в компонент 423 буфера декодированных изображений через компонент 425 внутриконтурных фильтров, которые могут быть по существу аналогичны компоненту 223 буфера декодированных изображений и компоненту 225 внутриконтурных фильтров, соответственно. Компонент 425 внутриконтурных фильтров фильтрует восстановленные блоки изображения, остаточные блоки и/или блоки предсказания, и такая информация сохраняется в компоненте 423 буфера декодированных изображений. Восстановленные блоки изображения из компонента 423 буфера декодированных изображений пересылаются в компонент 421 компенсации движения для интер-предсказания. Компонент 421 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и/или компоненту 219 компенсации движения. В частности, компонент 421 компенсации движения использует векторы движения из опорного блока для формирования блока предсказания и применяет остаточный блок к результату для восстановления блока изображения. Получаемые в результате восстановленные блоки также можно переслать через компонент 425 внутриконтурных фильтров в компонент 423 буфера декодированных изображений. Компонент 423 буфера декодированных изображений продолжает сохранять дополнительные восстановленные блоки изображения, которые могут быть восстановлены в кадры посредством информации разделения. Такие кадры также могут быть помещены в последовательность. Последовательность выводится на дисплей в виде восстановленного выходного видеосигнала.
[0077] Фиг. 5 представляет собой схематическое представление, иллюстрирующее пример битового потока 500, содержащего ALF APS с ограничениями параметров. Например, поток 500 битов может быть сформирован системой 200 кодека и/или кодером 300 для декодирования системой 200 кодека и/или декодером 400. В качестве другого примера поток 500 битов может быть сформирован кодером на этапе 109 способа 100 для использования декодером на этапе 111.
[0078] Битовый поток 500 включает в себя набор параметров последовательности (SPS) 510, ALF APS 513, множество наборов параметров изображения (PPS) 511, множество заголовков 515 слайсов и данные 520 изображения. SPS 510 содержит данные последовательности, общие для всех изображений 521 в видеопоследовательности, содержащейся в битовом потоке 500. Такие данные могут включать в себя размер снимка, битовую глубину, параметры инструмента кодирования, ограничения битовой скорости. PPS 511 содержит параметры, которые применяются ко всему изображению 521. Следовательно, каждое изображение 521 в видеопоследовательности может относиться к PPS 511. Следует отметить, что хотя каждое изображение 521 относится к PPS 511, в некоторых примерах один PPS 511 может содержать данные для множества изображений 521. Например, несколько одинаковых изображений 521 могут быть закодированы в соответствии с аналогичными параметрами. В таком случае один PPS 511 может содержать данные для таких похожих изображений 521. PPS 511 может указывать инструменты кодирования, доступные для слайсов 523 в соответствующих изображениях 521, параметры квантования, смещения и т. д. Заголовок 515 слайса содержит параметры, характерные для каждого слайса 523 в изображении 521. Следовательно, может быть один заголовок 515 слайса на слайс 523 в видеопоследовательности. Заголовок 515 слайса может содержать информацию о типе слайса, счетчики порядка изображений (POC), списки опорных изображений, веса предсказания, точки переходов в тайлы, параметры деблокирования и т. д. Следует отметить, что заголовок 515 слайса также может упоминаться как заголовок группы тайлов в некоторых контекстах. Кроме того, заголовок 515 слайса может ссылаться на SPS 510, PPS 511 и/или ALF APS 513 для параметров, которые используются для кодирования соответствующего слайса 523.
[0079] Данные 520 изображения содержат видеоданные, закодированные согласно интер-предсказанию и/или интра-предсказанию, а также соответствующие преобразованным и квантованным остаточным данным. Например, видеопоследовательность включает в себя множество изображений 521, закодированных как данные изображения. Изображение 521 может быть определено как массив отсчетов яркости и/или массив отсчетов цветности, которые создают кадр или его поле. Изображение 521 обычно представляет собой один кадр видеопоследовательности и, следовательно, обычно отображается как единое целое при отображении видеопоследовательности. Однако частичные изображения 521 могут отображаться для реализации определенных технологий, таких как виртуальная реальность, картинка в картинке и т. д. Кроме того, некоторые технологии могут использовать несколько уровней кодированных изображений 521, и в этом случае единовременно отображается одно изображение 521, выбранное из одного из множества слоев. Изображения 521 могут быть идентифицированы соответствующим POC. Кроме того, каждое изображение 521 ссылается на PPS 511.
[0080] Изображения 521 разделены на слайсы 523. В некоторых системах слайсы 523 подразделяются на тайлы. В других системах слайсы 523 называются группами мозаичных фрагментов, содержащими мозаичные фрагменты. Слайсы 523 и/или фрагменты дополнительно делятся на единицы дерева кодирования (CTU). CTU дополнительно делятся на блоки кодирования на основе деревьев кодирования. Затем блоки кодирования можно кодировать/декодировать согласно механизмам предсказания. Слайс 523 может быть растровым слайсом или прямоугольным слайсом. Например, изображение 521 может быть разделено на столбцы и строки CTU. Растровый слайс 523 включает в себя группу CTU изображения 521, где CTU увеличиваются в порядке растрового сканирования. Порядок растрового сканирования увеличивается слева направо по ряду CTU и увеличивается сверху вниз по столбцам CTU. Прямоугольный слайс 523 может включать в себя любую прямоугольную группу CTU из изображения 521. Таким образом, слайс 523 может быть определен как целое число полных мозаичных фрагментов или целое число последовательных полных строк CTU в мозаичном изображении, которые содержатся исключительно в одной единице NAL. Единица NAL представляет собой блок данных, который имеет размер для передачи в пакете и содержит тип и данные указанного типа. Слайсы 523 и/или группы тайлов с тайлами ссылаются на заголовок 515 слайса.
[0081] APS представляет собой синтаксическую структуру, содержащую синтаксические элементы/параметры, которые применяются к одному или нескольким слайсам 523 в одном или нескольких изображениях 521. Например, APS может применяться по меньшей мере к одному, но менее чем ко всем слайсам 523 на первом изображении 521, по меньшей мере к одному, но менее чем ко всем слайсам 523 на втором изображении 521 и т. д. APS можно разделить на несколько типов на основе параметров, содержащихся в APS. ALF APS 513 представляет собой APS типа ALF, который включает в себя параметры ALF. ALF представляет собой адаптивный блочный фильтр, который включает в себя передаточную функцию, управляемую переменными параметрами, и использует обратную связь от контура обратной связи для уточнения передаточной функции. Кроме того, ALF используется для исправления артефактов кодирования (например, ошибок), которые возникают в результате блочного кодирования. Контур обратной связи может включать в себя алгоритм оптимизации, такой как процесс RDO, работающий в кодере. Таким образом, параметры ALF, включенные в ALF APS 513, могут включать в себя переменные параметры, выбранные кодером, чтобы заставить фильтр удалять артефакты блочного кодирования во время декодирования в декодере.
[0082] Каждый APS, такой как ALF APS 513, включает в себя APS ID 542. APS ID 542 представляет собой любое значение, такое как целое число, которое однозначно идентифицирует соответствующий APS. В некоторых примерах APS ID 542 может обозначаться как adaptation_parameter_set_id. Как отмечено выше, ALF APS 513 также содержит параметры ALF. Параметр ALF - это синтаксический элемент, содержащий данные, относящиеся к управлению процессом ALF. Параметры ALF могут включать в себя флаг 541 сигнала фильтра яркости ALF, флаг 543 сигнала фильтра цветности ALF, набор 545 фильтров яркости и/или набор 547 фильтров цветности.
[0083] В частности, слайс 523 содержит образцы яркости, которые отображаются как значения освещенности, и образцы цветности, которые отображаются как значения цвета. Набор 545 фильтров яркости представляет собой набор параметров фильтра для управления применением ALF к компонентам яркости в слайсе 523. Набор 547 фильтров цветности представляет собой набор параметров фильтра для управления применением ALF к компонентам цветности в слайсе 523. ALF APS 513 может содержать набор 545 фильтров яркости, набор 547 фильтров цветности или оба. Например, первый ALF APS 513 может содержать как набор 545 фильтров яркости, так и набор 547 фильтров цветности. Компоненты яркости в видео могут изменяться, и в этом случае второй ALF APS 513 может содержать только обновленный набор 545 фильтров яркости. Затем компоненты цветности в видео могут измениться, и в этом случае третья ALF APS 513 может содержать только обновленный набор 547 фильтров цветности. Флаги могут использоваться для указания типа компонентов фильтра, содержащихся в ALF APS 513. Флаг 541 сигнала фильтра яркости ALF представляет собой параметр ALF, который указывает, что соответствующий ALF APS 513 содержит набор 545 фильтра яркости. Флаг 541 сигнала фильтра яркости ALF может быть обозначен как alf_luma_filter_signal_flag в некоторых примерах. Флаг 543 сигнала фильтра цветности ALF представляет собой параметр ALF, который указывает, что соответствующий ALF APS 513 содержит набор 547 фильтров цветности. Флаг 543 сигнала фильтра цветности ALF может быть обозначен как alf_chroma_filter_signal_flag в некоторых примерах.
[0084] Заголовок 515 слайса может ссылаться на ALF APS 513, которые содержат параметры ALF для соответствующего слайса 523. Например, заголовок 515 слайса может содержать ALF APS ID компонента яркости 549 и ALF APS ID компонента цветности 548. ALF APS ID компонента яркости 549 представляет собой синтаксический элемент в заголовке 515 слайса, который идентифицирует ALF APS 513, который содержит набор 545 фильтров яркости, относящийся к слайсу 523, связанному с заголовком 515 слайса. ALF APS ID компонента яркости 549 может обозначаться как slice_alf_aps_id_luma[i] в некоторых примерах, где i указывает i-й ALF APS 513, а i представляет собой любое положительное целое число. ALF APS ID компонента цветности 548 представляет собой синтаксический элемент в заголовке 515 слайса, который идентифицирует ALF APS 513, который содержит набор 547 фильтров цветности, относящийся к слайсу 523, связанному с заголовком 515 слайса. В некоторых примерах ALF APS ID компонента цветности 548 может быть обозначен как slice_alf_aps_id_chroma. Например, ALF APS ID компонента яркости 549 и ALF APS ID компонента цветности 548 могут ссылаться на ALF APS 513 посредством использования APS ID 542.
[0085] Битовый поток 500 включает в себя определенные ограничения для повышения эффективности кодирования, уменьшения ошибок и/или поддержки упрощения оборудования. Например, ALF APS 513 может содержать набор 545 фильтров яркости, набор 547 фильтров цветности или оба. Однако ALF APS 513 должен содержать как минимум один набор фильтров. Соответственно, битовый поток 500 включает в себя ограничение, заключающееся в том, что по меньшей мере один из флага 541 сигнала фильтра яркости ALF и флага 543 сигнала фильтра цветности ALF в одном ALF APS 513 установлен в единицу. Это ограничение гарантирует, что никакой ALF APS 513 не будет передан в декодер без по меньшей мере одного набора фильтров. Кроме того, это позволяет декодеру игнорировать возможность того, что ALF APS 513 не содержит наборов фильтров. Следовательно, конструкция декодера может быть упрощена, а аппаратные ресурсы вместо этого могут быть выделены для других задач.
[0086] В качестве другого примера, ALF APS 513 может быть ограничен таким образом, что когда ALF APS ID компонента яркости 549 указывает APS ID 542, соответствующий ALF APS 513 содержит набор 545 фильтров яркости. Кроме того, когда это происходит, флаг 541 сигнала фильтра яркости ALF в указанном ALF APS 513 устанавливается в единицу. Это гарантирует, что ALF APS 513 содержит параметры фильтра яркости, используемые для декодирования слайса 523, связанного с заголовком 515 слайса. Таким образом, декодер можно упростить, игнорируя возможность неправильной ссылки на параметры фильтра яркости в заголовке 515 слайса.
[0087] В качестве другого примера, ALF APS 513 может быть ограничен таким образом, что когда ALF APS ID компонента цветности 548 указывает APS ID 542, соответствующий ALF APS 513 содержит набор 547 фильтров цветности. Кроме того, когда это происходит, флаг 543 сигнала фильтра цветности ALF в указанной ALF APS 513 устанавливается в единицу. Это гарантирует, что ALF APS 513 содержит параметры фильтра цветности, используемые для декодирования слайса 523, связанного с заголовком 515 слайса. Таким образом, декодер можно упростить, игнорируя возможность неправильной ссылки на параметры фильтра цветности в заголовке 515 слайса.
[0088] Эти ограничения могут гарантировать, что ненужная сигнализация ALF APS 513 будет устранена и что ALF APS 513 будет содержать данные, необходимые для фильтрации декодированных слайсов 523. Такие ограничения могут быть реализованы в HRD в кодере. HRD может проверить битовый поток 500 на соответствие стандартам, чтобы гарантировать, что ALF APS 513 содержит по меньшей мере один набор фильтров и никогда не содержит неправильный набор фильтров для декодирования соответствующего слайса 523. Следовательно, эти ограничения позволяют декодеру предположить, что такие проблемы не возникали в битовом потоке 500. Следовательно, декодер может быть упрощен, чтобы избежать необходимости проверять такие проблемы и разумно реагировать на них. Соответственно, настоящие ограничения предотвращают ошибки, повышают эффективность кодирования и/или уменьшают сложность кодера и/или декодера. Таким образом, настоящие примеры могут увеличить функциональные возможности системы кодирования видео при одновременном снижении использования сетевых ресурсов, ресурсов памяти и/или ресурсов обработки в кодере и/или декодере.
[0089] Предшествующая информация теперь описывается более подробно ниже. В HEVC изображения с мгновенным обновлением декодирования (IDR), доступом по разорванной линии связи (BLA) и чистым произвольным доступом (CRA) являются изображениями внутренней точки произвольного доступа (IRAP). VVC применяет IDR- и CRA-изображения в качестве IRAP-изображений. Изображение IRAP кодируется в соответствии с внутренним предсказанием и, следовательно, не кодируется со ссылкой на другое изображение. IRAP-изображение обеспечивает следующие функциональности/преимущества. Наличие IRAP-изображения указывает, что процесс декодирования может начинаться с этого изображения. Эта функциональность поддерживает функцию произвольного доступа, которая позволяет процессу декодирования начинаться с положения в битовом потоке, когда в этом положении присутствует IRAP-изображение. Это положение может не быть в начале битового потока. Присутствие IRAP-изображения может также обновить процесс декодирования, так что изображения, закодированные после IRAP-изображения, за исключением изображений с пропуском ведущего с произвольным доступом (RASL), кодируются без какой-либо ссылки на изображения, предшествующие IRAP-изображению. Следовательно, IRAP-изображение предотвращает распространение ошибок, возникающих до упомянутого IRAP-изображения, на изображения, которые следуют за этим IRAP-изображением в порядке декодирования.
[0090] IRAP-изображения обеспечивают вышеупомянутые функциональности, но приводят к снижению эффективности сжатия. Наличие IRAP-изображения также вызывает резкий рост битрейта. Упомянутое снижение эффективности сжатия имеет две причины. Первая, поскольку IRAP-изображение является интра-предсказываемым и, следовательно, IRAP-изображение представлено большим числом битов, чем интер-предсказываемые изображения. Вторая, наличие IRAP-изображения может нарушить временное предсказание за счет обновления процесса декодирования, когда опорные изображения удаляются из DPB. Это может привести к менее эффективному кодированию/декодированию изображений, которые следуют за IRAP-изображением, поскольку для интер-предсказания доступно меньше опорных изображений.
[0091] IDR-изображения в HEVC могут извлекаться и сигнализироваться иначе, чем изображения других типов. Некоторые отличия заключаются в следующем. При сигнализации и извлечении значения POC IDR-изображения старший значащий бит (MSB) POC может быть установлен равным нулю вместо его извлечения из предыдущего ключевого изображения. Кроме того, заголовок слайса IDR-изображения может не содержать информации для помощи в управлении опорными изображениями. Для других типов изображений, таких как CRA и трейлинг, наборы опорных изображений (RPS) или списки опорных изображений могут использоваться для процесса маркировки опорных изображений. Этот процесс применяется для определения статуса опорных изображений в DPB в качестве используемых для ссылки или неиспользуемых для ссылки. Для IDR-изображений такая информация может не сигнализироваться, поскольку наличие IDR указывает, что процесс декодирования должен помечать все опорные изображения в DPB в качестве неиспользуемых для ссылки.
[0092] Ведущие изображения, если они присутствуют, связаны с изображением IRAP. Начальные изображения - это изображения, которые следуют за ассоциированным изображением IRAP в порядке декодирования, но предшествуют изображению IRAP в порядке представления/вывода. В зависимости от конфигурации кодирования и структуры ссылок на изображения ведущие изображения далее идентифицируются по двум типам. Первый тип - это начальные изображения, которые могут быть неправильно декодированы, когда процесс декодирования начинается с ассоциированного изображения IRAP. Такие изображения известны как изображения RASL. В этом случае изображения RASL могут оказаться недекодируемыми, поскольку изображения RASL кодируются со ссылкой на изображения, которые предшествуют изображению IRAP в порядке декодирования. Второй тип представляет собой начальное изображение, которое может быть правильно декодировано, даже если процесс декодирования начинается с ассоциированного изображения IRAP. Эти изображения известны как декодируемые опережающие изображения с произвольным доступом (RADL). Изображения RADL могут быть декодированы, поскольку изображения RADL кодируются без прямой или косвенной ссылки на изображения, которые предшествуют изображению IRAP в порядке декодирования. Системы HEVC используют такие ограничения, что изображения RASL должны предшествовать изображениям RADL в порядке вывода, когда изображения RASL и RADL связаны с одним и тем же изображением IRAP.
[0093] Изображениям IRAP и ведущим изображениям назначаются различные типы единиц NAL для поддержки идентификации приложениями системного уровня. Например, сплайсер видео может быть сконфигурирован для определения типов кодированных изображений без просмотра подробных синтаксических элементов в кодированном битовом потоке. Например, устройство монтажа видео может идентифицировать IRAP-изображения из не-IRAP-изображений и идентифицировать начальные изображения, включая определение RASL- и RADL-изображений, из замыкающих изображений. Завершающие изображения - это изображения, которые связаны с изображением IRAP и следуют за изображением IRAP в порядке вывода. Изображение связано с конкретным изображением IRAP, когда изображение следует за конкретным изображением IRAP в порядке декодирования и предшествует любому другому изображению IRAP в порядке декодирования. Соответственно, назначение IRAP и ведущих изображений различных типов единиц NAL поддерживает такие приложения.
[0094] Системы VVC могут использовать APS. APS представляет собой синтаксический элемент, который содержит параметры и/или данные, на которые может ссылаться один или несколько слайсов. Параметры, содержащиеся в APS, могут совместно использоваться слайсами в одном или нескольких изображениях. Параметры APS могут обновляться чаще, чем параметры PPS и/или параметры SPS.
[0095] В следующей таблице описан пример синтаксиса APS. APS может содержать параметры для ALF, отображения яркости с масштабированием цветности (LMCS) и списка масштабирования. Каждый APS может содержать только один тип параметра, который определяется посредством aps_params_type. APS, который содержит один или несколько параметров ALF, параметров LMCS или параметров списка масштабирования, может упоминаться как ALF APS, APS LMCS или APS масштабирования соответственно.
[0096] В следующей таблице описывается пример синтаксиса параметра ALF как alf_data(). Параметры ALF могут быть параметрами, используемыми только для компонентов яркости, только компонентов цветности или обоих компонентов яркости и цветности, в зависимости от примера. Наличие параметров для компонентов яркости и цветности определяется посредством alf_luma_filter_signal_flag и alf_chroma_filter_signal_flag.
[0097] Когда ALF включен для слайса, слайс ссылается на одну или несколько APS, которые содержат параметры ALF, используемые для применения ALF к слайсу. Слайс может относиться к одному или нескольким ALF APS для компонентов яркости и до одного ALF APS для компонентов цветности. В следующей таблице приведен пример синтаксиса заголовка слайса, описывающий сигнализацию ссылок на ALF APS.
[0098] Например, slice_alf_enabled_flag может быть установлен равным единице, чтобы указать, что адаптивный контурный фильтр включен, и может применяться к цветовому компоненту яркости (Y), синей разностной цветности (Cb) или красной разностной цветности (Cr) в слайсе. . Флаг slice_alf_enabled_flag может быть установлен равным нулю, чтобы указать, что адаптивный контурный фильтр отключен для всех цветовых компонентов в слайсе. slice_num_alf_aps_ids_luma может указывать количество ALF APS, к которым относится слайс. Значение slice_num_alf_aps_ids_luma может находиться в диапазоне от нуля до семи включительно. slice_alf_aps_id_luma[ i ] может задавать adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса. TemporalId единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равного slice_alf_aps_id_luma[i], должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Для внутренних слайсов и слайсов в изображении IRAP slice_alf_aps_id_luma[ i ] может относиться не к ALF APS, связанному с другими изображениями, а к изображению, содержащему внутренние слайсы, или к изображению IRAP. slice_alf_chroma_idc может быть установлен равным нулю, чтобы указать, что адаптивный контурный фильтр не применяется к цветовым компонентам Cb и Cr. slice_alf_chroma_idc может быть установлен равным единице, чтобы указать, что адаптивный контурный фильтр применяется к компоненту цвета Cb. slice_alf_chroma_idc может быть установлен равным двум, чтобы указать, что адаптивный контурный фильтр применяется к компоненту цвета Cr. slice_alf_chroma_idc может быть установлен равным трем, чтобы указать, что адаптивный контурный фильтр применяется к цветовым компонентам Cb и Cr. slice_alf_chroma_idc может считаться равным нулю, если он не присутствует. slice_alf_aps_id_chroma определяет adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайса. TemporalId единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Для внутренних слайсов и слайсов в изображении IRAP slice_alf_aps_id_chroma не должен ссылаться на ALF APS, связанный с другими изображениями, а не на изображение, содержащее внутренние слайсы или изображение IRAP.
[0099] Реализация предыдущего примера имеет определенные проблемы. Например, тип параметров ALF, сигнализируемых в APS, определяется двумя флагами, обозначенными как alf_luma_filter_signal_flag и alf_chroma_filter_signal_flag. Значения этих двух флагов могут привести к четырем следующим возможностям: оба флага имеют нулевое значение; alf_luma_filter_signal_flag равен единице, а alf_chroma_filter_signal_flag равен нулю; alf_luma_filter_signal_flag равен нулю, а alf_chroma_filter_signal_flag равен единице; и оба флага имеют одно значение. Из этих четырех возможностей сигнализация ALF APS является избыточной, когда значения обоих флагов равны нулю. Кроме того, на ALF APS можно ссылаться посредством слайса для параметров, связанных с компонентами яркости, например, с помощью синтаксического элемента slice_alf_aps_id_luma[i]. Однако не требуется, чтобы ALF APS содержал параметры ALF для компонентов яркости, например, когда значение alf_luma_filter_signal_flag равно нулю. Та же проблема может возникнуть для компонентов цветности, например.
[00100] В общем, это раскрытие описывает некоторые ограничения для способов сигнализации параметров ALF в APS. Параметры ALF могут включать в себя параметры для компонентов яркости и/или компонентов цветности. Описание методов, используемых здесь, основано на стандарте VVC, но может также применяться к другим спецификациям видеокодеков. Примерный механизм решения перечисленных выше проблем выглядит следующим образом. Можно использовать ограничение, так что ALF APS должен содержать параметр ALF по меньшей мере для одного типа цветового компонента (например, яркости или цветности). Кроме того, может быть применено ограничение, так что когда ALF APS упоминается слайсом для параметров ALF, связанных с компонентом яркости, ALF APS должен содержать параметр ALF для компонента яркости. Кроме того, может быть применено ограничение, так что когда ALF APS упоминается слайсом для параметров ALF, связанных с компонентом цветности, ALF APS должен содержать параметр ALF для компонента цветности.
[00101] Ниже приведен пример реализации. Пример семантики данных ALF выглядит следующим образом. Флаг alf_luma_filter_signal_flag может быть установлен равным единице, чтобы указать, что сигнализируется набор фильтров яркости. Флаг alf_luma_filter_signal_flag может быть установлен равным нулю, чтобы указать, что набор фильтров яркости не сигнализируется. Флаг alf_chroma_filter_signal_flag может быть установлен равным единице, чтобы указать, что сигнализируется фильтр цветности. Флаг alf_chroma_filter_signal_flag может быть установлен равным нулю, чтобы указать, что фильтр цветности не сигнализируется. Когда ChromaArrayType равен нулю, alf_chroma_filter_signal_flag также должен быть равен нулю. Соответствие битового потока может потребовать, чтобы значения alf_luma_filter_signal_flag и alf_chroma_filter_signal_flag не были оба равны нулю. Переменная NumAlfFilters, определяющая количество различных адаптивных контурных фильтров, может быть установлена равной двадцати пяти.
[00102] Пример семантики заголовка слайса следующий. Флаг slice_alf_enabled_flag может быть установлен равным единице, чтобы указать, что адаптивный контурный фильтр включен и может применяться к цветовым компонентам Y, Cb или Cr в слайсе. Флаг slice_alf_enabled_flag может быть установлен равным нулю, чтобы указать, что адаптивный контурный фильтр отключен для всех цветовых компонентов в слайсе. slice_num_alf_aps_ids_luma может указывать количество ALF APS, на которое ссылается слайс. Значение slice_num_alf_aps_ids_luma может находиться в диапазоне от нуля до семи включительно. slice_alf_aps_id_luma[ i ] может указывать adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса. TemporalId единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Для внутренних слайсов и слайсов в изображении IRAP slice_alf_aps_id_luma[ i ] не должен ссылаться на ALF APS, связанный с любым другим изображением, которое не является изображением, содержащим внутренние слайсы или изображением IRAP. Значение alf_luma_filter_signal_flag единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], должно быть равно единице.
[00103] slice_alf_chroma_idc может быть установлен равным нулю, чтобы указать, что адаптивный контурный фильтр не применяется к цветовым компонентам Cb и Cr. slice_alf_chroma_idc может быть установлен равным единице, чтобы указать, что адаптивный контурный фильтр применяется к компоненту цвета Cb. slice_alf_chroma_idc может быть установлен равным двум, чтобы указать, что адаптивный контурный фильтр применяется к компоненту цвета Cr. slice_alf_chroma_idc может быть установлен равным трем, чтобы указать, что адаптивный контурный фильтр применяется к цветовым компонентам Cb и Cr. Можно сделать вывод, что slice_alf_chroma_idc равен нулю, если он не присутствует. slice_alf_aps_id_chroma определяет adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайса. TemporalId единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Для внутренних слайсов и слайсов в изображении IRAP, slice_alf_aps_id_chroma не должен ссылаться на ALF APS, связанный с любым другим изображением, которое не является изображением, содержащим внутренние слайсы или изображением IRAP. Значение alf_chroma_filter_signal_flag единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, должно быть равно единице.
[00104] Фиг. 6 представляет собой схематичное представление примерного устройства 600 кодирования/декодирования видео. Устройство 600 кодирования/декодирования видео подходит для реализации раскрытых примеров/вариантов осуществления, которые описаны в данном документе. реализации раскрытых примеров/вариантов осуществления, как описано в данном документе. Устройство 600 кодирования/декодирования видео содержит нисходящие порты 620, восходящие порты 650 и/или блоки приемопередатчиков (Tx/Rx) 610, включая передатчики и/или приемники. Устройство 600 кодирования/декодирования видео также включает в себя процессор 630, включающий в себя логический блок и/или центральный процессор (CPU), для обработки данных и память 632 для сохранения данных. хранения данных. Устройство 600 кодирования/декодирования видео может также содержать электрические, оптико-электрические (OE) компоненты, электрическо-оптические (EO) компоненты и/или компоненты беспроводной связи, подключенные к выходным портам 650 и/или входным портам 620 для обмена данными через электрические, оптические или беспроводные сети. Устройство 600 кодирования/декодирования видео может также включать в себя устройства 660 ввода и/или вывода (I/O) для передачи данных пользователю и от пользователя. Устройства 660 I/O могут включать в себя устройства вывода, такие как дисплей, для отображения видеоданных, динамики для вывода аудиоданных и т.д. Устройства 660 I/O могут также включать в себя устройства ввода, такие как клавиатура, мышь, шаровой манипулятор и т. д., и/или соответствующие интерфейсы для взаимодействия с такими устройствами вывода.
[00105] Процессор 630 реализуется аппаратным обеспечением и программным обеспечением. Процессор 630 может быть реализован в виде одного или более ядер (например, в форме многоядерного процессора), микросхем CPU, программируемых пользователем вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 630 осуществляет связь с нисходящими портами 620, Tx/Rx 610, восходящими портами 650 и памятью 632. Процессор 630 содержит модуль 614 кодирования. Модуль 614 кодирования реализует описанные здесь раскрытые варианты осуществления, такие как способы 100, 700 и 800, которые могут использовать битовый поток 500. Модуль 614 кодирования/декодирования может также реализовывать любой другой способ/механизм, описанный в данном документе. Кроме того, модуль 614 кодирования/декодирования может реализовать систему 200 кодека, кодер 300 и/или декодер 400. Например, модуль 614 кодирования может кодировать слайсы изображений в битовый поток. Кроме того, модуль 614 кодирования может определить параметры ALF для применения при фильтрации слайсов. Модуль 614 кодирования может кодировать параметры ALF в одну или более ALF APS. Модуль 614 кодирования может применять ограничения к ALF APS. Например, модуль 614 кодирования может гарантировать, что каждая ALF APS содержит набор фильтров яркости, набор фильтров цветности или и то, и другое. Кроме того, модуль 614 кодирования может установить флаг сигнала фильтра яркости ALF и флаг сигнала фильтра цветности ALF для каждого ALF APS. В частности, модуль 614 кодирования может гарантировать, что по меньшей мере один из флага сигнала фильтра яркости ALF и флага сигнала фильтра цветности ALF равен единице, чтобы гарантировать, что каждый ALF APS содержит по меньшей мере один набор фильтров яркости или цветности. Кроме того, модуль 614 кодирования может гарантировать, что ALF APS устанавливает флаг сигнала фильтра яркости ALF и/или флаг сигнала фильтра цветности ALF, когда соответствующий заголовок слайса указывает на ALF APS для набора фильтров яркости и/или набора фильтров цветности. , соответственно. Следовательно, модуль 614 кодирования/декодирования побуждает устройство 600 кодирования/декодирования видео обеспечивать дополнительную функциональность и/или эффективность кодирования/декодирования при кодировании/декодировании видеоданных. Таким образом, модуль 614 кодирования/декодирования улучшает функциональность устройства 600 кодирования/декодирования видео, а также решает проблемы, которые характерны для областей техники кодирования/декодирования видео. Кроме того, модуль 614 кодирования/декодирования осуществляет перевод устройства 600 кодирования/декодирования видео в другое состояние. другое состояние. В качестве альтернативы, модуль 614 кодирования может быть реализован как инструкции, хранящиеся в памяти 632 и выполняемые процессором 630 (например, как компьютерный программный продукт, хранящийся на долговременном носителе).
[00106] Память 632 содержит память одного или более типов, например диски, ленточные накопители, твердотельные накопители, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, троичное запоминающее устройство с адресацией по содержимому (TCAM), статическое оперативное запоминающее устройство (SRAM) и т. д. Память 632 может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбираются для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программы.
[00107] Фиг. 7 представлена блок-схема примерного способа 700 кодирования видеопоследовательности в битовый поток, такой как битовый поток 500, с использованием ALF APS с ограничениями. Способ 700 может быть использован кодером, таким как система 200 кодека, кодер 300 и/или устройство 600 кодирования/декодирования видео при выполнении способа 100.
[00108] Способ 700 может начинаться, когда кодер принимает видеопоследовательность, включающую в себя множество снимков, и решает кодировать эту видеопоследовательность в битовый поток, например, на основе ввода пользователя. На этапе 701 слайс изображения кодируется в битовый поток как часть закодированной видеопоследовательности. Слайс может содержать кодированные компоненты яркости, кодированные компоненты цветности или их комбинации.
[00109] На этапе 703 декодер определяет параметры ALF для применения к слайсу. Например, декодер может декодировать закодированный слайс и применить параметры ALF к декодированному слайсу. Затем кодер может итеративно корректировать параметры ALF, чтобы создать декодированный слайс с наивысшим качеством, одновременно уравновешивая ограничения эффективности кодирования. Это может быть выполнено как часть процесса RDO. Параметры ALF, которые приводят к декодированию слайса с наивысшим качеством, затем могут быть сохранены для кодирования в поток битов. Параметры ALF могут включать в себя набор фильтров яркости для применения к декодированным образцам яркости, набор фильтров цветности для применения к декодированным образцам цветности или и то, и другое.
[00110] На этапе 705 параметры ALF кодируются в ALF APS в битовом потоке. ALF APS кодируется, чтобы содержать флаг сигнала фильтра яркости ALF и флаг сигнала фильтра цветности ALF. В некоторых примерах флаг сигнала фильтра яркости ALF обозначается как alf_luma_filter_signal_flag. Кроме того, alf_luma_filter_signal_flag указывает, сигнализируется ли набор фильтров яркости в ALF APS. В некоторых примерах флаг сигнала фильтра цветности ALF обозначается как alf_chroma_filter_signal_flag. Кроме того, alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS. ALF APS ограничен таким образом, что по меньшей мере один из флагов сигнала фильтра яркости ALF и флага сигнала фильтра цветности ALF устанавливается равным единице. Это гарантирует, что ALF APS содержит по меньшей мере один набор фильтров.
[00111] На этапе 707 ALF APS ID компонента яркости может быть закодирован в заголовке слайса, связанном с слайсом. ALF APS ID компонента яркости указывает APS ID в ALF APS, который содержит набор фильтров яркости для слайса, соответствующего заголовку слайса. Соответственно, значение флага сигнала фильтра яркости ALF в ALF APS на этапе 705 ограничено равным единице, когда ALF APS ID компонента яркости в заголовке слайса равен APS ID в ALF APS. В некоторых примерах ALF APS ID компонента яркости обозначается как slice_alf_aps_id_luma[i]. Например, slice_alf_aps_id_luma[i] может указывать APS ID (adaptation_parameter_set_id) i-го ALF APS, на который ссылается компонент яркости слайса.
[00112] На этапе 709 ALF APS ID компонента цветности может быть закодирован в заголовке слайса, связанном с слайсом. ALF APS ID компонента цветности указывает APS ID в ALF APS, который содержит набор фильтров цветности для слайса, соответствующего заголовку слайса. Соответственно, значение флага сигнала фильтра цветности ALF в ALF APS на этапе 705 ограничено равным единице, когда ALF APS ID компонента цветности компонента цветсности в заголовке слайса равен APS ID в ALF APS. В некоторых примерах ALF APS ID компонента цветности обозначается как slice_alf_aps_id_chroma. Например, slice_alf_aps_id_chroma может определять adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайса.
[00113] На этапе 711 битовый поток может быть сохранен в кодере для передачи в декодер.
[00114] Фиг. 8 представлена блок-схема примерного способа 800 декодирования видеопоследовательности из битового потока, такого как битовый поток 500, с использованием ALF APS с ограничениями. Способ 800 может использоваться декодером, таким как система 200 кодека, декодер 400 и/или устройство 600 кодирования/декодирования видео при выполнении способа 100.
[00115] Способ 800 может начинаться, когда декодер начинает прием битового потока кодированных данных, представляющих видеопоследовательность, например в результате выполнения способа 700. На этапе 801 декодер может принять битовый поток. Битовый поток содержит кодированный слайс и соответствующий заголовок слайса. Слайс может содержать кодированные компоненты яркости, кодированные компоненты цветности или их комбинации. Битовый поток также содержит ALF APS. ALF APS содержит параметры ALF. Параметры ALF могут включать в себя набор фильтров яркости для применения к декодированным образцам яркости, набор фильтров цветности для применения к декодированным образцам цветности или и то, и другое. ALF APS содержит флаг сигнала фильтра яркости ALF и флаг сигнала фильтра цветности ALF. В некоторых примерах флаг сигнала фильтра яркости ALF обозначается как alf_luma_filter_signal_flag. Кроме того, alf_luma_filter_signal_flag указывает, сигнализируется ли набор фильтров яркости в ALF APS. В некоторых примерах флаг сигнала фильтра цветности ALF обозначается как alf_chroma_filter_signal_flag. Кроме того, alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS. ALF APS ограничен таким образом, что по меньшей мере один из флагов сигнала фильтра яркости ALF или флага сигнала фильтра цветности ALF устанавливается равным единице. Это гарантирует, что ALF APS содержит по меньшей мере один набор фильтров.
[00116] На этапе 803 декодер может получить ALF APS ID компонента яркости из заголовка слайса, связанного с слайсом. ALF APS ID компонента яркости указывает APS ID в ALF APS, который содержит набор фильтров яркости для слайса, соответствующего заголовку слайса. Соответственно, значение флага сигнала фильтра яркости ALF в ALF APS на этапе 801 ограничено равным единице, когда ALF APS ID компонента яркости в заголовке слайса равен APS ID в ALF APS. В некоторых примерах ALF APS ID компонента яркости обозначается как slice_alf_aps_id_luma[i]. Например, slice_alf_aps_id_luma[i] может задавать adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса. Следовательно, декодер может получить набор фильтров яркости для слайса из ALF APS на основе ALF APS ID компонента яркости в заголовке слайса.
[00117] На этапе 805 декодер может получить ALF APS ID компонента цветности из заголовка слайса, связанного с слайсом. ALF APS ID компонента цветности указывает APS ID в ALF APS, который содержит набор фильтров цветности для слайса, соответствующего заголовку слайса. Соответственно, значение флага сигнала фильтра цветности ALF в ALF APS на этапе 801 ограничено равным единице, когда ALF APS ID компонента цветности в заголовке слайса равен APS ID в ALF APS. В некоторых примерах ALF APS ID компонента цветности обозначается как slice_alf_aps_id_chroma. Например, slice_alf_aps_id_chroma может определять adaptation_parameter_set_id ALF APS, на который ссылается компонент цветности слайса.
[00118] На этапе 807 декодер может декодировать слайс на основе параметров ALF в ALF APS. Например, декодер может получить набор фильтров яркости и/или набор фильтров цветности на основе флагов в заголовке слайса и/или в ALF APS. Затем декодер может сконфигурировать ALF на основе набора фильтров яркости и/или набора фильтров цветности. Кроме того, декодер может декодировать слайс и применить параметры ALF к декодированному слайсу, чтобы создать реконструированный слайс как часть реконструированного изображения.
[00119] На этапе 809 декодер может направить слайс для отображения как часть декодированной видеопоследовательности. Например, декодер может включать в себя слайс с другими слайсами для восстановления изображения. Затем изображение может быть скомпоновано с другими изображениями для создания декодированной видеопоследовательности. Изображения могут быть перенаправлены для отображения, чтобы отображать декодированную видеопоследовательность пользователю.
[00120] Фиг. 9 представляет собой схематическое представление примерной системы 900 для кодирования видеопоследовательности изображений в битовом потоке, таком как битовый поток 500, с использованием ALF APS с ограничениями. Система 900 может быть реализована с помощью кодера и декодера, такого как система 200 кодека, кодер 300, декодер 400 и/или устройство 600 кодирования/декодирования видео. Кроме того, система 900 может использоваться при реализации способов 100, 700 и/или 800.
[00121] Система 900 включает в себя видеокодер 902. Видеокодер 902 содержит модуль 901 кодирования слайса для кодирования слайса в битовый поток как часть закодированной видеопоследовательности. Видеокодер 902 дополнительно содержит модуль 903 определения для определения параметров ALF для применения к слайсу. Видеокодер 902 дополнительно содержит модуль 905 кодирования ALF для кодирования параметров ALF в ALF APS в битовом потоке, ALF APS, содержащий флаг сигнала фильтра яркости ALF и флаг сигнала фильтра цветности ALF и ограниченный таким образом, чтобы по меньшей мере один из Флаг сигнала фильтра яркости ALF и флаг сигнала фильтра цветности ALF равны единице. Видеокодер 902 дополнительно содержит модуль 907 хранения для сохранения битового потока для передачи на декодер. Видеокодер 902 дополнительно содержит передающий модуль 909 для передачи потока битов для поддержки декодирования слайса в декодере как части декодированной видеопоследовательности. Видеокодер 902 может быть дополнительно выполнен с возможностью выполнения любого из этапов способа 700.
[00122] Система 900 также включает в себя видеодекодер 910. Видеодекодер 910 содержит приемный модуль 911 для приема битового потока, содержащего ALF APS, содержащий флаг сигнала фильтра яркости ALF и флаг сигнала фильтра цветности ALF и ограниченный таким образом, чтобы по меньшей мере один из флага сигнала фильтра яркости ALF и фильтра цветности ALF флаг сигнала равен единице. Видеодекодер 910 дополнительно содержит модуль 913 декодирования для декодирования слайса на основе параметров ALF в ALF APS. Видеодекодер 910 дополнительно содержит модуль 915 пересылки для пересылки слайса для отображения как части декодированной видеопоследовательности. Видеодекодер 910 может быть дополнительно выполнен с возможностью выполнения любого из этапов способа 800.
[00123] Первый компонент напрямую связан со вторым компонентом, когда между первым компонентом и вторым компонентом нет промежуточных компонентов, за исключением линии, дорожки или другой среды. Первый компонент опосредованно связан со вторым компонентом, когда между первым компонентом и вторым компонентом есть промежуточные компоненты, отличные от линии, дорожки или другой среды. Термин «связанные» и его варианты включают в себя как непосредственно связанные, так и опосредованно связанные. Использование термина «примерно» означает диапазон, включающий в себя ±10% от последующего числа, если не указано иное.
[00124] Также следует понимать, что этапы иллюстративных способов, изложенных в настоящем документе, не обязательно должны выполняться в описанном порядке, и порядок этапов таких способов следует понимать как просто иллюстративный. Подобным образом в такие способы могут быть включены дополнительные этапы, а некоторые этапы могут быть исключены или объединены в способах, соответствующих различным вариантам осуществления настоящего раскрытия.
[00125] Хотя в настоящем раскрытии обеспечено несколько вариантов осуществления, нужно понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах, не выходя за рамки сущности или объема настоящего раскрытия. Настоящие примеры следует рассматривать как иллюстративные, а не ограничительные, и есть намерение не ограничиваться приведенными в данном документе деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.
[00126] Кроме того, методики, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как дискретные или отдельные, могут быть объединены или интегрированы с другими системами, компонентами, технологиями или способами без отклонения от объема настоящего раскрытия. Другие примеры изменений, замен и переделок могут быть установлены специалистом в данной области техники и могут быть выполнены без отклонения от сущности и объема, раскрытых в данном документе.
Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Кодируют слайс в битовый поток как часть кодированной видеопоследовательности. Кодируют набор параметров адаптации (APS) в битовый поток. APS содержит adaptation_parameter_set_id и aps_params_type, где adaptation_parameter_set_id указывает идентификатор для APS, aps_params_type указывает тип параметра, который содержится в APS. Когда aps_params_type равен ALF_APS, APS содержит адаптивный контурный фильтр (ALF) APS. Определяют параметры адаптивного контурного фильтра (ALF) для применения к слайсу. Параметры ALF содержат набор фильтров яркости и/или набор фильтров цветности. Кодируют параметры ALF в ALF APS в битовом потоке. ALF APS содержит сигнальный флаг фильтра яркости ALF (alf_luma_filter_signal_flag) и сигнальный флаг фильтра цветности ALF (alf_chroma_filter_signal_flag), где alf_luma_filter_signal_flag указывает, сигнализируется ли набор фильтров яркости в ALF APS, alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS. 5 н. и 9 з.п. ф-лы, 9 ил., 3 табл.
1. Способ декодирования, реализованный в декодере, при этом способ содержит:
прием битового потока, содержащего закодированные видеоданные для слайса и набор параметров адаптации (APS), при этом APS содержит adaptation_parameter_set_id и aps_params_type, при этом adaptation_parameter_set_id указывает идентификатор для APS, aps_params_type указывает тип параметра, который содержится в APS; когда aps_params_type равен ALF_APS, APS содержит адаптивный контурный фильтр (ALF) APS, при этом ALF APS содержит сигнальный флаг фильтра яркости ALF (alf_luma_filter_signal_flag) и сигнальный флаг фильтра цветности ALF (alf_chroma_filter_signal_flag), при этом alf_luma_filter_signal_flag указывает, сигнализируется ли набор фильтров яркости в ALF APS; alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS; при этом значение alf_luma_filter_signal_flag единицы уровня сетевой абстракции (NAL) APS, имеющего aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], ограничено равным единице, а значение alf_chroma_filter_signal_flag единицы APS NAL, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, ограничено равным единице; при этом slice_alf_aps_id_luma[i] указывает adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса, slice_alf_aps_id_chroma указывает adaptation_parameter_set_id у ALF APS, на который ссылается компонент цветности слайса; и
декодирование набора фильтров яркости, когда alf_luma_filter_signal_flag указывает, что набор фильтров яркости сигнализируется в ALF APS;
декодирование набора фильтров цветности, когда alf_chroma_filter_signal_flag указывает, что набор фильтров цветности сигнализируется в ALF APS;
декодирование слайса на основе параметров ALF в ALF APS, при этом параметры ALF содержат набор фильтров яркости и/или набор фильтров цветности.
2. Способ по п. 1, в котором alf_luma_filter_signal_flag, равный 1, указывает, что набор фильтров яркости сигнализируется в ALF APS; alf_luma_filter_signal_flag, равный 0, указывает, что набор фильтров яркости не сигнализируется в ALF APS.
3. Способ по п. 1 или 2, в котором alf_chroma_filter_signal_flag, равный 1, указывает, что набор фильтров цветности сигнализируется в ALF APS; alf_chroma_filter_signal_flag, равный 0, указывает, что набор фильтров цветности не сигнализируется в ALF APS.
4. Способ по любому из пп. 1-3, в котором slice_alf_aps_id_luma[i] и slice_alf_aps_id_chroma содержатся в заголовке слайса.
5. Способ кодирования, реализованный в кодере, при этом способ содержит:
кодирование слайса в битовый поток как части кодированной видеопоследовательности;
кодирование набора параметров адаптации (APS) в битовый поток, при этом APS содержит adaptation_parameter_set_id и aps_params_type, при этом adaptation_parameter_set_id указывает идентификатор для APS, aps_params_type указывает тип параметра, который содержится в APS; когда aps_params_type равен ALF_APS, APS содержит адаптивный контурный фильтр (ALF) APS;
определение параметров адаптивного контурного фильтра (ALF) для применения к слайсу; при этом параметры ALF содержат набор фильтров яркости и/или набор фильтров цветности;
кодирование параметров ALF в ALF APS в битовом потоке, при этом ALF APS содержит сигнальный флаг фильтра яркости ALF (alf_luma_filter_signal_flag) и сигнальный флаг фильтра цветности ALF (alf_chroma_filter_signal_flag), при этом alf_luma_filter_signal_flag указывает, сигнализируется ли набор фильтров яркости в ALF APS, alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS; при этом значение alf_luma_filter_signal_flag единицы уровня сетевой абстракции (NAL) APS, имеющего aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], ограничено равным единице, а значение alf_chroma_filter_signal_flag единицы APS NAL, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, ограничено равным единице; при этом slice_alf_aps_id_luma[i] указывает adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса, slice_alf_aps_id_chroma указывает adaptation_parameter_set_id у ALF APS, на который ссылается компонент цветности слайса.
6. Способ по п. 5, в котором alf_luma_filter_signal_flag, равный 1, указывает, что набор фильтров яркости сигнализируется в ALF APS; alf_luma_filter_signal_flag, равный 0, указывает, что набор фильтров яркости не сигнализируется в ALF APS.
7. Способ по п. 5 или 6, в котором alf_chroma_filter_signal_flag, равный 1, указывает, что набор фильтров цветности сигнализируется в ALF APS, alf_chroma_filter_signal_flag, равный 0, указывает, что набор фильтров цветности не сигнализируется в ALF APS.
8. Способ по любому из пп. 5-7, в котором slice_alf_aps_id_luma[i] и slice_alf_aps_id_chroma содержатся в заголовке слайса.
9. Устройство кодирования/декодирования видео, содержащее:
процессор, приемник, соединенный с процессором, память, соединенную с процессором, и передатчик, соединенный с процессором, при этом процессор, приемник, память и передатчик выполнены с возможностью выполнения способа по любому из пп. 1-8.
10. Долговременный считываемый компьютером носитель, содержащий компьютерный программный продукт для использования устройством кодирования/декодирования видео, при этом компьютерный программный продукт содержит выполняемые компьютером инструкции, хранящиеся на долговременном считываемом компьютером носителе, так что при выполнении процессором они предписывают устройству кодирования/декодирования видео выполнять способ по любому из пп. 1-8.
11. Устройство для хранения битового потока, содержащее:
память и приемник, при этом приемник используется для приема одного или более битовых потоков, а память используется для хранения битового потока, при этом битовый поток содержит: закодированные видеоданные для слайса и набор параметров адаптации (APS), при этом APS содержит adaptation_parameter_set_id и aps_params_type, при этом adaptation_parameter_set_id указывает идентификатор для APS, aps_params_type указывает тип параметра, который содержится в APS; когда aps_params_type равен ALF_APS, APS содержит адаптивный контурный фильтр (ALF) APS, при этом ALF APS содержит сигнальный флаг фильтра яркости ALF (alf_luma_filter_signal_flag) и сигнальный флаг фильтра цветности ALF (alf_chroma_filter_signal_flag), при этом alf_luma_filter_signal_flag указывает, сигнализируется ли набор фильтров яркости в ALF APS, alf_chroma_filter_signal_flag указывает, сигнализируется ли набор фильтров цветности в ALF APS; при этом значение alf_luma_filter_signal_flag единицы уровня сетевой абстракции (NAL) APS, имеющего aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], ограничено равным единице, а значение alf_chroma_filter_signal_flag единицы APS NAL, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, ограничено равным единице; при этом slice_alf_aps_id_luma[i] указывает adaptation_parameter_set_id i-го ALF APS, на который ссылается компонент яркости слайса, slice_alf_aps_id_chroma указывает adaptation_parameter_set_id у ALF APS, на который ссылается компонент цветности слайса.
12. Устройство по п. 11, в котором alf_luma_filter_signal_flag, равный 1, указывает, что набор фильтров яркости сигнализируется в ALF APS; alf_luma_filter_signal_flag, равный 0, указывает, что набор фильтров яркости не сигнализируется в ALF APS.
13. Устройство по п. 11 или 12, в котором alf_chroma_filter_signal_flag, равный 1, указывает, что набор фильтров цветности сигнализируется в ALF APS; alf_chroma_filter_signal_flag, равный 0, указывает, что набор фильтров цветности не сигнализируется в ALF APS.
14. Устройство по любому из пп. 11-13, в котором slice_alf_aps_id_luma[i] и slice_alf_aps_id_chroma содержатся в заголовке слайса.
US 20160234492 A1, 11.08.2016 | |||
Olena Chubach et al., "CE5-related: On the syntax constraints of ALF APS", JVET-O0288, 15th Meeting, Gothenburg, 25.06.2019 | |||
US 9807403 B2, 31.10.2017 | |||
US 20150016506 A1, 15.01.2015 | |||
US 20190149846 A1, 16.05.2019 | |||
СПОСОБ И УСТРОЙСТВО ДЛЯ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ ОБЩЕЙ ДЛЯ СЛАЙСА ИНФОРМАЦИИ | 2012 |
|
RU2630369C1 |
Авторы
Даты
2024-12-18—Публикация
2020-07-10—Подача