СИГНАЛИЗАЦИЯ ВНУТРЕННЕГО РЕЖИМА ЯРКОСТИ
INTERNAL BRIGHTNESS MODE SIGNALING

Перекрестная ссылка на связанные заявки
[0001] В этой заявке на патент испрашиваются преимущества предварительной заявки на патент США № 62/696739, поданной 11 июля 2019 года Анандом Мехером Котрой и др. и озаглавленной «Улучшения сигнализации внутреннего режима яркости», которая включена в настоящее описание посредством ссылки.
Область техники, к которой относится изобретение
[0002] Настоящее раскрытие в целом связано с кодированием видео и, в частности, связано с сигнализацией внутреннего режима яркости.
Уровень техники
[0003] Объем видеоданных, необходимых для отображения даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные обычно сжимаются перед передачей по современным телекоммуникационным сетям. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное обеспечение и/или оборудование в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в месте назначения посредством устройства распаковки видео, которое декодирует видеоданные. В связи с ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео требуются улучшенные методы сжатия и распаковки, которые улучшают степень сжатия с минимальными потерями в качестве изображения или вообще без них.
Сущность изобретения
[0004] Первый аспект относится к способу кодирования, реализованному посредством устройства кодирования. Способ включает в себя этапы, на которых выбирают с использованием устройства кодирования режим внутреннего предсказания для текущего блока; и кодируют с использованием устройства кодирования выбранный режим внутреннего предсказания с использованием усеченного двоичного кодирования, когда выбранный режим внутреннего предсказания является оставшимся режимом. В варианте осуществления способ включает в себя этап, на котором определяют, что выбранный режим внутреннего предсказания находится в списке оставшихся режимов.
[0005] Как будет более полно объяснено ниже, способ улучшает существующую схему сигнализации внутреннего режима. Варианты осуществления могут быть выполнены с возможностью кодирования всех оставшихся внутренних режимов, например, всех внутренних режимов, которые не находятся в списке MPM (также известных как «режимы без MPM») и передаются в битовом потоке с использованием усеченной бинаризации. Посредством использования усеченной бинаризации для оставшихся режимов кодовые слова используются более эффективно.
[0006] В первой форме реализации способа согласно первому аспекту как таковому способ дополнительно содержит этап, на котором определяют, что выбранный режим внутреннего предсказания не входит в список наиболее вероятных режимов (MPM - most probable modes).
[0007] Во второй форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором кодируют выбранный режим внутреннего предсказания с использованием 5 битов, когда выбранный режим внутреннего предсказания является одним из первых трех режимов из оставшихся режимов.
[0008] В третьей форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором кодируют выбранный режим внутреннего предсказания с использованием N битов, когда выбранный режим внутреннего предсказания включен в первую часть из оставшихся режимов и с использованием N+1 битов, когда выбранный режим внутреннего предсказания включен во вторую часть оставшихся режимов.
[0009] В четвертой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором кодируют режим внутреннего предсказания с использованием 6 битов, когда выбранный режим внутреннего предсказания не является одним из первых трех режимов из оставшихся режимов.
[0010] В пятой форме реализации способа согласно первому аспекту как таковому или любой предыдущей форме реализации первого аспекта, оставшийся режим является одним из 61 оставшихся режимов.
[0011] В шестой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта список MPM содержит 6 режимов, а оставшийся режим является одним из 61 оставшихся режимов.
[0012] В седьмой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта все режимы либо принадлежат списку MPM, либо оставшимся режимам.
[0013] В восьмой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта все оставшиеся режимы кодируются с использованием усеченного двоичного кодирования.
[0014] В девятой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов с использованием предварительно определенного списка режимов по умолчанию.
[0015] В десятой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта предварительно определенный список режимов по умолчанию содержит планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX).
[0016] В одиннадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов с использованием смещения к угловым режимам, включенным в список MPM.
[0017] В двенадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта смещение составляет +/- N, где N - целое число со значением 1, 2, 3 или 4.
[0018] В тринадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта смещение добавляется только к первому из двух угловых режимов в списке MPM.
[0019] В четырнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихя режимов с использованием режимов соседних блоков, не смежных непосредственно с текущим блоком.
[0020] В пятнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов с использованием режимов соседей второго уровня текущего блока вместо соседей первого уровня.
[0021] В шестнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов на основе расположения большинства режимов в списке MPM относительно одного из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).
[0022] В семнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов посредством: сравнения каждого из режимов в списке MPM с расположением различных режимов в списке режимов по умолчанию; определения того, что выигравший один из различных режимов в списке режимов по умолчанию является ближайшим к большинству режимов в списке MPM; и заполнения первых трех режимов в списке оставшихся режимов режимами, ближайшими к выигравшему одному из различных режимов в списке режимов по умолчанию.
[0023] Второй аспект относится к способу декодирования, реализованному посредством устройства декодирования. Способ включает в себя этапы, на которых получают посредством устройства декодирования усеченный двоичный код; декодируют посредством устройства декодирования усеченный двоичный код для получения режима внутреннего предсказания, содержащего оставшийся режим; и формируют посредством устройства декодирования текущий блок с использованием режима внутреннего предсказания, который был получен.
[0024] Как будет более полно объяснено ниже, способ улучшает существующую схему сигнализации внутреннего режима. Варианты осуществления могут быть выполнены с возможностью декодирования усеченного двоичного кода для получения режима внутреннего предсказания, который является одним из оставшихся режимов, закодированных с использованием усеченного двоичного кодирования. Посредством использования усеченной бинаризации для оставшихся режимов кодовые слова используются более эффективно.
[0025] В первой форме реализации способа согласно второму аспекту как таковому способ дополнительно содержит этап, на котором определяют, что режим внутреннего предсказания не входит в список наиболее вероятных режимов (MPM).
[0026] Во второй форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, способ дополнительно содержит этап, на котором декодируют режим внутреннего предсказания с использованием 5 битов, когда режим внутреннего предсказания был одним из первых трех режимов из оставшихся режимов.
[0027] В третьей форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, способ дополнительно содержит этап, на котором декодируют режим внутреннего предсказания с использованием 6 битов, когда режим внутреннего предсказания находится вне первых трех режимов из оставшихся режимов.
[0028] В четвертой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, оставшийся режим является одним из 61 оставшихся режимов.
[0029] В пятой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта имеется 6 режимов в списке MPM и 61 режим в оставшихся режимах.
[0030] В шестой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта все режимы внутреннего предсказания либо принадлежат списку MPM, либо оставшимся режимам.
[0031] В седьмой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта все оставшиеся режимы кодируются с использованием усеченного двоичного кодирования.
[0032] В восьмой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта начальные режимы в списке оставшихся режимов берутся из предварительно определенного списка режимов по умолчанию.
[0033] В девятой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта предварительно определенный список режимов по умолчанию содержит планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX).
[0034] В десятой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта начальные режимы в списке оставшихся режимов основаны на смещении к угловым режимам, включенным в список MPM.
[0035] В одиннадцатой форме реализации способа согласно второму аспекту как таковому или любой предыдущей форме реализации второго аспекта смещение равно +/- N, где N - целое число со значением 1, 2, 3 или 4.
[0036] В двенадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта смещение добавляется только к первому из двух угловых режимов в списке MPM.
[0037] В тринадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, начальные режимы в списке оставшихся режимов основаны на режимах соседних блоков, не смежных непосредственно с текущим блоком.
[0038] В четырнадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, начальные режимы в списке оставшихся режимов основаны на режимах соседей второго уровня текущего блока вместо соседей первого уровня.
[0039] В пятнадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта начальные режимы в списке оставшихся режимов основаны на расположении большинства режимов в списке MPM относительно одного из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).
[0040] В шестнадцатой форме реализации способа согласно второму аспекту как таковому или любой предыдущей форме реализации второго аспекта, начальные режимы в списке оставшихся режимов определялись посредством: сравнения каждого из режимов в списке MPM с расположением различных режимы в списке режимов по умолчанию; определения того, что выигравший один из различных режимов в списке режимов по умолчанию является ближайшим к большинству режимов в списке MPM; и заполнения первых трех режимов в списке оставшихся режимов режимами, ближайшими к выигравшему одному из различных режимов в списке режимов по умолчанию.
[0041] В семнадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта различные режимы в категории режимов содержат планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX).
[0042] Третий аспект относится к устройству кодирования, выполненному с возможностью выполнения любого из предшествующих способов кодирования.
[0043] Четвертый аспект относится к устройству декодирования, выполненному с возможностью выполнения любого из предшествующих способов декодирования.
[0044] Пятый аспект относится к устройству кодирования, включающему в себя память; и процессор, связанный с памятью, причем процессор выполнен с возможностью: выбора режима внутреннего предсказания для текущего блока; кодирования выбранного режима внутреннего предсказания с использованием усеченного двоичного кодирования, когда выбранный режим внутреннего предсказания является оставшимся режимом.
[0045] В первой форме реализации устройства кодирования согласно пятому аспекту как таковому устройство кодирования содержит передатчик, связанный с процессором, причем передатчик выполнен с возможностью передачи закодированного выбранного режима внутреннего предсказания в устройство декодирования.
[0046] Во второй форме реализации устройства кодирования согласно пятому аспекту как таковому или любой предшествующей форме реализации пятого аспекта процессор выполнен с возможностью реализации одного или нескольких из предшествующих аспектов или реализаций.
[0047] Дополнительные формы реализации устройства кодирования соответствуют соответствующим формам реализации способа кодирования согласно первому аспекту.
[0048] Шестой аспект относится к устройству декодирования, включающему в себя приемник, выполненный с возможностью получения усеченного двоичного кода; процессор, связанный с приемником, причем процессор выполнен с возможностью: декодирования усеченного двоичного кода для получения режима внутреннего предсказания, содержащего оставшийся режим; и формирования текущего блока с использованием полученного режима внутреннего предсказания.
[0049] В первой форме реализации устройства декодирования согласно шестому аспекту как таковому, устройство декодирования содержит дисплей, связанный с процессором, причем дисплей выполнен с возможностью отображения изображения, сформированного с использованием текущего блока.
[0050] Во второй форме реализации устройства кодирования согласно шестому аспекту как таковому или любой предшествующей форме реализации шестого аспекта процессор выполнен с возможностью реализации одного или нескольких из предшествующих аспектов или реализаций.
[0051] Дополнительные формы реализации устройства декодирования соответствуют соответствующим формам реализации способа декодирования согласно второму аспекту.
[0052] Для ясности любой из вышеупомянутых вариантов осуществления может быть объединен с любым одним или несколькими другими вышеупомянутыми вариантами осуществления для создания нового варианта осуществления в пределах объема настоящего раскрытия. Дополнительные подробности вариантов осуществления представлены в подробном описании.
Краткое описание чертежей
[0053] Для более полного понимания этого раскрытия теперь сделана ссылка на следующее краткое описание, взятое в связи с прилагаемыми чертежами и подробным описанием, в котором одинаковые номера позиций представляют одинаковые части.
[0054] Фиг. 1 - блок-схема, иллюстрирующая примерную систему кодирования, которая может использовать методы контекстного моделирования.
[0055] Фиг. 2 - блок-схема, иллюстрирующая пример видеокодера, который может реализовывать методы контекстного моделирования.
[0056] Фиг. 3 - блок-схема, иллюстрирующая пример видеодекодера, который может реализовывать методы контекстного моделирования.
[0057] Фиг. 4 - схематическая диаграмма текущей единицы кодирования и пяти соседних блоков.
[0058] Фиг. 5 - схематическая диаграмма текущей единицы кодирования, соседей первого уровня и соседей второго уровня.
[0059] Фиг. 6 - схематическая диаграмма примера 67 режимов внутреннего предсказания.
[0060] Фиг. 7 - схематическая диаграмма примерного устройства кодирования видео.
Подробное описание
[0061] С самого начала следует понимать, что раскрытые системы и/или способы могут быть реализованы с использованием любого количества методов, известных в настоящее время или существующих. Раскрытие никоим образом не должно ограничиваться иллюстративными реализациями, чертежами и методами, проиллюстрированными ниже, включая иллюстративные схемы и реализации, проиллюстрированные и описанные здесь.
[0062] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования, которая может подходить для реализации различных методов видеокодирования, предсказания или сжатия. Как показано на фиг. 1, система 10 кодирования включает в себя устройство-источник 12, которое обеспечивает закодированные видеоданные для декодирования позднее посредством устройства-адресата 14 назначения. В частности, устройство-источник 12 может обеспечивать видеоданные в устройство-адресат 14 через считываемый компьютером носитель 16 данных. Устройство-источник 12 и устройство-адресат 14 могут включать в себя любое из широкого диапазона устройств, включая настольные компьютеры, ноутбуки (т.е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые «умные» телефоны, так называемые «умные» планшеты, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства для потоковой передачи видео и т.п. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы для беспроводной связи.
[0063] Устройство-адресат 14 может принимать закодированные видеоданные для декодирования через считываемый компьютером носитель 16 данных. Считываемый компьютером носитель 16 данных может содержать любой тип носителя данных или устройства, способного перемещать закодированные видеоданные с устройства-источника 12 на устройство-адресат 14. В одном примере считываемый компьютером носитель 16 данных может содержать среду связи, позволяющую устройству-источнику 12 передавать закодированные видеоданные непосредственно на устройство-адресат 14 в реальном времени. Кодированные видеоданные могут быть модулированы согласно стандарту связи, например протоколу беспроводной связи, и переданы на устройство-адресат 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF - radio frequency) спектр или одну или несколько физических линий передачи. Среда связи может составлять часть сети на основе пакетов, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для облегчения связи от устройства-источника 12 к устройству-адресату 14.
[0064] В некоторых примерах закодированные данные могут выводиться из интерфейса 22 вывода в устройство хранения. Точно так же к закодированным данным можно получить доступ с запоминающего устройства через интерфейс ввода. Запоминающее устройство может включать в себя любой из множества распределенных или локально доступных носителей данных, таких как жесткий диск, диски Blu-ray, цифровые видеодиски (DVD - digital video disk), компакт-диски с постоянным запоминающим устройством (CD-ROM), флэш-память, энергозависимая или энергонезависимая память или любой другой подходящий цифровой носитель для хранения кодированных видеоданных. В дополнительном примере запоминающее устройство может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить кодированное видео, сформированное посредством устройства-источника 12. Устройство-адресат 14 может получить доступ к сохраненным видеоданным с запоминающего устройства посредством потоковой передачи или загрузки. Файловый сервер может быть сервером любого типа, выполненным с возможностью хранения кодированных видеоданных и передачи этих закодированных видеоданных на устройство-адресат 14. Примеры файловых серверов включают в себя веб-сервер (например, для веб-сайта), сервер протокола передачи файлов (FTP - file transfer protocol), устройства сетевого хранилища данных (NAS - network attached storage) или локальный диск. Устройство-адресат 14 может получить доступ к закодированным видеоданным через любое стандартное соединение для передачи данных, включая Интернет- соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, цифровую абонентскую линию (DSL - digital subscriber line), кабельный модем и т.д.) или их комбинацию, которая подходит для доступа к кодированным видеоданным, сохраненным на файловом сервере. Передача закодированных видеоданных с запоминающего устройства может быть потоковой передачей, загрузкой или их комбинацией.
[0065] Методы этого раскрытия необязательно ограничиваются беспроводными применениями или настройками. Эти методы могут применяться к кодированию видео для поддержки любого из множества мультимедийных применений, таких как эфирное телевещание, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео через Интернет, такие как динамическая адаптивная потоковая передача через HTTP (DASH - dynamic adaptive streaming over HTTP), цифровое видео, которое кодируется на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или другие применения. В некоторых примерах система 10 кодирования может быть выполнена с возможностью поддержки односторонней или двусторонней передачи видео для поддержки таких применений, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.
[0066] В примере на фиг. 1, устройство-источник 12 включает в себя видеоисточник 18, видеокодер 20 и интерфейс 22 вывода. Устройство-адресат 14 включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В соответствии с этим раскрытием видеокодер 20 устройства-источника 12 и/или видеодекодер 30 устройства-адресата 14 может быть выполнен с возможностью применения методов двунаправленного предсказания. В других примерах устройство-источник и устройство-адресат могут включать в себя другие компоненты или устройства. Например, устройство-источник 12 может принимать видеоданные от внешнего источника видео, такого как внешняя камера. Аналогично, устройство-адресат 14 может взаимодействовать с внешним устройством отображения, а не включать в себя встроенное устройство отображения.
[0067] Проиллюстрированная система 10 кодирования на фиг. 1 - всего лишь один пример. Методы двунаправленного предсказания могут выполняться посредством любого устройства кодирования и/или декодирования цифрового видео. Хотя методы этого раскрытия сущности обычно выполняются посредством устройства кодирования видео, методы также могут выполняться посредством кодера/декодера видео, обычно называемого «КОДЕК». Кроме того, методы этого раскрытия также могут выполняться посредством процессора предварительной обработки видео. Видеокодер и/или декодер могут быть графическим процессором (GPU - graphics processing unit) или подобным устройством.
[0068] Устройство-источник 12 и устройство-адресат 14 являются просто примерами таких устройств кодирования, в которых устройство-источник 12 формирует кодированные видеоданные для передачи на устройство-адресат 14. В некоторых примерах устройство-источник 12 и устройство-адресат 14 могут работать по существу симметрично, так что каждое из устройства-источника 12 и устройства-адресата 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 кодирования может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 14, например, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.
[0069] Источник 18 видео устройства-источника 12 может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащее ранее захваченное видео, и/или интерфейс видеопотока для приема видео от поставщика видео контента. В качестве дополнительной альтернативы источник 18 видео может формировать данные на основе компьютерной графики в качестве исходного видео или комбинацию видео в реальном времени, архивированного видео и компьютерного видео.
[0070] В некоторых случаях, когда источником 18 видео является видеокамера, устройство-источник 12 и устройство-адресат 14 могут образовывать так называемые телефоны с камерой или видеотелефоны. Однако, как упомянуто выше, методы, описанные в этом раскрытии сущности, могут быть применимы к кодированию видео в целом и могут применяться к беспроводным и/или проводным применениям. В каждом случае захваченное, предварительно захваченное или сформированное компьютером видео может быть закодировано посредством видеокодера 20. Затем закодированная видеоинформация может выводиться через интерфейс 22 вывода в считываемый компьютером носитель 16 данных.
[0071] Считываемый компьютером носитель 16 данных может включать в себя временные носители данных, такие как беспроводное вещание или передача по проводной сети, или носители данных (то есть энергонезависимые носители данных), такие как жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, диск Blu-ray или другой считываемый компьютером носитель данных. В некоторых примерах сетевой сервер (не показан) может принимать закодированные видеоданные от устройства-источника 12 и обеспечивать закодированные видеоданные в устройство-адресат 14, например, через сетевую передачу. Точно так же вычислительное устройство средства производства носителя данных, такого как средство штамповки диска, может принимать закодированные видеоданные от устройства-источника 12 и создавать диск, содержащий закодированные видеоданные. Следовательно, можно понимать, что считываемый компьютером носитель 16 данных включает в себя один или несколько считываемых компьютером носителей данных различных форм в различных примерах.
[0072] Интерфейс 28 ввода устройства-адресата 14 принимает информацию из считываемого компьютером носителя 16 данных. Информация считываемого компьютером носителя 16 данных может включать в себя синтаксическую информацию, определенную посредством видеокодера 20, которая также используется посредством видеодекодера 30, которая включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например группы изображений (GOP - group of pictures). Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT - cathode ray tube), жидкокристаллический дисплей (LCD - liquid crystal display), плазменный дисплей, органический светоизлучающий диод (OLED - organic light emitting diode) или другое устройство отображения.
[0073] Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом видеокодирования, таким как разрабатываемый в настоящее время стандарт высокоэффективного видеокодирования (HEVC - High Efficiency Video Coding), и могут соответствовать тестовой модели HEVC (HM - HEVC Test Model). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими частными или отраслевыми стандартами, такими как стандарт H.264 Сектора стандартизации телекоммуникаций Международного союза телекоммуникаций (ITU-T), также называемый Экспертная группа по движущимся изображениям (MPEG - Moving Picture Expert Group) - 4, часть 10, Усовершенствованное кодирование видео (AVC - Advanced Video Coding), H.265/HEVC или расширениями таких стандартов. Однако методы этого раскрытия не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры стандартов кодирования видео включают в себя MPEG-2 и ITU-T H.263. Хотя это не показано на фиг. 1, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие блоки мультиплексора-демультиплексора (MUX-DEMUX) или другое аппаратное и программное обеспечение для обработки кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP - user datagram protocol).
[0074] Видеокодер 20 и видеодекодер 30 каждый может быть реализован как любая из множества подходящих схем кодера, таких как один или несколько микропроцессоров, процессоров цифровых сигналов (DSP - digital signal processor), специализированных интегральных схем (ASIC - application specific integrated circuit), программируемых пользователем вентильных матриц (FPGA - field programmable gate array), дискретная логика, программное обеспечение, аппаратное обеспечение, прошивка или любые их комбинации. Когда методы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем энергонезависимом считываемом компьютером носителе данных и выполнять инструкции в аппаратных средствах с использованием одного или нескольких процессоров для выполнения методов этого раскрытия сущности. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или несколько кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве. Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.
[0075] Фиг. 2 является блок-схемой, иллюстрирующей пример видеокодера 20, который может реализовывать методы двунаправленного предсказания. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков внутри видеослайсов. Внутреннее кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности в видео в данном видеокадре или изображении. Внешнее кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности в видео в соседних кадрах или изображениях видеопоследовательности. Внутренний режим (I-режим) может относиться к любому из нескольких режимов пространственного кодирования. Внешние режимы, такие как однонаправленное предсказание (режим P) или двунаправленное предсказание (режим B), могут относиться к любому из нескольких режимов кодирования на основе времени.
[0076] Как показано на фиг. 2, видеокодер 20 принимает текущий видеоблок внутри видеокадра, который должен быть кодирован. В примере на фиг. 2, видеокодер 20 включает в себя блок 40 выбора режима, память 64 опорных кадров, сумматор 50, блок 52 обработки преобразования, блок 54 квантования и блок 56 энтропийного кодирования. Блок 40 выбора режима, в свою очередь, включает в себя блок 44 компенсации движения, блок 42 оценки движения, блок 46 внутреннего предсказания и блок 48 разделения. Для восстановления видеоблока видеокодер 20 также включает в себя блок 58 обратного квантования, блок 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен для фильтрации границ блоков для удаления артефактов блочности из восстановленного видео. При желании фильтр удаления блочности обычно фильтрует выходной сигнал сумматора 62. Дополнительные фильтры (в цикле или после цикла) также могут использоваться в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но при желании могут фильтровать выходной сигнал сумматора 50 (как внутриконтурный фильтр).
[0077] Во время процесса кодирования видеокодер 20 принимает видеокадр или слайс для кодирования. Кадр или слайс можно разделить на несколько видеоблоков. Блок 42 оценки движения и блок 44 компенсации движения выполняют кодирование с внешним предсказанием принятого видеоблока относительно одного или нескольких блоков в одном или нескольких опорных кадрах для обеспечения временного предсказания. Блок 46 внутреннего предсказания может альтернативно выполнять кодирование с внутренним предсказанием принятого видеоблока относительно одного или нескольких соседних блоков в том же кадре или слайсе, что и блок, который должен быть кодирован, для обеспечения пространственного предсказания. Видеокодер 20 может выполнять несколько проходов кодирования, например, для выбора соответствующего режима кодирования для каждого блока видеоданных.
[0078] Более того, блок 48 разделения может разбивать блоки видеоданных на подблоки на основе оценки предыдущих схем разделения в предыдущих проходах кодирования. Например, блок 48 разделения может первоначально разделить кадр или слайс на наибольшие единицы кодирования (LCU - largest coding unit) и разделить каждую из LCU на единицы субкодирования (суб-CU - sub-coding unit) на основе анализа скорости и искажения (например, оптимизации скорости и искажения). Блок 40 выбора режима может дополнительно формировать структуру данных квадродерева, указывающую разделение LCU на суб-CU. CU вершин дерева квадрантов могут включать в себя одну или несколько единиц предсказания (PU - prediction unit) и одну или несколько единиц преобразования (TU - transform unit).
[0079] В настоящем раскрытии используется термин «блок» для обозначения любой из CU, PU или TU в контексте HEVC или аналогичных структур данных в контексте других стандартов (например, макроблоков и их подблоков в H.264/AVC). CU включает в себя узел кодирования, PU и TU, связанные с узлом кодирования. Размер CU соответствует размеру узла кодирования и имеет квадратную форму. Размер CU может варьироваться от 8 × 8 пикселей до размера древовидного блока с максимум 64 × 64 пикселей или больше. Каждая CU может содержать одну или несколько PU и одну или несколько TU. Данные синтаксиса, связанные с CU, могут описывать, например, разделение CU на одну или несколько PU. Режимы разделения могут различаться в зависимости от того, кодируется ли CU в режиме пропуска или в прямом режиме, в режиме внутреннего предсказания или в режиме внешнего предсказания. PU могут быть разделены на части, чтобы иметь неквадратную форму. Данные синтаксиса, связанные с CU, также могут описывать, например, разделение CU на одну или несколько TU согласно квадродереву. TU может иметь квадратную или неквадратную (например, прямоугольную) форму.
[0080] Блок 40 выбора режима может выбрать один из режимов кодирования, внутренний или внешний, например, на основе результатов ошибок, и обеспечивает результирующий блок с внутренним или внутренним кодированием сумматору 50 для формирования данных остаточного блока и сумматору 62 для восстановления закодированного блока для использования в качестве опорного кадра. Блок 40 выбора режима также обеспечивает элементы синтаксиса, такие как векторы движения, индикаторы внутреннего режима, информацию разделения и другую такую информацию синтаксиса, в блок 56 энтропийного кодирования.
[0081] Блок 42 оценки движения и блок 44 компенсации движения могут быть высоко интегрированы, но для концептуальных целей показаны отдельно. Оценка движения, выполняемая посредством блока 42 оценки движения, представляет собой процесс формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать на перемещение PU видеоблока внутри текущего кадра видео или изображений по отношению к предсказательному блоку в опорном кадре (или другой кодированной единице) по отношению к текущему блоку, кодируемому в пределах текущего кадра (или другой кодированной единицы). Предсказательный блок - это блок, который, как установлено, близко соответствует блоку, который должен быть кодирован, с точки зрения разности пикселей, которая может быть определена посредством суммы абсолютной разности (SAD - sum of absolute difference), суммы разности квадратов (SSD - sum of square difference) или других показателей разности. В некоторых примерах видеокодер 20 может вычислять значения для положений субцелочисленных пикселей опорных изображений, сохраненных в памяти 64 опорных кадров. Например, видеокодер 20 может интерполировать значения одной четвертой положений пикселей, одной восьмой положений пикселей, или других дробных положений пикселей опорного изображения. Следовательно, блок 42 оценки движения может выполнять поиск движения относительно положений целых пикселей и положений дробных пикселей и выводить вектор движения с точностью до дробных пикселей.
[0082] Блок 42 оценки движения вычисляет вектор движения для PU видеоблока в внешне кодированном слайсе посредством сравнения положения PU с положением предсказательного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (List 0) или второго списка опорных изображений (List 1), каждый из которых идентифицирует одно или более опорных изображений, сохраненных в памяти 64 опорных кадров. Блок 42 оценки движения отправляет вычисленный вектор движения в блок 56 энтропийного кодирования и блок 44 компенсации движения.
[0083] Компенсация движения, выполняемая посредством блока 44 компенсации движения, может включать в себя получение или формирование предсказательного блока на основе вектора движения, определенного посредством блока 42 оценки движения. Опять же, в некоторых примерах блок 42 оценки движения и блок 44 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего видеоблока блок 44 компенсации движения может найти предсказательный блок, на который указывает вектор движения, в одном из списков опорных изображений. Сумматор 50 формирует остаточный видеоблок посредством вычитания значений пикселей предсказательного блока из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей, как обсуждается ниже. В общем, блок 42 оценки движения выполняет оценку движения относительно компонентов яркости, а блок 44 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок 40 выбора режима также может формировать элементы синтаксиса, связанные с видеоблоками и видеослайсом, для использования посредством видеодекодера 30 при декодировании видеоблоков видеослайса.
[0084] Блок 46 внутреннего предсказания может внутренне предсказывать текущий блок в качестве альтернативы внешнему предсказанию, выполняемому посредством блока 42 оценки движения и блока 44 компенсации движения, как описано выше. В частности, блок 46 внутреннего предсказания может определять режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах блок 46 внутреннего предсказания может кодировать текущий блок с использованием различных режимов внутреннего предсказания, например, во время отдельных проходов кодирования, а блок 46 внутреннего предсказания (или блок 40 выбора режима в некоторых примерах) может выбрать соответствующий режим внутреннего предсказания для использования из тестируемых режимов.
[0085] Например, блок 46 внутреннего предсказания может вычислять значения скорости и искажения с использованием анализа скорости и искажения для различных тестируемых режимов внутреннего предсказания и выбирать режим внутреннего предсказания, имеющий лучшие характеристики скорости и искажения среди тестируемых режимов. Анализ скорости и искажения обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для создания закодированного блока, а также битовую скорость передачи данных (то есть количество битов), используемую для создания закодированного блока. Блок 46 внутреннего предсказания может вычислять отношения из искажений и скоростей для различных кодированных блоков для определения того, какой режим внутреннего предсказания показывает наилучшее значение скорости и искажения для блока.
[0086] Кроме того, блок 46 внутреннего предсказания может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM - depth modeling mode). Блок 40 выбора режима может определять, дает ли доступный режим DMM лучшие результаты кодирования, чем режим внутреннего предсказания и другие режимы DMM, например, используя оптимизацию скорости и искажения (RDO - rate-distortion optimization). Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 64 опорных кадров. Блок 42 оценки движения и блок 44 компенсации движения также могут быть выполнены с возможностью взаимного предсказания блоков глубины карты глубины.
[0087] После выбора режима внутреннего предсказания для блока (например, обычного режима внутреннего предсказания или одного из режимов DMM), блок 46 внутреннего предсказания может обеспечить информацию, указывающую выбранный режим внутреннего предсказания для блока 56 энтропийного кодирования. Блок 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания. Видеокодер 20 может включать в передаваемые данные конфигурации битового потока, которые могут включать в себя множество таблиц индексов режима внутреннего предсказания и множество модифицированных таблиц индексов режима внутреннего предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и индикации наиболее вероятного режима внутреннего предсказания, таблицу индексов режима внутреннего предсказания и модифицированную таблицу индексов режима внутреннего предсказания для использования в каждом из контекстов.
[0088] Видеокодер 20 формирует остаточный видеоблок посредством вычитания данных предсказания из блока 40 выбора режима из исходного видеоблока, подлежащего кодированию. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания.
[0089] Блок 52 обработки преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT - discrete cosine transform) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий значения коэффициентов остаточного преобразования. Блок 52 обработки преобразования может выполнять другие преобразования, которые концептуально аналогичны DCT. Также могут использоваться преобразования элементарных волн, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований.
[0090] Блок 52 обработки преобразования применяет преобразование к остаточному блоку, создавая блок остаточных коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Блок 52 обработки преобразования может отправлять результирующие коэффициенты преобразования в блок 54 квантования. Блок 54 квантования квантует коэффициенты преобразования, чтобы дополнительно снизить скорость передачи битов. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена посредством регулирования параметра квантования. В некоторых примерах блок 54 квантования может затем выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы блок 56 энтропийного кодирования может выполнять сканирование.
[0091] После квантования блок 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, блок 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование с переменной длиной (CAVLC - context adaptive variable length coding), контекстно-адаптивное двоичное арифметическое кодирование (CABAC - context adaptive binary arithmetic coding), контекстно-адаптивное двоичное арифметическое кодирование на основе синтаксиса (SBAC - syntax-based context-adaptive binary arithmetic coding), энтропийное кодирование разделения с интервалом вероятности (PIPE - probability interval partitioning entropy) или другой метод энтропийного кодирования. В случае энтропийного кодирования на основе контекста контекст может быть основан на соседних блоках. После энтропийного кодирования посредством блока 56 энтропийного кодирования закодированный битовый поток может быть передан другому устройству (например, видеодекодеру 30) или заархивирован для последующей передачи или поиска.
[0092] Блок обратного квантования 58 и блок 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в области пикселей, например, для последующего использования в качестве опорного блока. Блок 44 компенсации движения может вычислять опорный блок, добавляя остаточный блок к предсказательному блоку одного из кадров памяти 64 опорных кадров. Блок 44 компенсации движения также может применять один или несколько фильтров интерполяции к восстановленному остаточному блоку для вычисления значений субцелочисленных пикселей для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку предсказания с компенсацией движения, созданному посредством блока 44 компенсации движения, чтобы создать восстановленный видеоблок для хранения в памяти 64 опорных кадров. Восстановленный видеоблок может быть использован посредством блока 42 компенсации движения и блока 44 оценки движения в качестве опорного блока для внешнего кодирования блока в последующем видеокадре.
[0093] Фиг. 3 является блок-схемой, иллюстрирующей пример видеодекодера 30, который может реализовывать методы двунаправленного предсказания. В примере на фиг. 3, видеодекодер 30 включает в себя блок 70 энтропийного декодирования, блок 72 компенсации движения, блок 74 внутреннего предсказания, блок 76 обратного квантования, блок 78 обратного преобразования, память 82 опорных кадров и сумматор 80. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 20 (фиг. 2). Блок 72 компенсации движения может формировать данные предсказания на основе векторов движения, принятых от блока 70 энтропийного декодирования, в то время как блок 74 внутреннего предсказания может формировать данные предсказания на основе индикаторов режима внутреннего предсказания, принятых от блока 70 энтропийного декодирования.
[0094] Во время процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет видеоблоки закодированного видеослайса и связанные элементы синтаксиса от видеокодера 20. Блок 70 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для формирования квантованных коэффициентов, векторов движения или индикаторов режима внутреннего предсказания и других элементов синтаксиса. Блок 70 энтропийного декодирования пересылает векторы движения и другие элементы синтаксиса в блок 72 компенсации движения. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеослайса и/или уровне видеоблока.
[0095] Когда видеослайс кодируется как внутренне кодированный (I) слайс, блок 74 внутреннего предсказания может сформировать данные предсказания для видеоблока текущего видеослайса на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как внешне кодированный (т.е. B, P или GPB) слайс, блок 72 компенсации движения создает предсказательные блоки для видеоблока текущего видеослайса на основе векторов движения и других элементов синтаксиса, полученных от блока 70 энтропийного декодирования. Предсказательные блоки могут быть созданы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя методы построения по умолчанию на основе опорных изображений, сохраненных в памяти 82 опорных кадров.
[0096] Блок 72 компенсации движения определяет информацию предсказания для видеоблока текущего видеослайса посредством анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для создания предсказательных блоков для текущего видеоблока, подлежащего декодированию. Например, блок 72 компенсации движения использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков видеослайса, типа слайса с внешним предсказанием (например, слайс B, слайс P или слайс GPB), информации о построении для одного или нескольких списков опорных изображений для слайса, векторов движения для каждого внешне кодированного видеоблока слайса, состояния внешнего предсказания для каждого внешне кодированного видеоблока слайса и другой информации для декодирования видеоблоков в текущем видеослайсе.
[0097] Блок 72 компенсации движения также может выполнять интерполяцию на основе фильтров интерполяции. Блок 72 компенсации движения может использовать фильтры интерполяции, которые используются посредством видеокодера 20 во время кодирования видеоблоков для вычисления интерполированных значений для субцелочисленных пикселей опорных блоков. В этом случае блок 72 компенсации движения может определять фильтры интерполяции, используемые посредством видеокодера 20, из принятых элементов синтаксиса и использовать фильтры интерполяции для создания предсказательных блоков.
[0098] Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 82 опорных кадров. Блок 72 компенсации движения также может быть выполнен с возможностью взаимного предсказания блоков глубины карты глубины.
[0099] Хотя некоторые варианты осуществления описаны в данном документе с использованием концепции слайсов, варианты осуществления могут использовать клетки и/или группы клеток вместо или в дополнение к слайсам.
[00100] Определения сокращений и глоссарий
[00101] CTU/CTB - Coding Tree Unit/Coding Tree Block – единица дерева кодирования/блок дерева кодирования
[00102] CU/CB - Coding Unit/Coding Block – единица кодирования/блок кодирования
[00103] PU/PB - Prediction Unit/Prediction Block – единица предсказания/блок предсказания
[00104] TU/TB - Transform Unit/Transform Block – единица преобразования/блок преобразования
[00105] HEVC - высокоэффективное кодирование видео
[00106] Схемы кодирования видео, такие как H.264/AVC и HEVC, разработаны на основе успешного принципа гибридного кодирования видео на основе блоков. Используя этот принцип, изображение сначала разделяется на блоки, а затем каждый блок предсказывается с использованием внутрикадрового или межкадрового предсказания.
[00107] ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включая его текущие расширения и краткосрочные расширения для кодирования содержимого экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместного сотрудничества, известного как Совместная команда по исследованию видео (JVET - Joint Video Exploration Team), для оценки проектов технологий сжатия, предложенных их экспертами в этой области.
[00108] Стандарт VTM (Versatile Test Model - универсальная тестовая модель) использует 35 внешних режимов, тогда как BMS (Benchmark Set - набор тестов) использует 67 внутренних режимов. Для кодирования 67 внутренних режимов текущая схема кодирования внутреннего режима в BMS использует следующий способ.
[00109] Чтобы приспособиться к увеличенному количеству направленных внутренних режимов в BMS, используется способ кодирования внутреннего режима с 6 наиболее вероятными режимами (MPM). Здесь задействованы два основных технических аспекта.
[00110] 1) получение 6 MPM, и
[00111] 2) энтропийное кодирование 6 MPM и не-MPM режимов.
[00112] В BMS режимы, включенные в списки MPM, делятся на три группы: Соседние внутренние режимы, Полученные внутренние режимы и Внутренние режимы по умолчанию.
[00113] Фиг. 4 изображает текущую единицу 400 кодирования и пять соседних блоков 402. Текущая единица 400 кодирования также может называться текущим блоком кодирования. Пять соседних режимов внутреннего предсказания или, другими словами, режимов внутреннего предсказания пяти соседних блоков, используются для формирования списка MPM. Эти расположения 5 соседних блоков такие же, как и те, которые используются в режиме объединения, то есть слева (L - left), вверху (A - above), внизу слева (BL - below left), вверху справа (AR - above right) и вверху слева (AL - above left), как показано на фигуре 4. Исходный список MPM формируется посредством вставки 5 соседних внутренних режимов, планарного режима и режима DC в список MPM. Для удаления дублированных режимов используется процесс отсечения, чтобы в список MPM включались только уникальные режимы. Порядок включения начальных режимов: левый, верхний, планарный, DC, нижний левый, верхний правый и верхний левый.
[00114] Если список MPM не полон (т.е. в списке меньше 6 возможных MPM), полученные режимы добавляются, эти внутренние режимы получаются посредством добавления -1 или +1 к угловым режимам, которые уже включены в список MPM. Получение не применяется к неугловым режимам, т.е. DC или планарному.
[00115] Наконец, если список MPM все еще не завершен, режимы по умолчанию добавляются в следующем порядке: вертикальный, горизонтальный, внутренний режим 2 и диагональный режим. На фиг. 6 эти режимы показаны как HOR_IDX, DIA_IDX, MODE2 и VER_IDX соответственно. В результате этого процесса создается уникальный список из 6 режимов MPM.
[00116] Для энтропийного кодирования 6 MPM используется усеченная унарная бинаризация MPM. Первые три бина кодируются контекстами, которые зависят от режима MPM, относящегося к бину, который сигнализируется в настоящее время. Режим MPM подразделяется на одну из трех категорий: (a) относится ли режим к горизонтальному (режим MPM меньше или равен диагональному направлению), (b) вертикальному (режим MPM больше, чем диагональное направление) или (c) неугловому (DC и планарный) классу. Соответственно, для сигнализации индекса MPM используются три контекста.
[00117] Кодирование оставшихся 61 без MPM выполняется следующим образом. 61 без MPM сначала делятся на два набора: выбранный набор режимов и невыбранный набор режимов. Выбранный набор режимов содержит 16 режимов, а остальные (45 режимов) назначаются невыбранному набору режимов. Набор режимов, которому принадлежит текущий режим, указывается в битовом потоке с помощью метки. Затем режим из выбранного набора сигнализируется 4-битным кодом фиксированной длины, а режим из невыбранного набора кодируется усеченным двоичным кодом. Выбранный набор режимов создается посредством субсэмплирования всех 61 режимов без MPM со следующими индексами:
[00118] Выбранный набор режимов = {0, 4, 8, 12, 16, 20… 60}
[00119] Невыбранный набор режимов = {1, 2, 3, 5, 6, 7, 9, 10… 59}
[00120] Сводка различных механизмов сигнализации во внутреннем режиме показана в таблице 1.
Таблица 1 - Текущая сигнализация внутреннего режима яркости в BMS
Режимы внутреннего предсказания
Метка MPM
Выбранная етка
Строка бинов
MPM (6)
1
0
10
110
1110
11110
11111
Выбранные режимы (16)
0
1
4-битный код фиксированной длины
Невыбранные режимы (45)
0
0
Усеченный двоичный код
[00121] Настоящее раскрытие нацелено на улучшение схемы сигнализации внутреннего режима.
[00122] Схема кодирования во внутреннем режиме, описанная в настоящее время в BMS, считается сложной, и поэтому требуется более чистое решение.
[00123] Недостатком выбранного набора режимов является то, что список индексов всегда постоянен и не адаптируется на основе свойств текущего блока (например, для внутренних режимов его соседних блоков). Недостатком невыбранного набора режимов является то, что список индексов всегда постоянен и не адаптируется на основе свойств текущего блока (например, для внутренних режимов его соседних блоков).
[00124] В настоящем раскрытии предлагается схема сигнализации внутреннего режима с 6 MPM и оставшимся 61 режимом, при этом оставшийся 61 режим кодируется с использованием схемы усеченной бинаризации. Наиболее вероятные режимы также могут упоминаться как наиболее вероятные режимы внутреннего предсказания, а остальные режимы также могут упоминаться как оставшиеся режимы внутреннего предсказания. Таким образом, варианты осуществления могут быть выполнены с возможностью кодирования всех оставшихся внутренних режимов, то есть всех внутренних режимов, которые не включены в список MPM (сокращенно «режимы без MPM») и сообщаются в битовом потоке с использованием усеченной бинаризации. Остающийся 61 внутренний режим также может быть закодирован с использованием кода фиксированной длины из 6 битов, но недостатком кода фиксированной длины из 6 битов является то, что из 64 возможных кодовых слов используется только 61 кодовое слово, а оставшиеся 3 кодовых слова не используется. Вместо кода фиксированной длины предлагается усеченная бинаризация, которая будет использовать только 5 битов для сигнализации первых 3 оставшихся режимов, а остальные 58 режимов затем кодируются с использованием 6 бит. 6 режимов MPM, например, кодируются с использованием унарного кодирования. Дополнительные варианты осуществления могут быть выполнены с возможностью использования списка MPM и списка оставшихся режимов с другим количеством внутренних режимов, например, список MPM, содержащий более или менее 6 режимов, и список оставшихся режимов, содержащий более или менее 61 режима. Варианты осуществления могут быть особенно выгодными в случае, если количество оставшихся режимов не равно степени двойки, поскольку кодирование с фиксированной длиной не будет эффективно использовать все возможные кодовые слова. Варианты осуществления, использующие усеченное двоичное кодирование, могут сигнализировать несколькио режимов с использованием меньшего количества битов по сравнению с другими режимами оставшихся режимов и, таким образом, сигнализировать оставшиеся режимы более эффективно.
[00125] Варианты осуществления способа кодирования могут содержать этапы, на которых выбирают режим внутреннего предсказания для текущего блока; и кодируют режим внутреннего предсказания с использованием усеченного двоичного кодирования, когда выбранный режим внутреннего предсказания является оставшимся режимом. Оставшийся режим может содержаться в или быть частью набора или множества оставшихся режимов, например, списка оставшихся режимов. Варианты осуществления могут дополнительно содержать этапы, на которых определяют, что режим внутреннего предсказания не содержится в списке (или находится вне списка) MPM, и кодируют выбранный режим внутреннего предсказания с использованием усеченного двоичного кодирования. В вариантах осуществления выбранный режим внутреннего предсказания не содержится в списке (или находится за пределами списка) MPM. Варианты осуществления могут содержать список MPM и оставшиеся режимы, например, только список MPM и оставшиеся режимы (режимы без MPM), и не различают дополнительные наборы режимов внутреннего предсказания для кодирования или сигнализации, при этом ни один из режимов внутреннего предсказания оставшихся режимов не содержится в списке MPM. В вариантах осуществления список MPM может содержать 6 режимов внутреннего предсказания, а оставшиеся режимы могут содержать 61 режим. Варианты осуществления могут содержать этап, на котором добавляют усеченный двоичный код к битовому потоку. Дополнительные варианты осуществления содержат кодер, например устройство кодирования, выполненное с возможностью выполнения любого из способов кодирования.
[00126] Варианты осуществления способа декодирования могут содержать этапы, на которых получают усеченный двоичный код, например, посредством синтаксического анализа битового потока или другими средствами; декодируют усеченный двоичный код для получения режима внутреннего предсказания оставшегося режима, например, из множества или набора оставшихся режимов; и формируют текущий блок с использованием полученного режима внутреннего предсказания. Дополнительные признаки, описанные в отношении способа кодирования, в равной степени или соответственно применимы к соответствующим вариантам осуществления декодирования. Дополнительные варианты осуществления содержат декодер, например устройство декодирования, выполненное с возможностью выполнения любого из способов декодирования.
[00127] Предлагается несколько решений для заполнения первых трех режимов в списке оставшихся режимов.
[00128] Первые три режима в списке оставшихся режимов можно заполнить несколькими способами.
[00129] Во-первых, посредством использования режимов из предварительно определенного списка режимов по умолчанию, который представляет собой {планарный режим (PLANAR_IDX, что соответствует индексу «0»), режим DC (DC_IDX, который соответствует индексу «1»), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (MODE2, который соответствует индексу «2»), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX)} (термины в скобках показывают соответствующие термины на фиг. 6, дополнительные подробности о фиг.6 представлены ниже, список режимов по умолчанию содержит только режимы с внутренним предсказанием и может также называться списком режимов по умолчанию с внутренним предсказанием).
[00130] Во-вторых, посредством смещений в угловые режимы (угловые режимы внутреннего предсказания), которые уже присутствуют в списке MPM. Здесь смещение может быть +/- N, где N - возможное целочисленное значение, значение которого равно {1, 2, 3, 4}. Смещения можно было добавить только к первым двум угловым режимам из списка MPM.
[00131] В-третьих, внутренние режимы (угловые режимы внутреннего предсказания) несмежных соседей также могут использоваться для заполнения трех режимов. Фиг. 5 изображает текущую единицу 500 кодирования, соседей 502 первого уровня и соседей 504 второго уровня. Как показано на фиг. 5, могут использоваться внутренние режимы соседей второго уровня.
[00132] В-четвертых, как показано на фиг. 6, на первом этапе выбирают данный режим из списка MPM и проверяют, находится ли он «рядом» с одной из следующих категорий режимов {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, на втором этапе затем категории режимов «сортируют» на основе «большинства» близких к ним режимов. На третьем этапе формируют список оставшихся режимов посредством вставки режимов, которые находятся рядом с категорией выигравших режимов из этапа 2.
[00133] Фиг. 6 показывает пример 67 режимов внутреннего предсказания, например, как предложено для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (индекс 0), режим DC (индекс 1) и угловые режимы с индексами 2 - 66, где левый нижний угловой режим на фиг. 3 относится к индексу 2, а нумерация индексов увеличивается до тех пор, пока индекс 66 не станет самым верхним правым угловым режимом на фиг. 6.
[00134] Схема обработки может быть реализована аппаратно или в комбинации аппаратного и программного обеспечения, например, посредством программируемого процессора или тому подобного.
[00135] Фиг. 7 - схематическая диаграмма сетевого устройства 700 согласно варианту осуществления раскрытия. Сетевое устройство 700 подходит для реализации раскрытых вариантов осуществления, как описано здесь. Сетевое устройство 700 содержит входные порты 710 и блоки (Rx) 720 приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 730 для обработки данных; блоки (Tx) 740 передатчика и выходные порты 750 для передачи данных; а также память 760 для хранения данных. Сетевое устройство 700 может также содержать оптико-электронные (OE - optical-to-electrical) компоненты и электро-оптические (EO - electrical-to-optical) компоненты, подключенные к входным портам 710, блокам 720 приемника, блокам 740 передатчика и выходным портам 750 для выхода или входа оптических или электрических сигналов.
[00136] Процессор 730 реализован аппаратно и программно. Процессор 730 может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), программируемых пользователем вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 730 связан с входными портами 710, блоками 720 приемника, блоками 740 передатчика, выходными портами 750 и памятью 760. Процессор 730 содержит модуль 770 кодирования. Модуль 770 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 770 кодирования реализует, обрабатывает, подготавливает или обеспечивает различные сетевые функции. Таким образом, включение модуля 770 кодирования обеспечивает существенное улучшение функциональности сетевого устройства 700 и вызывает преобразование сетевого устройства 700 в другое состояние. В качестве альтернативы модуль 770 кодирования реализован как инструкции, хранящиеся в памяти 760 и выполняемые посредством процессора 730.
[00137] Память 760 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, считываемых во время выполнения программы. Память 760 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянное запоминающее устройство (ROM - read-only memory), оперативное запоминающее устройство (RAM - random access memory), троичное запоминающее устройство с адресацией по содержимому (TCAM - ternary content-addressable memory) и/или статическое оперативное запоминающее устройство (SRAM - static random-access memory).
[00138] Дополнительные подробности этого раскрытия представлены в следующих вариантах осуществления.
[00139] Вариант 1 осуществления. Устройство для определения принятого режима внутреннего предсказания на основе списка наиболее вероятных режимов (MPM) и списка оставшихся режимов, имеющего первую часть и вторую часть, при этом принятый режим внутреннего предсказания является одним из множества режимов внутреннего предсказания, содержащих множество угловых режимов внутреннего предсказания для предсказания значений сэмплов текущего блока изображения, при этом устройство содержит схему обработки, выполненную с возможностью: формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания, определенных на основе списка наиболее вероятных режимов, так что один или несколько угловых режимов внутреннего предсказания первой части списка оставшихся режимов близки к соответствующему угловому режиму внутреннего предсказания из списка наиболее вероятных режимов; и определения принятого режима внутреннего предсказания, в случае, если принятый режим внутреннего предсказания является частью первой части списка оставшихся режимов, используя меньше битов для кодирования или декодирования принятого режима внутреннего предсказания, чем в случае, если принятый режим внутреннего предсказания является частью второй части списка оставшихся режимов.
[00140] Вариант 2 осуществления. Устройство варианта 1 осуществления, в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством: ранжирования множества категорий угловых режимов внутреннего предсказания согласно количеству и/или направлению угловых режимов внутреннего предсказания из списка наиболее вероятных режимов, попадающих в каждую категорию угловых режимов внутреннего предсказания; и формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания из категории угловых режимов внутреннего предсказания с наивысшим рангом в список оставшихся режимов.
[00141] Вариант 3 осуществления. Устройство варианта 2 осуществления, в котором первая часть списка оставшихся режимов, полученная из предварительно определенного списка режимов по умолчанию, содержащего пять категорий угловых режимов внутреннего предсказания, а именно режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX, в причем угловой режим внутреннего предсказания из списка наиболее вероятных режимов, попадающих в каждую категорию угловых режимов внутреннего предсказания, например, соответствует связыванию каждого из углового режима внутреннего предсказания из списка наиболее вероятных режимов с категорией угловых режимов внутреннего предсказания, наиболее близкой к соответствующему угловому режиму внутреннего предсказания из списка наиболее вероятных режимов.
[00142] Вариант 4 осуществления. Устройство варианта 2 или 3 осуществления, в котором схема обработки дополнительно выполнена с возможностью завершения первой части списка оставшихся режимов посредством повторения этапа (ii) со второй по рангу категорией угловых режимов внутреннего предсказания.
[00143] Вариант 5 осуществления. Устройство варианта 2-3 осуществления, в котором каждый режим внутреннего предсказания идентифицируется посредством индекса режима внутреннего предсказания и в котором схема обработки выполнена с возможностью определения множества категорий угловых режимов внутреннего предсказания на основе соответствующих угловых режимов внутреннего предсказания, связанных с горизонтальным направлением, вертикальным направлением и одним или несколькими диагональными направлениями.
[00144] Вариант 6 осуществления. Устройство любого из предшествующих вариантов осуществления, в котором каждый режим внутреннего предсказания идентифицируется посредством индекса режима внутреннего предсказания и в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +1, -1, +2, -2, +3, -3, +4 или -4 относительно индекса режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов.
[00145] Вариант 7 осуществления. Устройство варианта 6 осуществления, в котором каждый элемент списка из списка наиболее вероятных режимов идентифицируется посредством индекса наиболее вероятных режимов, и в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +1, -1, +2, -2, +3, -3, +4 или -4 относительно индекса режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов.
[00146] Вариант 8 осуществления. Устройство варианта 7 осуществления, в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов на основе цикла обработки, начиная со смещения +1 по отношению к индексу режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов, которое увеличивается во время каждого раунда цикла обработки, или со смещения -1 по отношению к индексу режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов, который уменьшается на единицу во время каждого раунда цикла обработки.
[00147] Вариант 9 осуществления. Устройство варианта 8 осуществления, в котором схема обработки выполнена с возможностью повторения цикла обработки для углового режима внутреннего предсказания из списка наиболее вероятных режимов, имеющего малый индекс наиболее вероятных режимов, чаще, чем цикла обработки для углового режима внутреннего предсказания из списка наиболее вероятных режимов с большим индексом наиболее вероятных режимов.
[00148] Вариант 10 осуществления. Устройство варианта 8 осуществления, в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +2, -2, +4, -4, +6, -6, +8 или -8 по отношению к индексу режима внутреннего предсказания для углового режима внутреннего предсказания из списка наиболее вероятных режимов.
[00149] Вариант 11 осуществления. Устройство любого из предыдущих вариантов осуществления, в котором схема обработки дополнительно выполнена с возможностью формирования второй части списка оставшихся режимов пуосредством включения тех режимов внутреннего предсказания из множества режимов внутреннего предсказания во вторую часть списка оставшихся режимов, которые не являются частью списка наиболее вероятных режимов и первой части списка оставшихся режимов.
[00150] Вариант 12 осуществления. Устройство любого из предыдущих вариантов осуществления, в котором схема обработки дополнительно выполнена с возможностью реализации в аппаратных средствах или в комбинации аппаратных средств и программного обеспечения.
[00151] Вариант 13 осуществления. Устройство любого из предыдущих вариантов осуществления, в котором схема обработки дополнительно выполнена с возможностью предсказания значений сэмплов текущего блока изображения с использованием принятого режима внутреннего предсказания и для обеспечения предсказываемого блока изображения.
[00152] Вариант 14 осуществления. Устройство согласно варианту 13 осуществления, причем устройство представляет собой устройство кодирования, и в котором схема обработки дополнительно выполнена с возможностью: кодирования текущего блока изображения на основе предсказанного блока изображения и принятого режима внутреннего предсказания.
[00153] Вариант 15 осуществления. Устройство согласно варианту 14 осуществления, в котором схема обработки дополнительно выполнена с возможностью сигнализации усеченного двоичного кода для режима внутреннего предсказания текущего блока изображения, если режим внутреннего предсказания принадлежит списку оставшихся режимов.
[00154] Вариант 16 осуществления. Устройство согласно варианту 15 осуществления, причем устройство является устройством декодирования, и в котором схема обработки дополнительно выполнена с возможностью декодирования текущего блока изображения на основе предсказанного блока изображения и принятого режима внутреннего предсказания.
[00155] Вариант 17 осуществления. Устройство согласно варианту 16 осуществления, в котором схема обработки дополнительно выполнена с возможностью синтаксического анализа усеченного двоичного кода для определения режима внутреннего предсказания текущего блока изображения, если режим внутреннего предсказания принадлежит списку оставшихся режимов.
[00156] Вариант 18 осуществления. Способ определения принятого режима внутреннего предсказания на основе списка наиболее вероятных режимов и списка оставшихся режимов, имеющего первую часть и вторую часть, при этом принятый режим внутреннего предсказания является одним из множества режимов внутреннего предсказания, содержащих множество угловых режимов внутреннего предсказания для предсказания значений сэмплов текущего блока изображения, при этом способ содержит этапы, на которых: формируют первую часть списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания, определенных на основе списка наиболее вероятных режимов, так что один или несколько угловых режимов внутреннего предсказания первой части списка оставшихся режимов близки к соответствующему угловому режиму внутреннего предсказания из списка наиболее вероятных режимов; и определяют принятый режим внутреннего предсказания в случае, если принятый режим внутреннего предсказания является частью первой части списка оставшихся режимов, с использованием меньшего количества битов для кодирования или декодирования принятого режима внутреннего предсказания, чем в случае, если принятый режим внутреннего предсказания является частью второй части списка оставшихся режимов.
[00157] Вариант 19 осуществления. Компьютерный программный продукт, содержащий программный код для выполнения способа варианта 14 осуществления, когда он выполняется на компьютере или процессоре.
[00158] Вариант 20 осуществления. Устройство согласно любому из вариантов с 1 по 13 осуществления, в котором схема обработки дополнительно выполнена с возможностью определения первой части списка оставшихся режимов из предварительно определенного списка режимов по умолчанию, содержащего или состоящего из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX).
[00159] Вариант 21 осуществления. Устройство согласно любому из вариантов с 1 по 13 осуществления, в котором схема обработки дополнительно выполнена с возможностью определения первой части списка оставшихся режимов посредством включения режимов внутреннего предсказания соседей второго уровня текущего блока изображения.
[00160] Вариант 22 осуществления. Как в кодере, так и в декодере, внутренний режим сигнализируется с использованием усеченной бинаризации для внутренних режимов без MPM.
[00161] Вариант 23 осуществления. Поскольку усеченная бинаризация используется для кодирования 61 без MPM, первые три режима потребуют передачи 5 битов, и поэтому первые три режима в списке без MPM формируются на основе внутренних режимов, которые уже включены в список MPM.
[00162] Хотя в настоящем раскрытии обеспечено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть осуществлены во многих других конкретных формах, не выходящих за рамки сущности или объема настоящего раскрытия. Настоящие примеры следует рассматривать как иллюстративные, а не ограничительные, а намерение - не ограничиваться приведенными здесь подробностями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.
[00163] Кроме того, методики, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как дискретные или отдельные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами, не выходя за рамки объема настоящего раскрытия. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений и замен могут быть установлены специалистом в данной области техники и могут быть выполнены без отклонения от сущности и объема, раскрытых в данном документе.