Упрощенный способ сигнализации для режима аффинного линейного взвешенного внутреннего предсказания
SIMPLIFIED METHOD FOR SIGNALLING FOR THE MODE OF AFFINE LINEAR WEIGHTED INTRA PREDICTION

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ
[0001] Настоящее изобретение испрашивает приоритет обычной заявки США №16/822,985 "SIMPLIFIED SIGNALING METHOD FOR AFFINE LINEAR WEIGHTED INTRA PREDICTION MODE", поданной 18 марта 2020 г., которая испрашивает приоритет предварительной заявки США №62/829,439 "SIMPLIFIED SIGNALING METHOD FOR AFFINE LINEAR WEIGHTED INTRA PREDICTION MODE", поданной 4-ого апреля 2019 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.
УРОВЕНЬ ТЕХНИКИ
[0003] Описание уровня техники приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.
[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0005] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. При достижимой степени сжатия более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.
[0006] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.
[0007] Технологии видеокодека могут включать в себя методы, известные как внутреннее кодирование. При внутреннем (интра-) кодировании значения отсчетов представляются без ссылки на отсчеты или другие данные из ранее реконструированных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, изображение называется интра-изображением. Интра-изображения и их производные, например, изображения, полученные в режиме независимого обновления декодера, могут использоваться для сброса состояния декодера, что позволяет использовать их как первое изображение в битовом потоке кодированного видео и видеосеансе, или как неподвижное изображение. Отсчеты интра-блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться до энтропийного кодирования. Внутреннее предсказание может быть методом минимизации значений отсчетов в области предварительного преобразования. В ряде случаев, чем меньше значение DC (постоянной составляющей) после преобразования, и чем меньше коэффициенты АС (переменных составляющих), тем меньше битов требуется при данном размере шага квантования для представления блока после энтропийного кодирования.
[0008] Традиционное внутреннее кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует внутреннего предсказания. Однако некоторые более современные технологии сжатия видео включают в себя методы, которые пытаются, например, из данных окружающих отсчетов и/или метаданных, полученных в ходе кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования, блоков данных. Такие методы далее именуются методами "внутреннего предсказания". Заметим, что по меньшей мере в некоторых случаях внутреннее предсказание осуществляется только с использованием опорных данных из текущего изображения, подлежащего реконструкции, но не из опорных изображений.
[0009] Может существовать много разных форм внутреннего предсказания. Когда в данной технологии видеокодирования может использоваться более одного из таких методов, используемый метод может кодироваться в режиме внутреннего предсказания. В некоторых случаях режимы могут иметь подрежимы и/или параметры, которые могут кодироваться по отдельности или включаться в кодовое слово режима. Использование того или иного кодового слова для данной комбинации режимов/подрежимов/параметров может оказывать влияние на выигрыш в эффективности кодирования посредством внутреннего предсказания и, следовательно, на технологию энтропийного кодирования, используемую для перевода кодовых слов в битовый поток.
[0010] Определенный режим внутреннего предсказания впервые был задан в Н.264, уточнен в Н.265, и дополнительно уточнен в более современных технологиях кодирования, например, модели совместного исследования (JEM, joint exploration model), универсального видеокодирования (VVC, versatile video coding) и наборе эталонов (BMS, benchmark set). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0011] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видеосигнала. В некоторых примерах устройство для видеодекодирования включает в себя схему обработки.
[0012] Согласно аспектам изобретения, представлен метод видеодекодирования в декодере. В рамках метода схема обработки декодирует данные предсказания для текущего блока текущего изображения, входящего в кодированную видеопоследовательность. Данные предсказания указывают, кодирован ли текущий блок с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). В ответ на информацию предсказания, указывающую, что текущий блок кодирован с использованием ALWIP, схема обработки определяет индекс режима ALWIP независимо от режимов предсказания соседних блоков, смежных с текущим блоком. Индекс режима ALWIP указывает один из множества режимов ALWIP. Схема обработки реконструирует текущий блок согласно этому одному из множества режимов ALWIP.
[0013] В варианте осуществления индекс режима ALWIP является либо усеченным двоичным кодовым словом, либо кодовым словом фиксированной длины, либо усеченным унарным кодовым словом.
[0014] В варианте осуществления, в ответ на информацию предсказания, указывающую на кодирование текущего блока с использованием ALWIP, схема обработки составляет список возможных режимов, включая в него по меньшей мере один фиксированный режим. По меньшей мере один фиксированный режим является заранее заданным подмножеством множества режимов ALWIP.
[0015] В варианте осуществления общее количество режимов ALWIP равно степени числа 2.
[0016] Согласно аспектам изобретения, реагирующим на данные предсказания об отсутствии кодирования текущего блока с использованием ALWIP, схема обработки определяет, кодирован ли один из соседних блоков с использованием ALWIP. При кодировании одного из соседних блоков с использованием ALWIP схема обработки составляет список возможных режимов на основании (i) заранее заданного режима внутреннего предсказания или (ii) режима внутреннего предсказания другого соседнего блока из соседних блоков.
[0017] В варианте осуществления заранее заданный режим предсказания является плоским режимом внутреннего предсказания, режимом внутреннего предсказания постоянной составляющей (DC), горизонтальным режимом внутреннего предсказания или вертикальным режимом внутреннего предсказания.
[0018] В варианте осуществления схема обработки устанавливает один из соседних блоков как недоступный в ответ на кодирование одного из соседних блоков с использованием ALWIP.
[0019] В варианте осуществления, в ответ на информацию предсказания, указывающую на кодирование текущего блока с использованием ALWIP и использование производного режима для связанного с текущим блоком блока цветности, схема обработки устанавливает режим внутреннего предсказания связанного блока цветности как заранее заданный режим внутреннего предсказания.
[0020] Согласно аспектам изобретения, представлен другой способ видеодекодирования в декодере. В рамках этого способа схема обработки декодирует данные предсказания для текущего блока текущего изображения, которое входит в кодированную видеопоследовательность. Информация предсказания указывает на то, что текущий блок кодирован с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). Схема обработки определяет, кодирован ли соседний блок, примыкающий к текущему блоку, с использованием ALWIP. Если соседний блок не кодирован с использованием ALWIP, схема обработки составляет список возможных режимов на основании (i) заранее заданного режима ALWIP или (ii) режима ALWIP другого соседнего блока. Схема обработки реконструирует текущий блок на основании списка возможных режимов.
[0021] В варианте осуществления схема обработки устанавливает соседний блок как недоступный, в ответ на то, что соседний блок не кодирован с использованием ALWIP.
[0022] В варианте осуществления соседний блок примыкает к верхнему правому или нижнему левому углу текущего блока.
[0023] В варианте осуществления размер списка возможных режимов основан на кодированной информации соседнего блока, включенного в кодированную видеопоследовательность.
[0024] В варианте осуществления информация предсказания указывает, что блок цветности текущего блока связан с множеством блоков яркости, а схема обработки определяет, кодирован ли один из множества блоков яркости в режиме внутреннего кодирования, не относящемся к ALWIP. В ответ на кодирование блока яркости в режиме внутреннего кодирования, не относящемся к ALWIP, схема обработки определяет режим предсказания блока цветности текущего блока как не относящийся к ALWIP режим внутреннего предсказания блока яркости.
[0025] В варианте осуществления данные предсказания указывают, что блок цветности текущего блока связан с множеством блоков яркости, а схема обработки определяет кодирован ли блок яркости из множества блоков яркости в режиме внутреннего кодирования, не относящемся к ALWIP. В ответ на кодирование каждого из множества блоков яркости с использованием ALWIP, схема обработки определяет режим предсказания блока цветности текущего блока как заранее заданный режим внутреннего предсказания.
[0026] Аспекты изобретения также предусматривают один или более компьютерно-считываемый носитель, на котором хранятся инструкции, которые, при исполнении компьютером для видеодекодирования, предписывают компьютеру осуществлять какой-либо упомянутый способ видеодекодирования или их комбинацию.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0027] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:
[0028] фиг. 1 - изображение упрощенной блок-схемы системы связи в соответствии с вариантом осуществления;
[0029] фиг. 2 - изображение упрощенной блок-схемы системы связи в соответствии с вариантом осуществления;
[0030] фиг. 3 - изображение упрощенной блок-схемы кодера в соответствии с вариантом осуществления;
[0031] фиг. 4 - изображение упрощенной блок-схемы кодера в соответствии с вариантом осуществления;
[0032] фиг. 5 - изображение блок-схемы кодера в соответствии с вариантом осуществления;
[0033] фиг. 6 - изображение блок-схемы декодера в соответствии с другим вариантом осуществления;
[0034] фиг. 7 - иллюстрация направлений внутреннего предсказания и режимов внутреннего предсказания в ряде примеров;
[0035] фиг. 8 - иллюстрация направлений внутреннего предсказания и режимов внутреннего предсказания в ряде примеров;
[0036] фиг. 9 - иллюстрация внутреннего мультилинейного предсказания в ряде примеров;
[0037] фиг. 10 - иллюстративные положения соседних блоков для получения списка наиболее вероятных режимов (МРМ) по текущему блоку в ряде примеров;
[0038] фиг. 11 - таблица примеров кодирования блока цветности внутренним режимом;
[0039] фиг. 12 - иллюстрация аффинного линейного взвешенного внутреннего предсказания (ALWIP) в ряде примеров;
[0040] фиг. 13 - блок-схема примера процесса в соответствии с некоторыми вариантами осуществления;
[0041] фиг. 14 - блок-схема другого примера процесса в соответствии с некоторыми вариантами осуществления; и
[0042] фиг. 15 - схема компьютерной системы в соответствии с вариантом осуществления.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0043] Кодер и декодер видео
[0044] На фиг. 1 показана упрощенная блок-схема системы связи (100) согласно варианту осуществления настоящего изобретения. Система связи (100) включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (150). Например, система связи (100) включает в себя первую пару оконечных устройств (110) и (120), соединенных между собой через сеть (150). В примере, приведенном на фиг.1, первая пара оконечных устройств (110) и (120) осуществляет однонаправленную передачу данных. Например, оконечное устройство (110) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (110)), для передачи в другое оконечное устройство (120) через сеть (150). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (120) может принимать кодированные видеоданные из сети (150), декодировать кодированные видеоданные для реконструирования видеоизображений и отображения видеоизображений согласно реконструированным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0045] В другом примере, система связи (100) включает в себя вторую пару оконечных устройств (130) и (140) которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (130) и (140) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (130) и (140) через сеть (150). Каждое оконечное устройство из оконечных устройств (130) и (140) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (130) и (140), и может декодировать кодированные видеоданные для реконструирования видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно реконструированным видеоданным.
[0046] В примере, приведенном на фиг. 1, оконечные устройства (110), (120), (130) и (140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110), (120), (130) и (140), включая, например, проводные и/или беспроводные сети связи. Сеть связи (150) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0047] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.
[0048] Система потоковой передачи может включать в себя подсистему захвата (213), которая может включать в себя источник видеосигнала (201), например, цифровую камеру, создающую, например, поток видеоизображений (202), не подвергнутых сжатию. Например, поток (202) видеоизображений включает в себя отсчеты, взятые цифровой камерой. Поток видеоизображений (202), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (204) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (220), которое включает в себя видеокодер (203), подключенный к источнику видеосигнала (201). Видеокодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (204) (или битовый поток кодированного видео (204)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (202), могут храниться на потоковом сервере (205) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (206) и (208) на фиг. 2, могут осуществлять доступ к потоковому серверу (205) для извлечения копий (207) и (209) кодированных видеоданных (204). Клиентская подсистема (206) может включать в себя видеодекодер (210), например, в электронном устройстве (230). Видеодекодер (210) декодирует входящую копию (207) кодированных видеоданных и создает исходящий поток видеоизображений (211), который может визуализироваться на дисплее (212) (например, на отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (204), (207) и (209) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под неофициальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.
[0049] Заметим, что электронные устройства (220) и (230) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (220) может включать в себя видеодекодер (не показан), и электронное устройство (230) также может включать в себя видеокодер (не показан).
[0050] На фиг. 3 показана блок-схема видеодекодера (310) согласно варианту осуществления настоящего изобретения. Видеодекодер (310) может входить в состав электронного устройства (330). Электронное устройство (330) может включать в себя приемник (331) (например, приемные схемы). Видеодекодер (310) может использоваться вместо видеодекодера (210) в примере, приведенном на фиг. 2.
[0051] Приемник (331) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (310); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (301), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (331) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (331) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (315) может быть подключена между приемником (331) и энтропийным декодером / анализатором (320) (далее "анализатором (320)"). В некоторых вариантах применения буферная память (315) входит в состав видеодекодера (310). В других она может не входить в состав видеодекодера (310) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (310), например, для борьбы с джиттером сети, помимо другой буферной памяти (315) в составе видеодекодера (310), например, для управления хронированием доигрывания. Когда приемник (331) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (315) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (310).
[0052] Видеодекодер (310) может включать в себя анализатор (320) для реконструкции символов (321) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (310), и возможно информацию для управления устройством визуализации, например, устройством визуализации (312) (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (330), но может быть подключено к электронному устройству (330), как показано на фиг. 3. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (320) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0053] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (315), для создания символов (321).
[0054] Для реконструкции символов (321) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты в дальнейшем не показан.
[0055] Помимо ранее упомянутых функциональных блоков видеодекодер (310) может принципиально подразделяться на несколько функциональных модулей как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.
[0056] Первым модулем является модуль масштабирования / обратного преобразования (351). Модуль масштабирования / обратного преобразования (351) принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Модуль масштабирования / обратного преобразования (351) может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).
[0057] В ряде случаев выходные отсчеты блока масштабирования / обратного преобразования (351) могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем предсказания внутри изображения (352). В ряде случаев модуль предсказания внутри изображения (352) генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера текущего изображения (358). Буфер текущего изображения (358) буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (355) в ряде случаев добавляет для каждого отсчета информацию предсказания, сгенерированную модулем внутреннего предсказания (352), в информацию выходных отсчетов, обеспеченную модулем масштабирования / обратного преобразования (351).
[0058] В других случаях выходные отсчеты модуля масштабирования / обратного преобразования (351) могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае модуль предсказания с компенсацией движения (353) может осуществлять доступ к памяти опорных изображений (357) для извлечения отсчетов, используемых в предсказании. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования / обратного преобразования (351) (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений (357), откуда модуль предсказания с компенсацией движения (353) извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения (353) в форме символов (321), которые могут иметь, например, компоненты X, Y и компоненты опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений (357), когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.
[0059] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле контурного фильтра (356). Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю контурного фильтра (356) в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0060] Модуль контурного фильтра (356) может выдавать поток отсчетов, который может поступать на устройство визуализации (312), а также сохраняться в памяти опорных изображений (357) для использования в будущем предсказании между изображениями.
[0061] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), буфер текущего изображения (358) может становиться частью памяти опорных изображений (357), и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.
[0062] Видеодекодер (310) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.
[0063] Согласно варианту осуществления, приемник (331) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (310) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.
[0064] На фиг. 4 показана блок-схема видеокодера (403) согласно варианту осуществления настоящего изобретения. Видеокодер (403) входит в состав электронного устройства (420). Электронное устройство (420) включает в себя передатчик (440) (например, передающую схему). Видеокодер (403) может использоваться вместо видеокодера (203) в примере, приведенном на фиг. 2.
[0065] Видеокодер (403) может принимать отсчеты видео от источника видеосигнала (401) (который не входит в состав электронного устройства (420) в примере, показанном на фиг.4), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (403). В другом примере источник видеосигнала (401) входит в состав электронного устройства (420).
[0066] Источник видеосигнала (401) может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (403) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником видеосигнала (401) может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником видеосигнала (401) может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание сфокусировано на отсчетах.
[0067] Согласно варианту осуществления, видеокодер (403) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). В некоторых вариантах осуществления контроллер (450) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (450), могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Контроллер (450) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (403), оптимизированному для той или иной конструкции системы.
[0068] В некоторых вариантах осуществления видеокодер (403) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (430) (например, отвечающий за создание символов, например, потока символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в видеокодер (403). Декодер (433) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память опорных изображений (434). Поскольку декодирование потока символов приводит к результатам с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти опорных изображений (434) также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.
[0069] "Локальный" декодер (433) может действовать таким же образом как "удаленный" декодер, например, видеодекодер (310), подробно вышеописанный со ссылкой на фиг. 3. Однако, опять же, согласно фиг. 3, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования видеодекодера (310), включающие в себя буферную память (315) и анализатор (320), могут быть не полностью реализованы в локальном декодере (433).
[0070] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.
[0071] Согласно некоторым примерам, в ходе работы исходный кодер (430) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина кодирования (432) кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.
[0072] Локальный видеодекодер (433) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (430). Операции машины кодирования (432) могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти опорных изображений (434). Таким образом, видеокодер (403) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).
[0073] Предсказатель (435) может осуществлять поиски предсказания для машины кодирования (432). Таким образом, для нового изображения, подлежащего кодированию, предсказатель (435) может искать в памяти опорных изображений (434) данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов - пиксельные блоки", чтобы находить надлежащие ссылки для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти опорных изображений (434).
[0074] Контроллер (450) может управлять операциями кодирования исходного кодера (430), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0075] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер (445) переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.
[0076] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (445) для подготовки к передаче через канал связи (460), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (403) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0077] Контроллер (450) может управлять работой видеокодера (403). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:
[0078] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.
[0079] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0080] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.
[0081] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0082] Видеокодер (403) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (403) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.
[0083] Согласно варианту осуществления, передатчик (440) может передавать дополнительные данные с кодированным видео. Исходный кодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.
[0084] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение в случае использования множественных опорных изображений.
[0085] В некоторых вариантах осуществления метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого и второго опорных блоков.
[0086] Дополнительно метод режима объединения может использоваться в предсказании между изображениями для повышения эффективности кодирования.
[0087] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или более единиц кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на одну CU размером 64×64 пикселя или 4 CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждая PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. На примере блока предсказания яркости, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.
[0088] На фиг. 5 показана схема видеокодера (503) согласно другому варианту осуществления изобретения. Видеокодер (503) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (503) используется вместо видеокодера (203) в примере, приведенном на фиг. 2.
[0089] В примере HEVC видеокодер (503) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (503) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (503) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (503) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (503) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.
[0090] В примере, приведенном на фиг. 5, видеокодер (503) включает в себя интер-кодер (530), интра-кодер (522), вычислитель остатка (523), переключатель (526), кодер остатка (524), общий контроллер (521) и энтропийный кодер (525), соединенные друг с другом как показано на фиг. 5.
[0091] Интер-кодер (530) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.
[0092] Интра-кодер (522) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (522) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.
[0093] Общий контроллер (521) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (503) на основе общих данных управления. Например, общий контроллер (521) определяет режим блока и выдает сигнал управления на переключатель (526) на основе режима. Например, когда режим является интра-режимом, общий контроллер (521) управляет переключателем (526) для выбора результата интра-режима для использования вычислителем остатка (523), и управляет энтропийным кодером (525) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (521) управляет переключателем (526) для выбора результата внешнего предсказания для использования вычислителем остатка (523), и управляет энтропийным кодером (525) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.
[0094] Вычислитель остатка (523) выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (522) или интер-кодера (530). Кодер остатка (524) выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер остатка (524) выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (503) также включает в себя декодер остатка (528). Декодер остатка (528) выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (522) и интер-кодером (530). Например, интеркодер (530) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (522) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.
[0095] Энтропийный кодер (525) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (525) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (525) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения интер-режима или режима двойного предсказания, информация остатка отсутствует.
[0096] На фиг. 6 показана схема видеодекодера (610) согласно другому варианту осуществления изобретения. Видеодекодер (610) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (610) используется вместо видеодекодера (210) в примере, приведенном на фиг. 2.
[0097] В примере, приведенном на фиг. 6, видеодекодер (610) включает в себя энтропийный декодер (671), интер-декодер (680), декодер остатка (673), модуль реконструкции (674) и интра-декодер (672), соединенные друг с другом как показано на фиг. 6.
[0098] Энтропийный декодер (671) может быть выполнен с возможностью реконструкции из кодированного изображения некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (672) или интер-декодером (680), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (680); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает в интра-декодер (672). Информация остатка может подвергаться обратному квантованию и поступать в декодер остатка (673).
[0099] Интер-декодер (680) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.
[0100] Интра-декодер (672) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.
[0101] Декодер остатка (673) выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер остатка (673) также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (671) (путь данных не показан, поскольку это может быть только информация управления малого объема).
[0102] Модуль реконструкции (674) выполнен с возможностью объединения в пространственной области остатка на выходе декодера остатка (673) и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.
[0103] Заметим, что видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.
[0104] Внутреннее предсказание в HEVC и VVC
[0105] В следующем описании под термином "блок" может иметься ввиду блок предсказания, блок кодирования или единица кодирования.
[0106] Фиг. 7 иллюстративно демонстрирует направления внутреннего предсказания и соответствующие режимы внутреннего предсказания в ряде примеров (например, в HEVC). Фиг. 7 включает в себя 35 режимов внутреннего предсказания (режимы 0-34). Режим 0 и режим 1 - ненаправленные режимы, среди которых режим 0 - плоский режим (плоский режим внутреннего предсказания), а режим 1 - режим постоянной составляющей (постоянной составляющей внутреннего предсказания). Режимы 2-34 - направленные (или угловые) режимы (угловые режимы внутреннего предсказания), среди которых режим 10 - горизонтальный режим, режим 26 - вертикальный, а режим 2, 18 и 34 - диагональные.
[0107] В некоторых примерах для кодирования внутреннего режима из подмножества режимов внутреннего предсказания составляется список потенциальных режимов. Например, один или более наиболее вероятных режимов формируют список потенциальных режимов, который называют списком наиболее вероятных режимов (МРМ, most probable mode). В примере (например, HEVC) список МРМ включает три наиболее вероятных режима и составляется на основании режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. Список МРМ также называется первичным списком МРМ. В таком примере сигнализируют флаг МРМ для указания, находится ли режим внутреннего предсказания текущего блока в списке МРМ. Если флаг МРМ показывает, что режим внутреннего предсказания текущего блока взят из списка МРМ, то сигнализируется индекс списка МРМ для указания одного из трех наиболее вероятных режимов в списке МРМ для текущего блока. Однако, если МРМ флаг указывает, что режим внутреннего предсказания текущего блока не из списка МРМ, то индекс режима сигнализируется для указания одного из 32 внутренних режимов для текущего блока.
[0108] В ряде примеров процесс составления списка МРМ представлен следующим образом.
Если (leftIntraDir == aboveIntraDir && leftIntraDir>DC_IDX)
МРМ [0] = leftIntraDir;
МРМ [1] = ((leftIntraDir+offset) % mod)+2;
МРМ [2] = ((leftIntraDir - 1) % mod)+2;
Также если (leftIntraDir == aboveIntraDir)
MPM [0] = PLANAR_IDX;
МРМ [1] = DC_IDX;
MPM [2] = VER_IDX;
Также если (leftIntraDir ! = above IntraDir)
MPM [0] = leftIntraDir;
MPM [1] = aboveIntraDir;
Если (leftIntraDir >0 && aboveIntraDir >0)
MPM [2] = PLANAR_IDX;
Также
MPM [2] = (leftIntraDir + aboveIntraDir) <2 ? VER_IDX: DC_IDX;
[0109] В процессе составления списка МРМ переменная leftIntraDir указывает на режим внутреннего предсказания соседнего блока слева от текущего блока (левого соседнего блока), а переменная aboveIntraDir указывает на режим внутреннего предсказания соседнего блока над текущим блоком (верхнего соседнего блока). Если левый или верхний соседний блок недоступен, то leftIntraDir или aboveIntraDir можно установить на DC_IDX. PLANAR_IDX, DC_IDX и VER_IDX обозначают индексы плоского режима (например, режима 0), режима постоянной составляющей (например, режима 1) и вертикального режима (например, режима 26), соответственно. Кроме того, переменные "offset" и "mod" имеют постоянные значения, которые в примере установлены на 29 и 32 соответственно. В таком примере, когда левый и верхний соседние блоки имеют одинаковый направленный режим, первый наиболее вероятный режим устанавливается на тот же направленный режим. Второй и третий наиболее вероятные режимы выбирают как два направленных режима, которые ближе всего к номеру режима первого наиболее вероятного режима. Когда левый и верхний соседние блоки имеют одинаковый ненаправленный режим, то первый, второй и третий наиболее вероятные режимы устанавливают в плоский режим, режим постоянной составляющей и вертикальный режим, соответственно. Когда левый и верхний соседние блоки обладают различными режимами внутреннего предсказания, первый и второй наиболее вероятные режимы устанавливают в режимы внутреннего предсказания левого и верхнего соседнего блока, соответственно, а третий наиболее вероятный режим устанавливается в один из плоского режима, режима постоянной составляющей и вертикального режима, согласно тому, какой из этих режимов, в этом порядке, не является копией одного из первых двух наиболее вероятных режимов.
[0110] Фиг. 8 иллюстративно демонстрирует направления внутреннего предсказания и соответствующие режимы внутреннего предсказания в ряде примеров (например, VVC). Фиг. 8 включает в себя 95 режимов внутреннего предсказания (режимы 14-80), среди которых режим 18 - горизонтальный режим, режим 50 - вертикальный, а режим 2, 34 и 66 - диагональные режимы. Режимы -1~-14, а также режимы 67~80 называются широкоугольными режимами внутреннего предсказания (WAIP).
[0111] По аналогии с примером фиг. 7, в примере фиг. 8 формируется список МРМ для кодирования режима. Например, при внутреннем мультилинейном предсказании размер списка МРМ задается равным 6 для соседней опорной линии и равным 5 для несмежных опорных линий текущего блока. Смежная опорная линия и несмежные опорные линии будут описаны со ссылкой на фиг. 9.
[0112] Фиг. 9 иллюстративно демонстрирует внутреннее мультилинейное предсказание в ряде примеров (например, VVC). При внутреннем мультилинейном предсказании множество опорных линий используют для внутреннего предсказания. В примере фиг. 9 представлено четыре опорные линии, то есть опорные линии 0-3, где опорная линия 0 является смежной опорной линией, которая также называется нулевой опорной линией, а опорные линии 1-3 являются несмежными опорными линиями и называются также ненулевыми опорными линиями. Каждая опорная линия включает вертикальную и горизонтальную части и состоит из 6 сегментов A-F. Сегменты А и F заполняются ближайшими отсчетами из сегментов В и Е, соответственно. Кроме того, верхний левый опорный отсчет включен между сегментами С и D в примере на фиг. 9. Индекс опорной линии сигнализируется перед режимами внутреннего предсказания для указания одной из множества опорных линий, которая будет использоваться. В случае сигнализации индекса ненулевой опорной линии, разрешено использовать только наиболее вероятные режимы для внутреннего предсказания.
[0113] Фиг. 10 демонстрирует иллюстративные позиции соседних блоков, применяемых, чтобы получить список МРМ для текущего блока в ряде примеров (например, VVC). Блок А и блок В обозначают левую и верхнюю соседнюю единицу кодирования (CU) текущей CU, соответственно. Блок А примыкает к текущей CU в левом нижнем углу, а блок В примыкает к текущей CU в верхнем правом углу. Переменные "candIntraPredModeA" и "candIntraPredModeB" указывают на режимы внутреннего предсказания блоков А и В, соответственно, и изначально устанавливаются на Intra Planar. Если блок А (или В) помечен как доступный, то переменная candIntraPredModeA (или candIntraPredModeB) устанавливается на действующий режим внутреннего предсказания блока А (или В). В некоторых примерах положения соседних блоков, применяемых для получения потенциальных МРМ, идентичны для смежных и несмежных опорных линий при внутреннем мультилинейном предсказании.
[0114] Фиг. 11 демонстрирует таблицу с примерами кодирования блока цветности во внутреннем режиме (например, VVC). На фиг. 11 представлено 8 внутренних режимов кодирования блока цветности: плоский режим, вертикальный режим, горизонтальный режим, режим постоянной составляющей (DC), производный режим и три режима кросс-компонентной линейной модели (CCLM, LM_А и LM_L). Согласно таблице, кодирование блока цветности во внутреннем режиме может зависеть (например, прямо зависит) от режима внутреннего предсказания соответствующего блока яркости. Поскольку компоненты цветности и яркости могут применять различные структуры деления блока, то, например, в слайсе I один блок цветности может соответствовать многим блокам яркости. Таким образом, при использовании производного режима для кодирования блока цветности во внутреннем режиме, режим внутреннего предсказания соответствующего блока яркости, покрывающего центральное положение блока цветности, становится непосредственно режимом внутреннего предсказания блока цветности.
[0115] Фиг. 12 иллюстративно демонстрирует аффинное линейное взвешенное внутреннее предсказание (ALWIP) в ряде примеров (например, VVC). Для отсчетов предсказания блока предсказания (РВ) шириной W и высотой Н один левый столбец реконструированных соседних граничных отсчетов Н блока предсказания и один верхний ряд реконструированных соседних граничных отсчетов W блока предсказания берут как входные данные для ALWIP. Если реконструированные соседние граничные отсчеты недоступны, то их можно генерировать, используя другие методы внутреннего предсказания. ALWIP также называют внутренним предсказанием на основе матриц (MIP, matrix based intra prediction).
[0116] В примере блок предсказания можно предсказывать на основе следующих трех этапов.
[0117] (1) Первое множество усредненных отсчетов получается усреднением (например, подмножеств) левого столбца соседних пограничных отсчетов блока предсказания, а второе множество усредненных отсчетов получается усреднением (например, подмножеств) верхнего ряда соседних пограничных отсчетов блока предсказания. Если W=H=4 отсчета, то общее количество элементов первого и второго множества усредненных отсчетов составляет четыре. В других случаях получают 8 усредненных отсчетов.
[0118] (2) Усредненные отсчеты умножают на матричный вектор. К результату умножения добавляется смещение в целях генерирования сокращенного блока предсказания на субдискретизированном множестве отсчетов в исходном блоке предсказания.
[0119] (3) Отсчеты предсказания в оставшихся положениях генерируют из сокращенного блока предсказания на субдискретизированном множестве путем применения линейной интерполяции к сокращенному блоку предсказания на субдискретизированном множестве в каждом направлении.
0
1
2
0
0
1
1
2
2
[0120] Матрицы и векторы смещения, используемые для генерации сокращенного блока предсказания, можно взять из трех наборов матриц (S, S, и S). Матричный набор S состоит из или включает 18 матриц , i∈{0, …, 17}. В каждой матрице может быть 16 рядов и 4 столбца, а также 18 векторов смещения , i∈{0, …, 17}. Размер каждого вектора смещения может составлять 16. Матрицы и векторы смещения, включенные в матричный набор S, могут применяться для блоков размером 4×4. Матричный набор S состоит из или включает 10 матриц , i∈{0, …, 9). В каждой матрице может быть 16 рядов и 8 столбцов, а также 10 векторов смещения , i∈{0, …, 9). Размер каждого вектора смещения может составлять 16. Матрицы и векторы смещения, включенные в матричный набор S, могут применяться для блоков размером 4×8, 8×4 и 8×8. Матричный набор S состоит из или включает 6 матриц , i∈{0, …, 5]. Каждая матрица может иметь 64 ряда и 8 столбцов, а также 6 векторов смещения , i∈{0, …, 5). Размер каждого вектора смещения может составлять 64. Матрицы и вектора смещения, включенные в матричный набор S, можно применять для блоков всех других форм и размеров.
[0121] При блоке 8×8, как на фиг. 12, ALWIP принимает четыре усредненных значения по вертикальной границе и четыре усредненных значения по горизонтальной границе. 8 итоговых усредненных значений являются входными данными умножения на матричный вектор. Матрицы берут из матричного набора S1 из-за размера блока. Умножение на матричный вектор дает 16 отсчетов в нечетных позициях блока. Таким образом, выполняется (8×16)/(8×8)=2 умножения на отсчет. После добавления смещения эти отсчеты интерполируют вертикально с использованием сокращенных верхних пограничных отсчетов, а затем интерполируют горизонтально посредством применения исходных левых пограничных отсчетов. В данном случае процесс интерполяции не требует каких-либо умножений.
[0122] Получение списка МРМ для режимов внутреннего предсказания ALWIP
idx
0
2
Angular
[0123] Согласно аспектам изобретения, режим, отличающийся от режима ALWIP, может отображаться на режим ALWIP в соответствии с таблицей отображения. В одном варианте осуществления есть три таблицы отображения map_angular_to_alwip, idx∈[0, 1, 2], и каждая таблица отображения соответствует соответствующему набору матриц из (S-S) и связывает режим внутреннего предсказания, отличающийся от режима ALWIP predmode, с конкретным режимом ALWIP в соответствии с Ур. 1.
[0124] Индекс idx таблицы отображения указывает один из трех матричных наборов, из которых берут параметры ALWIP. Индекс можно задать на основании ширины W и высоты Н единицы предсказания (PU, prediction unit) и установить согласно Ур. 2 и 3.
[0125] Согласно аспектам изобретения, для каждой единицы кодирования во внутреннем режиме в битовый поток направляется флаг, который указывает, применяется ли ALWIP в соответствующей единице предсказания. Когда флаг указывает необходимость применения ALWIP, сигнализируется индекс predmode режима ALWIP для указания потенциального режима в списке наиболее вероятных режимов (МРМ). В примере список МРМ включает 3 потенциальных МРМ.
[0126] Чтобы генерировать список МРМ для текущего блока, кодируемого посредством ALWIP, верхний режим ALWIP  и левый режим ALWIP  можно получить следующим образом.
above
above
above
[0127] Когда верхняя единица предсказания PU текущей единицы предсказания доступна и принадлежит той же единице дерева кодирования, где расположена текущая единица предсказания, а PU кодируется с помощью режима ALWIP  и idx(PU)=idx(PU), верхний режим ALWIP можно определить, согласно Ур. 4.
above
above
[0128] Когда верхняя единица предсказания PU доступна и принадлежит той же единице дерева кодирования, где расположена текущая единица предсказания, а PU кодируется с помощью внутреннего режима предсказания, не относящегося к ALWIP, , верхний режим ALWIP можно определить с помощью таблицы отображения, согласно Ур. 5.
[0129] В других случаях верхний режим ALWIP можно задать как недоступный, согласно Ур. 6.
[0130] Значение  можно получить тем же способом, что и режим , но без проверки, принадлежит ли левая единица предсказания той же единице дерева кодирования, где расположена текущая единица предсказания.
idx
[0131] Таким образом, список МРМ конструируется на основании производных режимов  и  и трех заранее заданных по умолчанию фиксированных списков МРМ list, idx∈{0, 1, 2}. Каждый заранее заданный по умолчанию фиксированный список МРМ состоит или включает три различных режима ALWIP. В примере недоступный режим -1 заменяется значением по умолчанию, и дублирующие режимы ALWIP удаляются.
[0132] Получение списка МРМ для режимов внутреннего предсказания, не относящихся к ALWIP
idx
0
2
ALWIP
[0133] Согласно аспектам изобретения, режим ALWIP можно отображать на режим, не относящийся к ALWIP, согласно таблице отображения. Таблицу отображения можно менять на основании размера блока. Существует три таблицы отображения map_alwip_to_angular, idx∈{0, 1, 2}. Каждая таблица отображения соответствует соответствующему набору матриц (S-S) и связывает режим внутреннего предсказания ALWIP predmode с конкретным режимом внутреннего предсказания, не относящемуся к ALWIP как показано в Ур. 7.
[0134] Для получения списка МРМ для блока яркости, когда соседний блок блока яркости кодирован в режиме ALWIP, можно использовать одну из трех таблиц отображения для отображения режима ALWIP на соответствующий режим внутреннего предсказания, не относящийся к ALWIP. Для получения списка МРМ блока цветности, когда связанный с блоком цветности блок яркости кодирован в режиме ALWIP, то же самое отображение применяется для перевода режима ALWIP в режим внутреннего кодирования, не относящийся к ALWIP.
[0135] В указанных выше примерах создается список МРМ для сигнализации режима ALWIP. Создание списка МРМ включает проверку режима(ов) предсказания соседнего(их) блока(ов). Когда режим предсказания соседнего блока не является режимом ALWIP, режим предсказания соседнего блока подлежит отображению на режим ALWIP с помощью таблицы отображения. Когда режим предсказания соседнего блока является режимом ALWIP, необходим доступ к ширине и высоте соседнего блока для проверки применения одинакового набора матриц текущим и соседним блоком. Процесс генерирования списка МРМ сложный, и его можно упростить.
[0136] Кроме того, для сигнализации режима внутреннего предсказания, не относящегося к ALWIP, при кодировании соседнего блока в режиме ALWIP используется справочная таблица для отображения режима ALWIP соседнего блока на режим внутреннего предсказания, не относящийся к ALWIP. Тем не менее, для соседнего блока может быть необязательно преобразовывать режим ALWIP в режим, не относящийся к ALWIP.
[0137] Далее, режим ALWIP не применяется для внутреннего предсказания блока цветности. Однако при использовании производного режима для блока цветности и кодировании смежного с блоком цветности блока яркости в режиме ALWIP, режим ALWIP смежного блока яркости необходимо преобразовать в режим внутреннего предсказания, не являющийся ALWIP. Данный процесс сложный, и его также можно упростить.
[0138] Аспекты изобретения предоставляют упрощенную сигнализацию для режимов ALWIP и других режимов. Варианты воплощения можно применять раздельно или сочетая в любом порядке.
[0139] Согласно аспектам изобретения, сигнализация или реконструкция индекса режима ALWIP для текущего блока выполняется без проверки режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. В варианте осуществления, сигнализация и/или реконструкция может выполняться без проверки режимов внутреннего предсказания каких-либо соседних блоков текущего блока. Например, согласно фиг. 10, соседними блоками могут быть левый соседний блок А и верхний соседний блок В. Левый соседний блок А примыкает к текущему блоку в нижнем левом углу. В этом примере сигнализация и/или реконструкция может выполняться без проверки режимов внутреннего предсказания левого соседнего блока А и верхнего соседнего блока В.
[0140] В варианте воплощения индекс режима ALWIP сигнализируется непосредственно. Индекс режима ALWIP может быть передан непосредственно с помощью кодового слова, например, усеченного двоичного кодового слова, кодового слова фиксированной длины или усеченного унарного кодового слова. Например, индекс режима ALWIP сигнализируется посредством пятибитного кодового слова фиксированной длины. В другом примере подмножество режимов ALWIP, например, режимы K1 ALWIP, сигнализируют посредством M1-битового кодового слова фиксированной длины при сигнализации остальных ALWIP режимов посредством М2-битового кодового слова фиксированной длины. В приведенных выше примерах K1, M1 и М2 являются неотрицательными целыми числами.
[0141] В варианте воплощения индекс режима ALWIP сигнализируется без формирования списка МРМ или сигнализации флага МРМ. Например, усеченное двоичное кодовое слово или кодовое слово фиксированной длины используется для сигнализации индекса режима ALWIP.
[0142] В варианте воплощения, когда текущий блок кодируется посредством ALWIP, в списке МРМ текущего блока потенциальные режимы фиксируются независимо от режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. В таком варианте воплощения положения соседних блоков могут быть идентичны положениям, используемым для предсказания в режимах, не относящихся к ALWIP (например, соседние блоки А и В на фиг. 10). В примере, при кодировании текущего блока посредством ALWIP потенциальные режимы в списке МРМ текущего блока и порядок потенциальных режимов фиксированы, независимо от режима(ов) внутреннего предсказания соседнего(их) блока(ов) текущего блока. В таком примере положения соседних блоков могут быть идентичны положениям, применяемым для предсказания в режиме, не относящемся к ALWIP (например, соседние блоки А и В на фиг. 10). В другом примере, когда текущий блок кодируется посредством ALWIP, потенциальные режимы и/или порядок потенциальных режимов в списке МРМ текущего блока зависят от ширины и/или высоты текущего блока. Потенциальные режимы и/или порядок потенциальных режимов в списке МРМ текущего блока в некоторых вариантах воплощения могут зависеть только от ширины и/или высоты текущего блока.
k
[0143] Согласно некоторым вариантам воплощения, общее количество режимов ALWIP является степенью числа 2, например N=2, где N - общее количество режимов ALWIP. K - неотрицательное целое число, например от 0 до 5 и т.д.
[0144] В варианте воплощения значение К зависит от размера блока текущего блока. Например, размер блока текущего блока может указываться (i) шириной блока, (ii) высотой блока, (iii) средним значением ширины и высоты блока, (iv) минимальным значением ширины и высоты блока, (v) максимальным значением ширины и высоты блока, (vi) размером площади блока или (vii) соотношением сторон блока.
[0145] Согласно аспектам изобретения, при формировании списка МРМ текущего блока, кодируемого в режиме внутреннего предсказания, не относящегося к ALWIP, режим предсказания одного или более соседних блоков текущего блока помечается как недоступный или фиксированный режим, когда режимом предсказания соседнего блока является режим ALWIP. В примере положение одного или более соседних блоков может быть идентично положениям, используемым для предсказания в других режимах, не относящихся к ALWIP (например, соседние блоки А и В на фиг. 10). В варианте воплощения при формировании списка МРМ текущего блока, который кодируется в режиме внутреннего предсказания, не относящемся к ALWIP, режим предсказания одного или более соседних блоков текущего блока отмечается как плоский режим внутреннего предсказания (Planar intra). В варианте воплощения при составлении списка МРМ текущего блока, который кодируется посредством режима внутреннего предсказания, не относящегося к ALWIP, режим предсказания одного или более соседних блоков текущего блока помечается как режим внутреннего предсказания постоянной составляющей (DC). В варианте воплощения при формировании списка МРМ текущего блока, который кодируется посредством режима внутреннего кодирования, не относящегося к ALWIP, режим предсказания соседнего блока текущего блока отмечается как плоский режим, режим постоянной составляющей, горизонтальный режим внутреннего предсказания или вертикальный режим внутреннего предсказания.
[0146] Согласно аспектам изобретения, для формирования списка МРМ текущего блока, который кодируется посредством режима ALWIP, режим предсказания одного или более соседних блоков текущего блока помечается как доступный режим ALWIP или режим ALWIP, заданный по умолчанию. В варианте воплощения при кодировании соседнего блока посредством ALWIP его режим предсказания отмечается как доступный, а при кодировании соседнего блока посредством режима, не относящегося к ALWIP, его режим предсказания отмечается как режим ALWIP. заданный по умолчанию.
[0147] В варианте воплощения при кодировании текущего блока посредством ALWIP для формирования списка МРМ текущего блока режим предсказания соседнего блока преобразуется в режим предсказания ALWIP, когда режим предсказания является режимом, не относящимся к ALWIP. Например, режим предсказания преобразуется в режим предсказания ALWIP с индексом режима к, значение которого является неотрицательным целым числом, при этом запрещено превышать максимально допустимое значение индекса режима ALWIP.
[0148] В варианте воплощения при кодировании текущего блока посредством ALWIP, для построения списка МРМ текущего блока режим предсказания соседнего блока текущего блока отмечается как недоступный, когда режим предсказания не является режимом ALWIP.
[0149] В варианте воплощения при кодировании текущего блока посредством ALWIP размер списка МРМ устанавливается на 1. Режим внутреннего предсказания левого (или верхнего) соседнего блока можно включить в список МРМ, когда режим внутреннего предсказания является режимом ALWIP. Когда левый и верхний соседний блоки кодируются в режиме, не относящемся к ALWIP, один режим ALWIP. заданный по умолчанию, включается в список МРМ. В примере режим ALWIP по умолчанию задается как плоский режим (например, режим 0).
[0150] В варианте воплощения при кодировании текущего блока посредством ALWIP размер списка МРМ устанавливается на 2. Режим внутреннего предсказания левого (или верхнего) соседнего блока можно включить в список МРМ, если режимом внутреннего предсказания является режим ALWIP. При кодировании левого (или верхнего) соседнего блока посредством режима, не относящегося к ALWIP, в список МРМ включается режим ALWIP, заданный по умолчанию. В примере режим ALWIP, заданный по умолчанию, фиксирован, независимо от размера блока текущего блока. В примере, когда флаг МРМ указывает на режим внутреннего предсказания текущего блока из списка МРМ, например, флаг МРМ имеет значение "истина", другой флаг сигнализируется для указания, какой потенциальный МРМ выбран из списка МРМ для текущего блока.
[0151] Согласно аспектам изобретения, положение соседнего блока, применяемое для получения списка МРМ режима ALWIP, аналогично положению для режима, не относящегося к ALWIP. В варианте воплощения для режима ALWIP положение(я) соседнего(их) блока(ов), применяемого(ых) для получения МРМ списка, является(тся) смежным(ыми) с верхним правым или нижним левым углом текущего блока, согласно фиг. 10.
[0152] Согласно аспектам изобретения, размер списка МРМ для режима ALWIP не зависит от кодированной информации, включенной, например, в кодированную видеопоследовательность. Кодированная информация может включать, но не ограничивается таковыми, один или более режимов внутреннего предсказания одного или более соседних блоков, индекс опорного потока одного или более соседних блоков, флаг ALWIP одного или более соседних блоков.
[0153] В варианте воплощения при кодировании текущего блока посредством ALWIP, а верхнего правого и нижнего левого соседнего блоков с помощью режима, не относящегося к ALWIP, список МРМ не формируется, а индекс режима ALWIP непосредственно сигнализируется для текущего блока.
[0154] В варианте воплощения при кодировании текущего блока посредством ALWIP и по меньшей мере одного из соседних блоков текущего блока посредством ALWIP, размер списка МРМ для текущего блока задается неотрицательным целым числом, например, 1 или 2.
[0155] Согласно аспектам изобретения, ALWIP не применяется к блоку цветности. Таким образом, когда связанный с текущим блоком цветности блок яркости (например, со-расположенный блок яркости) кодируется посредством ALWIP, а производный режим применяется для текущего блока цветности, не относящийся к ALWIP режим, заданный по умолчанию, применяется для текущего блока цветности. В одном варианте воплощения, не относящийся к ALWIP режим, заданный по умолчанию, является плоским режимом. В другом варианте воплощения не относящийся к ALWIP режим, заданный по умолчанию, является режимом постоянной составляющей.
[0156] Согласно аспектам изобретения, когда текущий блок цветности связан с множеством блоков яркости, например, когда текущий блок цветности связан со множеством со-расположенных блоков яркости, и производный режим применяется для текущего блока, множество блоков яркости проверяют на предмет кодирования одного из множества связанных блоков яркости в режиме внутреннего предсказания, не относящегося к ALWIP.
[0157] В варианте воплощения, когда один из множества соседних блоков яркости кодирован в режиме внутреннего предсказания, не относящемся к ALWIP, режим внутреннего предсказания, не относящийся к ALWIP, применяется как режим внутреннего предсказания текущего блока цветности.
[0158] В варианте воплощения, когда ни один из множества связанных блоков яркости (например, со-расположенных блоков яркости) не кодирован в режиме внутреннего предсказания, не относящемся к ALWIP, режим внутреннего предсказания по умолчанию, не относящийся к ALWIP, применяется как режим внутреннего предсказания текущих блоков цветности.
[0159] На фиг. 13 показана блок-схема операций процесса (1300) согласно варианту осуществления изобретения. Процесс (1300) может использоваться при реконструкции блока, кодированного во внутреннем режиме, для генерации блока предсказания для блока, подлежащего реконструкции. В различных вариантах осуществления, процесс (1300) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (110), (120), (130) и (140), схемой обработки, которая осуществляет функции видеокодера (203), схемой обработки, которая осуществляет функции видеодекодера (210), схемой обработки, которая осуществляет функции видеодекодера (310), схемой обработки, которая осуществляет функции видеокодера (403), и т.п. В некоторых вариантах осуществления процесс (1300) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (1300). Процесс начинается на этапе (S1301) и переходит к (S1310).
[0160] На этапе (S1310) процесс (1300) декодирует информацию предсказания для текущего блока в текущем изображении, которое входит в кодированную видеопоследовательность. Информация предсказания указывает, кодирован ли текущий блок с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). В ответ на информацию предсказания, указывающую на кодирование текущего блока с использованием ALWIP, процесс (1300) переходит к этапу (S1320).
[0161] На этапе (S1320) процесс (1300) определяет индекс режима ALWIP независимо от режимов предсказаний соседних блоков, примыкающих к текущему блоку. Индекс режима ALWIP указывает один из множества режимов ALWIP. Затем процесс (1300) переходит к этапу (S1330).
[0162] На этапе (S1330) процесс (1300) реконструирует текущий блок согласно одному из множества режимов ALWIP. Затем процесс (1300) переходит к этапу (S1399) и завершается.
[0163] В варианте воплощения индекс режима ALWIP является усеченным двоичным кодовым словом, кодовым словом фиксированной длины или усеченным унарным кодовым словом.
[0164] В варианте воплощения, в ответ на информацию предсказания, указывающую на то, что текущий блок кодируется с использованием ALWIP, процесс (1300) формирует список потенциальных режимов, включая по меньшей мере один фиксированный потенциальный режим. По меньшей мере один фиксированный потенциальный режим является заранее заданным подмножеством множества режимов ALWIP.
[0165] В варианте воплощения общее количество режимов в множестве режимов ALWIP представляет собой степень числа 2.
[0166] В варианте воплощения, в ответ на информацию предсказания, указывающую на то, что текущий блок не кодированя с использованием ALWIP, процесс (1300) определяет кодирован ли один из соседних блоков с использованием ALWIP. В ответ на то, что один из соседних блоков кодирован с использованием ALWIP, процесс (1300) формирует список потенциальных режимов на основании (i) заранее заданного режима внутреннего предсказания или (ii) режима внутреннего предсказания другого соседнего блока из соседних блоков.
[0167] В варианте воплощения заранее заданный режим предсказания является плоским режимом внутреннего предсказания, режимом внутреннего предсказания постоянной составляющей, горизонтальным или вертикальным режимом внутреннего предсказания.
[0168] В варианте воплощения процесс (1300) делает один из соседних блоков недоступным в ответ на то, что один из соседних блоков кодирован с использованием ALWIP.
[0169] В варианте воплощения, в ответ на информацию предсказания, указывающую что текущий блок кодирован с использованием ALWIP, и при использовании производного режима для связанного с текущим блоком блока цветности, процесс (1300) задает режим предсказания связанного блока цветности в качестве заранее заданного режима внутреннего предсказания.
[0170] На фиг. 14 показана блок-схема операций процесса (1400) согласно варианту осуществления изобретения. Процесс (1300) может использоваться при реконструкции блока, кодированного во внутреннем режиме, для генерации блока предсказания для блока, подлежащего реконструкции. В различных вариантах осуществления, процесс (1400) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (110), (120), (130) и (140), схемой обработки, которая осуществляет функции видеокодера (203), схемой обработки, которая осуществляет функции видеодекодера (210), схемой обработки, которая осуществляет функции видеодекодера (310), схемой обработки, которая осуществляет функции видеокодера (403), и т.п. В некоторых вариантах осуществления процесс (1400) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (1400). Процесс начинается на этапе (S1401) и переходит к (S1410).
[0171] На этапе (S1410) процесс (1400) декодирует информацию предсказания для текущего блока в текущем изображении, которое входит в кодированную видеопоследовательность. Информация предсказания указывает на кодирование текущего блока с использованием аффинного линейного взвешенного внутреннего предсказания (ALWIP). Затем процесс (1400) переходит к этапу (S1420).
[0172] На этапе (S1420) процесс (1400) определяет, кодирован ли соседний блок, примыкающий к текущему блоку, с использованием ALWIP. В ответ на отсутствие кодирования соседнего блока с использованием ALWIP процесс (1400) переходит к этапу (S1430).
[0173] На этапе (S1430) процесс (1400) формирует список потенциальных режимов на основании (i) заранее заданного режима ALWIP или (ii) режима ALWIP другого соседнего блока. Далее процесс (1400) переходит к этапу (S1440).
[0174] На этапе (S1440) процесс (1400) реконструирует текущий блок на основании списка потенциальных режимов. Затем процесс (1400) переходит к этапу (S1499) и завершается.
[0175] В варианте воплощения процесс (1400) устанавливает соседний блок как недоступный в ответ на то, что соседний блок не кодирован с использованием ALWIP.
[0176] В варианте воплощения соседний блок примыкает к текущему блоку в верхнем правом или нижнем левом углу.
[0177] В варианте воплощения размер списка потенциальных режимов основан на кодированной информации соседнего блока, включенного в кодированную видеопоследовательность.
[0178] В варианте воплощения информация предсказания указывает на то, что блок цветности текущего блока связан с множеством блоков яркости, и процесс (1400) определяет, кодирован ли блок яркости из множества блоков яркости в режиме внутреннего предсказания, не относящемся к ALWIP. В ответ на кодирование блока яркости в режиме внутреннего предсказания, не относящемся к ALWIP, процесс (1400) определяет режим предсказания блока цветности текущего блока как режим внутреннего предсказания блока яркости, не относящийся к ALWIP.
[0179] В варианте воплощения информация предсказания указывает, что блок цветности текущего блока связан с множеством блоков яркости, и процесс (1400) определяет, кодирован ли блок яркости из множества блоков яркости в режиме внутреннего предсказания, не относящемся к ALWIP. В ответ на то, что каждый из множества блоков яркости кодирован с использованием ALWIP, процесс (1400) определяет режим предсказания блока цветности текущего блока как заранее заданный режим внутреннего предсказания.
[0180] Компьютерная система
[0181] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 15 показана компьютерная система (1500), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0182] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться непосредственно, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.
[0183] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0184] Компоненты компьютерной системы (1500), показанные на фиг. 15, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (1500).
[0185] Компьютерная система (1500) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно непосредственно связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0186] Входной человеческий интерфейс устройства может включать в себя одно или более устройств (по одному из изображенных): клавиатуру (1501), мышь (1502), сенсорную панель (1503), сенсорный экран (1510), информационную перчатку (не показана), джойстик (1505), микрофон (1506), сканер (1507), камеру (1508).
[0187] Компьютерная система (1500) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1510), информационной перчатки (не показана) или джойстика (1505), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (1509), наушники (не показаны)), устройства визуального вывода (например, экраны (1510), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны). Эти устройства визуального вывода (например, экраны (1510)) могут быть подключены к системной шине (1548) через графический адаптер (1550).
[0188] Компьютерная система (1500) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (1520) с носителями (1521) CD/DVD и т.п., карты флэш-памяти (1522), сменный жесткий диск или твердотельный диск (1523), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0189] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0190] Компьютерная система (1500) также может включать в себя интерфейс (1554) к одной или более сетям связи (1555). Одна или более сетей связи (1555) могут быть, например, беспроводными, проводными, оптическими. Одна или более сетей связи (1555) могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры одной или более сетей связи (1555) включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1549) (например, USB-порты компьютерной системы (1500)); другие обычно встраиваются в ядро компьютерной системы (1500) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1500) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.
[0191] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1540) компьютерной системы (1500).
[0192] Ядро (1540) может включать в себя один или более центральных процессоров (CPU) (1541), графические процессоры (GPU) (1542), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Areas) (1543), аппаратные ускорители (1544) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1545), оперативной памятью (1546), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п. (1547), могут соединяться посредством системной шины (1548). В некоторых компьютерных системах системная шина (1548) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к системной шине (1548) ядра, либо через периферийную шину (1549). Архитектуры периферийной шины включают в себя PCI, USB и т.п.
[0193] CPU (1541), GPU (1542), FPGA (1543) и ускорители (1544) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1545) или RAM (1546). Переходные данные также могут храниться в RAM (1546), тогда как постоянные данные могут храниться, например, во внутреннем хранилище данных большой емкости (1547). Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1541), GPU (1542), хранилищем данных большой емкости (1547), ROM (1545), RAM (1546) и т.п.
[0194] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0195] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (1500), и, в частности, ядро (1540) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (1540), носящим долговременный характер, например, внутренним хранилищем данных большой емкости (1547) или ROM (1545). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1540). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (1540) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (1546), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1544)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
[0196] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.
Приложение А: сокращения
ALWIP (или LWIP): аффинное линейное взвешенное внутреннее предсказание
AMVP: усовершенствованное предсказание векторов движения
ASIC: специализированная интегральная схема
ATMVP: альтернативное/усовершенствованное временное предсказание векторов движения
BMS: набор эталонов
BV: вектор блока
CANBus: шина контроллерной сети
СВ: блок кодирования
CD: компакт-диск
CPR: опора на текущее изображение
CPU: центральные процессоры
CRT: кинескоп
СТВ: блок дерева кодирования
CTU: единица дерева кодирования
CU: единица кодирования
DM: производный режим
DPB: буфер изображений декодера
DVD: цифровой видеодиск
FPGA: вентильные матрицы, программируемые пользователем
GOP: группы изображений
GPU: графические процессоры
GSM: глобальная система мобильной связи
HDR: большой (расширенный) динамический диапазон
HEVC: высокопроизводительное видео кодирование
HRD: гипотетический эталонный декодер
IBC: интра-блочное копирование
IC: интегральная схема
ISP: внутренняя ячейка
JEM: модель совместного исследования
JVET: группа совместного исследования видео
LAN: локальная сеть
LCD: жидкокристаллический дисплей
LTE: проект долгосрочного развития систем связи
MIP: внутреннее предсказание на основе матриц
МРМ: наиболее вероятный режим
MV: вектор движения
OLED: органический светодиод
РВ: блок предсказания
PCI: межсоединение периферийных компонентов
PDPC: позиционная комбинация предсказаний
PLD: программируемое логическое устройство
PU: единица предсказания
RAM: оперативная память
ROM: постоянная память
SCC: кодирование содержимого экрана
SDR: стандартный динамический диапазон
SEI: информация дополнительного улучшения
SNR: отношение сигнал/шум
SSD: твердотельный привод
TU: единица преобразования
USB: универсальная последовательная шина
VUI: информация пригодности видео
VVC: универсальное видеокодирование
WAIP: широкоугольное внутреннее предсказание.