Перекрестная ссылка на родственные заявки
[0001] Эта заявка испрашивает приоритет предварительной заявки США №. 62/744,106, поданной 10 октября 2018 г., раскрытие которой включено в настоящий документ посредством ссылки.
Область техники
[0002] Настоящее раскрытие относится к области кодирования и декодирования видео и, в частности, к способу и аппаратуре внешнего предсказания для изображения видео, а также к соответствующему кодеру и декодеру.
Уровень техники
[0003] Возможности цифрового видео могут быть включены в широкое разнообразие аппаратур, в том числе цифровые телевизоры, системы цифрового прямого вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие аппаратуры, цифровые медиаплееры, аппаратуры для видеоигр, игровые приставки, сотовые или спутниковые радиотелефоны (так называемые «смартфоны»), аппаратуры для видеоконференцсвязи, аппаратуры для потоковой передачи видео и т.п. Цифровые видеоаппаратуру реализуют технологии сжатия видео, например технологии сжатия видео, описанные в стандартах, определенных стандартами MPEG-2, MPEG-4, ITU-T H.263 и ITU-T H.264/MPEG-4 Part 10, стандартом улучшенного кодирования видео (AVC), стандартом кодирования видео H.265/ стандартом высокоэффективного кодирования видео (HEVC) и расширениями таких стандартов. Видеоаппаратура может передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию более эффективно за счет реализации таких технологий сжатия видео.
[0004] В технологиях сжатия видео выполняется пространственное (внутри изображения) предсказание и/или временное предсказание (между изображениями) для уменьшения или удаления внутренней избыточности в видеопоследовательностях. Для блочного кодирования видео слайс видео (то есть видеокадр или часть видеокадра) может быть разделен на блоки изображения, и блок изображения также может называться древовидным блоком, единицей кодирования (CU) и/или узлом кодирования. Блок изображения в подлежащем внутреннему кодированию (I) слайсе изображения кодируется посредством пространственного предсказания опорных выборок в соседних блоках в одном и том же изображении. Для блока изображения в слайсе изображения, подлежащего межкадровому кодированию (P или B), может использоваться пространственное предсказание опорных выборок в соседних блоках в одном и том же изображении или временное предсказание опорных выборок в других опорных изображениях. Изображение может упоминаться как кадр, и опорное изображение может упоминаться в качестве опорного кадра.
Сущность изобретения
[0005] Различные варианты осуществления и аспекты раскрытий будут описаны со ссылкой на подробности, обсуждаемые ниже, а сопроводительные чертежи будут иллюстрировать различные варианты осуществления. Следующее ниже описание и чертежи иллюстрируют раскрытие и не должны рассматриваться как ограничение раскрытия. Описаны многочисленные конкретные детали, чтобы обеспечить полное понимание различных вариантов осуществления настоящего раскрытия. Однако в некоторых случаях хорошо известные или общепринятые подробности не описываются, чтобы обеспечить краткое обсуждение вариантов осуществления настоящего раскрытия.
[0006] Ссылка в описании на «один вариант осуществления» или «вариант осуществления» означает, что конкретный признак, структура или характеристика, описанные в связи с вариантом осуществления, могут быть включены по меньшей мере в один вариант осуществления раскрытия. Появление фразы «в одном варианте осуществления» в различных местах описания не обязательно относится к одному и тому же варианту осуществления.
[0007] Варианты осуществления раскрытия предоставляют способ и аппараутру внешнего предсказания для изображения видео, а также соответствующие кодер и декодер, чтобы в некоторой степени повысить точность предсказания информации движения блока изображения, тем самым улучшая производительность кодирования и декодирования.
[0008] Согласно первому аспекту описывается реализуемый компьютером способ внешнего предсказания при кодировании видео. В одном варианте осуществления способ создает список кандидатов на слияние на основе информации о движении блока кодированных изображений. Информация о движении определяет кандидата-предиктора вектора движения (MVP) в списке кандидатов на слияние. Способ добавляет новую информацию о движении в качестве нового кандидата MVP в список кандидатов на слияние, когда количество кандидатов MVP в списке кандидатов на слияние меньше максимального количества кандидатов. Способ получает индекс слияния позиции оптимальной информации о движении в списке кандидатов на слияние. Способ получает оптимальную информацию о движении на основе индекса слияния. Способ определяет предсказанный текущий блок изображения на основе оптимальной информации о движении.
[0009] В одном варианте осуществления блок кодированного изображения является пространственно или временно смежным с текущим блоком кодирования.
[0010] В одном варианте осуществления информация об оптимальном движении используется как информация о движении текущего блока кодирования.
[0011] В одном варианте осуществления способ дополнительно определяет оптимальную информацию о движении из списка кандидатов на слияние, используя издержки искажения скорости.
[0012] В одном варианте осуществления, когда количество кандидатов MVP в списке кандидатов на слияние достигает максимального количества кандидатов, способ дополнительно добавляет информацию о движении попарных средних кандидатов в список кандидатов на слияние.
[0013] В одном варианте осуществления информация о движении попарных средних кандидатов определяет попарного среднего кандидата, сгенерированного усреднением предопределенной пары кандидатов MVP в списке кандидатов на слияние.
[0014] В одном варианте осуществления максимальное количество кандидатов - это максимальное количество кандидатов в списке кандидатов на слияние минус N, где N - положительное целое число.
[0015] В одном варианте осуществления новая информация о движении добавляется в список кандидатов на слияние в заранее определенном порядке сканирования кандидатов.
[0016] В одном варианте осуществления временную информацию о движении кандидата кодированного блока изображения получают после того, как вектор движения соответствующей позиции блока в опорном кадре масштабируется на основе подсчета порядка изображений опорного кадра и текущего кадра.
[0017] В одном варианте осуществления информация о движении содержит по меньшей мере одно из следующего: информацию опорного изображения или вектора движения.
[0018] В одном варианте осуществления информации опорного изображения включает в себя по меньшей мере одно из следующего: информация однонаправленного или двунаправленного предсказания, список опорного изображения, или индекс опорного изображения, соответствующий списку опорного изображения.
[0019] В одном варианте осуществления перед добавлением новой информации о движении в качестве нового кандидата MVP в список кандидатов на слияние способ избыточности проверяет список кандидатов на слияние, чтобы найти, есть ли идентичный кандидат MVP в списке кандидатов на слияние. В ответ на нахождение идентичного кандидата MVP в списке кандидатов на слияние способ удаляет идентичного кандидата MVP из списка кандидатов на слияние и перемещает оставшихся кандидатов MVP в списке кандидатов на слияние.
[0020] Согласно второму аспекту вариант осуществления этой заявки обеспечивает способ внешнего предсказания (реализованный на компьютере), включающий в себя: создание списка кандидатов на слияние текущего блока изображения; когда количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, добавление информации о движении кандидата HMVP в список кандидатов на слияние для получения нового списка кандидатов на слияние, где N - положительное целое число; получение индекса слияния текущего блока изображения; получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние и индекса слияния; и определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.
[0021] При этом предсказанный блок можно назвать блоком предсказания.
[0022] При этом текущий блок изображения может быть блоком кодирования, единицей кодирования или блоком предсказания.
[0023] При этом максимальное количество кандидатов в списке кандидатов на слияние может быть названо максимальным количеством кандидатов предиктора вектора движения слияния (MVP).
[0024] При этом информация о движении кандидата HMVP может называться кандидатами на слияние на основе истории.
[0025] На основе второго аспекта в некоторых возможных вариантах осуществления способ дополнительно включает в себя: когда количество информации о движении кандидата в списке кандидатов на слияние больше или равно максимальному количеству кандидатов в списке кандидатов на слияние минус N, добавление информацию о движении попарного среднего кандидата в список кандидатов на слияние, чтобы получить новый список кандидатов на слияние.
[0026] На основе второго аспекта, в некоторых возможных вариантах осуществления, когда количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, добавление информации о движении кандидатов HMVP в список кандидатов на слияние для получение нового списка кандидатов на слияние включает в себя: когда количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние, добавление информации о движении кандидата HMVP в список кандидатов на слияние для получения первого списка кандидатов на слияние; и когда количество информации о движении кандидата в первом списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, добавление информации о движении нового кандидата HMVP в первый список кандидатов на слияние для получения нового списка кандидатов на слияние.
[0027] На основе второго аспекта в некоторых возможных вариантах осуществления способ дополнительно включает в себя: когда количество информации о движении кандидатов в первом списке кандидатов на слияние больше или равно максимальному количеству кандидатов в списке кандидатов на слияние минус N, добавление информации о движении по парного среднего кандидата в первый список кандидатов на слияние, чтобы получить новый список кандидатов на слияние.
[0028] Согласно третьему аспекту вариант осуществления этой заявки предоставляет аппаратуру внешнего предсказания, где аппаратура внешнего предсказания включает в себя функциональные блоки для реализации любого из способов в первом аспекте. Например, аппаратура внешнего предсказания может включать в себя: блок создания, сконфигурированный для создания списка кандидатов на слияние текущего блока изображения, и когда количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов списка кандидатов на слияние минус N, добавление информации о движении кандидатов HMVP в список кандидатов на слияние, чтобы получить новый список кандидатов на слияние, где N - положительное целое число; и блок определения блока предсказания, сконфигурированный для получения индекса слияния текущего блока изображения, получения информации о движении текущего блока изображения на основе нового списка кандидатов на слияние и индекса слияния и определения блока предсказания текущего блока изображения на основе об информации о движении текущего блока изображения.
[0029] Согласно четвертому аспекту вариант осуществления этой заявки обеспечивает способ внешнего предсказания (реализуемый компьютером), включающий в себя: создание списка кандидатов на слияние текущего блока изображения; добавление информации о движении кандидатов HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние; и определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.
[0030] Причем N может быть 1, 2 или 3.
[0031] При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния. При этом получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние может содержать: получение индекса слияния посредством синтаксического анализа битового потока. При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния может содержать: получение информации о движении из списка кандидатов на слияние с использованием индекса слияния. При этом индекс слияния может использоваться для указания позиции информации о движении в списке кандидатов на слияние.
[0032] При этом информация о движении может содержать один или два вектора движения.
[0033] При этом информация о движении может дополнительно содержать один или два индекса опорных изображений из одного или двух списков опорных изображений, относящихся к одному или нескольким векторам движения, информации однонаправленного или двунаправленного предсказания, или одного или двух MVD (разностей векторов движения), связанных с один или более векторов движения.
[0034] При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: определение информации о движении из списка кандидатов на слияние с использованием издержек искажения скорости. При этом способ может дополнительно содержать: кодирование индекса слияния для списка кандидатов на слияние в битовом потоке.
[0035] При этом предсказанный блок можно назвать блоком предсказания.
[0036] При этом текущий блок изображения может быть блоком кодирования, единицей кодирования или блоком предсказания.
[0037] При этом максимальное количество кандидатов в списке кандидатов на слияние может быть названо максимальным количеством кандидатов предиктора вектора движения слияния (MVP).
[0038] При этом информация о движении кандидата HMVP может называться кандидатами на слияние на основе истории или кандидатами на слияние MVP на основе истории (HMVP).
[0039] В возможном варианте осуществления способа согласно четвертому аспекту как таковому способ дополнительно включает в себя: добавление информации о движении попарных средних кандидатов в список кандидатов на слияние в случае, когда количество информации о движении кандидата в списке кандидатов на слияние равно максимальному количеству кандидатов в списке кандидатов на слияние минус N.
[0040] При этом информация о движении попарных средних кандидатов генерируется посредством усреднения предопределенной пары кандидатов MVP в списке кандидатов на слияние.
[0041] При этом информация о движении о информации о движении попарных средних кандидатов, может быть названа попарными средними кандидатами.
[0042] Согласно пятому аспекту описывается аппаратура внешнего предсказания. Аппаратура внешнего предсказания включает в себя функциональные блоки для реализации любого из способов в первом аспекте. Например, аппаратура внешнего предсказания может включать в себя блок создания, сконфигурированный для создания списка кандидатов на слияние на основе информации о движении блока кодированного изображения, где информация о движении определяет кандидата MVP в списке кандидатов на слияние, и добавления новой информации о движении в качестве нового кандидата MVP в список кандидатов на слияние, когда количество кандидатов MVP в списке кандидатов на слияние меньше максимального количества кандидатов. Аппаратура внешнего предсказания может дополнительно включать в себя блок определения блока предсказания, сконфигурированный для получения индекса слияния позиции оптимальной информации о движении в списке кандидатов на слияние, получения оптимальной информации о движении на основе индекса слияния и определения предсказанного текущего блока изображения на основе об оптимальной информации о движении.
[0043] В некоторых вариантах осуществления аппаратура предсказания изображения, например, применяется к аппаратуре кодирования видео (например, видеокодеру) или аппаратуре декодирования видео (например, видеодекодеру).
[0044] Способ согласно первому аспекту изобретения может выполняться аппаратурой согласно пятому аспекту заявки. Дополнительные признаки и варианты осуществления аппаратуры согласно пятому аспекту заявки соответствуют характеристикам и вариантам осуществления аппаратуры согласно первому аспекту заявки.
Согласно шестому аспекту описывается аппаратура внешнего предсказания. Аппаратура внешнего предсказания включает в себя функциональные блоки для реализации любого из способов в четвертом аспекте. Например, аппаратура внешнего предсказания может включать в себя: блок создания, сконфигурированный для: создания списка кандидатов на слияние текущего блока изображения; добавления информации о движении кандидатов HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; блок предсказания, сконфигурированный для: получения индекса слияния текущего блока изображения; получения информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния; и определения предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.
В возможном варианте осуществления аппаратуры согласно шестому аспекту как таковому, в котором блок создания дополнительно сконфигурирован для: добавления информации о движении попарных средних кандидатов в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние равно максимальному количеству кандидатов в списке кандидатов на слияние минус N.
При этом информация о движении попарных средних кандидатов генерируется посредством усреднения предопределенной пары кандидатов MVP в списке кандидатов на слияние.
В возможном варианте осуществления аппаратуры согласно любому предыдущему варианту осуществления шестого аспекта или шестого аспекта как такового, в которой блок предсказания сконфигурирован для: получения информации о движении из списка кандидатов на слияние с использованием индекса слияния.
В возможном варианте осуществления аппаратуры согласно любому предыдущему варианту осуществления шестого аспекта или шестого аспекта как такового, в котором блок предсказания сконфигурирован для: определения информации о движении из списка кандидатов на слияние с использованием издержек искажения скорости.
[0045] В некоторых вариантах осуществления аппаратура предсказания изображения, например, применяется к аппаратуре кодирования видео (например, видеокодеру) или апаратуре декодирования видео (например, видеодекодеру).
[0046] Способ согласно четвертому аспекту изобретения может выполняться аппаратурой согласно шестому аспекту заявки. Дополнительные признаки и варианты осуществления аппаратуры согласно шестому аспекту заявки соответствуют характеристикам и вариантам осуществления аппаратуры согласно четвертому аспекту заявки.
[0047] Согласно седьмому аспекту описывается аппаратура предсказания изображения. Аппаратура включает в себя процессор и память, связанную с процессором, и процессор сконфигурирован для выполнения способа в любом из аспектов с первого по четвертый или вариантов осуществления с первого по четвертый аспект.
[0048] Согласно восьмому аспекту описывается устройство декодирования видео. Устройство декодирования видео включает в себя энергонезависимый носитель данных и процессор, энергонезависимый носитель данных хранит исполняемую программу, а процессор и энергонезависимый носитель данных связаны друг с другом, и процессор выполняет исполняемую программу, чтобы реализовать способ в любом из аспектов с первого по четвертый или в вариантах осуществления с первого по четвертый аспект.
[0049] Согласно девятому аспекту описывается машиночитаемый носитель данных. Машиночитаемый носитель данных хранит инструкции программирования, и когда инструкции выполняются на компьютере, компьютер получает возможность выполнять способ в любом из аспектов с первого по четвертый или вариантов осуществления с первого по четвертый аспект.
[0050] Согласно десятому аспекту описывается компьютерный программный продукт, включающий в себя инструкции программирования. Когда компьютерный программный продукт выполняется на компьютере, компьютеру предоставляется возможность выполнять способ в любом из аспектов с первого по четвертый или вариантов осуществления с первого по четвертый аспект.
[0051] Согласно одиннадцатому аспекту вариант осуществления этой заявки предоставляет компьютерную программу, содержащую программный код для выполнения способа согласно первому аспекту - четвертому аспекту или любому возможному варианту осуществления первого аспекта - четвертого аспекта при выполнении на компьютере.
[0052] Согласно седьмому аспекту описывается реализуемый компьютером способ внешнего предсказания при кодировании видео. В одном варианте осуществления способ создает список кандидатов на слияние на основе информации о движении блока кодированных изображений. Информация о движении определяет кандидата-предиктора вектора движения (MVP) в списке кандидатов на слияние. Когда количество кандидатов MVP в списке кандидатов на слияние меньше, чем первое максимальное количество кандидатов, способ добавляет информацию о движении кандидата предиктора вектора движения (HMVP) на основе истории в список кандидатов на слияние, чтобы получить первый список кандидатов на слияние. Когда количество кандидатов MVP в первом списке кандидатов на слияние меньше, чем второе максимальное количество кандидатов, способ добавляет информацию о движении нового кандидата HMVP в первый список кандидатов на слияние, чтобы получить новый список кандидатов на слияние. Способ получает индекс слияния позиции оптимальной информации о движении в новом списке кандидатов на слияние. Способ получает оптимальную информацию о движении на основе индекса слияния. Способ определяет предсказанный текущий блок изображения на основе оптимальной информации о движении.
[0053] Следует понимать, что положительные эффекты, полученные с помощью различных аспектов и соответствующих реализуемых способов исполнения, аналогичны и не повторяются.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0054] Для более ясного описания технических решений в вариантах осуществления настоящего изобретения или в фоновом режиме ниже описаны сопроводительные чертежи, необходимые для описания вариантов осуществления настоящего изобретения или уровня техники.
[0055] ФИГ. 1A - блок-схема примера системы кодирования и декодирования видео согласно одному варианту осуществления.
[0056] ФИГ. 1B - блок-схема примера системы кодирования видео согласно одному варианту осуществления.
[0057] ФИГ. 2 - блок-схема примерной структуры кодера согласно одному варианту осуществления.
[0058] ФИГ. 3 - блок-схема примерной структуры декодера согласно одному варианту осуществления.
[0059] ФИГ. 4 - блок-схема примера устройства кодирования видео согласно одному варианту осуществления.
[0060] ФИГ. 5 - блок-схема другого примера аппаратуры кодирования или аппаратуры декодирования согласно одному варианту осуществления.
[0061] ФИГ. 6 - схематическая блок-схема пространственной и временной информации о движении кандидата согласно одному варианту осуществления.
[0062] Фиг.7 - схематическая блок-схема последовательности операций способа предсказателя вектора движения на основе истории (HMVP) согласно одному варианту осуществления.
[0063] ФИГ. 8 - схематическая блок-схема обновления таблицы согласно одному варианту осуществления.
[0064] ФИГ. 9 - схематическая блок-схема способа внешнего предсказания согласно варианту осуществления.
[0065] ФИГ. 10 - блок-схема, показывающая примерную структуру системы 3100 поставки контента, которая реализует услугу доставки контента.
[0066] ФИГ. 11 - блок-схема, показывающая структуру примера терминального устройства.
Подробное описание
[0067] Ниже описаны варианты осуществления настоящего раскрытия со ссылкой на прилагаемые чертежи в вариантах осуществления настоящего раскрытия. В нижеследующих описаниях делается ссылка на сопроводительные чертежи, которые составляют часть этого раскрытия и которые показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящего раскрытия или конкретные аспекты, в которых варианты осуществления настоящего раскрытия могут быть использованы. Следует понимать, что варианты осуществления настоящего раскрытия могут использоваться в других аспектах и могут включать в себя структурные или логические изменения, не изображенные на прилагаемых чертежах. Следовательно, следующие подробные описания не следует рассматривать как ограничение, и объем настоящего раскрытия определяется прилагаемой формулой изобретения. Например, следует понимать, что раскрытое содержание со ссылкой на описанный способ также может быть верным для соответствующего устройства или системы, сконфигурированной для выполнения способа, и наоборот. Например, если описан один или несколько конкретных этапов способа, соответствующее устройство может включать в себя один или несколько блоков, таких как функциональные блоки, для выполнения описанных одного или нескольких этапов способа (например, один блок, выполняющий один или несколько этапов; или множество блоков, каждый из которых выполняет один или несколько из множества этапов), даже если такой один или несколько блоков явно не описаны или не проиллюстрированы на сопроводительных чертежах. Соответственно, например, если конкретная аппаратура описывается на основе одного или нескольких блоков, таких как функциональные блоки, соответствующий способ может включать в себя один или несколько этапов для выполнения функциональных возможностей одного или нескольких блоков (например, один этап, выполняющий функциональные возможности одного или нескольких блоков; или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множества блоков), даже если такой один или несколько этапов явно не описаны или не проиллюстрированы на сопроводительных чертежах. Кроме того, следует понимать, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если конкретно не указано иное.
[0068] Технические решения в вариантах осуществления настоящего раскрытия могут не только применяться к существующим стандартам кодирования видео (таким как стандарт H.264 и стандарт HEVC), но также применяться к будущим стандартам кодирования видео (таким как стандарт H.266). Термины, используемые в части реализации настоящего раскрытия, предназначены только для объяснения конкретных вариантов реализации настоящего раскрытия, но не предназначены для ограничения настоящего изобретения. Далее сначала кратко описываются некоторые концепции, которые могут использоваться в вариантах осуществления настоящего раскрытия.
[0069] Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. В области кодирования видео термины «картинка», «кадр» или «изображение» могут использоваться как синонимы. Кодирование видео, используемое здесь, означает кодирование видео или декодирование видео. Кодирование видео выполняется на стороне источника и обычно включает в себя обработку (например, посредством сжатия) исходных изображений видео для уменьшения объема данных, необходимых для представления изображений видео, для более эффективного хранения и/или передачи. Декодирование видео выполняется на стороне назначения и обычно включает в себя обратную обработку относительно кодера для восстановления изображений видео. «Кодирование» изображения видео в вариантах осуществления может пониматься как «кодирование» или «декодирование» для видеопоследовательности. Комбинация части кодирования и части декодирования также называется кодеком (кодирования и декодирования).
[0070] Видеопоследовательность включает в себя серию изображений (или картинок). Изображение далее разбивается на слайсы, и каждый слайс дополнительно разбивается на блоки. При кодировании видео обработка кодирования выполняется для каждого блока. В некоторых новых стандартах кодирования видео понятие блока дополнительно расширено. Например, в стандарте H.264 существует макроблок (MB), и этот макроблок может быть дополнительно разделен на множество блоков (или разделов) предсказания, которые могут использоваться для кодирования с прогнозированием. В стандарте высокоэффективного кодирования видео (HEVC) используются базовые концепции, такие как единица кодирования (CU), единица предсказания (PU) и единица преобразования (TU), так что получается множество типов блочных единиц посредством функционального разделения, и единицы описываются со ссылкой на новую древовидную структуру. Например, CU может быть разделена на меньшие CU на основе квадродерева, и каждая меньшая CU может продолжать разделяться, тем самым формируя структуру квадродерева. CU - это базовая единица для разделения и кодирования кодированного изображения. PU и TU также имеют аналогичную древовидную структуру, и PU может соответствовать блоку предсказания и является базовой единицей кодирования с предсказанием. CU дополнительно разделяется на множество PU в соответствии с режимом разделения. TU может соответствовать блоку преобразования и является базовой единицей для преобразования остатка предсказания. По сути, все CU, PU и TU являются концепциями блоков (или блоков изображения).
[0071] Например, в HEVC CTU разделяется на множество CU с использованием структуры квадродерева, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с помощью межкадрового (временного) или внутрикадрового (пространственного) предсказания, принимается на уровне CU. Каждая CU может быть дополнительно разделена на одну, две или четыре PU на основе типа разделения PU. Внутри одной PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на TU на основе другой структуры квадродерева, аналогичной дереву кодирования, используемому для CU. В последних разработках технологий сжатия видео для разделения блока кодирования используется кадр разделения дерева квадрантов и двоичного дерева (QTBT). В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму.
[0072] Здесь для простоты описания и понимания блок изображения, который должен быть закодирован в текущем кодированном изображении, может называться текущим блоком. Например, при кодировании текущий блок - это блок, который в данный момент кодируется, а при декодировании текущий блок - это блок, который в данный момент декодируется. Декодированный блок изображения в качестве опорного изображения, используемого для предсказания текущего блока, называется опорным блоком. Другими словами, опорный блок - это блок, который предоставляет опорный сигнал для текущего блока, где опорный сигнал представляет значение пикселя в блоке изображения. Блок, который находится в опорном изображении и выдает сигнал предсказания для текущего блока может относиться к блоку предсказания, в котором сигнал предсказания представляет собой значение пикселя, значение выборки, или сигнал выборки в пределах блока предсказания. Например, после того, как множество опорных блоков пройдено, оптимальный опорный блок найден, оптимальный опорный блок обеспечивает предсказание для текущего блока, и этот блок называется блоком предсказания.
[0073] В случае кодирования видео без потерь исходные изображения видео могут быть восстановлены, что означает, что восстановленные изображения видео имеют то же качество, что и исходные изображения видео (при условии, что во время хранения или передачи не происходит потери передачи или других потерь данных). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования, чтобы уменьшить объем данных, необходимых для представления изображений видео, и изображения видео не могут быть полностью восстановлены на стороне декодера, что означает качество восстановленного изображения видео ниже или хуже, чем у исходных изображений видео.
[0074] Несколько стандартов кодирования видео, начиная с H.261, относятся к «гибридным видеокодекам с потерями» (то есть пространственное и временное предсказание в области выборки комбинируется с кодированием с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, на стороне кодера видео обычно обрабатывается, то есть кодируется на уровне блока (или видеоблока). Например, чтобы сгенерировать блок предсказания посредством пространственного (внутрикадрового) предсказания и временного (межкадрового) предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается или должен быть обработан), чтобы получить остаточный блок, и остаточный блок преобразуется и квантуется в области преобразования, чтобы уменьшить объем данных, которые должны быть переданы (сжаты), тогда как на стороне декодера часть обратной обработки относительно кодера применяется к закодированному или сжатому блоку, чтобы восстановить текущий блок для представления. Дополнительно, кодер дублирует цикл обработки декодера, так что кодер и декодер генерируют одинаковые предсказания (например, внутренние предсказания и внешние предсказания) и/или восстановление для обработки, то есть для кодирования последующих блоков.
[0075] Ниже описывается архитектура системы, применяемая в вариантах осуществления настоящего раскрытия. Фиг. 1A - схематическая блок-схема примера системы кодирования и декодирования видео согласно одному варианту осуществления. Как показано на фиг. 1A, система 10 кодирования и декодирования видео может включать в себя исходное устройство 12 и целевое устройство 14. Исходное устройство 12 генерирует кодированные видеоданные, и поэтому исходное устройство 12 может называться устройством кодирования видео. Целевое устройство 14 может декодировать кодированные видеоданные, сгенерированные исходным устройством 12, и следовательно целевое устройство 14 может называться аппаратурой декодирования видео. Варианты осуществления исходного устройства 12, целевого устройства 14 или как исходного устройства 12, так и целевого устройства 14 могут включать в себя один или несколько процессоров и память, связанную с процессором(ами). Память может включать в себя, без ограничений, оперативную память (RAM), постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме программных инструкций или структуры данных, доступной для компьютера, как описано в данном документе. Исходное устройство 12 и целевое устройство 14 могут включать в себя различные аппаратуры, в том числе настольный компьютер, мобильную вычислительную аппаратуру, портативный компьютер (например, лэптоп), планшетный компьютер, телеприставку, телефонную трубку, такую как так называемый «интеллектуальный» телефон, телевизор, фотоаппарат, аппаратуру отображения, цифровой медиаплеер, игровую приставку, бортовой компьютер, устройство беспроводной связи и т.п.
[0076] Хотя фиг. 1A изображает исходное устройство 12 и целевое устройство 14 как отдельные устройства, вариант осуществления альтернативно может включать в себя как исходное устройство 12, так и целевое устройство 14 или функциональные возможности как исходного устройства 12, так и целевого устройства 14, то есть исходного устройства 12, или соответствующие функции, и целевое устройство 14, или соответствующие функции. В таких вариантах осуществления исходное устройство 12 или соответствующие функции и целевое устройство 14 или соответствующие функции могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.
[0077] Соединение связи может выполняться между исходным устройством 12 и целевым устройством 14 через линию 13 связи, а целевое устройство 14 может принимать закодированные видеоданные от исходного устройства 12 через линию 13 связи. Линия 13 связи может включать в себя один или несколько носителей или аппаратур, способных перемещать кодированные видеоданные от исходного устройства 12 к целевому устройству 14. В одном примере линия 13 связи может включать в себя одну или несколько сред передачи данных, которые позволяют исходному устройству 12 передавать закодированные видеоданные непосредственно в целевое устройство 14 в реальном времени. В этом примере исходное устройство 12 может модулировать кодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные на целевое устройство 14. Одна или несколько сред связи могут включать в себя среду беспроводной связи и/или среду проводной связи, например, радиочастотный (RF) спектр или одну или несколько физических линий передачи. Одна или несколько сред связи могут образовывать часть сети с пакетной передачей данных, а сеть с пакетной передачей данных представляет собой, например, локальную сеть, сеть широкого доступа или глобальную сеть (например, Интернет). Одна или несколько сред связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, которое облегчает связь от исходного устройства 12 к целевому устройству 14.
[0078] Исходное устройство 12 включает в себя кодер 20, и в одном варианте осуществления исходное устройство 12 может дополнительно включать в себя источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи. В одном варианте осуществления кодер 20, источник 16 изображения, препроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в исходном устройстве 12 или могут быть программными программами в исходном устройстве 12. Отдельные описания следующие:
[0079] Источник 16 изображения может включать в себя или быть устройством захвата изображения любого типа, сконфигурированным, например, для захвата реального изображения, и/или устройством любого типа для генерации изображения или комментария (для кодирования содержимого экрана, некоторый текст на экране также рассматривается как часть картинки или изображения, подлежащего кодированию), например, процессор компьютерной графики, сконфигурированный для генерации компьютерного анимационного изображения, или устройство любого типа, сконфигурированное для получения и/или предоставления изображения реального мира или изображение компьютерной анимации (например, содержимое экрана или изображение виртуальной реальности (VR)) и/или любая их комбинация (например, изображение дополненной реальности (AR)). Источник 16 изображения может быть камерой, сконфигурированной для захвата изображения, или памятью, сконфигурированной для хранения изображения. Источник 16 изображения может дополнительно включать в себя интерфейс любого типа (внутренний или внешний) для хранения ранее захваченного или сгенерированного изображения и/или для получения или приема изображения. Когда источником 16 изображения является камера, источником 16 изображения может быть, например, локальная камера или интегрированная камера, встроенная в исходное устройство. Когда источник 16 изображения является памятью, источник 16 изображения может быть локальной памятью или, например, интегрированной памятью, интегрированной в исходное устройство. Когда источник 16 изображения включает в себя интерфейс, этот интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео. Внешний источник видео представляет собой, например, внешнее устройство захвата изображения, такое как камера, внешняя память или внешнее устройство создания изображения. Внешнее устройство создания изображения представляет собой, например, внешний компьютерный графический процессор, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например проводным или беспроводным интерфейсом или оптическим интерфейсом, в соответствии с любым частным или стандартизованным протоколом интерфейса.
[0080] Изображение можно рассматривать как двумерный массив или матрицу пикселей (элемент изображения). Пиксель в массиве также может называться выборкой. Количество выборок в горизонтальном и вертикальном направлениях (или осях) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента. Изображение может быть представлено в виде трех массивов выборок или может включать их. Например, в формате RBG или цветовом пространстве изображение включает в себя соответствующие массивы образцов красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например, изображение в формате YUV включает в себя компонент яркости, обозначенный Y (иногда указанный альтернативно L), и два компонента цветности, указанных как U и V. Компонент Y яркости (luma) представляет яркость или интенсивность уровня серого (например, оба они одинаковы в изображении с оттенками серого), а два компонента цветности (chroma) U и V представляют компоненты информации о цветности или цвете. Соответственно, изображение в формате YUV включает в себя массив выборок яркости значений (Y) выборок яркости и два массива выборок цветности значений (U и V) цветности. Изображения в формате RGB можно преобразовать или конвертировать в формат YUV и наоборот. Этот процесс также называется конверсией цвета или преобразованием. Если изображение является монохромным, оно может включать в себя только массив выборок яркости. В одном варианте осуществления изображение, переданное источником 16 изображения в процессор изображения, также может называться необработанными данными 17 изображения.
[0081] Препроцессор 18 изображения сконфигурирован для приема необработанных данных 17 изображения и выполнения предварительной обработки необработанных данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Например, предварительная обработка, выполняемая препроцессором 18 изображения, может включать в себя обрезку, конверсию цветового формата (например, из формата RGB в формат YUV), цветокоррекцию или шумоподавление.
[0082] Кодер 20 (также называемый видеокодером 20) сконфигурирован для приема предварительно обработанных данных 19 изображения и обработки предварительно обработанных данных 19 изображения с использованием соответствующего режима предсказания (такого как режим предсказания в каждом варианте осуществления этого раскрытия), чтобы предоставлять данные 21 закодированного изображения (структурные детали кодера 20 дополнительно описаны в данном документе ниже на основе фиг. 2, фиг. 4 или фиг. 5). В некоторых вариантах осуществления кодер 20 может быть сконфигурирован для выполнения различных вариантов осуществления, описанных в данном документе ниже, для реализации на стороне кодера способа предсказания блока цветности, описанного в настоящем раскрытии.
[0083] Интерфейс 22 связи может быть сконфигурирован для приема данных 21 закодированного изображения и передачи данных 21 закодированного изображения на целевое устройство 14 или любое другое устройство (например, память) через линию 13 связи для хранения или прямого восстановления. Другое устройство может быть любым устройством, используемым для декодирования или хранения. Интерфейс 22 связи может быть, например, сконфигурирован для инкапсуляции данных 21 закодированного изображения в соответствующий формат, например пакет данных, для передачи по линии 13 связи.
[0084] Целевое устройство 14 включает в себя декодер 30, и в одном варианте осуществления целевое устройство 14 может дополнительно включать в себя интерфейс 28 связи, постпроцессор 32 изображения и устройство 34 отображения. Отдельные описания следующие:
[0085] Интерфейс 28 связи может быть сконфигурирован для приема данных 21 закодированного изображения от исходного устройства 12 или любого другого источника. Любой другой источник представляет собой, например, запоминающее устройство, а запоминающее устройство - это, например, устройство хранения данных закодированных изображений. Интерфейс 28 связи может быть сконфигурирован для передачи или приема данных 21 закодированного изображения через линию 13 связи между исходным устройством 12 и целевым устройством 14 или через сеть любого типа. Линия 13 связи представляет собой, например, прямое проводное или беспроводное соединение, и любой тип сети представляет собой, например, проводную или беспроводную сеть или любую их комбинацию, или любой тип частной или общедоступной сети, или любую их комбинацию. Интерфейс 28 связи может быть, например, сконфигурирован для декапсуляции пакета данных, переданного через интерфейс 22 связи, для получения данных 21 закодированного изображения.
[0086] И интерфейс 28 связи, и интерфейс 22 связи могут быть сконфигурированы как интерфейсы однонаправленной связи или интерфейсы двунаправленной связи, и могут быть сконфигурированы, например, для отправки и приема сообщений для установки соединения, а также подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, такой как передача данных закодированного изображения.
[0087] Декодер 30 (также называемый видеодекодером 30) сконфигурирован для приема данных 21 закодированного изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (структурные детали декодера 30 дополнительно описаны в данном документе ниже на основе фиг. 3, Фиг.4 или Фиг.5). В некоторых вариантах осуществления декодер 30 может быть сконфигурирован для выполнения различных вариантов осуществления, описанных здесь ниже, для реализации на стороне декодера способа предсказания блока цветности, описанного в настоящем раскрытии.
[0088] Постпроцессор 32 изображения сконфигурирован для постобработки данных 31 декодированного изображения (также называемых данными восстановленного изображения) для получения данных 33 постобработанного изображения. Постобработка, выполняемая постпроцессором 32 изображения, может включать в себя преобразование формата цвета (например, из формата YUV в формат RGB), цветокоррекцию, обрезку, повторную выборку или любую другую обработку. Постпроцессор 32 изображения может быть дополнительно сконфигурирован для передачи данных 33 постобработанного изображения на устройство 34 отображения.
[0089] Устройство 34 отображения сконфигурировано для приема данных 33 изображения с постобработкой, чтобы отображать изображение, например, пользователю или зрителю. Устройство 34 отображения может быть или включать в себя любой тип дисплея, сконфигурированный для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Например, дисплей может включать в себя жидкокристаллический дисплей (LCD), дисплей на органических светодиодах (OLED), плазменный дисплей, проектор, микро-светодиодный дисплей, жидкий кристалл на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.
[0090] Хотя фиг. 1A изображает исходное устройство 12 и целевое устройство 14 как отдельные устройства, вариант осуществления альтернативно может включать в себя как исходное устройство 12, так и целевое устройство 14 или функциональные возможности как исходного устройства 12, так и целевого устройства 14, то есть исходного устройства 12, или соответствующие функциональные возможности, и целевое устройство 14, или соответствующие функциональные возможности. В таких вариантах осуществления исходное устройство 12 или соответствующие функциональные возможности и целевое устройство 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения, отдельного аппаратного и/или программного обеспечения или любой их комбинации.
[0091] Как будет очевидно для специалиста в данной области на основании описаний, существование и (точное) разделение функциональных возможностей различных блоков или функций исходного устройства 12 и/или целевого устройства 14, показанные на фиг. 1A может отличаться в зависимости от конкретного устройства и применения. Исходное устройство 12 и целевое устройство 14 могут включать в себя любое из широкого диапазона устройств, в том числе любой тип портативного или стационарного устройства, например, ноутбук или портативный компьютер, мобильный телефон, смартфон, планшет или планшетный компьютер, камера, настольный компьютер, телевизионная приставка, телевизор, камера, автомобильное устройство, устройство отображения, цифровой медиаплеер, игровая консоль, устройство потоковой передачи видео (например, сервер службы контента или сервер доставки контента), устройство приемника вещания или устройство передатчика вещания, и не может использовать или может использовать операционные системы любого типа.
[0092] Кодер 20 и декодер 30 каждый может быть реализован в виде любой из различных подходящих схем, например, одного или нескольких микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), дискретной логики, оборудования или любой их комбинации. Если методы частично реализованы в программном обеспечении, устройство может хранить программную инструкцию на подходящем и энергонезависимом машиночитаемом носителе данных и может выполнять инструкцию в аппаратных средствах с использованием одного или нескольких процессоров, чтобы выполнять методы этого раскрытия. Любое из вышеперечисленного (включая аппаратное обеспечение, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или несколько процессоров.
[0093] В некоторых случаях система 10 кодирования и декодирования видео, показанная на фиг. 1A является просто примером, и методы этого раскрытия сущности могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройством кодирования и устройством декодирования. В других примерах данные могут быть извлечены из локальной памяти, переданы в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают данные из памяти и декодируют данные.
[0094] ФИГ. 1B - иллюстративная диаграмма примера системы кодирования видео согласно одному варианту осуществления. Обращаясь к фиг. 1B, система 40 кодирования видео включает в себя кодер 20 по фиг. 2 и/или декодер 30 по фиг. 3 согласно одному варианту осуществления. Система 40 кодирования видео может реализовывать комбинацию различных методов в вариантах осуществления настоящего раскрытия. На фиг. 1B, система 40 кодирования видео может включать в себя устройство 41 формирования изображения, кодер 20, декодер 30 (и/или видеокодер/видеодекодер, реализованный логической схемой 47 блока 46 обработки), антенну 42, один или несколько процессоров 43, одно или несколько запоминающих устройств 44 и/или устройство 45 отображения.
[0095] Как показано на фиг. 1B, устройство 41 формирования изображения, антенна 42, блок 46 обработки, логическая схема 47, кодер 20, декодер 30, процессор 43, память 44 и/или устройство 45 отображения могут обмениваться данными друг с другом. Как описано, хотя система 40 кодирования видео проиллюстрирована кодером 20 и декодером 30, система 40 кодирования видео может включать в себя только кодер 20 или только декодер 30 в различных примерах.
[0096] В некоторых вариантах осуществления антенна 42 может быть сконфигурирована для передачи или приема закодированного битового потока видеоданных. Кроме того, в некоторых вариантах осуществления устройство 45 отображения может быть сконфигурировано для представления видеоданных. В некоторых примерах логическая схема 47 может быть реализована блоком 46 обработки. Блок 46 обработки может включать в себя логику ASIC, графический процессор, универсальный процессор и т.п. Система 40 кодирования видео может также включать в себя дополнительный процессор 43. Дополнительный процессор 43 может аналогичным образом включать в себя логику ASIC, графический процессор, универсальный процессор и т.п. В некоторых вариантах осуществления логическая схема 47 может быть реализована аппаратными средствами, например, специализированным оборудованием для кодирования видео, а процессор 43 может быть реализован программным обеспечением общего назначения, операционной системой и т.п. Кроме того, память 44 может быть любым типом памяти, например энергозависимой памятью (например, статической памятью с произвольным доступом (SRAM) или динамической памятью с произвольным доступом (DRAM)) или энергонезависимой памятью (например, флэш-памятью). В неограничивающем примере память 44 может быть реализована с помощью кэш-памяти. В некоторых вариантах осуществления логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображения). В других вариантах осуществления логическая схема 47 и/или блок 46 обработки могут включать в себя память (например, кэш) для реализации буфера изображения или тому подобного.
[0097] В некоторых вариантах осуществления кодер 20, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 46 обработки или памятью 44) и блок обработки графики (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя кодер 20, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 2 и/или любой другой системе кодера или подсистеме, описанной в данном документе. Логическая схема может быть сконфигурирована для выполнения различных операций, описанных в данном документе.
[0098] В некоторых вариантах осуществления декодер 30 может быть реализован логической схемой 47 аналогичным образом для реализации различных модулей, которые описаны со ссылкой на декодер 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данном документе. В некоторых вариантах осуществления декодер 30, реализованный логической схемой, может включать в себя буфер изображения (например, реализованный блоком 2820 обработки или памятью 44) и блок обработки графики (например, реализованный блоком 46 обработки). Графический процессор может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя декодер 30, реализованный логической схемой 47, для реализации различных модулей, которые описаны со ссылкой на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данном документе.
[0099] В некоторых вариантах осуществления антенна 42 может быть сконфигурирована для приема закодированного битового потока видеоданных. Как описано, кодированный поток битов может включать в себя данные, индикатор, значение индекса, данные выбора режима и т.п., которые относятся к кодированию видеокадров и которые описаны в данном документе, например, данные, относящиеся к разделению кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, необязательный индикатор (как описано) и/или данные, определяющие разделение кодирования). Система 40 кодирования видео может дополнительно включать в себя декодер 30, который подключен к антенне 42 и сконфигурирован для декодирования закодированного битового потока. Устройство 45 отображения приспособлено для представления видеокадра.
[00100] Следует понимать, что в этом варианте осуществления настоящего раскрытия, для примера, описанного в отношении кодера 20, декодер 30 может быть сконфигурирован для выполнения обратного процесса. Что касается элементов синтаксиса сигнализации, декодер 30 может быть сконфигурирован для приема и анализа таких элементов синтаксиса и, соответственно, декодирования связанных видеоданных. В некоторых вариантах осуществления кодер 20 может энтропийно кодировать элементы синтаксиса в кодированный битовый поток видео. В таких примерах декодер 30 может анализировать такие элементы синтаксиса и, соответственно, декодировать связанные видеоданные.
[00101] Следует отметить, что способ, описанный в этом варианте осуществления настоящего раскрытия, в основном используется для процесса внешнего предсказания, и этот процесс существует как в кодере 20, так и в декодере 30. Кодер 20 и декодер 30 в этом варианте осуществления настоящего раскрытия могут быть кодером и декодером, соответствующими протоколу стандарта видео, например H.263, H.264, HEVV, MPEG-2, MPEG-4, VP8 и VP9 или протоколу стандарта видео следующего поколения (например, H.266).
[00102] ФИГ. 2 - схематическая/концептуальная блок-схема примера кодера согласно одному варианту осуществления. На фиг. 2, кодер 20 включает в себя блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, блок 20 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания и блок 270 энтропийного кодирования. Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны на схеме). Кодер 20, показанный на фиг. 2 также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
[00103] Например, блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания и блок 270 энтропийного кодирования образуют прямой тракт сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, DPB 230 и блок 260 обработки предсказания образуют обратный тракт сигнала кодера, где обратный тракт сигнала кодера соответствует тракту сигнала декодера (например, декодера 30 на фиг. 3).
[00104] Кодер 20 принимает, например, используя вход 202, изображение 201 или блок 203 изображения для изображения 201, например, изображение в последовательности изображений, образующих видео или видеопоследовательность. Блок 203 изображения также может называться текущим блоком изображения или блоком изображения, который должен быть закодирован, а изображение 201 может упоминаться как текущее изображение или изображение, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличить текущее изображение от других изображений, другие изображения являются, например, ранее кодированными и/или декодированными изображениями в одной и той же видеопоследовательности, то есть видеопоследовательности, которая также включает в себя текущее изображение).
[00105] В одном варианте осуществления кодер 20 может включать в себя блок разделения (не показан на фиг. 2), сконфигурированный для разделения изображения 201 на множество блоков, таких как блок 203 изображения. Изображение 201 обычно разделяется на множество неперекрывающихся блоков. Блок разделения может быть сконфигурирован для использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами или группами изображений и разделения каждого изображения на соответствующие блоки.
[00106] В одном варианте осуществления блок 260 обработки предсказания кодера 20 может быть сконфигурирован для выполнения любой комбинации методов разделения, описанных выше.
[00107] Подобно изображению 201, блок 203 изображения также или может рассматриваться как двумерный массив или матрица выборок со значениями выборок, хотя и меньшего размера, чем изображение 201. Другими словами, блок 203 изображения может включать в себя, например, один массив выборок (например, массив яркости в случае монохромного изображения 201), три массива выборок (например, один массив яркости и два массива цветности в случай цветного изображения) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или осях) блока 203 изображения определяет размер блока 203 изображения.
[00108] Кодер 20, показанный на фиг. 2, сконфигурирован для кодирования изображения 201 блок за блоком, например, для выполнения кодирования и предсказания для каждого блока 203 изображения.
[00109] Блок 204 вычисления остатка сконфигурирован для вычисления остаточного блока 205 на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания представлены в данном документе ниже), например, для получения остаточного блока 205 в области выборки путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения выборка за выборкой (пиксель за пикселем).
[00110] Блок 206 обработки преобразования сконфигурирован для применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусоидального преобразования (DST), к значениям выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
[00111] Блок 206 обработки преобразования может быть сконфигурирован для применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются несколько раз. Чтобы сохранить норму остаточного блока, обработанного посредством прямого и обратного преобразований, дополнительный коэффициент масштабирования применяется как часть процесса преобразования. Коэффициент масштабирования обычно выбирается на основе некоторых ограничений, например, коэффициент масштабирования - это степень двойки для операции сдвига, битовая глубина коэффициента преобразования или компромисс между точностью и затратами на реализацию. Например, конкретный коэффициент масштабирования задается для обратного преобразования на стороне декодера 30, например, блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием на стороне кодера 20, например, блоком 212 обработки обратного преобразования), и, соответственно, соответствующий коэффициент масштабирования может быть указан для прямого преобразования на стороне кодера 20 блоком 206 обработки преобразования.
[00112] Блок 208 квантования сконфигурирован для квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования также могут упоминаться как квантованные остаточные коэффициенты 209. Процесс квантования может уменьшить битовую глубину, относящуюся к некоторым или всем коэффициентам 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть модифицирована путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньший шаг квантования соответствует более тонкому квантованию, тогда как больший шаг квантования соответствует более грубому квантованию. Соответствующий шаг квантования может быть указан QP. Например, параметр квантования может быть индексом для заранее определенного набора подходящих шагов квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (например, меньшему шагу квантования), а больший параметр квантования может соответствовать более грубому квантованию (например, большему шагу квантования), и наоборот. Квантование может включать в себя деление на шаг квантования и соответствующее квантование или деквантование, например, посредством обратного квантования 210, или может включать в себя умножение на шаг квантования. Варианты осуществления согласно некоторым стандартам, таким как HEVC, могут использовать параметр квантования для определения шага квантования. Как правило, шаг квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть модифицирован из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для шага квантования и параметра квантования. В одном примерном варианте осуществления масштаб обратного преобразования может быть объединен со шкалой деквантования. В качестве альтернативы могут использоваться настроенные таблицы квантования и передаваться сигнал от кодера к декодеру, например, в битовом потоке. Квантование - это операция с потерями, где больший шаг квантования указывает на большие потери.
[00113] Блок 210 обратного квантования сконфигурирован для применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, применения, на основе или с использованием того же шага квантования, что и блок 208 квантования, обратной схемы квантования, применяемой блоком 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствуют, хотя обычно отличаются от коэффициентов преобразования из-за потерь, вызванных квантованием, коэффициентам 207 преобразования.
[00114] Блок 212 обработки обратного преобразования сконфигурирован для применения обратного преобразования для преобразования, применяемого блоком 206 обработки преобразования, например, обратного DCT или обратного DST, для получения блока 213 обратного преобразования в области выборки. Блок 213 обратного преобразования может также называться блоком 213 деквантования обратного преобразования или остаточным блоком 213 обратного преобразования.
[00115] Блок 214 восстановления (например, сумматор 214) сконфигурирован для добавления блока 213 обратного преобразования (то есть восстановленного остаточного блока 213) к блоку 265 предсказания, чтобы получить восстановленный блок 215 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.
[00116] В одном варианте осуществления буферный блок (или буфер) 216, например, строкового буфера 216, сконфигурирован для буферизации или хранения восстановленного блока 215 и соответствующих значений выборок, например, для внутреннего предсказания. В других вариантах осуществления кодер может быть сконфигурирован для использования нефильтрованных восстановленных блоков и/или соответствующих значений выборок, хранящихся в блоке 216 буфера, для любого типа оценки и/или предсказания, например, внутреннего предсказания.
[00117] Например, один вариант осуществления кодера 20 может быть сконфигурирован так, что блок 216 буфера не только используется для хранения восстановленного блока 215 для внутреннего предсказания 254, но также используется для блока 220 контурного фильтра (не показан на фиг. 2), и/или так, что, например, блок 216 буфера и блок 230 буфера декодированного изображения образуют один буфер. Другие варианты осуществления могут быть сконфигурированы для использования фильтрованных блоков 221 и/или блоков или выборок из буфера 230 декодированных изображений (блоки или выборки не показаны на фиг. 2) в качестве входных данных или основы для внутреннего предсказания 254.
[00118] Блок контурного фильтра (или контурный фильтр) 220 сконфигурирован для фильтрации восстановленного блока 215 для получения отфильтрованного блока 221, сглаживания переходов пикселей или улучшения качества видео. Блок 220 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, в том числе фильтра деблокирования, фильтра с адаптивным смещением (SAO) и других фильтров, например двустороннего фильтра, адаптивного контурного фильтра (ALF), фильтра повышения резкости или сглаживания или коллективного фильтра. Хотя блок 220 контурного фильтра показан на фиг. 2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Фильтрованный блок 221 также может называться фильтрованным восстановленным блоком 221. Буфер 230 декодированных изображений может хранить восстановленные кодированные блоки после того, как блок 220 контурного фильтра выполнит операции фильтрации на восстановленных кодированных блоках.
[00119] Один вариант осуществления кодера 20 (соответственно, блок 220 контурного фильтра) может быть сконфигурирован для вывода параметра контурного фильтра (такого как информация об адаптивном смещении выборки), например, непосредственно или после энтропийного кодирования, выполняемого блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что, например, декодер 30 может принимать тот же параметр контурного фильтра и применять тот же параметр контурного фильтра для декодирования.
[00120] DPB 230 может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных кодером 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как DRAM (включая синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM) и резистивную RAM (RRAM)) или другие типы запоминающих устройств. DPB 230 и буфер 216 могут быть предоставлены одним и тем же запоминающим устройством или отдельными запоминающими устройствами. В одном варианте осуществления DPB 230 сконфигурирован для хранения отфильтрованного блока 221. DPB 230 может быть дополнительно сконфигурирован для хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221, одного и того же текущего изображения или разных изображений, например, ранее восстановленных изображений, и может предоставлять полностью ранее восстановленные, то есть, декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. В одном варианте осуществления, если восстановленный блок 215 восстанавливается без внутриконтурной фильтрации, DPB 230 конфигурируется для хранения восстановленного блока 215.
[00121] Блок 260 обработки предсказания, также называемый блоком 260 обработки предсказания блока, сконфигурирован для приема или получения блока 203 изображения (например, блока 203 текущего изображения для текущего изображения 201) и данных восстановленного изображения, например, опорных выборок одного и того же (или текущего) изображения из буфера 216 и/или опорных изображений данных 231 из одного или более ранее декодированных изображений, из буфера 230 декодированного изображения, и обрабатывать эти данные для предсказания, то есть, чтобы обеспечить блок предсказания 265 это может быть блок 245 внешнего предсказания или блок 255 внутреннего предсказания.
[00122] Блок 262 выбора режима может быть сконфигурирован для выбора режима предсказания (например, режима внутреннего или внешнего предсказания) и/или соответствующего блока 245 или 255 предсказания, который будет использоваться в качестве блока 265 предсказания, для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
[00123] В одном варианте осуществления блок 262 выбора режима может быть сконфигурирован для выбора режима предсказания (например, из режимов предсказания, поддерживаемых блоком 260 обработки предсказания), где режим предсказания обеспечивает оптимальное совпадение, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или обеспечивает минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или учитывает или уравновешивает и то, и другое. Блок 262 выбора режима может быть сконфигурирован для определения режима предсказания на основе оптимизации скорости-искажения (RDO), то есть выбора режима предсказания, который обеспечивает оптимизацию минимальной скорости-искажения, или выбора режима предсказания, для которого соответствующее искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.
[00124] Далее более подробно описывается обработка предсказания, выполняемая (например, с использованием модуля 260 обработки предсказания), и выбор режима (например, с использованием модуля 262 выбора режима) на примере кодера 20.
[00125] Как описано выше, кодер 20 сконфигурирован для определения или выбора оптимального или оптимального режима предсказания из набора режимов предсказания (который может быть задан заранее). Набор режимов предсказания может включать в себя, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.
[00126] Набор режимов внутреннего предсказания может включать в себя 35 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, такие как определенные в H.265, или может включать в себя 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, такие как те, которые определены в H.266, находящемся в стадии разработки.
[00127] В одном варианте осуществления набор режимов внешнего предсказания зависит от доступных опорных изображений (то есть, например, по меньшей мере частично декодированных изображений, хранящихся в DPB 230, как описано выше), и других параметров внешнего предсказания, например, зависит от того, все опорное изображение или только часть опорного изображения, например, область окна поиска вокруг области текущего блока, используется для поиска оптимального совпадающего опорного блока и/или, например, зависит от того, применяется ли интерполяция пикселей такая как интерполяция в половину/полупиксель и/или четверть пикселя. Набор режимов внешнего предсказания может включать в себя, например, расширенный режим предиктора вектора движения (предиктор вектора движения AMVP) и режим слияния. В одном варианте осуществления набор режимов внешнего предсказания может включать в себя режим AMVP на основе контрольной точки и режим слияния на основе контрольной точки, которые улучшены в вариантах осуществления настоящего раскрытия. В одном примере блок 254 внутреннего предсказания может быть сконфигурирован для выполнения любой комбинации методов внутреннего предсказания, описанных ниже.
[00128] В дополнение к вышеупомянутым режимам предсказания в вариантах осуществления настоящего раскрытия также могут применяться режим пропуска и/или прямой режим.
[00129] Блок 260 обработки предсказания может быть дополнительно сконфигурирован для разделения блока 203 изображения на более мелкие разделения блоков или подблоки, например, путем итеративного использования разделения квадродерева (QT), разделения двоичного дерева (BT), разделения тройного дерева (TT) или любой их комбинации, и для выполнения, например, предсказания для каждого из разделов или подблоков блока, где выбор режима включает в себя выбор древовидной структуры разделенного блока 203 изображения и режимов предсказания, применяемых к каждому из разделов блоков или подблоков.
[00130] Блок 244 внешнего предсказания может включать в себя блок оценки движения (ME) (не показан на фиг.2) и блок компенсации движения (MC) (также не показан на фиг.2). Блок оценки движения сконфигурирован для приема или получения блока 203 изображения (например, блока 203 текущего изображения для текущего изображения 201) и декодированного изображения 231, или по меньшей мере одного или нескольких ранее восстановленных блоков, например, восстановленных блоков одного или больше других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может включать в себя текущее изображение и ранее декодированные изображения 31, или, другими словами, текущее изображение и ранее декодированные изображения 31 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
[00131] Например, кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же изображения или различных изображений из множества других изображений и обеспечить, для блока оценки движения (не показан на фиг. 2), опорное изображение и/или обеспечить смещение (пространственное смещение) между позицией (координатами X и Y), опорного блока и позицией текущего блока в качестве параметра внешнего предсказания. Это смещение также называется вектором движения (MV).
[00132] Блок компенсации движения сконфигурирован для получения параметра внешнего предсказания и выполнения внешнего предсказания на основе или с использованием параметра внешнего предсказания для получения блока 245 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения (не показанным на фиг. 2), может включать в себя выборку или генерацию блока предсказания на основе вектора движения/блока, определенного посредством оценки движения (возможно, выполнение интерполяции для точности субпикселя). Интерполяционная фильтрация может генерировать дополнительные выборки пикселей из известных выборок пикселей, тем самым потенциально увеличивая количество кандидатных блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок 246 компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном списке опорных изображений. Блок 246 компенсации движения может дополнительно генерировать элементы синтаксиса, связанные с блоками и слайсами видео, для использования декодером 30 при декодировании блоков изображения слайса видео.
[00133] В одном варианте осуществления блок 244 внешнего предсказания может передавать элементы синтаксиса в блок 270 энтропийного кодирования, и элементы синтаксиса включают в себя параметр внешнего предсказания (например, информацию указания выбора режима внешнего предсказания, используемого для предсказания текущего блока после обхода множества режимов внешнего предсказания). В одном варианте осуществления, если существует только один режим внешнего предсказания, параметр внешнего предсказания может альтернативно не переноситься в элементах синтаксиса. В этом случае сторона 30 декодера может выполнять декодирование непосредственно в режиме предсказания по умолчанию. Можно понять, что блок 244 внешнего предсказания может быть сконфигурирован для выполнения любой комбинации методов внешнего предсказания.
[00134] Блок 254 внутреннего предсказания сконфигурирован для получения, например, приема блока 203 изображения (текущего блока изображения) и одного или нескольких ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутренней оценки. Кодер 20 может быть, например, сконфигурирован для выбора режима внутреннего предсказания из множества режимов внутреннего предсказания (которые могут быть заранее определены).
[00135] В одном варианте осуществления кодер 20 может быть сконфигурирован для выбора режима внутреннего предсказания на основе критерия оптимизации, например, на основе минимального остатка (например, режим внутреннего предсказания, обеспечивающий блок 255 предсказания, который наиболее аналогичен текущему блоку 203 изображения) или искажения с минимальной скоростью.
[00136] Блок 254 внутреннего предсказания дополнительно сконфигурирован для определения на основе параметра внутреннего предсказания, например, выбранного режима внутреннего предсказания, блока 255 внутреннего предсказания. В любом случае, после выбора режима внутреннего предсказания для блока, блок 254 внутреннего предсказания дополнительно конфигурируется для предоставления параметра внутреннего предсказания, то есть информации, указывающей выбранный режим внутреннего предсказания для блока, в блок 270 энтропийного кодирования. В одном примере блок 254 внутреннего предсказания может быть сконфигурирован для выполнения любой комбинации методов внутреннего предсказания.
[00137] В одном варианте осуществления блок 254 внутреннего предсказания может передавать элементы синтаксиса в блок 270 энтропийного кодирования, и элементы синтаксиса включают в себя параметр внутреннего предсказания (например, информацию указания выбора режима внутреннего предсказания, используемого для предсказания текущего блока после обхода) из множества режимов внутреннего предсказания). В одном варианте осуществления, если существует только один режим внутреннего предсказания, параметр внутреннего предсказания может альтернативно не переноситься в элементах синтаксиса. В этом случае сторона 30 декодера может выполнять декодирование непосредственно в режиме предсказания по умолчанию.
[00138] Блок 270 энтропийного кодирования сконфигурирован для применения алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с интервалом вероятности (PIPE) или другого способа или метода энтропийного кодирования) к квантованным остаточным коэффициентам 209, параметру внешнего предсказания, параметру внутреннего предсказания и/или параметру контурного фильтра по отдельности или совместно (или не полностью) для получения данных 21 закодированного изображения, которые могут выводиться выводом 272, например, в форме кодированного битового потока 21. Кодированный битовый поток может быть передан на видеодекодер 30 или заархивирован для последующей передачи или поиска видеодекодером 30. Блок 270 энтропийного кодирования может быть дополнительно сконфигурирован для энтропийного кодирования других элементов синтаксиса для текущего кодируемого слайса видео.
[00139] Другие структурные варианты видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для некоторых блоков или кадров. В другом варианте осуществления кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
[00140] В одном варианте осуществления кодер 20 может быть сконфигурирован для реализации способа внешнего предсказания, описанного в следующем варианте осуществления.
[00141] Следует понимать, что другие структурные вариации видеокодера 20 могут использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 20 может квантовать остаточный сигнал напрямую без обработки блоком 206 обработки преобразования и, соответственно, без обработки блоком 212 обработки обратного преобразования. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 20 не генерирует остаточные данные, и, соответственно, нет необходимости в блоке 206 обработки преобразования, блоке 208 квантования, блоке 210 обратного квантования и блоке 212 обработки обратного преобразования для выполнения обработки. В качестве альтернативы, видеокодер 20 может непосредственно хранить восстановленный блок изображения в качестве опорного блока, без обработки с помощью фильтра 220. В качестве альтернативы, блок 208 квантования и блок 210 обратного квантования в видеокодере 20 могут быть объединены вместе. Контурный фильтр 220 является необязательным, и в случае кодирования со сжатием без потерь блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях применений блок 244 внешнего предсказания и блок 254 внутреннего предсказания могут быть активированы выборочно.
[00142] ФИГ. 3 - схематическая/концептуальная блок-схема примера декодера согласно одному варианту осуществления. Обращаясь к фиг. 3, видеодекодер 30 сконфигурирован для приема кодированных данных изображения (например, кодированного битового потока) 21, например, закодированных кодером 20, для получения декодированного изображения 231. В процессе декодирования видеодекодер 30 принимает видеоданные, например закодированный битовый поток видео, который представляет блоки изображения кодированного слайса видео и ассоциированные элементы синтаксиса, от видеокодера 20.
[00143] В примере на фиг. 3, декодер 30 включает в себя модуль 304 энтропийного декодирования, модуль 310 обратного квантования, модуль 312 обработки обратного преобразования, модуль 314 восстановления (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированных изображений и блок 360 обработки предсказания. Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания, блок 354 внутреннего предсказания и блок 362 выбора режима. В некоторых примерах видеодекодер 30 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному со ссылкой на видеокодер 20 на фиг. 2.
[00144] Модуль 304 энтропийного декодирования сконфигурирован для выполнения энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, любого одного или всех из параметра внешнего предсказания, параметра внутреннего предсказания, параметра контурного фильтра и/или другие элементы синтаксиса (которые декодируются). Модуль 304 энтропийного декодирования дополнительно сконфигурирован для пересылки параметра внешнего предсказания, параметра внутреннего предсказания и/или других элементов синтаксиса в модуль 360 обработки предсказания. Видеодекодер 30 может принимать элементы синтаксиса на уровне слайса видео и/или уровне видеоблока.
[00145] Блок 310 обратного квантования может иметь ту же функцию, что и блок 110 обратного квантования, блок 312 обработки обратного преобразования может иметь ту же функцию, что и блок 212 обработки обратного преобразования, блок 314 восстановления может иметь ту же функцию, что и блок 214 восстановления, буфер 316 может иметь ту же функцию, что и буфер 216, контурный фильтр 320 может иметь ту же функцию, что и контурный фильтр 220, и буфер 330 декодированного изображения может иметь ту же функцию, что и буфер 230 декодированного изображения.
[00146] Блок 360 обработки предсказания может включать в себя блок 344 внешнего предсказания и блок 354 внутреннего предсказания, где блок 344 внешнего предсказания может напоминать блок 244 внешнего предсказания по функциям, а блок 354 внутреннего предсказания может напоминать блок 254 внутреннего предсказания по функциям. Блок 360 обработки предсказания, как правило, сконфигурирован для выполнения предсказания блока и/или получения блока 365 предсказания из закодированных данных 21, а также приема или получения (явно или неявно) параметров, связанных с предсказанием, и/или информации о выбранном режиме предсказания, например, из модуля 304 энтропийного декодирования.
[00147] Когда слайс видео кодируется как внутреннекодированный (I) слайс, блок 354 внутреннего предсказания блока 360 обработки предсказания конфигурируется для генерации блока 365 предсказания для блока изображения текущего слайса видео на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как внешнекодированный (то есть B или P) слайс, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 обработки предсказания конфигурируется для генерации блока 365 предсказания для видеоблока текущего слайса видео на основе вектора движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блок предсказания может быть сгенерирован из одного из опорных изображений в одном списке опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, список 0 и список 1, используя метод создания по умолчанию на основе опорных изображений, хранящихся в DPB 330.
[00148] Блок 360 обработки предсказания сконфигурирован для определения информации предсказания для видеоблока текущего слайса видео путем синтаксического анализа вектора движения и других элементов синтаксиса и использования информации предсказания для генерации блока предсказания для текущего декодируемого видеоблока. В одном примере настоящего изобретения блок 360 обработки предсказания использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков слайса видео, типа слайса внешнего предсказания (например, B-слайс, P-слайс или GPB-слайс), информации о создании для одного или нескольких списков опорных изображений для слайса, вектора движения для каждого внешнекодированного видеоблока слайса, статуса межкадрового предсказания для каждого внешнекодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем слвйсе видео. В другом варианте осуществления элементы синтаксиса, принятые видеодекодером 30 из битового потока, включают в себя элементы синтаксиса в одном или нескольких из адаптивного набора параметров (APS), набора параметров последовательности (SPS), набора параметров изображения (PPS) или заголовка слайса.
[00149] Блок 310 обратного квантования может быть сконфигурирован для обратного квантования (то есть деквантования) квантованных коэффициентов преобразования, предоставленных в битовом потоке и декодированных модулем 304 энтропийного декодирования. Процесс обратного квантования может включать в себя: использование параметра квантования, вычисленного видеокодером 20 для каждого видеоблока в слайсе видео, для определения степени квантования, которая должна применяться, и, аналогично, степени обратного квантования, которая должна применяться.
[00150] Блок 312 обработки обратного преобразования сконфигурирован для применения обратного преобразования (например, обратного DCT, обратного целочисленного преобразования или концептуально аналогичного процесса обратного преобразования) к коэффициентам преобразования для генерации остаточных блоков в области пикселей.
[00151] Блок 314 восстановления (например, сумматор 314) сконфигурирован для добавления блока 313 обратного преобразования (то есть восстановленного остаточного блока 313) к блоку 365 предсказания, чтобы получить восстановленный блок 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.
[00152] Блок 320 контурного фильтра (в контуре кодирования или после контура кодирования) сконфигурирован для фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, сглаживания переходов пикселей или улучшения качества видео. В одном примере блок 320 контурного фильтра может быть сконфигурирован для выполнения любой комбинации методов фильтрации, описанных ниже. Блок 320 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, в том числе фильтр деблокирования, фильтр с адаптивным смещением (SAO) и другие фильтры, например двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтр повышения резкости или сглаживания или коллективный фильтр. Хотя блок 320 контурного фильтра показан на фиг. 3, как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.
[00153] Декодированные видеоблоки 321 в данном кадре или изображении затем сохраняются в буфере 330 декодированных изображений, в котором хранятся опорные изображения, используемые для последующей компенсации движения.
[00154] Декодер 30 сконфигурирован, например, для вывода декодированного изображения 31 с использованием вывода 332 для представления пользователю или просмотра пользователем.
[00155] Другие варианты видеодекодера 30 могут быть сконфигурированы для декодирования сжатого битового потока. Например, декодер 30 может генерировать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30, не основанный на преобразовании, может обратно квантовать остаточный сигнал напрямую без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другом варианте осуществления видеодекодер 30 может иметь блок 310 обратного квантования и модуль 312 обработки обратного преобразования, объединенные в один модуль.
[00156] В одном варианте осуществления декодер 30 сконфигурирован для реализации способа внешнего предсказания, описанного в следующем варианте осуществления.
[00157] Следует понимать, что другие структурные вариации видеодекодера 30 могут быть сконфигурированы для декодирования кодированного битового потока видеоданных. Например, видеодекодер 30 может генерировать выходной видеопоток без обработки фильтром 320. В качестве альтернативы, для некоторых блоков изображения или кадров изображения блок 304 энтропийного декодирования видеодекодера 30 не получает квантованные коэффициенты посредством декодирования, и, соответственно, нет необходимости в блоке 310 обратного квантования и блоке 312 обработки обратного преобразования для выполнения обработки. Контурный фильтр 320 является необязательным, и в случае сжатия без потерь блок 310 обратного квантования и блок 312 обработки обратного преобразования являются необязательными. Следует понимать, что в различных сценариях применений блок внешнего предсказания и блок внутреннего предсказания могут быть активированы выборочно.
[00158] Следует понимать, что на кодере 20 и декодере 30 результат обработки для процедуры может быть выведен в следующую процедуру после дополнительной обработки. Например, после такой процедуры, как интерполяционная фильтрация, выведение вектора движения или циклическая фильтрация, операция, такая как отсечение или сдвиг, дополнительно выполняется над результатом обработки соответствующей процедуры.
[00159] Например, вектор движения контрольной точки текущего блока изображения, выведенный из вектора движения соседнего аффинно-кодированного блока, может быть дополнительно обработан. Это не ограничено здесь. Например, диапазон значений вектора движения ограничен конкретной битовой глубиной. Предполагая, что допустимая битовая глубина вектора движения равна bitDepth, диапазон вектора движения составляет от -2^(bitDepth-1) до 2^(bitDepth-1)-1, где символ «^» представляет степень. Если bitDepth равен 16, диапазон значений составляет от -32768 до 32767. Если bitDepth равно 18, диапазон значений составляет от -131072 до 131071. Диапазон значений может быть ограничен двумя следующими способами.
[00160] Способ 1: Удалить переполненный старший бит вектора движения:
ux= (vx+2bitDepth) % 2bitDepth
vx = (ux >= 2bitDepth-1) ? (ux − 2bitDepth): ux
uy= (vy+2bitDepth) % 2bitDepth
vy = (uy >= 2bitDepth-1) ? (uy − 2bitDepth): uy
[00161] Например, значение vx равно -32769, 32767 получается с использованием приведенных выше формул. Значение хранится в компьютере в виде дополнения до двух, дополнительный двоичный код -32769 равен 1,0111,1111,1111,1111 (17 бит), и компьютер обрабатывает переполнение, отбрасывая бит старшего разряда. Следовательно, значение vx равно 0111,1111,1111,1111, то есть 32767, что согласуется с результатом, полученным в результате обработки с использованием упомянутых формул.
[00162] Способ 2: Выполнить отсечение вектора движения, как показано в следующих формулах:
vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)
где Clip3 определен для указания обрезки значения z до диапазона [x, y]:
Clip3(x, y, z) = "
[00163] ФИГ. 4 - схематическая структурная диаграмма устройства кодирования видео согласно одному варианту осуществления. На фиг. 4, устройство 400 кодирования видео (например, устройство кодирования видео или устройство декодирования видео) подходит для реализации описанного здесь варианта осуществления. В одном варианте осуществления устройство 400 кодирования видео может быть видеодекодером (например, декодером 30 на фиг. 1A) или видеокодером (например, кодером 20 на фиг. 1A). В другом варианте осуществления устройство 400 кодирования видео может быть одним или несколькими компонентами декодера 30 на фиг. 1A или кодера 20 на фиг. 1А.
[00164] Устройство 400 кодирования видео включает в себя: входные порты 410 и блок 420 приемника (Rx), которые сконфигурированы для приема данных; процессор, логический блок или центральный процессор (CPU) 430, которые сконфигурированы для обработки данных; блок 440 передатчика (Tx) и выходные порты 450, которые сконфигурированы для передачи данных; и память 460, сконфигурированная для хранения данных. Устройство 400 кодирования видео может дополнительно включать в себя оптические-электрические компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блоку 420 приемника, блоку 440 передатчика и выходным портам 450 для выхода или входа оптических или электрических сигналов.
[00165] Процессор 430 реализован аппаратно и программно. Процессор 430 может быть реализован как одна или несколько микросхем CPU, ядер (например, многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 обменивается данными с входными портами 410, блоком 420 приемника, блоком 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 включает в себя модуль 470 кодирования (например, модуль кодирования или модуль декодирования). Модуль 470 кодирования реализует варианты осуществления, раскрытые в данном документе, и реализует способ предсказания блока цветности, предусмотренный в вариантах осуществления настоящего раскрытия. Например, модуль 470 кодирования реализует, обрабатывает или предоставляет различные операции кодирования. Следовательно, включение модуля 470 кодирования обеспечивает существенное улучшение функций устройства 400 кодирования видео и влияет на трансформацию устройства 400 кодирования видео в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
[00166] Память 460 включает в себя один или несколько дисков, пленочных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения, для хранения программ, когда такие программы выполняются выборочно, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может быть ROM, RAM, троичной памятью с адресацией по содержимому (TCAM) и/или статической памятью с произвольным доступом (SRAM).
[00167] ФИГ. 5 - упрощенная блок-схема аппаратуры согласно одному варианту осуществления. На фиг. 5, аппаратура 500 может использоваться как одно или два из исходного устройства 12 и целевого устройства 14 на фиг. 1A согласно одному варианту осуществления. Аппаратура 500 может реализовывать методы этого раскрытия. Другими словами, фиг. 5 - схематическая блок-схема варианта осуществления устройства кодирования или устройства декодирования (называемого устройством кодирования) согласно одному варианту осуществления. Продолжая ссылаться на фиг. 5, аппаратура 500 кодирования может включать в себя процессор 510, память 530 и систему 550 шин. Процессор подключается к памяти с помощью системы шин, память сконфигурирована для хранения инструкции, а процессор сконфигурирован для выполнения инструкции, хранящейся в памяти. В памяти устройства кодирования хранится программный код. Процессор может вызывать программный код, хранящийся в памяти, для выполнения описанных здесь способов кодирования или декодирования видео и, в частности, различных новых способов внешнего предсказания. Чтобы избежать повторов, подробности здесь снова не приводятся.
[00168] В одном варианте осуществления процессор 510 может быть центральным процессором (CPU), или процессор 510 может быть другим процессором общего назначения, процессором цифровых сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой вентильной матрицей (FPGA) или другим программируемым логическим устройством, дискретным вентильным или транзисторным логическим устройством, дискретным аппаратным компонентом и т.п. Процессор общего назначения может быть микропроцессором, или процессор может быть любым традиционным процессором или подобным.
[00169] Память 530 может включать в себя постоянное запоминающее устройство (ROM) или устройство оперативной памяти (RAM). Любой другой подходящий тип запоминающего устройства также может использоваться в качестве памяти 530. Память 530 может включать в себя код и данные 531, к которым имеет доступ процессор 510 с использованием шины 550. Память 530 может дополнительно включать в себя операционную систему 533 и прикладную программу 535. Прикладная программа 535 включает в себя по меньшей мере одну программу, которая позволяет процессору 510 выполнять способ кодирования или декодирования видео (в частности, способ внешнего предсказания, описанный в данном документе), описанный в данном документе. Например, прикладная программа 535 может включать в себя приложения с 1 по N и дополнительно включает в себя приложение для кодирования или декодирования видео (называемое приложением для кодирования видео), которое выполняет способ кодирования или декодирования видео, описанный в данном документе.
[00170] Система 550 шин может дополнительно включать в себя шину питания, шину управления, шину сигнала состояния и т.п. в дополнение к шине данных. Однако для ясного описания различные типы шин на чертеже обозначены как система 550 шин.
[00171] В одном варианте осуществления аппаратура 500 кодирования может дополнительно включать в себя одно или несколько устройств вывода, например, дисплей 570. В одном примере дисплей 570 может быть дисплеем касания, который объединяет дисплей и блок касания, который оперативно распознает ввод касанием. Дисплей 570 может быть подключен к процессору 510 с помощью шины 550.
[00172] Прямое предсказание означает выбор, для текущего блока кодирования, опорного изображения из множества опорных изображений из набора опорных изображений в прямом порядке, чтобы получить опорный блок. Обратное предсказание означает выбор, для текущего блока кодирования, опорного изображения из набора опорного изображения в обратном порядке, чтобы получить опорный блок. Когда используется способ двунаправленного предсказания, текущий блок кодирования имеет два опорных блока. Каждый опорный блок требует вектора движения и индекс опорного кадра для указания. Затем значение предсказания значения пикселя для пикселя в текущем блоке определяется на основе значений пикселей для пикселей в двух опорных блоках.
[00173] Режим внешнего предсказания может включать в себя, без ограничений, расширенный режим предиктора вектора движения (предиктор вектора движения AMVP) и режим слияния.
[00174] В режиме AMVP список кандидатных векторов движения сначала создается с использованием информации о движении кодированного блока, который пространственно или временно смежен с текущим блоком кодирования, затем из списка кандидатных векторов движения определяется оптимальный вектор движения как предиктор вектора движения (MVP) текущего блока кодирования. Издержки искажения скорости вычисляется с использованием формулы (1), где J - издержки искажения скорости передачи RD Cost, SAD - это сумма абсолютных разностей (SAD) между предсказанными значениями пикселей и исходными значениями пикселей, полученными посредством оценки движения, выполняемой с использованием предсказателя кандидатного вектора движения, R - битовая скорость, а λ - множитель Лагранжа. Сторона кодера получает и передает, на сторону декодера, значение индекса выбранного предсказателя вектора движения в списке кандидатных векторов движения и значение индекса опорного кадра. Дополнительно, поиск движения выполняется в окрестности с центром в MVP, чтобы получить фактический вектор движения текущего блока кодирования. Сторона кодера передает разницу (например, разность векторов движения) между MVP и фактическим вектором движения на сторону декодера.
J=SAD+λR (1)
[00175] В режиме слияния список информации о кандидатном движении сначала создается с использованием информации о движении кодированного блока, который является пространственно или временно смежным с текущим блоком кодирования, затем оптимальная информация о движении определяется из списка информации о кандидатном движении с использованием издержек скорости искажения и используется в качестве информации о движении текущего блока кодирования, и затем получается значение индекса (обозначенное как индекс слияния) позиции оптимальной информации о движении в списке информации о кандидатном движении и передается на сторону декодера. Индекс слияния может использоваться для получения оптимальной информации о движении. Информация о пространственном и временном движении кандидата текущего блока кодирования показана на фиг. 6, которая представляет собой схематическую блок-схему пространственной и временной информации о кандидатном движении согласно одному варианту осуществления. Информация о пространственном кандидатном движении поступает из пяти пространственно смежных блоков (A0, A1, B0, B1 и B2). Если смежный блок недоступен или находится в режиме внутреннего кодирования, смежный блок не добавляется в список информации о кандидатном движении кандидате. Временную информацию о кандидатном движении текущего блока кодирований получают после того, как MV соответствующей позиции блока в опорном кадре масштабируется на основе подсчета порядка изображения (POC) опорного кадра и текущего кадра. Сначала определяется доступен ли блок, чья позиция T в опорном кадре. Если блок недоступен, выбирается блок с позицией C.
[00176] Информация о движении включает в себя по меньшей мере одну из информации опорного изображения и вектор движения. Информация опорного изображения может включать в себя по меньшей мере одно из следующего: информации о однонаправленной/двунаправленном предсказании, список опорных изображений, и/или индекс опорного изображения, соответствующий списку опорных изображений. Вектор движения относится к позиционному смещению в горизонтальном и вертикальном направлениях.
[00177] В список кандидатов на слияние вводится набор кандидатов предиктора вектора движения на основе истории (предиктор вектора движения HMVP). Введение HMVP выглядит следующим образом:
[00178] Способ предиктора вектора движения HMVP для внешнего кодирования: в HMVP таблица кандидатов HMVP поддерживается и обновляется на лету. После декодирования неаффинного внешнекодированного блока таблица обновляется путем добавления связанной новой информации о движении в качестве нового кандидата HMVP к последней записи таблицы. Ограниченное правило FIFO применяется для удаления и добавления записей в таблицу. Кандидаты HMVP могут применяться либо к списку кандидатов на слияние, либо к списку кандидатов AMVP.
[00179] В универсальном кодировании видео (VVC) векторы движения неаффинных блоков с внешним кодированием могут сигнализироваться двумя способами: в расширенном режиме предиктора вектора движения (AMVP) или в режиме слияния. Для режима AMVP сигнализируется разница между реальным вектором движения и предиктором вектора движения (MVP), опорным индексом и индексом MVP, относящимся к списку кандидатов AMVP. Для режима слияния указывается индекс слияния, относящийся к списку кандидатов на слияние, и наследуется вся информация о движении, связанная с кандидатом на слияние.
[00180] И список кандидатов AMVP, и список кандидатов на слияние выводятся из соседних по времени или пространству кодированных блоков. В обычных условиях тестирования до шести кандидатов на слияние и до двух кандидатов AMVP могут быть добавлены в список кандидатов для предиктора вектора движения.
[00181] Кандидат HMVP определяется как информация о движении ранее кодированного блока. Таблица с множеством кандидатов HMVP поддерживается во время кодирования/декодирования. Таблица очищается при обнаружении нового слайса. Всякий раз, когда есть внешнекодированный неаффинный блок, соответствующая информация о движении добавляется к последней записи таблицы в качестве нового кандидата HMVP. Общий поток кодирования изображен на фиг. 7.
[00182] В этом описании со ссылкой на фиг. 8 (которая представляет собой схематическую блок-схему обновления таблицы согласно одному варианту осуществления) размер S таблицы установлен равным 6, что указывает на то, что в таблицу можно добавить до шести кандидатов HMVP. При вставке нового кандидата движения в таблицу используется правило ограниченного FIFO, когда сначала применяется проверка избыточности, чтобы определить, есть ли в таблице идентичный HMVP. В случае обнаружения, идентичный HMVP удаляется из таблицы, а все кандидаты HMVP впоследствии перемещаются вперед, то есть с индексами, уменьшенными на 1.
[00183] Кандидаты HMVP могут использоваться в процессе создания списка кандидатов на слияние. Несколько последних кандидатов HMVP в таблице проверяются по порядку и вставляются в список кандидатов после кандидата TMVP. Сокращение применяется к кандидатам HMVP для кандидата пространственного или временного слияния, за исключением кандидата движения подблока (то есть ATMVP).
[00184] Чтобы сократить количество операций сокращения, вводятся три упрощения:
[00185] 1) Количество проверяемых кандидатов HMPV, обозначенное буквой L, задается следующим образом:
L = (N <=4) ? M: (8 - N) (1),
где N указывает количество доступных кандидатов на слияние, не являющихся субблоками, а M указывает количество доступных кандидатов HMVP в таблице.
[00186] 2) Дополнительно, как только общее количество доступных кандидатов на слияние достигает обозначенного максимально допустимого количества кандидатов на слияние минус 1, процесс создания списка кандидатов на слияние из списка HMVP завершается.
[00187] 3) Дополнительно, количество пар для комбинированного вывода кандидатов на слияние с двойным предсказанием уменьшается с 12 до 6.
[00188] Аналогично кандидаты HMVP также могут использоваться в процессе создания списка кандидатов AMVP. Векторы движения последних K кандидатов HMVP в таблице вставляются после кандидата TMVP. Только кандидаты HMVP с тем же опорным изображением в качестве целевого опорного изображения AMVP используются для создания списка кандидатов AMVP. К кандидатам HMVP применяется сокращение. В этом дополнении K устанавливается равным 4, в то время как размер списка AMVP остается неизменным, то есть равным 2.
[00189] Кандидаты HMVP в наборе кандидатов HMVP заполняются в списке кандидатов на слияние до тех пор, пока количество кандидатов в списке кандидатов на слияние не достигнет максимального количества кандидатов.
[00190] Кандидаты на слияние MVP на основе истории (HMVP) добавляются в список слияния после пространственных MVP и TMVP. В этом способе информация о движении ранее кодированного блока сохраняется в таблице и используется как MVP для текущей CU. Таблица с несколькими кандидатами HMVP поддерживается в процессе кодирования/декодирования. Таблица сбрасывается (очищается) при обнаружении новой строки CTU. Всякий раз, когда есть внешнекодированная CU, не являющаяся субблоком, соответствующая информация о движении добавляется к последней записи таблицы в качестве нового кандидата HMVP.
[00191] Размер S таблицы HMVP установлен равным 6, что указывает на то, что в таблицу могут быть добавлены до 6 кандидатов MVP на основе истории (HMVP). При вставке нового кандидата движения в таблицу используется ограниченное правило «первым пришел - первым обслужен» (FIFO), в котором сначала применяется проверка избыточности, чтобы определить, есть ли в таблице идентичный HMVP. В случае обнаружения идентичный HMVP удаляется из таблицы, а все кандидаты HMVP впоследствии перемещаются вперед.
[00192] Кандидаты HMVP могут использоваться в процессе создания списка кандидатов на слияние. Несколько последних кандидатов HMVP в таблице проверяются по порядку и вставляются в список кандидатов после кандидата TMVP. Проверка избыточности применяется к кандидатам HMVP для кандидата пространственного или временного слияния.
[00193] Для уменьшения количества операций проверки избыточности введены следующие упрощения:
[00194] Число кандидатов HMPV, используемых для генерации списка слияния, установлено как ((N <= 4 ) ? M: (8 – N), где N указывает число существующих кандидатов в списке слияния, а M указывает число доступных кандидатов HMVP в таблице.
[00195] Как только общее число доступных кандидатов на слияние достигает максимально разрешенных кандидатов на слияние минус 1, процесс создания списка кандидатов на слияние из HMVP завершается.
[00196] Однако в список кандидатов на слияние также вводится попарный средний кандидат. Введение попарного среднего кандидата выглядит следующим образом:
[00197] Попарные средние кандидаты генерируются путем усреднения предопределенных пар кандидатов в текущем списке кандидатов на слияние, а предопределенные пары определяются как {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, где числа обозначают индексы слияния в списке кандидатов на слияние. Усредненные векторы движения вычисляются отдельно для каждого опорного списка. Если оба вектора движения доступны в одном списке, эти два вектора движения усредняются, даже если они указывают на разные опорные изображения; если доступен только один вектор движения, напрямую используется один вектор движения; если вектор движения недоступен, этот список остается недействительным. Попарные средние кандидаты заменяют комбинированных кандидатов в стандарте HEVC. Анализ сложности попарных средних кандидатов представлен в таблице 1. Для наихудшего случая дополнительных вычислений для усреднения (последний столбец в таблице 1) необходимо четыре добавления и четыре сдвига для каждой пары (MVx и MVy в L0 и L1), а также четыре сравнения опорных индексов для каждой пары (refIdx0 действителен, а refIdx1 действителен в L0 и L1). Есть шесть пар, что приводит к 24 дополнениям, 24 сдвигам и 24 сравнениям опорных индексов. Комбинированные кандидаты в стандарте HEVC используют два сравнения опорных индексов для каждой пары (refIdx0 действителен в L0, а refIdx1 действителен в L1), и имеется 12 пар, что в целом приводит к 24 сравнениям опорных индексов.
Таблица 1 Анализ операций для попарных средних кандидатов
[00198] Попарные средние кандидаты генерируются путем усреднения предопределенных пар кандидатов в существующем списке кандидатов на слияние, а предопределенные пары определяются как {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, где числа обозначают индексы слияния в списке кандидатов на слияние. Усредненные векторы движения вычисляются отдельно для каждого опорного списка. Если оба вектора движения доступны в одном списке, эти два вектора движения усредняются, даже если они указывают на разные опорные изображения; если доступен только один вектор движения, непосредственно он используется; если вектор движения недоступен, этот список недействителен.
[00199] Когда список слияния не заполнен после добавления попарных средних кандидатов на слияние, нулевые MVP вставляются в конце до тех пор, пока не будет обнаружено максимальное количество кандидатов на слияние.
[00200] ФИГ. 9 - схематическая блок-схема способа внешнего предсказания согласно варианту осуществления. Способ, показанный на рисунке 9, позволяет кодеру обрабатывать блоки изображения, размер которых превышает предустановленный размер, связанный с кодером (например, размер буфера). Способ может быть реализован с помощью оборудования, программного обеспечения или любой их комбинации. Способ может быть реализован блоком 244 или 344 внешнего предсказания. Способ может быть способом декодирования или способом кодирования. Как показано на фиг. 9, способ включает в себя следующие операции.
[00201] Операция S901. (Кодер (такой как кодер 20 или декодер 30 на фиг.1) или система кодирования видео) создает список кандидатов на слияние текущего блока изображения. Текущий блок изображения может быть блоком кодирования, CU, PU или TU и т.д. Текущий блок изображения может быть любых размеров.
[00202] Операция S902. (Система) добавляет информацию о движении кандидата HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидата в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом.
[00203] Операция S903. (Система) получает информацию о движении текущего блока изображения на основе списка кандидатов на слияние.
[00204] Операция S904. (Система) определяет предсказанный блок текущего блока изображения на основе информации о движении текущего блока изображения.
[00205] В одном варианте N может быть 1, 2 или 3.
[00206] В одном варианте осуществления получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние; получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния. При этом получение индекса слияния текущего блока изображения или индекса слияния для списка кандидатов на слияние может содержать: получение индекса слияния посредством синтаксического анализа битового потока. При этом получение информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния может содержать: получение информации о движении из списка кандидатов на слияние с использованием индекса слияния. При этом индекс слияния может использоваться для указания позиции информации о движении в списке кандидатов на слияние.
[00207] В одном варианте осуществления получение информации о движении текущего блока изображения на основе списка кандидатов на слияние может содержать: определение информации о движении из списка кандидатов на слияние с использованием издержек искажения скорости. При этом способ может дополнительно содержать: кодирование индекса слияния ля списка кандидатов на слияние в битовом потоке.
[00208] В одном варианте осуществления предсказанный блок можно назвать блоком предсказания.
[00209] В одном варианте осуществления текущий блок изображения может быть блоком кодирования, единицей кодирования или блоком предсказания.
[00210] В одном варианте осуществления максимальное количество кандидатов в списке кандидатов на слияние можно назвать максимальным числом кандидатов предиктора вектора движения слияния (MVP).
[00211] В одном варианте осуществления информация о движении кандидата HMVP может быть названа кандидатами на слияние на основе истории или кандидатами на слияние на основе истории (HMVP).
[00212] В одном варианте осуществления способ дополнительно включает в себя: добавление информации о движении попарных средних кандидатов в список кандидатов на слияние в случае, когда количество информации о движении кандидатов в списке кандидатов на слияние равно максимальному количеству кандидатов в списке кандидатов на слияние минус N.
[00213] В одном варианте осуществления информация о попарном среднем движении кандидата генерируется путем усреднения предопределенной пары кандидатов MVP в списке кандидатов на слияние.
[00214] В одном варианте осуществления информация о движении попарного среднего кандидата может быть названа попарным средним кандидатом.
[00215] В одном варианте осуществления в списке кандидатов на слияние доступные кандидаты импортируются в список в предопределенном порядке сканирования кандидатов. Когда список кандидатов на слияние не достигает максимального количества кандидатов в списке слияния минус N (N≥1) после того, как один кандидат HMVP в наборе кандидатов HMVP импортирован в список слияния, кандидат HMVP в наборе кандидатов HMVP продолжает оставаться импортированным в список слияния.
[00216] В другом варианте осуществления в списке кандидатов на слияние доступные кандидаты импортируются в список в предопределенном порядке сканирования кандидатов. Когда список кандидатов на слияние не достигает максимального количества кандидатов в списке слияния минус N (N≥1) после того, как один кандидат HMVP в наборе кандидатов HMVP импортирован в список слияния, кандидат HMVP в наборе кандидатов HMVP продолжает оставаться импортированным в список слияния. Когда количество кандидатов в списке слияния равно максимальному количеству кандидатов минус N (N≥1), попарный средний кандидат импортируется в список слияния.
[00217] Основываясь на той же изобретательской идее, что и вышеупомянутый способ, вариант осуществления настоящего изобретения дополнительно предоставляет аппаратуру внешнего предсказания, где аппаратура внешнего предсказания включает в себя блок создания и блок определения блока предсказания. Следует отметить, что блок создания и блок определения блока предсказания могут применяться к процессу внешнего предсказания на стороне кодера или стороне декодера. В частности, на стороне кодера эти блоки могут применяться к блоку 244 внешнего предсказания в блоке 260 обработки предсказания вышеупомянутого кодера 20; на стороне декодера эти блоки могут применяться к блоку 344 внешнего предсказания в блоке 360 обработки предсказания вышеупомянутого декодера 30.
[00218] Следует дополнительно отметить, что для конкретного содержимого блока определения информации о движении и блока определения блока предсказания обратитесь к описаниям вышеизложенного содержимого, включая Сущность изобретения. Для краткости этого раскрытия подробности здесь снова не описываются.
[00219] В одном варианте осуществления блок создания и блок предсказания могут быть реализованы аппаратными средствами, программным обеспечением или любой их комбинацией.
В одном варианте осуществления блок создания, сконфигурирован для: создания списка кандидатов на слияние текущего блока изображения; добавления информации о движении кандидатов HMVP в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; блок предсказания, сконфигурирован для: получения индекса слияния текущего блока изображения; получения информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния; и определения предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.
[00220] Следует дополнительно отметить, что для конкретного содержимого блока определения информации о движении и блока определения блока предсказания обратитесь к описаниям вышеизложенного содержимого, включая Сущность изобретения. Для краткости данного описания подробности здесь снова не описываются.
[00221] Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.
[00222] ФИГ. 10 - это блок-схема, показывающая систему 3100 поставки контента для реализации услуги распространения контента. Эта система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и, необязательно, включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия связи 3104 включает в себя, помимо прочего, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию и т.п.
[00223] Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, без ограничений, камеру, смартфон или планшет, компьютер или портативный компьютер, систему видеоконференцсвязи, PDA, установленное на транспортном средстве устройство или комбинацию любого из них или тому подобное. Например, устройство 3102 захвата может включать в себя исходное устройство 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя аудио (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования аудио. Для некоторых практических сценариев устройство 3102 захвата распределяет закодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на терминальное устройство 3106.
[00224] В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, или их комбинация, или тому подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя целевое устройство 14, как описано выше. Когда кодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда кодированные данные включают в себя аудио, аудиодекодер, включенный в терминальное устройство, получает приоритет для выполнения обработки декодирования аудио.
[00225] Для терминального устройства с дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или установленного на транспортном средстве устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, например STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.
[00226] Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.
[00227] ФИГ. 11 - схема, показывающая структуру примера терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 выполнения протокола анализирует протокол передачи потока. Протокол включает в себя, без ограничений, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию или тому подобное.
[00228] После того, как блок 3202 выполнения протокола обработает поток, создается файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации закодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.
[00229] Посредством обработки демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и, необязательно, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерации видеокадра и подает эти данные в синхронный блок 3212. Аудиодекодер 3208 декодирует аудио ES, чтобы сформировать аудиокадр, и подает эти данные в синхронный блок 3212. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на фиг. 11) перед подачей его в синхронный блок 3212. Аналогично аудиокадр может храниться в буфере (не показан на фиг. 11) перед подачей его в синхронный блок 3212.
[00230] Синхронный блок 3212 синхронизирует видеокадр и аудиокадр и подает видео/аудио на видео/аудио дисплей 3214. Например, синхронный блок 3212 синхронизирует представление видео и аудио информации. Информация может закодироваться в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки самого потока данных.
[00231] Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.
[00232] Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображения, либо устройство декодирования изображения в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.
[00233] Специалист в данной области техники может понять, что функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы алгоритма, раскрытые и описанные в данном документе, могут быть реализованы аппаратными средствами, программным обеспечением, встроенным программным обеспечением или любой их комбинацией. Если реализованы программным обеспечением, функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы, могут храниться или передаваться на машиночитаемом носителе в виде одной или нескольких инструкций или кода и выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или среду связи, включающую в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое (например, протокол связи). Таким образом, машиночитаемый носитель, как правило, может соответствовать (1) материальному машиночитаемому носителю данных, который является энергонезависимым, или (2) среде связи, такой как сигнал или носитель. Носитель данных может быть любым доступным носителем, к которому может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода и/или структур данных для реализации описанных здесь методик. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
[00234] В качестве примера, а не ограничения, такие машиночитаемые носители данных могут включать в себя RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптическом диске, устройство хранения на магнитном диске или другое устройство хранения на магнитном носителе, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкции или структуры данных и к которому может получить доступ компьютер. Дополнительно, любое подключение правильно называть машиночитаемым носителем. Например, если инструкция передается с веб-сайта, сервера или другого удаленного источника через коаксиальный кабель, оптоволоконный кабель, витую пару, цифровую абонентскую линию (DSL) или беспроводные технологии, такие как инфракрасный порт, радио и микроволновая, коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновая, включены в определение среды. Однако следует понимать, что машиночитаемый носитель данных и носитель данных не включают в себя соединения, носители, сигналы или другие временные носители, а фактически означают энергонезависимые материальные носители данных. Диски и дискеты, используемые здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD) и диск Blu-ray. Дискеты обычно воспроизводят данные магнитным способом, тогда как диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеизложенного также должны быть включены в объем машиночитаемого носителя.
[00235] Инструкция может выполняться одним или несколькими процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA) или другие эквивалентные интегрированные или дискретные логические схемы. Следовательно, используемый здесь термин «процессор» может относиться к любой из вышеупомянутых структур или к любым другим структурам, подходящим для реализации описанных здесь методик. Кроме того, в некоторых аспектах функции, описанные со ссылкой на различные иллюстративные логические блоки, модули и этапы, описанные в данном документе, могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, сконфигурированных для кодирования и декодирования, или могут быть включены в комбинированный кодек. Кроме того, методы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.
[00236] Методы этого раскрытия могут быть реализованы в большом количестве аппаратур или устройств, в том числе беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В данном документе описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых технологий, но не обязательно реализованы различными аппаратными блоками. Фактически, как описано выше, различные блоки могут быть объединены в комбинации с подходящим программным обеспечением и/или встроенными программами в аппаратный блок кодека или могут быть предоставлены взаимодействующими аппаратными блоками (в том числе один или несколько процессоров, описанных выше).
[00237] В вышеупомянутых вариантах осуществления описания каждого варианта осуществления имеют соответствующие акценты. Для части, которая не описана подробно в варианте осуществления, обратитесь к соответствующим описаниям в других вариантах осуществления.
[00238] Вышеприведенные описания являются просто примерами конкретных реализаций этого раскрытия, но не предназначены для ограничения объема защиты этого раскрытия. Любое изменение или замена, легко обнаруженные специалистом в данной области техники в рамках раскрытого здесь технического объема, должны подпадать под объем защиты этого раскрытия. Следовательно, объем защиты этого раскрытия подлежит объему защиты формулы изобретения.
Изобретение относится к области кодирования и декодирования видео. Технический результат заключается в повышении точности предсказания информации движения блока изображения, что повышает производительность кодирования и декодирования. Такой результат достигается за счет создания списка кандидатов на слияние текущего блока изображения; добавления информации о движении кандидатов предиктора вектора движения на основе истории (HMVP) в список кандидатов на слияние в случае, если количество информации о движении кандидатов в списке кандидатов на слияние меньше, чем максимальное количество кандидатов в списке кандидатов на слияние минус N, где N является положительным целым числом; получения индекса слияния текущего блока изображения; получения информации о движении текущего блока изображения на основе списка кандидатов на слияние и индекса слияния; и определения предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения. 3 н. и 8 з.п. ф-лы, 12 ил., 1 табл.
1. Способ внешнего предсказания, причем способ содержит:
создание списка кандидатов на слияние текущего блока изображения;
добавление по меньшей мере одного кандидата предиктора вектора движения на основе истории (HMVP) в список кандидатов на слияние для получения нового списка кандидатов на слияние в случае, если количество кандидатов на слияние в списке кандидатов на слияние меньше, чем максимальное число кандидатов минус N, где N является положительным целым числом;
получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние; и
определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.
2. Способ по п. 1, причем получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние содержит:
добавление попарного среднего кандидата на слияние в новый список кандидатов на слияние, чтобы получить модифицированный список кандидатов на слияние, в случае, когда число кандидатов на слияние в новом списке кандидатов на слияние равно максимальному числу кандидатов минус N;
получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние.
3. Способ по п. 2, в котором попарный средний кандидат на слияние генерируется посредством усреднения предопределенной пары кандидатов на слияние в новом списке кандидатов на слияние.
4. Способ по любому из пп. 2, 3, в котором получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит:
получение индекса кандидата на слияние;
получение информации о движении из модифицированного списка кандидатов на слияние с использованием индекса кандидата на слияние.
5. Способ по любому из пп. 2, 3, в котором получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит: определение информации о движении из модифицированного списка кандидатов на слияние с использованием издержек искажения скорости.
6. Аппаратура внешнего предсказания, содержащая:
процессор; и
память, подсоединенную к процессору для хранения инструкций, которые при выполнении процессором вынуждают процессор выполнять операции, причем операции содержат:
создание списка кандидатов на слияние текущего блока изображения;
добавление по меньшей мере одного кандидата предиктора вектора движения на основе истории (HMVP) в список кандидатов на слияние, чтобы получить новый список кандидатов на слияние, в случае, если число кандидатов на слияние в списке кандидатов на слияние меньше, чем максимальное число кандидатов минус N, где N является положительным целым числом;
получение информации о движении текущего блока изображения на основе списка кандидатов на слияние; и
определение предсказанного блока текущего блока изображения на основе информации о движении текущего блока изображения.
7. Аппаратура по п. 6, причем получение информации о движении текущего блока изображения на основе нового списка кандидатов на слияние содержит:
добавление попарного среднего кандидата на слияние в новый список кандидатов на слияние для получения модифицированного списка кандидатов на слияние в случае, когда число кандидатов на слияние в новом списке кандидатов на слияние равно максимальному числу кандидатов минус N;
получение информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние.
8. Аппаратура по п. 7, причем попарный средний кандидат на слияние генерируется посредством усреднения предопределенной пары кандидатов на слияние в новом списке кандидатов на слияние.
9. Аппаратура по любому из пп. 7, 8, причем операции получения информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит:
получение индекса кандидата на слияние;
получение информации о движении из списка кандидатов на слияние с использованием индекса кандидата на слияние.
10. Аппаратура по любому из пп. 7, 8, причем операции получения информации о движении текущего блока изображения на основе модифицированного списка кандидатов на слияние содержит: определение информации о движении из модифицированного списка кандидатов на слияние с использованием издержек искажения скорости.
11. Энергонезависимый материальный машиночитаемый носитель данных, хранящий программный код, который, когда выполняется компьютерным устройством, вынуждает компьютерное устройство выполнять способ по любому из пп. 1-5.
US 20130114717 A1, 09.05.2013 | |||
US 20170006302 A1, 05.01.2017 | |||
US 20140301461 A1, 09.10.2014 | |||
US 20180152710 A1, 31.05.2018 | |||
US 20150382014 A1, 31.12.2015 | |||
ГЕНЕРИРОВАНИЕ ДОПОЛНИТЕЛЬНЫХ КАНДИДАТОВ ДЛЯ СЛИЯНИЯ | 2012 |
|
RU2577779C2 |
Авторы
Даты
2023-06-21—Публикация
2019-10-10—Подача