RU2787010C2 - Internal brightness mode signaling - Google Patents

Internal brightness mode signaling Download PDF

Info

Publication number
RU2787010C2
RU2787010C2 RU2021102488A RU2021102488A RU2787010C2 RU 2787010 C2 RU2787010 C2 RU 2787010C2 RU 2021102488 A RU2021102488 A RU 2021102488A RU 2021102488 A RU2021102488 A RU 2021102488A RU 2787010 C2 RU2787010 C2 RU 2787010C2
Authority
RU
Russia
Prior art keywords
modes
mode
list
intra prediction
idx
Prior art date
Application number
RU2021102488A
Other languages
Russian (ru)
Other versions
RU2021102488A (en
Inventor
Ананд Меер КОТРА
Цзянле ЧЕН
Семих ЭСЕНЛИК
Чжицзе ЧЖАО
Хань ГАО
Бяо ВАН
Иван КРАСНОВ
Original Assignee
Хуавэй Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2021102488A publication Critical patent/RU2021102488A/en
Application granted granted Critical
Publication of RU2787010C2 publication Critical patent/RU2787010C2/en

Links

Images

Abstract

FIELD: video encoding/decoding.
SUBSTANCE: invention relates to means for video encoding and decoding. An internal prediction mode is selected for the current block, using an encoding device. The selected internal prediction mode is encoded using the encoding device, using truncated binary encoding. In this case, all internal prediction modes belong either to a list of the most probable modes (hereinafter – MPM) or to remaining modes. There are 6 modes in MPM list and 61 mode in remaining modes, and all remaining modes are encoded using truncated binary encoding, while encoding uses 5 bites, when the selected internal prediction mode is one of the first three modes of remaining modes, and 6 bits, when the internal prediction mode is beyond the mentioned first three modes.
EFFECT: increase in the efficiency of video encoding.
15 cl, 7 dwg, 1 tbl

Description

Перекрестная ссылка на связанные заявкиCross-reference to related applications

[0001] В этой заявке на патент испрашиваются преимущества предварительной заявки на патент США № 62/696739, поданной 11 июля 2019 года Анандом Мехером Котрой и др. и озаглавленной «Улучшения сигнализации внутреннего режима яркости», которая включена в настоящее описание посредством ссылки. [0001] This patent application claims the benefits of U.S. Provisional Application No. 62/696,739, filed July 11, 2019, by Anand Meher Kotra et al., entitled "Internal Brightness Mode Signaling Improvements", which is incorporated herein by reference.

Область техники, к которой относится изобретениеThe technical field to which the invention belongs

[0002] Настоящее раскрытие в целом связано с кодированием видео и, в частности, связано с сигнализацией внутреннего режима яркости. [0002] The present disclosure is generally related to video coding and, in particular, is related to internal brightness mode signaling.

Уровень техникиState of the art

[0003] Объем видеоданных, необходимых для отображения даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные обычно сжимаются перед передачей по современным телекоммуникационным сетям. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное обеспечение и/или оборудование в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в месте назначения посредством устройства распаковки видео, которое декодирует видеоданные. В связи с ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео требуются улучшенные методы сжатия и распаковки, которые улучшают степень сжатия с минимальными потерями в качестве изображения или вообще без них.[0003] The amount of video data required to display even a relatively short video can be significant, which can lead to difficulties when the data must be streamed or otherwise transmitted over a bandwidth-limited communication network. Thus, video data is usually compressed before transmission over modern telecommunication networks. Video size can also be an issue when the video is stored on a storage device, as memory resources can be limited. Video compression devices often use source software and/or hardware to encode video data prior to transmission or storage, thereby reducing the amount of data needed to represent digital video images. The compressed data is then received at the destination by a video decompressor that decodes the video data. Due to limited network resources and ever-increasing demands for higher video quality, improved compression and decompression techniques are required that improve compression rates with little or no loss in image quality.

Сущность изобретенияThe essence of the invention

[0004] Первый аспект относится к способу кодирования, реализованному посредством устройства кодирования. Способ включает в себя этапы, на которых выбирают с использованием устройства кодирования режим внутреннего предсказания для текущего блока; и кодируют с использованием устройства кодирования выбранный режим внутреннего предсказания с использованием усеченного двоичного кодирования, когда выбранный режим внутреннего предсказания является оставшимся режимом. В варианте осуществления способ включает в себя этап, на котором определяют, что выбранный режим внутреннего предсказания находится в списке оставшихся режимов. [0004] The first aspect relates to an encoding method implemented by an encoding device. The method includes selecting, using an encoder, an intra prediction mode for the current block; and encoding, using the coding device, the selected intra prediction mode using truncated binary coding when the selected intra prediction mode is the remaining mode. In an embodiment, the method includes determining that the selected intra prediction mode is in the list of remaining modes.

[0005] Как будет более полно объяснено ниже, способ улучшает существующую схему сигнализации внутреннего режима. Варианты осуществления могут быть выполнены с возможностью кодирования всех оставшихся внутренних режимов, например, всех внутренних режимов, которые не находятся в списке MPM (также известных как «режимы без MPM») и передаются в битовом потоке с использованием усеченной бинаризации. Посредством использования усеченной бинаризации для оставшихся режимов кодовые слова используются более эффективно. [0005] As will be explained more fully below, the method improves upon the existing intra mode signaling scheme. Embodiments may be configured to encode all remaining intrinsic modes, for example, all intrinsic modes that are not in the MPM list (also known as "non-MPM modes") and are transmitted in the bitstream using truncated binarization. By using truncated binarization for the remaining modes, codewords are used more efficiently.

[0006] В первой форме реализации способа согласно первому аспекту как таковому способ дополнительно содержит этап, на котором определяют, что выбранный режим внутреннего предсказания не входит в список наиболее вероятных режимов (MPM - most probable modes). [0006] In the first implementation form of the method according to the first aspect, as such, the method further comprises determining that the selected intra prediction mode is not included in the most probable modes (MPM) list.

[0007] Во второй форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором кодируют выбранный режим внутреннего предсказания с использованием 5 битов, когда выбранный режим внутреннего предсказания является одним из первых трех режимов из оставшихся режимов. [0007] In a second implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the method further comprises encoding the selected intra prediction mode using 5 bits when the selected intra prediction mode is one of the first three modes of the remaining modes.

[0008] В третьей форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором кодируют выбранный режим внутреннего предсказания с использованием N битов, когда выбранный режим внутреннего предсказания включен в первую часть из оставшихся режимов и с использованием N+1 битов, когда выбранный режим внутреннего предсказания включен во вторую часть оставшихся режимов. [0008] In a third implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the method further comprises encoding the selected intra prediction mode using N bits when the selected intra prediction mode is included in the first part of the remaining modes and using N+1 bits when the selected intra prediction mode is included in the second part of the remaining modes.

[0009] В четвертой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором кодируют режим внутреннего предсказания с использованием 6 битов, когда выбранный режим внутреннего предсказания не является одним из первых трех режимов из оставшихся режимов. [0009] In a fourth implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the method further comprises encoding an intra prediction mode using 6 bits when the selected intra prediction mode is not one of the first three modes of the remaining modes.

[0010] В пятой форме реализации способа согласно первому аспекту как таковому или любой предыдущей форме реализации первого аспекта, оставшийся режим является одним из 61 оставшихся режимов. [0010] In the fifth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the remaining mode is one of the 61 remaining modes.

[0011] В шестой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта список MPM содержит 6 режимов, а оставшийся режим является одним из 61 оставшихся режимов. [0011] In the sixth implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the MPM list contains 6 modes, and the remaining mode is one of the 61 remaining modes.

[0012] В седьмой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта все режимы либо принадлежат списку MPM, либо оставшимся режимам. [0012] In the seventh form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, all modes either belong to the MPM list or the remaining modes.

[0013] В восьмой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта все оставшиеся режимы кодируются с использованием усеченного двоичного кодирования. [0013] In the eighth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, all remaining modes are encoded using truncated binary coding.

[0014] В девятой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов с использованием предварительно определенного списка режимов по умолчанию. [0014] In a ninth implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the method further comprises populating the initial modes in the remaining modes list using a predetermined default mode list.

[0015] В десятой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта предварительно определенный список режимов по умолчанию содержит планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX). [0015] In the tenth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the predefined default mode list contains planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX) , Inner Mode 2 (2), Vertical Diagonal Mode (VDIA_IDX), and Diagonal Mode (DIA_IDX).

[0016] В одиннадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов с использованием смещения к угловым режимам, включенным в список MPM. [0016] In an eleventh form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the method further comprises filling in the initial modes in the list of remaining modes using an offset to the angular modes included in the MPM list.

[0017] В двенадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта смещение составляет +/- N, где N - целое число со значением 1, 2, 3 или 4.[0017] In the twelfth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the offset is +/- N, where N is an integer with a value of 1, 2, 3 or 4.

[0018] В тринадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта смещение добавляется только к первому из двух угловых режимов в списке MPM. [0018] In the thirteenth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the offset is added to only the first of the two angular modes in the MPM list.

[0019] В четырнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихя режимов с использованием режимов соседних блоков, не смежных непосредственно с текущим блоком. [0019] In a fourteenth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the method further comprises populating initial modes in the list of remaining modes using modes of neighboring blocks not directly adjacent to the current block.

[0020] В пятнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов с использованием режимов соседей второго уровня текущего блока вместо соседей первого уровня. [0020] In a fifteenth form of implementation of the method according to the first aspect as such or any previous form of implementation of the first aspect, the method further comprises populating the initial modes in the list of remaining modes using the modes of the second level neighbors of the current block instead of the first level neighbors.

[0021] В шестнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов на основе расположения большинства режимов в списке MPM относительно одного из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX). [0021] In the sixteenth implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the method further comprises filling in the initial modes in the list of remaining modes based on the location of the majority of the modes in the MPM list relative to one of the planar mode (PLANAR_IDX) , DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode (DIA_IDX).

[0022] В семнадцатой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта способ дополнительно содержит этап, на котором заполняют начальные режимы в списке оставшихся режимов посредством: сравнения каждого из режимов в списке MPM с расположением различных режимов в списке режимов по умолчанию; определения того, что выигравший один из различных режимов в списке режимов по умолчанию является ближайшим к большинству режимов в списке MPM; и заполнения первых трех режимов в списке оставшихся режимов режимами, ближайшими к выигравшему одному из различных режимов в списке режимов по умолчанию. [0022] In the seventeenth implementation form of the method according to the first aspect as such or any previous implementation form of the first aspect, the method further comprises populating the initial modes in the remaining modes list by: comparing each of the modes in the MPM list with the location of the various modes in the mode list default; determining that the winner of one of the various modes in the default mode list is closest to the majority of the modes in the MPM list; and populating the first three modes in the list of remaining modes with the modes closest to the winning one of the various modes in the list of default modes.

[0023] Второй аспект относится к способу декодирования, реализованному посредством устройства декодирования. Способ включает в себя этапы, на которых получают посредством устройства декодирования усеченный двоичный код; декодируют посредством устройства декодирования усеченный двоичный код для получения режима внутреннего предсказания, содержащего оставшийся режим; и формируют посредством устройства декодирования текущий блок с использованием режима внутреннего предсказания, который был получен. [0023] The second aspect relates to a decoding method implemented by a decoding device. The method includes the steps of obtaining, by means of a decoding device, a truncated binary code; decoding by means of the decoding device the truncated binary code to obtain an intra prediction mode containing the remaining mode; and generating, by the decoding apparatus, a current block using the intra prediction mode that has been obtained.

[0024] Как будет более полно объяснено ниже, способ улучшает существующую схему сигнализации внутреннего режима. Варианты осуществления могут быть выполнены с возможностью декодирования усеченного двоичного кода для получения режима внутреннего предсказания, который является одним из оставшихся режимов, закодированных с использованием усеченного двоичного кодирования. Посредством использования усеченной бинаризации для оставшихся режимов кодовые слова используются более эффективно. [0024] As will be explained more fully below, the method improves on the existing intra mode signaling scheme. Embodiments may be configured to decode the truncated binary code to obtain an intra prediction mode, which is one of the remaining modes encoded using truncated binary coding. By using truncated binarization for the remaining modes, codewords are used more efficiently.

[0025] В первой форме реализации способа согласно второму аспекту как таковому способ дополнительно содержит этап, на котором определяют, что режим внутреннего предсказания не входит в список наиболее вероятных режимов (MPM). [0025] In a first implementation form of the method according to the second aspect, as such, the method further comprises determining that the intra prediction mode is not in the most likely modes (MPM) list.

[0026] Во второй форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, способ дополнительно содержит этап, на котором декодируют режим внутреннего предсказания с использованием 5 битов, когда режим внутреннего предсказания был одним из первых трех режимов из оставшихся режимов. [0026] In a second implementation form of the method according to the second aspect as such or any previous implementation form of the second aspect, the method further comprises decoding the intra prediction mode using 5 bits when the intra prediction mode was one of the first three modes of the remaining modes. .

[0027] В третьей форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, способ дополнительно содержит этап, на котором декодируют режим внутреннего предсказания с использованием 6 битов, когда режим внутреннего предсказания находится вне первых трех режимов из оставшихся режимов. [0027] In a third implementation form of the method according to the second aspect as such or any previous form of implementation of the second aspect, the method further comprises decoding the intra prediction mode using 6 bits when the intra prediction mode is outside the first three modes of the remaining modes.

[0028] В четвертой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, оставшийся режим является одним из 61 оставшихся режимов. [0028] In the fourth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the remaining mode is one of the 61 remaining modes.

[0029] В пятой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта имеется 6 режимов в списке MPM и 61 режим в оставшихся режимах. [0029] In the fifth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, there are 6 modes in the MPM list and 61 modes in the remaining modes.

[0030] В шестой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта все режимы внутреннего предсказания либо принадлежат списку MPM, либо оставшимся режимам. [0030] In the sixth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, all intra prediction modes either belong to the MPM list or the remaining modes.

[0031] В седьмой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта все оставшиеся режимы кодируются с использованием усеченного двоичного кодирования. [0031] In the seventh form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, all remaining modes are encoded using truncated binary coding.

[0032] В восьмой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта начальные режимы в списке оставшихся режимов берутся из предварительно определенного списка режимов по умолчанию. [0032] In the eighth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the initial modes in the list of remaining modes are taken from a predefined list of default modes.

[0033] В девятой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта предварительно определенный список режимов по умолчанию содержит планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX). [0033] In the ninth implementation form of the method according to the second aspect as such or any previous implementation form of the second aspect, the predefined default mode list comprises planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX) , Inner Mode 2 (2), Vertical Diagonal Mode (VDIA_IDX), and Diagonal Mode (DIA_IDX).

[0034] В десятой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта начальные режимы в списке оставшихся режимов основаны на смещении к угловым режимам, включенным в список MPM. [0034] In the tenth implementation of the method according to the second aspect as such or any previous implementation of the second aspect, the initial modes in the list of remaining modes are based on an offset to the angular modes included in the MPM list.

[0035] В одиннадцатой форме реализации способа согласно второму аспекту как таковому или любой предыдущей форме реализации второго аспекта смещение равно +/- N, где N - целое число со значением 1, 2, 3 или 4. [0035] In the eleventh implementation of the method according to the second aspect as such or any previous implementation of the second aspect, the offset is +/- N, where N is an integer with a value of 1, 2, 3, or 4.

[0036] В двенадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта смещение добавляется только к первому из двух угловых режимов в списке MPM. [0036] In the twelfth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the offset is added to only the first of the two angular modes in the MPM list.

[0037] В тринадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, начальные режимы в списке оставшихся режимов основаны на режимах соседних блоков, не смежных непосредственно с текущим блоком. [0037] In the thirteenth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the initial modes in the list of remaining modes are based on the modes of neighboring blocks not directly adjacent to the current block.

[0038] В четырнадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта, начальные режимы в списке оставшихся режимов основаны на режимах соседей второго уровня текущего блока вместо соседей первого уровня. [0038] In the fourteenth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the initial modes in the list of remaining modes are based on the modes of the second level neighbors of the current block instead of the first level neighbors.

[0039] В пятнадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта начальные режимы в списке оставшихся режимов основаны на расположении большинства режимов в списке MPM относительно одного из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX). [0039] In the fifteenth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the initial modes in the list of remaining modes are based on the location of the majority of modes in the MPM list relative to one of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

[0040] В шестнадцатой форме реализации способа согласно второму аспекту как таковому или любой предыдущей форме реализации второго аспекта, начальные режимы в списке оставшихся режимов определялись посредством: сравнения каждого из режимов в списке MPM с расположением различных режимы в списке режимов по умолчанию; определения того, что выигравший один из различных режимов в списке режимов по умолчанию является ближайшим к большинству режимов в списке MPM; и заполнения первых трех режимов в списке оставшихся режимов режимами, ближайшими к выигравшему одному из различных режимов в списке режимов по умолчанию. [0040] In the sixteenth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the initial modes in the list of remaining modes were determined by: comparing each of the modes in the MPM list with the location of the various modes in the default mode list; determining that the winner of one of the various modes in the default mode list is closest to the majority of the modes in the MPM list; and populating the first three modes in the list of remaining modes with the modes closest to the winning one of the various modes in the default mode list.

[0041] В семнадцатой форме реализации способа согласно второму аспекту как таковому или любой предшествующей форме реализации второго аспекта различные режимы в категории режимов содержат планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX). [0041] In the seventeenth form of implementation of the method according to the second aspect as such or any previous form of implementation of the second aspect, the various modes in the mode category include planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), internal mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

[0042] Третий аспект относится к устройству кодирования, выполненному с возможностью выполнения любого из предшествующих способов кодирования. [0042] A third aspect relates to an encoding device configured to perform any of the preceding encoding methods.

[0043] Четвертый аспект относится к устройству декодирования, выполненному с возможностью выполнения любого из предшествующих способов декодирования. [0043] The fourth aspect relates to a decoding device configured to perform any of the previous decoding methods.

[0044] Пятый аспект относится к устройству кодирования, включающему в себя память; и процессор, связанный с памятью, причем процессор выполнен с возможностью: выбора режима внутреннего предсказания для текущего блока; кодирования выбранного режима внутреннего предсказания с использованием усеченного двоичного кодирования, когда выбранный режим внутреннего предсказания является оставшимся режимом. [0044] A fifth aspect relates to an encoding device including a memory; and a processor associated with the memory, the processor being configured to: select an intra prediction mode for the current block; encoding the selected intra prediction mode using truncated binary coding when the selected intra prediction mode is the remaining mode.

[0045] В первой форме реализации устройства кодирования согласно пятому аспекту как таковому устройство кодирования содержит передатчик, связанный с процессором, причем передатчик выполнен с возможностью передачи закодированного выбранного режима внутреннего предсказания в устройство декодирования. [0045] In a first embodiment of the encoding device according to the fifth aspect, the encoding device itself comprises a transmitter associated with the processor, the transmitter being configured to transmit an encoded selected intra prediction mode to the decoding device.

[0046] Во второй форме реализации устройства кодирования согласно пятому аспекту как таковому или любой предшествующей форме реализации пятого аспекта процессор выполнен с возможностью реализации одного или нескольких из предшествующих аспектов или реализаций. [0046] In the second form of implementation of the encoder according to the fifth aspect as such or any previous form of implementation of the fifth aspect, the processor is configured to implement one or more of the previous aspects or implementations.

[0047] Дополнительные формы реализации устройства кодирования соответствуют соответствующим формам реализации способа кодирования согласно первому аспекту. [0047] Additional implementation forms of the encoding device correspond to the corresponding implementation forms of the encoding method according to the first aspect.

[0048] Шестой аспект относится к устройству декодирования, включающему в себя приемник, выполненный с возможностью получения усеченного двоичного кода; процессор, связанный с приемником, причем процессор выполнен с возможностью: декодирования усеченного двоичного кода для получения режима внутреннего предсказания, содержащего оставшийся режим; и формирования текущего блока с использованием полученного режима внутреннего предсказания. [0048] The sixth aspect relates to a decoding device, including a receiver configured to receive a truncated binary code; a processor associated with the receiver, the processor being configured to: decode the truncated binary code to obtain an intra prediction mode containing the remaining mode; and generating a current block using the obtained intra prediction mode.

[0049] В первой форме реализации устройства декодирования согласно шестому аспекту как таковому, устройство декодирования содержит дисплей, связанный с процессором, причем дисплей выполнен с возможностью отображения изображения, сформированного с использованием текущего блока. [0049] In the first implementation form of the decoding apparatus according to the sixth aspect as such, the decoding apparatus comprises a display associated with the processor, the display being configured to display an image generated using the current block.

[0050] Во второй форме реализации устройства кодирования согласно шестому аспекту как таковому или любой предшествующей форме реализации шестого аспекта процессор выполнен с возможностью реализации одного или нескольких из предшествующих аспектов или реализаций. [0050] In a second implementation form of the encoder according to the sixth aspect as such or any previous form of implementation of the sixth aspect, the processor is configured to implement one or more of the previous aspects or implementations.

[0051] Дополнительные формы реализации устройства декодирования соответствуют соответствующим формам реализации способа декодирования согласно второму аспекту. [0051] Additional implementation forms of the decoding device correspond to corresponding implementation forms of the decoding method according to the second aspect.

[0052] Для ясности любой из вышеупомянутых вариантов осуществления может быть объединен с любым одним или несколькими другими вышеупомянутыми вариантами осуществления для создания нового варианта осуществления в пределах объема настоящего раскрытия. Дополнительные подробности вариантов осуществления представлены в подробном описании. [0052] For clarity, any of the above embodiments may be combined with any one or more of the other above embodiments to create a new embodiment within the scope of this disclosure. Additional details of the embodiments are provided in the detailed description.

Краткое описание чертежейBrief description of the drawings

[0053] Для более полного понимания этого раскрытия теперь сделана ссылка на следующее краткое описание, взятое в связи с прилагаемыми чертежами и подробным описанием, в котором одинаковые номера позиций представляют одинаковые части. [0053] For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and the detailed description, in which like reference numbers represent like parts.

[0054] Фиг. 1 - блок-схема, иллюстрирующая примерную систему кодирования, которая может использовать методы контекстного моделирования. [0054] FIG. 1 is a block diagram illustrating an exemplary coding system that may use context modeling techniques.

[0055] Фиг. 2 - блок-схема, иллюстрирующая пример видеокодера, который может реализовывать методы контекстного моделирования. [0055] FIG. 2 is a block diagram illustrating an example of a video encoder that can implement context modeling techniques.

[0056] Фиг. 3 - блок-схема, иллюстрирующая пример видеодекодера, который может реализовывать методы контекстного моделирования. [0056] FIG. 3 is a block diagram illustrating an example of a video decoder that can implement context modeling techniques.

[0057] Фиг. 4 - схематическая диаграмма текущей единицы кодирования и пяти соседних блоков. [0057] FIG. 4 is a schematic diagram of the current coding unit and five neighboring blocks.

[0058] Фиг. 5 - схематическая диаграмма текущей единицы кодирования, соседей первого уровня и соседей второго уровня. [0058] FIG. 5 is a schematic diagram of the current coding unit, first layer neighbors, and second layer neighbors.

[0059] Фиг. 6 - схематическая диаграмма примера 67 режимов внутреннего предсказания. [0059] FIG. 6 is a schematic diagram of an example of 67 intra prediction modes.

[0060] Фиг. 7 - схематическая диаграмма примерного устройства кодирования видео. [0060] FIG. 7 is a schematic diagram of an exemplary video encoding apparatus.

Подробное описаниеDetailed description

[0061] С самого начала следует понимать, что раскрытые системы и/или способы могут быть реализованы с использованием любого количества методов, известных в настоящее время или существующих. Раскрытие никоим образом не должно ограничиваться иллюстративными реализациями, чертежами и методами, проиллюстрированными ниже, включая иллюстративные схемы и реализации, проиллюстрированные и описанные здесь. [0061] It should be understood from the outset that the disclosed systems and/or methods may be implemented using any number of techniques currently known or existing. The disclosure should in no way be limited to the illustrative implementations, drawings, and methods illustrated below, including the illustrative circuits and implementations illustrated and described herein.

[0062] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования, которая может подходить для реализации различных методов видеокодирования, предсказания или сжатия. Как показано на фиг. 1, система 10 кодирования включает в себя устройство-источник 12, которое обеспечивает закодированные видеоданные для декодирования позднее посредством устройства-адресата 14 назначения. В частности, устройство-источник 12 может обеспечивать видеоданные в устройство-адресат 14 через считываемый компьютером носитель 16 данных. Устройство-источник 12 и устройство-адресат 14 могут включать в себя любое из широкого диапазона устройств, включая настольные компьютеры, ноутбуки (т.е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые «умные» телефоны, так называемые «умные» планшеты, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства для потоковой передачи видео и т.п. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы для беспроводной связи. [0062] FIG. 1 is a block diagram illustrating an exemplary coding system 10 that may be suitable for implementing various video coding, prediction, or compression techniques. As shown in FIG. 1, encoding system 10 includes a source device 12 that provides encoded video data for decoding later by a destination device 14. In particular, source device 12 may provide video data to destination device 14 via computer-readable storage medium 16. Source device 12 and destination device 14 may include any of a wide range of devices, including desktop computers, laptops (i.e., laptop computers), tablet computers, set-top boxes, handsets, such as so-called smart phones. , so-called "smart" tablets, TVs, cameras, display devices, digital media players, game consoles, video streaming devices, etc. In some cases, source device 12 and destination device 14 may be equipped for wireless communication.

[0063] Устройство-адресат 14 может принимать закодированные видеоданные для декодирования через считываемый компьютером носитель 16 данных. Считываемый компьютером носитель 16 данных может содержать любой тип носителя данных или устройства, способного перемещать закодированные видеоданные с устройства-источника 12 на устройство-адресат 14. В одном примере считываемый компьютером носитель 16 данных может содержать среду связи, позволяющую устройству-источнику 12 передавать закодированные видеоданные непосредственно на устройство-адресат 14 в реальном времени. Кодированные видеоданные могут быть модулированы согласно стандарту связи, например протоколу беспроводной связи, и переданы на устройство-адресат 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF - radio frequency) спектр или одну или несколько физических линий передачи. Среда связи может составлять часть сети на основе пакетов, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для облегчения связи от устройства-источника 12 к устройству-адресату 14. [0063] Destination device 14 may receive encoded video data for decoding via computer-readable storage medium 16. Computer-readable storage medium 16 may comprise any type of storage medium or device capable of transferring encoded video data from source device 12 to destination device 14. In one example, computer-readable storage medium 16 may comprise a communication medium allowing source device 12 to transmit encoded video data. directly to the destination device 14 in real time. The encoded video data may be modulated according to a communication standard, such as a wireless communication protocol, and transmitted to the destination device 14. The communication medium may comprise any wireless or wired communication medium, such as RF (radio frequency) spectrum or one or more physical transmission lines. . The communication medium may form part of a packet-based network such as a local area network, a wide area network, or a wide area network such as the Internet. The communication medium may include routers, switches, base stations, or any other equipment that may be useful in facilitating communications from source device 12 to destination device 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), кабельный модем и т.д.) или их комбинацию, которая подходит для доступа к кодированным видеоданным, сохраненным на файловом сервере. Передача закодированных видеоданных с запоминающего устройства может быть потоковой передачей, загрузкой или их комбинацией. [0064] In some examples, encoded data may be output from the output interface 22 to a storage device. Similarly, encoded data can be accessed from a storage device via an input interface. The storage device may include any of a variety of distributed or locally available storage media such as a hard drive, Blu-ray discs, digital video discs (DVD - digital video disk), compact discs read only memory (CD-ROM), flash -memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded video data. In a further example, the storage device may correspond to a file server or other intermediate storage device that may store the encoded video generated by the source device 12. The destination device 14 may access the stored video data from the storage device via streaming or download. The file server may be any type of server configured to store the encoded video data and transmit the encoded video data to the destination device 14. Examples of file servers include a web server (for example, for a website), a File Transfer Protocol (FTP) server, file transfer protocol), network attached storage (NAS) devices, or local disk. Destination device 14 can access the encoded video data over any standard data connection, including an Internet connection. This may include a wireless link (for example, a Wi-Fi connection), a wired connection (for example, a digital subscriber line (DSL - digital subscriber line), cable modem, etc.) or a combination of these, which is suitable for accessing encrypted video data stored on a file server. The transmission of the encoded video data from the storage device may be streaming, downloading, or a combination thereof.

[0065] Методы этого раскрытия необязательно ограничиваются беспроводными применениями или настройками. Эти методы могут применяться к кодированию видео для поддержки любого из множества мультимедийных применений, таких как эфирное телевещание, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео через Интернет, такие как динамическая адаптивная потоковая передача через HTTP (DASH - dynamic adaptive streaming over HTTP), цифровое видео, которое кодируется на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или другие применения. В некоторых примерах система 10 кодирования может быть выполнена с возможностью поддержки односторонней или двусторонней передачи видео для поддержки таких применений, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония. [0065] The techniques of this disclosure are not necessarily limited to wireless applications or settings. These techniques can be applied to video coding to support any of a variety of multimedia applications such as terrestrial television, cable television transmissions, satellite television transmissions, video streaming over the Internet such as dynamic adaptive streaming over HTTP (DASH). ), digital video that is encoded on a storage medium, decoding of digital video stored on a storage medium, or other applications. In some examples, encoding system 10 may be configured to support one-way or two-way video to support applications such as video streaming, video playback, video broadcast, and/or video telephony.

[0066] В примере на фиг. 1, устройство-источник 12 включает в себя видеоисточник 18, видеокодер 20 и интерфейс 22 вывода. Устройство-адресат 14 включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В соответствии с этим раскрытием видеокодер 20 устройства-источника 12 и/или видеодекодер 30 устройства-адресата 14 может быть выполнен с возможностью применения методов двунаправленного предсказания. В других примерах устройство-источник и устройство-адресат могут включать в себя другие компоненты или устройства. Например, устройство-источник 12 может принимать видеоданные от внешнего источника видео, такого как внешняя камера. Аналогично, устройство-адресат 14 может взаимодействовать с внешним устройством отображения, а не включать в себя встроенное устройство отображения. [0066] In the example of FIG. 1, source device 12 includes a video source 18, a video encoder 20, and an output interface 22. The destination device 14 includes an input interface 28, a video decoder 30, and a display device 32. In accordance with this disclosure, video encoder 20 of source device 12 and/or video decoder 30 of destination device 14 may be configured to apply bidirectional prediction techniques. In other examples, the source device and the destination device may include other components or devices. For example, source device 12 may receive video data from an external video source such as an external camera. Likewise, destination device 14 may interact with an external display device rather than include an embedded display device.

[0067] Проиллюстрированная система 10 кодирования на фиг. 1 - всего лишь один пример. Методы двунаправленного предсказания могут выполняться посредством любого устройства кодирования и/или декодирования цифрового видео. Хотя методы этого раскрытия сущности обычно выполняются посредством устройства кодирования видео, методы также могут выполняться посредством кодера/декодера видео, обычно называемого «КОДЕК». Кроме того, методы этого раскрытия также могут выполняться посредством процессора предварительной обработки видео. Видеокодер и/или декодер могут быть графическим процессором (GPU - graphics processing unit) или подобным устройством. [0067] The illustrated coding system 10 in FIG. 1 is just one example. Bidirectional prediction techniques may be performed by any digital video encoding and/or decoding device. Although the methods of this disclosure are typically performed by a video encoding device, the methods can also be performed by a video encoder/decoder, commonly referred to as a "CODEC". In addition, the methods of this disclosure may also be performed by a video pre-processor. The video encoder and/or decoder may be a graphics processing unit (GPU) or the like.

[0068] Устройство-источник 12 и устройство-адресат 14 являются просто примерами таких устройств кодирования, в которых устройство-источник 12 формирует кодированные видеоданные для передачи на устройство-адресат 14. В некоторых примерах устройство-источник 12 и устройство-адресат 14 могут работать по существу симметрично, так что каждое из устройства-источника 12 и устройства-адресата 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 кодирования может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 14, например, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии. [0068] Source device 12 and destination device 14 are merely examples of such encoding devices in which source device 12 generates encoded video data for transmission to destination device 14. In some examples, source device 12 and destination device 14 may operate substantially symmetrical such that source device 12 and destination device 14 each include video encoding and decoding components. Therefore, encoding system 10 can support one-way or two-way video transmission between video devices 12, 14, such as for video streaming, video playback, video broadcast, or video telephony.

[0069] Источник 18 видео устройства-источника 12 может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащее ранее захваченное видео, и/или интерфейс видеопотока для приема видео от поставщика видео контента. В качестве дополнительной альтернативы источник 18 видео может формировать данные на основе компьютерной графики в качестве исходного видео или комбинацию видео в реальном времени, архивированного видео и компьютерного видео. [0069] Video source 18 of source device 12 may include a video capture device such as a video camera, a video archive containing previously captured video, and/or a video stream interface for receiving video from a video content provider. As a further alternative, video source 18 may generate CG data as source video or a combination of live video, archived video, and computer video.

[0070] В некоторых случаях, когда источником 18 видео является видеокамера, устройство-источник 12 и устройство-адресат 14 могут образовывать так называемые телефоны с камерой или видеотелефоны. Однако, как упомянуто выше, методы, описанные в этом раскрытии сущности, могут быть применимы к кодированию видео в целом и могут применяться к беспроводным и/или проводным применениям. В каждом случае захваченное, предварительно захваченное или сформированное компьютером видео может быть закодировано посредством видеокодера 20. Затем закодированная видеоинформация может выводиться через интерфейс 22 вывода в считываемый компьютером носитель 16 данных. [0070] In some cases where video source 18 is a video camera, source device 12 and destination device 14 may form so-called camera phones or video phones. However, as mentioned above, the techniques described in this disclosure may be applicable to video coding in general and may apply to wireless and/or wired applications. In each case, the captured, pre-captured, or computer-generated video may be encoded by the video encoder 20. The encoded video information may then be output via the output interface 22 to a computer-readable storage medium 16.

[0071] Считываемый компьютером носитель 16 данных может включать в себя временные носители данных, такие как беспроводное вещание или передача по проводной сети, или носители данных (то есть энергонезависимые носители данных), такие как жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, диск Blu-ray или другой считываемый компьютером носитель данных. В некоторых примерах сетевой сервер (не показан) может принимать закодированные видеоданные от устройства-источника 12 и обеспечивать закодированные видеоданные в устройство-адресат 14, например, через сетевую передачу. Точно так же вычислительное устройство средства производства носителя данных, такого как средство штамповки диска, может принимать закодированные видеоданные от устройства-источника 12 и создавать диск, содержащий закодированные видеоданные. Следовательно, можно понимать, что считываемый компьютером носитель 16 данных включает в себя один или несколько считываемых компьютером носителей данных различных форм в различных примерах. [0071] Computer-readable storage media 16 may include temporary storage media such as wireless broadcast or wired network transmission, or storage media (i.e., non-volatile storage media) such as a hard drive, flash drive, CD, digital video disc, Blu-ray disc, or other computer-readable storage medium. In some examples, a network server (not shown) may receive encoded video data from source device 12 and provide encoded video data to destination device 14, such as via a network transmission. Similarly, a computing device of a storage medium manufacturing facility, such as a disc stamping facility, may receive the encoded video data from the source device 12 and create a disc containing the encoded video data. Therefore, it can be understood that the computer-readable storage medium 16 includes one or more computer-readable storage mediums of various shapes in various examples.

[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) или другое устройство отображения. [0072] The input interface 28 of the destination device 14 receives information from a computer-readable storage medium 16. The information of the computer-readable storage medium 16 may include syntax information defined by video encoder 20, which is also used by video decoder 30, which includes syntax elements that describe the characteristics and/or processing of blocks and other coded units, such as a group of pictures (GOP - group of pictures). The display device 32 displays the decoded video data to the user and may include any of a variety of display devices such as cathode ray tube (CRT), liquid crystal display (LCD), plasma display, organic light emitting diode (OLED) organic light emitting diode) or other display device.

[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). [0073] Video encoder 20 and video decoder 30 may operate in accordance with a video coding standard, such as the High Efficiency Video Coding (HEVC) standard currently under development, and may comply with the HEVC Test Model (HM). Alternatively, video encoder 20 and video decoder 30 may operate in accordance with other proprietary or industry standards, such as the H.264 standard of the Telecommunications Standards Sector of the International Telecommunications Union (ITU-T), also called the Moving Picture Expert Group (MPEG). Group) - 4, Part 10, Advanced Video Coding (AVC), H.265/HEVC or extensions to such standards. However, the techniques of this disclosure are not limited to any particular coding standard. Other examples of video coding standards include MPEG-2 and ITU-T H.263. Although not shown in FIG. 1, in some aspects, video encoder 20 and video decoder 30 may be integrated with an audio encoder and decoder and may include appropriate multiplexer-demultiplexer (MUX-DEMUX) units or other hardware and software to handle encoding of both audio and video in a common stream. data or in separate data streams. If applicable, the MUX-DEMUX units may conform to the ITU H.223 multiplexer protocol or other protocols such as user datagram protocol (UDP).

[0074] Видеокодер 20 и видеодекодер 30 каждый может быть реализован как любая из множества подходящих схем кодера, таких как один или несколько микропроцессоров, процессоров цифровых сигналов (DSP - digital signal processor), специализированных интегральных схем (ASIC - application specific integrated circuit), программируемых пользователем вентильных матриц (FPGA - field programmable gate array), дискретная логика, программное обеспечение, аппаратное обеспечение, прошивка или любые их комбинации. Когда методы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем энергонезависимом считываемом компьютером носителе данных и выполнять инструкции в аппаратных средствах с использованием одного или нескольких процессоров для выполнения методов этого раскрытия сущности. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или несколько кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве. Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон. [0074] Video encoder 20 and video decoder 30 may each be implemented as any of a variety of suitable encoder circuits, such as one or more microprocessors, digital signal processors (DSPs), digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate array (FPGA), discrete logic, software, hardware, firmware, or any combination thereof. When the methods are partially implemented in software, the device may store instructions for the software on a suitable non-volatile computer-readable storage medium and execute the instructions in hardware using one or more processors to execute the methods of this disclosure. Each of video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, each of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective device. The device including video encoder 20 and/or video decoder 30 may include an integrated circuit, a microprocessor, and/or a wireless communication device such as a cellular phone.

[0075] Фиг. 2 является блок-схемой, иллюстрирующей пример видеокодера 20, который может реализовывать методы двунаправленного предсказания. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков внутри видеослайсов. Внутреннее кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности в видео в данном видеокадре или изображении. Внешнее кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности в видео в соседних кадрах или изображениях видеопоследовательности. Внутренний режим (I-режим) может относиться к любому из нескольких режимов пространственного кодирования. Внешние режимы, такие как однонаправленное предсказание (режим P) или двунаправленное предсказание (режим B), могут относиться к любому из нескольких режимов кодирования на основе времени. [0075] FIG. 2 is a block diagram illustrating an example of video encoder 20 that can implement bidirectional prediction techniques. Video encoder 20 may perform intra- and inter-coding of video blocks within video slices. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in video in a given video frame or picture. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy in video in adjacent frames or pictures of a video sequence. Intra-mode (I-mode) may refer to any of several spatial coding modes. Inter-modes such as unidirectional prediction (P mode) or bidirectional prediction (B mode) may refer to any of several time-based coding modes.

[0076] Как показано на фиг. 2, видеокодер 20 принимает текущий видеоблок внутри видеокадра, который должен быть кодирован. В примере на фиг. 2, видеокодер 20 включает в себя блок 40 выбора режима, память 64 опорных кадров, сумматор 50, блок 52 обработки преобразования, блок 54 квантования и блок 56 энтропийного кодирования. Блок 40 выбора режима, в свою очередь, включает в себя блок 44 компенсации движения, блок 42 оценки движения, блок 46 внутреннего предсказания и блок 48 разделения. Для восстановления видеоблока видеокодер 20 также включает в себя блок 58 обратного квантования, блок 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен для фильтрации границ блоков для удаления артефактов блочности из восстановленного видео. При желании фильтр удаления блочности обычно фильтрует выходной сигнал сумматора 62. Дополнительные фильтры (в цикле или после цикла) также могут использоваться в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но при желании могут фильтровать выходной сигнал сумматора 50 (как внутриконтурный фильтр). [0076] As shown in FIG. 2, video encoder 20 receives the current video block within the video frame to be encoded. In the example in FIG. 2, the video encoder 20 includes a mode selector 40, a reference frame memory 64, an adder 50, a transform processing portion 52, a quantization portion 54, and an entropy encoding portion 56. The mode selection block 40 in turn includes a motion compensation block 44 , a motion estimation block 42 , an intra prediction block 46 , and a division block 48 . For video block reconstruction, video encoder 20 also includes an inverse quantizer 58, an inverse transform block 60, and an adder 62. A deblocking filter (not shown in FIG. 2) can also be included to filter block boundaries to remove blocking artifacts from the reconstructed video. If desired, the deblocking filter typically filters the output of adder 62. Additional filters (in-loop or post-loop) may also be used in addition to the deblocking filter. Such filters are not shown for brevity, but may filter the output of adder 50 if desired (as an in-loop filter).

[0077] Во время процесса кодирования видеокодер 20 принимает видеокадр или слайс для кодирования. Кадр или слайс можно разделить на несколько видеоблоков. Блок 42 оценки движения и блок 44 компенсации движения выполняют кодирование с внешним предсказанием принятого видеоблока относительно одного или нескольких блоков в одном или нескольких опорных кадрах для обеспечения временного предсказания. Блок 46 внутреннего предсказания может альтернативно выполнять кодирование с внутренним предсказанием принятого видеоблока относительно одного или нескольких соседних блоков в том же кадре или слайсе, что и блок, который должен быть кодирован, для обеспечения пространственного предсказания. Видеокодер 20 может выполнять несколько проходов кодирования, например, для выбора соответствующего режима кодирования для каждого блока видеоданных. [0077] During the encoding process, video encoder 20 receives a video frame or slice for encoding. A frame or slice can be divided into several video blocks. The motion estimator 42 and the motion compensator 44 interpredict the received video block with respect to one or more blocks in one or more reference frames to provide temporal prediction. Intra predictor 46 may alternatively perform intra prediction encoding of the received video block with respect to one or more adjacent blocks in the same frame or slice as the block to be encoded to provide spatial prediction. Video encoder 20 may perform multiple encoding passes, for example, to select an appropriate encoding mode for each block of video data.

[0078] Более того, блок 48 разделения может разбивать блоки видеоданных на подблоки на основе оценки предыдущих схем разделения в предыдущих проходах кодирования. Например, блок 48 разделения может первоначально разделить кадр или слайс на наибольшие единицы кодирования (LCU - largest coding unit) и разделить каждую из LCU на единицы субкодирования (суб-CU - sub-coding unit) на основе анализа скорости и искажения (например, оптимизации скорости и искажения). Блок 40 выбора режима может дополнительно формировать структуру данных квадродерева, указывающую разделение LCU на суб-CU. CU вершин дерева квадрантов могут включать в себя одну или несколько единиц предсказания (PU - prediction unit) и одну или несколько единиц преобразования (TU - transform unit). [0078] Moreover, the splitter 48 may split the blocks of video data into subblocks based on the evaluation of previous splitting schemes in previous encoding passes. For example, splitter 48 may initially split a frame or slice into largest coding units (LCUs) and split each of the LCUs into sub-coding units (sub-CUs) based on rate and distortion analysis (e.g., optimization speed and distortion). The mode selector 40 may further generate a quadtree data structure indicating the division of the LCU into sub-CUs. The CUs of the quadtree nodes may include one or more prediction units (PU) and one or more transform units (TU).

[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 может иметь квадратную или неквадратную (например, прямоугольную) форму. [0079] The present disclosure uses the term "block" to refer to any of the CU, PU, or TU in the context of HEVC, or similar data structures in the context of other standards (eg, macroblocks and their subblocks in H.264/AVC). The CU includes an encoding node, PUs and TUs associated with an encoding node. The size of the CU corresponds to the size of the coding unit and is square in shape. The size of a CU can vary from 8×8 pixels to a treeblock size with a maximum of 64×64 pixels or more. Each CU may contain one or more PUs and one or more TUs. Syntax data associated with a CU may describe, for example, the division of a CU into one or more PUs. The split modes may differ depending on whether the CU is encoded in skip mode or direct mode, intra prediction mode or inter prediction mode. PUs can be split to be non-square. The syntax data associated with the CU may also describe, for example, the division of the CU into one or more TUs according to a quadtree. The TU may be square or non-square (eg, rectangular) in shape.

[0080] Блок 40 выбора режима может выбрать один из режимов кодирования, внутренний или внешний, например, на основе результатов ошибок, и обеспечивает результирующий блок с внутренним или внутренним кодированием сумматору 50 для формирования данных остаточного блока и сумматору 62 для восстановления закодированного блока для использования в качестве опорного кадра. Блок 40 выбора режима также обеспечивает элементы синтаксиса, такие как векторы движения, индикаторы внутреннего режима, информацию разделения и другую такую информацию синтаксиса, в блок 56 энтропийного кодирования. [0080] The mode selector 40 may select one of the coding modes, inner or outer, for example, based on the results of the errors, and provides the resulting block with intra or intra coding to adder 50 for generating residual block data and adder 62 for recovering the encoded block for use. as a reference frame. The mode selector 40 also provides syntax elements such as motion vectors, intra mode indicators, split information, and other such syntax information to the entropy encoding block 56 .

[0081] Блок 42 оценки движения и блок 44 компенсации движения могут быть высоко интегрированы, но для концептуальных целей показаны отдельно. Оценка движения, выполняемая посредством блока 42 оценки движения, представляет собой процесс формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать на перемещение PU видеоблока внутри текущего кадра видео или изображений по отношению к предсказательному блоку в опорном кадре (или другой кодированной единице) по отношению к текущему блоку, кодируемому в пределах текущего кадра (или другой кодированной единицы). Предсказательный блок - это блок, который, как установлено, близко соответствует блоку, который должен быть кодирован, с точки зрения разности пикселей, которая может быть определена посредством суммы абсолютной разности (SAD - sum of absolute difference), суммы разности квадратов (SSD - sum of square difference) или других показателей разности. В некоторых примерах видеокодер 20 может вычислять значения для положений субцелочисленных пикселей опорных изображений, сохраненных в памяти 64 опорных кадров. Например, видеокодер 20 может интерполировать значения одной четвертой положений пикселей, одной восьмой положений пикселей, или других дробных положений пикселей опорного изображения. Следовательно, блок 42 оценки движения может выполнять поиск движения относительно положений целых пикселей и положений дробных пикселей и выводить вектор движения с точностью до дробных пикселей. [0081] The motion estimation block 42 and the motion compensation block 44 may be highly integrated, but are shown separately for conceptual purposes. Motion estimation performed by motion estimation unit 42 is a process of generating motion vectors that estimate motion for video blocks. The motion vector, for example, may indicate the movement of the PU of the video block within the current frame of video or images with respect to the predictive block in the reference frame (or other coded unit) with respect to the current block encoded within the current frame (or other coded unit). A predictive block is a block that is found to closely match the block to be encoded in terms of pixel difference, which can be determined by sum of absolute difference (SAD), sum of square difference (SSD). of square difference) or other difference indicators. In some examples, video encoder 20 may calculate values for sub-integer pixel positions of reference pictures stored in reference frame memory 64 . For example, video encoder 20 may interpolate one-fourth pixel positions, one-eighth pixel positions, or other fractional pixel positions of a reference image. Therefore, the motion estimator 42 can search for motion with respect to integer pixel positions and fractional pixel positions, and output a motion vector accurate to fractional pixels.

[0082] Блок 42 оценки движения вычисляет вектор движения для PU видеоблока в внешне кодированном слайсе посредством сравнения положения PU с положением предсказательного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (List 0) или второго списка опорных изображений (List 1), каждый из которых идентифицирует одно или более опорных изображений, сохраненных в памяти 64 опорных кадров. Блок 42 оценки движения отправляет вычисленный вектор движения в блок 56 энтропийного кодирования и блок 44 компенсации движения. [0082] The motion estimator 42 calculates a motion vector for the PU of the video block in the outer-coded slice by comparing the position of the PU with the position of the reference picture predictive block. The reference picture may be selected from a first reference picture list (List 0) or a second reference picture list (List 1), each of which identifies one or more reference pictures stored in the reference frame memory 64 . The motion estimator 42 sends the calculated motion vector to the entropy encoding block 56 and the motion compensation block 44 .

[0083] Компенсация движения, выполняемая посредством блока 44 компенсации движения, может включать в себя получение или формирование предсказательного блока на основе вектора движения, определенного посредством блока 42 оценки движения. Опять же, в некоторых примерах блок 42 оценки движения и блок 44 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего видеоблока блок 44 компенсации движения может найти предсказательный блок, на который указывает вектор движения, в одном из списков опорных изображений. Сумматор 50 формирует остаточный видеоблок посредством вычитания значений пикселей предсказательного блока из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей, как обсуждается ниже. В общем, блок 42 оценки движения выполняет оценку движения относительно компонентов яркости, а блок 44 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок 40 выбора режима также может формировать элементы синтаксиса, связанные с видеоблоками и видеослайсом, для использования посредством видеодекодера 30 при декодировании видеоблоков видеослайса. [0083] The motion compensation performed by the motion compensation block 44 may include obtaining or generating a predictive block based on the motion vector determined by the motion estimation block 42 . Again, in some examples, motion estimation unit 42 and motion compensation unit 44 may be functionally integrated. After receiving the motion vector for the PU of the current video block, the motion compensator 44 may find the predictive block pointed to by the motion vector in one of the reference picture lists. Adder 50 generates a residual video block by subtracting the pixel values of the predictive block from the pixel values of the currently encoded video block, generating pixel difference values, as discussed below. In general, motion estimator 42 performs motion estimation with respect to luma components, and motion compensator 44 uses motion vectors calculated from luma components for both chrominance and luminance components. The mode selector 40 may also generate syntax elements associated with the video blocks and the video slice for use by the video decoder 30 when decoding the video blocks of the video slice.

[0084] Блок 46 внутреннего предсказания может внутренне предсказывать текущий блок в качестве альтернативы внешнему предсказанию, выполняемому посредством блока 42 оценки движения и блока 44 компенсации движения, как описано выше. В частности, блок 46 внутреннего предсказания может определять режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах блок 46 внутреннего предсказания может кодировать текущий блок с использованием различных режимов внутреннего предсказания, например, во время отдельных проходов кодирования, а блок 46 внутреннего предсказания (или блок 40 выбора режима в некоторых примерах) может выбрать соответствующий режим внутреннего предсказания для использования из тестируемых режимов. [0084] The intra prediction unit 46 may intra predict the current block as an alternative to the inter prediction performed by the motion estimation unit 42 and the motion compensation unit 44 as described above. In particular, intra prediction block 46 may determine the intra prediction mode to use for encoding the current block. In some examples, intra prediction block 46 may encode the current block using different intra prediction modes, such as during separate encoding passes, and intra prediction block 46 (or mode selector 40 in some examples) may select the appropriate intra prediction mode to use from tested modes.

[0085] Например, блок 46 внутреннего предсказания может вычислять значения скорости и искажения с использованием анализа скорости и искажения для различных тестируемых режимов внутреннего предсказания и выбирать режим внутреннего предсказания, имеющий лучшие характеристики скорости и искажения среди тестируемых режимов. Анализ скорости и искажения обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для создания закодированного блока, а также битовую скорость передачи данных (то есть количество битов), используемую для создания закодированного блока. Блок 46 внутреннего предсказания может вычислять отношения из искажений и скоростей для различных кодированных блоков для определения того, какой режим внутреннего предсказания показывает наилучшее значение скорости и искажения для блока. [0085] For example, intra prediction unit 46 may calculate rate and distortion values using rate and distortion analysis for various intra prediction modes being tested, and select an intra prediction mode having the best rate and distortion characteristics among the tested modes. Rate and distortion analysis typically determines the amount of distortion (or error) between the encoded block and the original unencoded block that was encoded to create the encoded block, as well as the bit rate (i.e., number of bits) used to create the encoded block. Intra prediction block 46 may calculate ratios from distortions and rates for various coded blocks to determine which intra prediction mode shows the best rate and distortion value for the block.

[0086] Кроме того, блок 46 внутреннего предсказания может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM - depth modeling mode). Блок 40 выбора режима может определять, дает ли доступный режим DMM лучшие результаты кодирования, чем режим внутреннего предсказания и другие режимы DMM, например, используя оптимизацию скорости и искажения (RDO - rate-distortion optimization). Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 64 опорных кадров. Блок 42 оценки движения и блок 44 компенсации движения также могут быть выполнены с возможностью взаимного предсказания блоков глубины карты глубины. [0086] In addition, the intra prediction block 46 may be configured to encode depth map depth blocks using a depth modeling mode (DMM). The mode selector 40 may determine whether the available DMM mode provides better coding results than the intra prediction mode and other DMM modes, for example, using rate-distortion optimization (RDO). The data for the texture image corresponding to the depth map may be stored in the 64 reference frame memory. The motion estimator 42 and the motion compensator 44 may also be configured to mutually predict the depth blocks of the depth map.

[0087] После выбора режима внутреннего предсказания для блока (например, обычного режима внутреннего предсказания или одного из режимов DMM), блок 46 внутреннего предсказания может обеспечить информацию, указывающую выбранный режим внутреннего предсказания для блока 56 энтропийного кодирования. Блок 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания. Видеокодер 20 может включать в передаваемые данные конфигурации битового потока, которые могут включать в себя множество таблиц индексов режима внутреннего предсказания и множество модифицированных таблиц индексов режима внутреннего предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и индикации наиболее вероятного режима внутреннего предсказания, таблицу индексов режима внутреннего предсказания и модифицированную таблицу индексов режима внутреннего предсказания для использования в каждом из контекстов. [0087] After selecting an intra prediction mode for a block (eg, a normal intra prediction mode or one of the DMM modes), intra prediction unit 46 may provide information indicating the selected intra prediction mode for entropy encoding unit 56 . Entropy encoding unit 56 may encode information indicating the selected intra prediction mode. Video encoder 20 may include in the transmitted data bitstream configurations, which may include a plurality of intra prediction mode index tables and a plurality of modified intra prediction mode index tables (also referred to as codeword mapping tables), coding context definitions for various blocks, and a most likely mode indication. intra prediction mode index table, and a modified intra prediction mode index table for use in each of the contexts.

[0088] Видеокодер 20 формирует остаточный видеоблок посредством вычитания данных предсказания из блока 40 выбора режима из исходного видеоблока, подлежащего кодированию. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания. [0088] The video encoder 20 generates a residual video block by subtracting the prediction data from the mode selection block 40 from the original video block to be encoded. The adder 50 represents the component or components that perform this subtraction operation.

[0089] Блок 52 обработки преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT - discrete cosine transform) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий значения коэффициентов остаточного преобразования. Блок 52 обработки преобразования может выполнять другие преобразования, которые концептуально аналогичны DCT. Также могут использоваться преобразования элементарных волн, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. [0089] Transform processing unit 52 applies a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform, to the residual block, creating a video block containing residual transform coefficient values. The transform processing unit 52 may perform other transforms that are conceptually similar to the DCT. Wavelet transforms, integer transforms, subband transforms, or other types of transforms may also be used.

[0090] Блок 52 обработки преобразования применяет преобразование к остаточному блоку, создавая блок остаточных коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Блок 52 обработки преобразования может отправлять результирующие коэффициенты преобразования в блок 54 квантования. Блок 54 квантования квантует коэффициенты преобразования, чтобы дополнительно снизить скорость передачи битов. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена посредством регулирования параметра квантования. В некоторых примерах блок 54 квантования может затем выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы блок 56 энтропийного кодирования может выполнять сканирование. [0090] The transform processing unit 52 applies the transform to the residual block, creating a block of residual transform coefficients. The transform may transform the residual information from the pixel range into a transform region, such as a frequency domain. Transform processing unit 52 may send the resulting transform coefficients to quantization unit 54 . Quantizer 54 quantizes the transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization can be changed by adjusting the quantization parameter. In some examples, quantizer 54 may then perform a matrix scan including the quantized transform coefficients. Alternatively, entropy encoding unit 56 may perform scanning.

[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) или заархивирован для последующей передачи или поиска. [0091] After quantization, entropy encoding unit 56 entropy encodes the quantized transform coefficients. For example, entropy coding unit 56 can perform context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), context adaptive binary arithmetic coding based on syntax. (SBAC - syntax-based context-adaptive binary arithmetic coding), probability interval partitioning entropy entropy coding (PIPE) or another entropy coding method. In the case of context-based entropy coding, the context may be based on neighboring blocks. After entropy encoding by entropy encoding unit 56, the encoded bit stream may be transferred to another device (eg, video decoder 30) or archived for later transmission or retrieval.

[0092] Блок обратного квантования 58 и блок 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в области пикселей, например, для последующего использования в качестве опорного блока. Блок 44 компенсации движения может вычислять опорный блок, добавляя остаточный блок к предсказательному блоку одного из кадров памяти 64 опорных кадров. Блок 44 компенсации движения также может применять один или несколько фильтров интерполяции к восстановленному остаточному блоку для вычисления значений субцелочисленных пикселей для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку предсказания с компенсацией движения, созданному посредством блока 44 компенсации движения, чтобы создать восстановленный видеоблок для хранения в памяти 64 опорных кадров. Восстановленный видеоблок может быть использован посредством блока 42 компенсации движения и блока 44 оценки движения в качестве опорного блока для внешнего кодирования блока в последующем видеокадре. [0092] Inverse quantizer 58 and inverse transform 60 apply inverse quantization and inverse transform, respectively, to reconstruct a residual block in the pixel region, for example, for later use as a reference block. The motion compensation unit 44 may calculate the reference block by adding the residual block to the predictive block of one of the frames of the memory 64 of the reference frames. Motion compensator 44 may also apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values for use in motion estimation. The adder 62 adds the reconstructed residual block to the motion compensation prediction block created by the motion compensation block 44 to create a reconstructed video block for storage in the reference frame memory 64 . The reconstructed video block may be used by the motion compensator 42 and the motion estimator 44 as a reference block for outer coding of the block in a subsequent video frame.

[0093] Фиг. 3 является блок-схемой, иллюстрирующей пример видеодекодера 30, который может реализовывать методы двунаправленного предсказания. В примере на фиг. 3, видеодекодер 30 включает в себя блок 70 энтропийного декодирования, блок 72 компенсации движения, блок 74 внутреннего предсказания, блок 76 обратного квантования, блок 78 обратного преобразования, память 82 опорных кадров и сумматор 80. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 20 (фиг. 2). Блок 72 компенсации движения может формировать данные предсказания на основе векторов движения, принятых от блока 70 энтропийного декодирования, в то время как блок 74 внутреннего предсказания может формировать данные предсказания на основе индикаторов режима внутреннего предсказания, принятых от блока 70 энтропийного декодирования. [0093] FIG. 3 is a block diagram illustrating an example of a video decoder 30 that can implement bidirectional prediction techniques. In the example in FIG. 3, video decoder 30 includes an entropy decoder 70, motion compensation 72, intra prediction 74, inverse quantizer 76, inverse transform 78, reference frame memory 82, and adder 80. Video decoder 30 may, in some examples, perform the step decoding, generally the reverse of the encoding step described with respect to video encoder 20 (FIG. 2). The motion compensation unit 72 may generate prediction data based on the motion vectors received from the entropy decoding unit 70, while the intra prediction unit 74 may generate prediction data based on the intra prediction mode indicators received from the entropy decoding unit 70.

[0094] Во время процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет видеоблоки закодированного видеослайса и связанные элементы синтаксиса от видеокодера 20. Блок 70 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для формирования квантованных коэффициентов, векторов движения или индикаторов режима внутреннего предсказания и других элементов синтаксиса. Блок 70 энтропийного декодирования пересылает векторы движения и другие элементы синтаксиса в блок 72 компенсации движения. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеослайса и/или уровне видеоблока. [0094] During the decoding process, video decoder 30 receives an encoded video bitstream that represents video blocks of an encoded video slice and associated syntax elements from video encoder 20. Entropy decoding unit 70 of video decoder 30 entropy decodes the bitstream to generate quantized coefficients, motion vectors, or intra prediction mode indicators and other syntax elements. Block 70 entropy decoding forwards the motion vectors and other elements of the syntax in block 72 motion compensation. Video decoder 30 may receive syntax elements at the video slice level and/or the video block level.

[0095] Когда видеослайс кодируется как внутренне кодированный (I) слайс, блок 74 внутреннего предсказания может сформировать данные предсказания для видеоблока текущего видеослайса на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как внешне кодированный (т.е. B, P или GPB) слайс, блок 72 компенсации движения создает предсказательные блоки для видеоблока текущего видеослайса на основе векторов движения и других элементов синтаксиса, полученных от блока 70 энтропийного декодирования. Предсказательные блоки могут быть созданы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя методы построения по умолчанию на основе опорных изображений, сохраненных в памяти 82 опорных кадров. [0095] When a video slice is encoded as an intra-coded (I) slice, intra prediction block 74 may generate prediction data for a video block of the current video slice based on the signaled intra prediction mode and data from previously decoded blocks of the current frame or picture. When a video frame is encoded as an outer-coded (ie, B, P, or GPB) slice, motion compensator 72 creates predictive blocks for the video block of the current video slice based on the motion vectors and other syntax elements received from entropy decoder 70 . The predictive blocks may be created from one of the reference pictures in one of the reference picture lists. Video decoder 30 may construct lists of reference frames, List 0 and List 1, using default construction methods based on reference pictures stored in reference frame memory 82 .

[0096] Блок 72 компенсации движения определяет информацию предсказания для видеоблока текущего видеослайса посредством анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для создания предсказательных блоков для текущего видеоблока, подлежащего декодированию. Например, блок 72 компенсации движения использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков видеослайса, типа слайса с внешним предсказанием (например, слайс B, слайс P или слайс GPB), информации о построении для одного или нескольких списков опорных изображений для слайса, векторов движения для каждого внешне кодированного видеоблока слайса, состояния внешнего предсказания для каждого внешне кодированного видеоблока слайса и другой информации для декодирования видеоблоков в текущем видеослайсе. [0096] The motion compensation unit 72 determines prediction information for the video block of the current video slice by analyzing motion vectors and other syntax elements, and uses the prediction information to generate predictive blocks for the current video block to be decoded. For example, the motion compensator 72 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode the video blocks of the video slice, the type of inter prediction slice (eg, slice B, slice P, or slice GPB), information about building for one or more reference picture lists for a slice, motion vectors for each inter-coded video block of the slice, an inter-prediction state for each inter-coded video block of the slice, and other information for decoding video blocks in the current video slice.

[0097] Блок 72 компенсации движения также может выполнять интерполяцию на основе фильтров интерполяции. Блок 72 компенсации движения может использовать фильтры интерполяции, которые используются посредством видеокодера 20 во время кодирования видеоблоков для вычисления интерполированных значений для субцелочисленных пикселей опорных блоков. В этом случае блок 72 компенсации движения может определять фильтры интерполяции, используемые посредством видеокодера 20, из принятых элементов синтаксиса и использовать фильтры интерполяции для создания предсказательных блоков. [0097] The motion compensation block 72 may also perform interpolation based on interpolation filters. Motion compensator 72 may use interpolation filters that are used by video encoder 20 during encoding of video blocks to calculate interpolated values for sub-integer pixels of reference blocks. In this case, the motion compensation block 72 may determine the interpolation filters used by the video encoder 20 from the received syntax elements and use the interpolation filters to create predictive blocks.

[0098] Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 82 опорных кадров. Блок 72 компенсации движения также может быть выполнен с возможностью взаимного предсказания блоков глубины карты глубины. [0098] Data for a texture image corresponding to a depth map may be stored in the 82 reference frame memory. The motion compensator 72 may also be configured to inter-predict the depth blocks of the depth map.

[0099] Хотя некоторые варианты осуществления описаны в данном документе с использованием концепции слайсов, варианты осуществления могут использовать клетки и/или группы клеток вместо или в дополнение к слайсам. [0099] Although some embodiments are described herein using the concept of slices, embodiments may use cells and/or groups of cells instead of or in addition to slices.

[00100] Определения сокращений и глоссарий[00100] Definitions of abbreviations and glossary

[00101] CTU/CTB - Coding Tree Unit/Coding Tree Block – единица дерева кодирования/блок дерева кодирования [00101] CTU / CTB - Coding Tree Unit / Coding Tree Block - coding tree unit / coding tree block

[00102] CU/CB - Coding Unit/Coding Block – единица кодирования/блок кодирования [00102] CU/CB - Coding Unit/Coding Block

[00103] PU/PB - Prediction Unit/Prediction Block – единица предсказания/блок предсказания [00103] PU/PB - Prediction Unit/Prediction Block

[00104] TU/TB - Transform Unit/Transform Block – единица преобразования/блок преобразования [00104] TU/TB - Transform Unit/Transform Block

[00105] HEVC - высокоэффективное кодирование видео[00105] HEVC - High Efficiency Video Coding

[00106] Схемы кодирования видео, такие как H.264/AVC и HEVC, разработаны на основе успешного принципа гибридного кодирования видео на основе блоков. Используя этот принцип, изображение сначала разделяется на блоки, а затем каждый блок предсказывается с использованием внутрикадрового или межкадрового предсказания. [00106] Video coding schemes such as H.264/AVC and HEVC are developed based on the successful concept of block-based hybrid video coding. Using this principle, the image is first divided into blocks, and then each block is predicted using intra-frame or inter-frame prediction.

[00107] ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включая его текущие расширения и краткосрочные расширения для кодирования содержимого экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместного сотрудничества, известного как Совместная команда по исследованию видео (JVET - Joint Video Exploration Team), для оценки проектов технологий сжатия, предложенных их экспертами в этой области. [00107] ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) are exploring the potential need to standardize a future compression-capable video coding technology that far exceeds the capabilities of the current HEVC standard (including its current extensions and short term extensions for screen content encoding and high dynamic range encoding). The groups work together on these research activities in a collaborative collaboration known as the Joint Video Exploration Team (JVET) to evaluate compression technology projects proposed by their experts in the field.

[00108] Стандарт VTM (Versatile Test Model - универсальная тестовая модель) использует 35 внешних режимов, тогда как BMS (Benchmark Set - набор тестов) использует 67 внутренних режимов. Для кодирования 67 внутренних режимов текущая схема кодирования внутреннего режима в BMS использует следующий способ. [00108] The VTM (Versatile Test Model) standard uses 35 external modes, while the BMS (Benchmark Set) uses 67 internal modes. To encode 67 intra modes, the current intra mode coding scheme in BMS uses the following method.

[00109] Чтобы приспособиться к увеличенному количеству направленных внутренних режимов в BMS, используется способ кодирования внутреннего режима с 6 наиболее вероятными режимами (MPM). Здесь задействованы два основных технических аспекта. [00109] In order to accommodate the increased number of directional intra modes in the BMS, a 6 Most Likely Mode (MPM) intra mode coding method is used. There are two main technical aspects involved here.

[00110] 1) получение 6 MPM, и[00110] 1) receiving 6 MPM, and

[00111] 2) энтропийное кодирование 6 MPM и не-MPM режимов. [00111] 2) entropy encoding of 6 MPM and non-MPM modes.

[00112] В BMS режимы, включенные в списки MPM, делятся на три группы: Соседние внутренние режимы, Полученные внутренние режимы и Внутренние режимы по умолчанию. [00112] In BMS, the modes included in the MPM lists are divided into three groups: Adjacent Intramodes, Received Intramodes, and Default Intramodes.

[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, нижний левый, верхний правый и верхний левый. [00113] FIG. 4 shows the current coding unit 400 and five neighboring blocks 402. The current coding unit 400 may also be referred to as the current coding block. The five neighboring intra prediction modes, or in other words the intra prediction modes of the five neighboring blocks, are used to form the MPM list. These arrangements of the 5 adjacent blocks are the same as those used in merge mode, i.e. left (L - left), top (A - above), bottom left (BL - below left), top right (AR - above right ) and top left (AL - above left), as shown in figure 4. The initial MPM list is formed by inserting 5 neighboring internal modes, a planar mode and a DC mode into the MPM list. A pruning process is used to remove duplicate modes so that only unique modes are included in the MPM list. The order in which the initial modes are turned on is Left, Top, Planar, DC, Bottom Left, Top Right, and Top Left.

[00114] Если список MPM не полон (т.е. в списке меньше 6 возможных MPM), полученные режимы добавляются, эти внутренние режимы получаются посредством добавления -1 или +1 к угловым режимам, которые уже включены в список MPM. Получение не применяется к неугловым режимам, т.е. DC или планарному. [00114] If the list of MPMs is incomplete (ie, there are less than 6 possible MPMs in the list), the resulting modes are added, these internal modes are obtained by adding -1 or +1 to the angular modes that are already included in the MPM list. Gain does not apply to non-angular modes, i.e. DC or planar.

[00115] Наконец, если список MPM все еще не завершен, режимы по умолчанию добавляются в следующем порядке: вертикальный, горизонтальный, внутренний режим 2 и диагональный режим. На фиг. 6 эти режимы показаны как HOR_IDX, DIA_IDX, MODE2 и VER_IDX соответственно. В результате этого процесса создается уникальный список из 6 режимов MPM. [00115] Finally, if the MPM list is still incomplete, default modes are added in the following order: vertical, horizontal, inner mode 2, and diagonal mode. In FIG. 6 these modes are shown as HOR_IDX, DIA_IDX, MODE2 and VER_IDX, respectively. This process creates a unique list of 6 MPM modes.

[00116] Для энтропийного кодирования 6 MPM используется усеченная унарная бинаризация MPM. Первые три бина кодируются контекстами, которые зависят от режима MPM, относящегося к бину, который сигнализируется в настоящее время. Режим MPM подразделяется на одну из трех категорий: (a) относится ли режим к горизонтальному (режим MPM меньше или равен диагональному направлению), (b) вертикальному (режим MPM больше, чем диагональное направление) или (c) неугловому (DC и планарный) классу. Соответственно, для сигнализации индекса MPM используются три контекста. [00116] For 6 MPM entropy coding, a truncated unary binarization of MPM is used. The first three bins are encoded with contexts that depend on the MPM mode associated with the bin that is currently being signaled. The MPM mode is classified into one of three categories: (a) whether the mode is horizontal (MPM mode less than or equal to the diagonal direction), (b) vertical (MPM mode greater than the diagonal direction), or (c) non-angular (DC and planar) class. Accordingly, three contexts are used to signal the MPM index.

[00117] Кодирование оставшихся 61 без MPM выполняется следующим образом. 61 без MPM сначала делятся на два набора: выбранный набор режимов и невыбранный набор режимов. Выбранный набор режимов содержит 16 режимов, а остальные (45 режимов) назначаются невыбранному набору режимов. Набор режимов, которому принадлежит текущий режим, указывается в битовом потоке с помощью метки. Затем режим из выбранного набора сигнализируется 4-битным кодом фиксированной длины, а режим из невыбранного набора кодируется усеченным двоичным кодом. Выбранный набор режимов создается посредством субсэмплирования всех 61 режимов без MPM со следующими индексами: [00117] Encoding of the remaining 61 without MPM is performed as follows. 61 without MPM are first divided into two sets: the selected mode set and the unselected mode set. The selected mode set contains 16 modes, and the rest (45 modes) are assigned to the unselected mode set. The set of modes to which the current mode belongs is indicated in the bitstream with a label. The mode from the selected set is then signaled with a 4-bit fixed length code, and the mode from the unselected set is encoded with a truncated binary code. The selected mode set is created by subsampling all 61 non-MPM modes with the following indices:

[00118] Выбранный набор режимов = {0, 4, 8, 12, 16, 20… 60}[00118] Selected mode set = {0, 4, 8, 12, 16, 20… 60}

[00119] Невыбранный набор режимов = {1, 2, 3, 5, 6, 7, 9, 10… 59}[00119] Unselected mode set = {1, 2, 3, 5, 6, 7, 9, 10… 59}

[00120] Сводка различных механизмов сигнализации во внутреннем режиме показана в таблице 1. [00120] A summary of the various internal mode signaling mechanisms is shown in Table 1.

Таблица 1 - Текущая сигнализация внутреннего режима яркости в BMSTable 1 - Current internal brightness mode signaling in BMS

Режимы внутреннего предсказанияIntra prediction modes Метка MPMMPM Label Выбранная еткаSelected Label Строка биновBean string MPM (6)MPM (6) 11 00 1010 110110 11101110 1111011110 1111111111 Выбранные режимы (16)Selected modes (16) 00 11 4-битный код фиксированной длины4-bit fixed length code Невыбранные режимы (45)Unselected modes (45) 00 00 Усеченный двоичный кодTruncated Binary

[00121] Настоящее раскрытие нацелено на улучшение схемы сигнализации внутреннего режима. [00121] The present disclosure is aimed at improving the intra mode signaling scheme.

[00122] Схема кодирования во внутреннем режиме, описанная в настоящее время в BMS, считается сложной, и поэтому требуется более чистое решение. [00122] The intra-mode coding scheme currently described in BMS is considered complex and therefore a cleaner solution is required.

[00123] Недостатком выбранного набора режимов является то, что список индексов всегда постоянен и не адаптируется на основе свойств текущего блока (например, для внутренних режимов его соседних блоков). Недостатком невыбранного набора режимов является то, что список индексов всегда постоянен и не адаптируется на основе свойств текущего блока (например, для внутренних режимов его соседних блоков). [00123] The disadvantage of the selected set of modes is that the index list is always constant and does not adapt based on the properties of the current block (eg, for the internal modes of its neighboring blocks). The disadvantage of the unselected mode set is that the index list is always constant and does not adapt based on the properties of the current block (eg, for the internal modes of its neighboring blocks).

[00124] В настоящем раскрытии предлагается схема сигнализации внутреннего режима с 6 MPM и оставшимся 61 режимом, при этом оставшийся 61 режим кодируется с использованием схемы усеченной бинаризации. Наиболее вероятные режимы также могут упоминаться как наиболее вероятные режимы внутреннего предсказания, а остальные режимы также могут упоминаться как оставшиеся режимы внутреннего предсказания. Таким образом, варианты осуществления могут быть выполнены с возможностью кодирования всех оставшихся внутренних режимов, то есть всех внутренних режимов, которые не включены в список MPM (сокращенно «режимы без MPM») и сообщаются в битовом потоке с использованием усеченной бинаризации. Остающийся 61 внутренний режим также может быть закодирован с использованием кода фиксированной длины из 6 битов, но недостатком кода фиксированной длины из 6 битов является то, что из 64 возможных кодовых слов используется только 61 кодовое слово, а оставшиеся 3 кодовых слова не используется. Вместо кода фиксированной длины предлагается усеченная бинаризация, которая будет использовать только 5 битов для сигнализации первых 3 оставшихся режимов, а остальные 58 режимов затем кодируются с использованием 6 бит. 6 режимов MPM, например, кодируются с использованием унарного кодирования. Дополнительные варианты осуществления могут быть выполнены с возможностью использования списка MPM и списка оставшихся режимов с другим количеством внутренних режимов, например, список MPM, содержащий более или менее 6 режимов, и список оставшихся режимов, содержащий более или менее 61 режима. Варианты осуществления могут быть особенно выгодными в случае, если количество оставшихся режимов не равно степени двойки, поскольку кодирование с фиксированной длиной не будет эффективно использовать все возможные кодовые слова. Варианты осуществления, использующие усеченное двоичное кодирование, могут сигнализировать несколькио режимов с использованием меньшего количества битов по сравнению с другими режимами оставшихся режимов и, таким образом, сигнализировать оставшиеся режимы более эффективно. [00124] The present disclosure proposes an intra mode signaling scheme with 6 MPM and a remaining 61 modes, with the remaining 61 modes encoded using a truncated binarization scheme. The most likely modes may also be referred to as the most likely intra prediction modes, and the remaining modes may also be referred to as the remaining intra prediction modes. Thus, embodiments can be configured to encode all remaining intrinsic modes, i.e., all intrinsic modes that are not included in the MPM list (non-MPM modes for short) and are reported in the bitstream using truncated binarization. The remaining 61 intra modes can also be encoded using a 6-bit fixed-length code, but the disadvantage of a 6-bit fixed-length code is that out of 64 possible codewords, only 61 codewords are used, and the remaining 3 codewords are not used. Instead of a fixed length code, a truncated binarization is proposed that will only use 5 bits to signal the first 3 remaining modes, and the remaining 58 modes are then encoded using 6 bits. The 6 MPM modes, for example, are encoded using unary coding. Additional embodiments may be configured to use an MPM list and a remaining mode list with a different number of internal modes, such as an MPM list containing more or less 6 modes and a remaining mode list containing more or less 61 modes. Embodiments may be particularly advantageous if the number of remaining modes is not a power of two, since fixed length coding will not efficiently use all possible codewords. Embodiments using truncated binary coding can signal multiple modes using fewer bits compared to other modes of the remaining modes, and thus signal the remaining modes more efficiently.

[00125] Варианты осуществления способа кодирования могут содержать этапы, на которых выбирают режим внутреннего предсказания для текущего блока; и кодируют режим внутреннего предсказания с использованием усеченного двоичного кодирования, когда выбранный режим внутреннего предсказания является оставшимся режимом. Оставшийся режим может содержаться в или быть частью набора или множества оставшихся режимов, например, списка оставшихся режимов. Варианты осуществления могут дополнительно содержать этапы, на которых определяют, что режим внутреннего предсказания не содержится в списке (или находится вне списка) MPM, и кодируют выбранный режим внутреннего предсказания с использованием усеченного двоичного кодирования. В вариантах осуществления выбранный режим внутреннего предсказания не содержится в списке (или находится за пределами списка) MPM. Варианты осуществления могут содержать список MPM и оставшиеся режимы, например, только список MPM и оставшиеся режимы (режимы без MPM), и не различают дополнительные наборы режимов внутреннего предсказания для кодирования или сигнализации, при этом ни один из режимов внутреннего предсказания оставшихся режимов не содержится в списке MPM. В вариантах осуществления список MPM может содержать 6 режимов внутреннего предсказания, а оставшиеся режимы могут содержать 61 режим. Варианты осуществления могут содержать этап, на котором добавляют усеченный двоичный код к битовому потоку. Дополнительные варианты осуществления содержат кодер, например устройство кодирования, выполненное с возможностью выполнения любого из способов кодирования. [00125] Embodiments of the encoding method may comprise: selecting an intra prediction mode for the current block; and encoding the intra prediction mode using truncated binary coding when the selected intra prediction mode is the remaining mode. The remaining mode may be contained in or be part of a set or set of remaining modes, such as a list of remaining modes. Embodiments may further comprise determining that the intra prediction mode is not in (or out of the list of) the MPM list and encoding the selected intra prediction mode using truncated binary coding. In embodiments, the selected intra prediction mode is not listed (or is outside the list) of the MPM. Embodiments may contain the MPM list and the remaining modes, e.g., only the MPM list and the remaining modes (non-MPM modes), and do not distinguish between additional sets of intra prediction modes for coding or signaling, with none of the intra prediction modes of the remaining modes contained in MPM list. In embodiments, the MPM list may contain 6 intra prediction modes, and the remaining modes may contain 61 modes. Embodiments may include adding a truncated binary code to a bitstream. Additional embodiments comprise an encoder, such as an encoding device, configured to perform any of the encoding methods.

[00126] Варианты осуществления способа декодирования могут содержать этапы, на которых получают усеченный двоичный код, например, посредством синтаксического анализа битового потока или другими средствами; декодируют усеченный двоичный код для получения режима внутреннего предсказания оставшегося режима, например, из множества или набора оставшихся режимов; и формируют текущий блок с использованием полученного режима внутреннего предсказания. Дополнительные признаки, описанные в отношении способа кодирования, в равной степени или соответственно применимы к соответствующим вариантам осуществления декодирования. Дополнительные варианты осуществления содержат декодер, например устройство декодирования, выполненное с возможностью выполнения любого из способов декодирования. [00126] Embodiments of the decoding method may include: obtaining a truncated binary code, for example, by bitstream parsing or other means; decoding the truncated binary code to obtain an intra prediction mode of the remaining mode, eg, from a plurality or set of remaining modes; and generating a current block using the obtained intra prediction mode. The additional features described with respect to the encoding method are equally or appropriately applicable to the respective decoding embodiments. Additional embodiments comprise a decoder, such as a decoding device, configured to perform any of the decoding methods.

[00127] Предлагается несколько решений для заполнения первых трех режимов в списке оставшихся режимов. [00127] Several solutions are proposed for populating the first three modes in the list of remaining modes.

[00128] Первые три режима в списке оставшихся режимов можно заполнить несколькими способами. [00128] The first three modes in the list of remaining modes can be populated in several ways.

[00129] Во-первых, посредством использования режимов из предварительно определенного списка режимов по умолчанию, который представляет собой {планарный режим (PLANAR_IDX, что соответствует индексу «0»), режим DC (DC_IDX, который соответствует индексу «1»), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (MODE2, который соответствует индексу «2»), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX)} (термины в скобках показывают соответствующие термины на фиг. 6, дополнительные подробности о фиг.6 представлены ниже, список режимов по умолчанию содержит только режимы с внутренним предсказанием и может также называться списком режимов по умолчанию с внутренним предсказанием). [00129] First, by using modes from a predefined default mode list, which is {planar mode (PLANAR_IDX, corresponding to index "0"), DC mode (DC_IDX, which corresponds to index "1"), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (MODE2, which corresponds to the index "2"), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX)} (terms in brackets show the corresponding terms in Fig. 6, additional details of FIG. 6 are provided below, the default mode list contains only intra prediction modes and may also be referred to as the default intra prediction mode list).

[00130] Во-вторых, посредством смещений в угловые режимы (угловые режимы внутреннего предсказания), которые уже присутствуют в списке MPM. Здесь смещение может быть +/- N, где N - возможное целочисленное значение, значение которого равно {1, 2, 3, 4}. Смещения можно было добавить только к первым двум угловым режимам из списка MPM. [00130] Secondly, through offsets to angular modes (angular modes of intra prediction) that are already present in the MPM list. Here, the offset can be +/- N, where N is a possible integer value whose value is {1, 2, 3, 4}. Offsets could only be added to the first two angular modes from the MPM list.

[00131] В-третьих, внутренние режимы (угловые режимы внутреннего предсказания) несмежных соседей также могут использоваться для заполнения трех режимов. Фиг. 5 изображает текущую единицу 500 кодирования, соседей 502 первого уровня и соседей 504 второго уровня. Как показано на фиг. 5, могут использоваться внутренние режимы соседей второго уровня. [00131] Third, the intra modes (angular intra prediction modes) of non-adjacent neighbors can also be used to populate the three modes. Fig. 5 shows the current coding unit 500, first layer neighbors 502 and second layer neighbors 504. As shown in FIG. 5, internal neighbor modes of the second layer may be used.

[00132] В-четвертых, как показано на фиг. 6, на первом этапе выбирают данный режим из списка MPM и проверяют, находится ли он «рядом» с одной из следующих категорий режимов {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, на втором этапе затем категории режимов «сортируют» на основе «большинства» близких к ним режимов. На третьем этапе формируют список оставшихся режимов посредством вставки режимов, которые находятся рядом с категорией выигравших режимов из этапа 2. [00132] Fourth, as shown in FIG. 6, in the first step, select a given mode from the MPM list and check if it is "near" one of the following mode categories {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, in the second step, then the mode categories are "sorted" based on " most" regimes close to them. In the third step, a list of remaining modes is generated by inserting modes that are adjacent to the winning mode category from step 2.

[00133] Фиг. 6 показывает пример 67 режимов внутреннего предсказания, например, как предложено для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержащих: планарный режим (индекс 0), режим DC (индекс 1) и угловые режимы с индексами 2 - 66, где левый нижний угловой режим на фиг. 3 относится к индексу 2, а нумерация индексов увеличивается до тех пор, пока индекс 66 не станет самым верхним правым угловым режимом на фиг. 6. [00133] FIG. 6 shows an example of 67 intra prediction modes, for example, as proposed for VVC, a plurality of intra prediction modes of 67 intra prediction modes containing: planar mode (index 0), DC mode (index 1), and angular modes with indices 2 to 66, where the lower left corner mode in Fig. 3 refers to index 2, and the index numbers are incremented until index 66 is the top right corner mode in FIG. 6.

[00134] Схема обработки может быть реализована аппаратно или в комбинации аппаратного и программного обеспечения, например, посредством программируемого процессора или тому подобного. [00134] The processing circuitry may be implemented in hardware or in a combination of hardware and software, such as through a programmable processor or the like.

[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 для выхода или входа оптических или электрических сигналов. [00135] FIG. 7 is a schematic diagram of a network device 700 according to an embodiment of the disclosure. The network device 700 is suitable for implementing the disclosed embodiments as described herein. The network device 700 includes input ports 710 and receiver units (Rx) 720 for receiving data; a processor, logical unit, or central processing unit (CPU) 730 for processing data; blocks (Tx) 740 transmitter and output ports 750 for data transmission; and memory 760 for storing data. Network device 700 may also contain optical-to-electrical (OE) components and electrical-to-optical (EO) components connected to input ports 710, receiver units 720, transmitter units 740, and output ports. 750 for output or input of optical or electrical signals.

[00136] Процессор 730 реализован аппаратно и программно. Процессор 730 может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), программируемых пользователем вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 730 связан с входными портами 710, блоками 720 приемника, блоками 740 передатчика, выходными портами 750 и памятью 760. Процессор 730 содержит модуль 770 кодирования. Модуль 770 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 770 кодирования реализует, обрабатывает, подготавливает или обеспечивает различные сетевые функции. Таким образом, включение модуля 770 кодирования обеспечивает существенное улучшение функциональности сетевого устройства 700 и вызывает преобразование сетевого устройства 700 в другое состояние. В качестве альтернативы модуль 770 кодирования реализован как инструкции, хранящиеся в памяти 760 и выполняемые посредством процессора 730. [00136] The processor 730 is implemented in hardware and software. Processor 730 may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors (DSPs). The processor 730 is connected to input ports 710, receiver units 720, transmitter units 740, output ports 750, and memory 760. Processor 730 includes an encoding module 770. Encoding module 770 implements the disclosed embodiments described above. For example, encoding module 770 implements, processes, prepares, or provides various network functions. Thus, the inclusion of the encoding module 770 provides a significant improvement in the functionality of the network device 700 and causes the network device 700 to change its state. Alternatively, encoding module 770 is implemented as instructions stored in memory 760 and executed by processor 730.

[00137] Память 760 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, считываемых во время выполнения программы. Память 760 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянное запоминающее устройство (ROM - read-only memory), оперативное запоминающее устройство (RAM - random access memory), троичное запоминающее устройство с адресацией по содержимому (TCAM - ternary content-addressable memory) и/или статическое оперативное запоминающее устройство (SRAM - static random-access memory).[00137] Memory 760 includes one or more disks, tape drives, and solid state drives, and can be used as an overflow storage device, for storing programs when such programs are selected for execution, and for storing instructions and data read during program execution. . The memory 760 may be volatile and/or non-volatile and may be read-only memory (ROM), random access memory (RAM), ternary content-addressable memory (TCAM). memory) and/or static random-access memory (SRAM).

[00138] Дополнительные подробности этого раскрытия представлены в следующих вариантах осуществления. [00138] Additional details of this disclosure are provided in the following embodiments.

[00139] Вариант 1 осуществления. Устройство для определения принятого режима внутреннего предсказания на основе списка наиболее вероятных режимов (MPM) и списка оставшихся режимов, имеющего первую часть и вторую часть, при этом принятый режим внутреннего предсказания является одним из множества режимов внутреннего предсказания, содержащих множество угловых режимов внутреннего предсказания для предсказания значений сэмплов текущего блока изображения, при этом устройство содержит схему обработки, выполненную с возможностью: формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания, определенных на основе списка наиболее вероятных режимов, так что один или несколько угловых режимов внутреннего предсказания первой части списка оставшихся режимов близки к соответствующему угловому режиму внутреннего предсказания из списка наиболее вероятных режимов; и определения принятого режима внутреннего предсказания, в случае, если принятый режим внутреннего предсказания является частью первой части списка оставшихся режимов, используя меньше битов для кодирования или декодирования принятого режима внутреннего предсказания, чем в случае, если принятый режим внутреннего предсказания является частью второй части списка оставшихся режимов. [00139] Embodiment 1. An apparatus for determining a received intra prediction mode based on a most likely mode list (MPM) and a remaining mode list having a first part and a second part, wherein the received intra prediction mode is one of a plurality of intra prediction modes comprising a plurality of intra prediction angle modes for prediction sample values of the current image block, wherein the device comprises a processing circuit configured to: generate the first part of the list of remaining modes by including one or more angular modes of intra prediction determined based on the list of most likely modes, so that one or more angular modes of intra prediction the first part of the list of remaining modes are close to the corresponding intra-prediction angular mode from the list of most likely modes; and determining the received intra prediction mode, if the received intra prediction mode is part of the first part of the remaining mode list, using fewer bits to encode or decode the received intra prediction mode than if the received intra prediction mode is part of the second part of the remaining list. modes.

[00140] Вариант 2 осуществления. Устройство варианта 1 осуществления, в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством: ранжирования множества категорий угловых режимов внутреннего предсказания согласно количеству и/или направлению угловых режимов внутреннего предсказания из списка наиболее вероятных режимов, попадающих в каждую категорию угловых режимов внутреннего предсказания; и формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания из категории угловых режимов внутреннего предсказания с наивысшим рангом в список оставшихся режимов. [00140] Embodiment 2. The apparatus of Embodiment 1, wherein the processing circuit is configured to generate a first part of the list of remaining modes by: ranking a plurality of intra prediction angular mode categories according to the number and/or direction of intra prediction angular modes from a list of most likely modes falling into each intra prediction angular mode category predictions; and generating a first part of the remaining mode list by including one or more intra prediction angular modes from the highest ranking intra angle mode category in the remaining mode list.

[00141] Вариант 3 осуществления. Устройство варианта 2 осуществления, в котором первая часть списка оставшихся режимов, полученная из предварительно определенного списка режимов по умолчанию, содержащего пять категорий угловых режимов внутреннего предсказания, а именно режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим DIA_IDX, в причем угловой режим внутреннего предсказания из списка наиболее вероятных режимов, попадающих в каждую категорию угловых режимов внутреннего предсказания, например, соответствует связыванию каждого из углового режима внутреннего предсказания из списка наиболее вероятных режимов с категорией угловых режимов внутреннего предсказания, наиболее близкой к соответствующему угловому режиму внутреннего предсказания из списка наиболее вероятных режимов. [00141] Embodiment 3. The apparatus of Embodiment 2, wherein the first part of the remaining mode list obtained from a predetermined default mode list containing five categories of intra prediction angular modes, namely DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), intra mode 2 (2), vertical diagonal mode (VDIA_IDX), and diagonal mode DIA_IDX, wherein an intra prediction angular mode from a list of most likely modes falling into each intra prediction angular mode category, for example, corresponds to associating each of the intra prediction angular modes from a list of most likely modes with an intra prediction angular mode category closest to the corresponding intra prediction angular mode from the list of most likely modes.

[00142] Вариант 4 осуществления. Устройство варианта 2 или 3 осуществления, в котором схема обработки дополнительно выполнена с возможностью завершения первой части списка оставшихся режимов посредством повторения этапа (ii) со второй по рангу категорией угловых режимов внутреннего предсказания. [00142] Embodiment 4. The device of embodiment 2 or 3, wherein the processing circuit is further configured to complete the first part of the list of remaining modes by repeating step (ii) with the second highest category of intra prediction angular modes.

[00143] Вариант 5 осуществления. Устройство варианта 2-3 осуществления, в котором каждый режим внутреннего предсказания идентифицируется посредством индекса режима внутреннего предсказания и в котором схема обработки выполнена с возможностью определения множества категорий угловых режимов внутреннего предсказания на основе соответствующих угловых режимов внутреннего предсказания, связанных с горизонтальным направлением, вертикальным направлением и одним или несколькими диагональными направлениями. [00143] Embodiment 5. The apparatus of Embodiment 2-3, wherein each intra prediction mode is identified by an intra prediction mode index, and wherein the processing circuit is configured to determine a plurality of intra prediction angular mode categories based on respective intra prediction angular modes related to horizontal direction, vertical direction, and one or more diagonal directions.

[00144] Вариант 6 осуществления. Устройство любого из предшествующих вариантов осуществления, в котором каждый режим внутреннего предсказания идентифицируется посредством индекса режима внутреннего предсказания и в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +1, -1, +2, -2, +3, -3, +4 или -4 относительно индекса режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов. [00144] Embodiment 6. The apparatus of any of the preceding embodiments, wherein each intra prediction mode is identified by an intra prediction mode index, and wherein the processing circuit is configured to generate a first part of the remaining mode list by including one or more intra prediction angular modes in the first part of the remaining mode list, whose the corresponding intra prediction mode index has an offset of +1, -1, +2, -2, +3, -3, +4, or -4 relative to the intra prediction mode index of the intra prediction angular mode from the list of most likely modes.

[00145] Вариант 7 осуществления. Устройство варианта 6 осуществления, в котором каждый элемент списка из списка наиболее вероятных режимов идентифицируется посредством индекса наиболее вероятных режимов, и в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +1, -1, +2, -2, +3, -3, +4 или -4 относительно индекса режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов. [00145] Embodiment 7. The apparatus of Embodiment 6, wherein each list item of the most likely mode list is identified by a most likely mode index, and wherein the processing circuit is configured to generate a first part of the remaining mode list by including one or more intra prediction angle modes in the first part of the remaining list modes whose corresponding intra prediction mode index has an offset of +1, -1, +2, -2, +3, -3, +4, or -4 relative to the intra prediction mode index of the angular intra prediction mode from the list of most likely modes.

[00146] Вариант 8 осуществления. Устройство варианта 7 осуществления, в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов на основе цикла обработки, начиная со смещения +1 по отношению к индексу режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов, которое увеличивается во время каждого раунда цикла обработки, или со смещения -1 по отношению к индексу режима внутреннего предсказания углового режима внутреннего предсказания из списка наиболее вероятных режимов, который уменьшается на единицу во время каждого раунда цикла обработки. [00146] Embodiment 8. Apparatus of Embodiment 7 wherein the processing circuit is configured to generate a first part of the remaining mode list by including one or more intra-prediction angle modes in the first part of the remaining mode list based on a processing cycle starting at an offset of +1 with respect to the intra prediction mode index of the intra prediction angular mode from the most likely mode list, which is incremented during each round of the processing cycle, or from an offset of -1 with respect to the intra prediction mode index of the intra prediction angular mode from the most likely mode list, which is decreased by one during each round of the cycle processing.

[00147] Вариант 9 осуществления. Устройство варианта 8 осуществления, в котором схема обработки выполнена с возможностью повторения цикла обработки для углового режима внутреннего предсказания из списка наиболее вероятных режимов, имеющего малый индекс наиболее вероятных режимов, чаще, чем цикла обработки для углового режима внутреннего предсказания из списка наиболее вероятных режимов с большим индексом наиболее вероятных режимов. [00147] Embodiment 9. The apparatus of Embodiment 8, wherein the processing circuit is configured to repeat a processing cycle for the intra prediction angular mode of the most likely mode list having a small most likely mode index more frequently than a processing cycle for the intra prediction angular mode of the most likely mode list with a large index of the most probable regimes.

[00148] Вариант 10 осуществления. Устройство варианта 8 осуществления, в котором схема обработки выполнена с возможностью формирования первой части списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания в первую часть списка оставшихся режимов, чей соответствующий индекс режима внутреннего предсказания имеет смещение +2, -2, +4, -4, +6, -6, +8 или -8 по отношению к индексу режима внутреннего предсказания для углового режима внутреннего предсказания из списка наиболее вероятных режимов. [00148] Embodiment 10. Apparatus of Embodiment 8, wherein the processing circuit is configured to generate the first part of the remaining mode list by including one or more intra prediction angle modes in the first part of the remaining mode list, whose corresponding intra prediction mode index has an offset of +2, -2, +4 , -4, +6, -6, +8, or -8 with respect to the intra prediction mode index of the angular intra prediction mode from the list of most likely modes.

[00149] Вариант 11 осуществления. Устройство любого из предыдущих вариантов осуществления, в котором схема обработки дополнительно выполнена с возможностью формирования второй части списка оставшихся режимов пуосредством включения тех режимов внутреннего предсказания из множества режимов внутреннего предсказания во вторую часть списка оставшихся режимов, которые не являются частью списка наиболее вероятных режимов и первой части списка оставшихся режимов. [00149] Embodiment 11. The apparatus of any of the previous embodiments, wherein the processing circuit is further configured to generate a second part of the remaining mode list by including those intra prediction modes from the plurality of intra prediction modes in the second part of the remaining mode list that are not part of the most likely mode list and the first part list of remaining modes.

[00150] Вариант 12 осуществления. Устройство любого из предыдущих вариантов осуществления, в котором схема обработки дополнительно выполнена с возможностью реализации в аппаратных средствах или в комбинации аппаратных средств и программного обеспечения. [00150] Embodiment 12. The apparatus of any of the previous embodiments wherein the processing circuitry is further embodied in hardware or in a combination of hardware and software.

[00151] Вариант 13 осуществления. Устройство любого из предыдущих вариантов осуществления, в котором схема обработки дополнительно выполнена с возможностью предсказания значений сэмплов текущего блока изображения с использованием принятого режима внутреннего предсказания и для обеспечения предсказываемого блока изображения. [00151] Embodiment 13. The apparatus of any of the previous embodiments wherein the processing circuitry is further configured to predict sample values of the current image block using the received intra prediction mode and to provide the predicted image block.

[00152] Вариант 14 осуществления. Устройство согласно варианту 13 осуществления, причем устройство представляет собой устройство кодирования, и в котором схема обработки дополнительно выполнена с возможностью: кодирования текущего блока изображения на основе предсказанного блока изображения и принятого режима внутреннего предсказания. [00152] Embodiment 14. The apparatus of Embodiment 13, wherein the apparatus is an encoding apparatus, and wherein the processing circuit is further configured to: encode the current image block based on the predicted image block and the received intra prediction mode.

[00153] Вариант 15 осуществления. Устройство согласно варианту 14 осуществления, в котором схема обработки дополнительно выполнена с возможностью сигнализации усеченного двоичного кода для режима внутреннего предсказания текущего блока изображения, если режим внутреннего предсказания принадлежит списку оставшихся режимов. [00153] Embodiment 15. The apparatus of Embodiment 14, wherein the processing circuit is further configured to signal a truncated binary code for the intra prediction mode of the current image block if the intra prediction mode belongs to the list of remaining modes.

[00154] Вариант 16 осуществления. Устройство согласно варианту 15 осуществления, причем устройство является устройством декодирования, и в котором схема обработки дополнительно выполнена с возможностью декодирования текущего блока изображения на основе предсказанного блока изображения и принятого режима внутреннего предсказания. [00154] Embodiment 16. The apparatus of Embodiment 15, wherein the apparatus is a decoding apparatus, and wherein the processing circuit is further configured to decode the current image block based on the predicted image block and the received intra prediction mode.

[00155] Вариант 17 осуществления. Устройство согласно варианту 16 осуществления, в котором схема обработки дополнительно выполнена с возможностью синтаксического анализа усеченного двоичного кода для определения режима внутреннего предсказания текущего блока изображения, если режим внутреннего предсказания принадлежит списку оставшихся режимов. [00155] Embodiment 17. The apparatus of embodiment 16, wherein the processing circuit is further configured to parse the truncated binary code to determine the intra prediction mode of the current image block if the intra prediction mode belongs to the list of remaining modes.

[00156] Вариант 18 осуществления. Способ определения принятого режима внутреннего предсказания на основе списка наиболее вероятных режимов и списка оставшихся режимов, имеющего первую часть и вторую часть, при этом принятый режим внутреннего предсказания является одним из множества режимов внутреннего предсказания, содержащих множество угловых режимов внутреннего предсказания для предсказания значений сэмплов текущего блока изображения, при этом способ содержит этапы, на которых: формируют первую часть списка оставшихся режимов посредством включения одного или нескольких угловых режимов внутреннего предсказания, определенных на основе списка наиболее вероятных режимов, так что один или несколько угловых режимов внутреннего предсказания первой части списка оставшихся режимов близки к соответствующему угловому режиму внутреннего предсказания из списка наиболее вероятных режимов; и определяют принятый режим внутреннего предсказания в случае, если принятый режим внутреннего предсказания является частью первой части списка оставшихся режимов, с использованием меньшего количества битов для кодирования или декодирования принятого режима внутреннего предсказания, чем в случае, если принятый режим внутреннего предсказания является частью второй части списка оставшихся режимов. [00156] Embodiment 18. A method for determining a received intra prediction mode based on a list of most likely modes and a list of remaining modes having a first part and a second part, wherein the received intra prediction mode is one of a plurality of intra prediction modes containing a plurality of intra prediction angular modes for predicting sample values of the current block image, wherein the method comprises the steps of: forming the first part of the list of remaining modes by including one or more angular modes of intra prediction determined based on the list of the most probable modes, so that one or more angular modes of intra prediction of the first part of the list of remaining modes are close to the corresponding angular mode of intra prediction from the list of the most probable modes; and determining the received intra prediction mode if the received intra prediction mode is part of the first part of the list of remaining modes, using fewer bits to encode or decode the received intra prediction mode than if the received intra prediction mode is part of the second part of the list. the remaining modes.

[00157] Вариант 19 осуществления. Компьютерный программный продукт, содержащий программный код для выполнения способа варианта 14 осуществления, когда он выполняется на компьютере или процессоре. [00157] Embodiment 19. A computer program product containing program code for performing the method of embodiment 14 when it is executed on a computer or processor.

[00158] Вариант 20 осуществления. Устройство согласно любому из вариантов с 1 по 13 осуществления, в котором схема обработки дополнительно выполнена с возможностью определения первой части списка оставшихся режимов из предварительно определенного списка режимов по умолчанию, содержащего или состоящего из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режима (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX). [00158] Embodiment 20. The apparatus according to any one of embodiments 1 to 13, wherein the processing circuit is further configured to determine the first part of the list of remaining modes from the predefined default mode list, comprising or consisting of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX).

[00159] Вариант 21 осуществления. Устройство согласно любому из вариантов с 1 по 13 осуществления, в котором схема обработки дополнительно выполнена с возможностью определения первой части списка оставшихся режимов посредством включения режимов внутреннего предсказания соседей второго уровня текущего блока изображения. [00159] Embodiment 21. The apparatus according to any one of embodiments 1 to 13, wherein the processing circuit is further configured to determine the first part of the list of remaining modes by turning on intra prediction modes of the second layer neighbors of the current image block.

[00160] Вариант 22 осуществления. Как в кодере, так и в декодере, внутренний режим сигнализируется с использованием усеченной бинаризации для внутренних режимов без MPM. [00160] Embodiment 22. In both the encoder and decoder, the intra mode is signaled using truncated binarization for non-MPM intra modes.

[00161] Вариант 23 осуществления. Поскольку усеченная бинаризация используется для кодирования 61 без MPM, первые три режима потребуют передачи 5 битов, и поэтому первые три режима в списке без MPM формируются на основе внутренних режимов, которые уже включены в список MPM. [00161] Embodiment 23. Because truncated binarization is used to encode 61 without MPM, the first three modes will require 5 bits to be transmitted, and therefore the first three modes in the non-MPM list are generated based on the internal modes that are already included in the MPM list.

[00162] Хотя в настоящем раскрытии обеспечено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть осуществлены во многих других конкретных формах, не выходящих за рамки сущности или объема настоящего раскрытия. Настоящие примеры следует рассматривать как иллюстративные, а не ограничительные, а намерение - не ограничиваться приведенными здесь подробностями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы. [00162] While several embodiments are provided in the present disclosure, it should be understood that the disclosed systems and methods may be implemented in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered illustrative and not restrictive, and the intention is not to be limited by the details given here. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.

[00163] Кроме того, методики, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как дискретные или отдельные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами, не выходя за рамки объема настоящего раскрытия. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений и замен могут быть установлены специалистом в данной области техники и могут быть выполнены без отклонения от сущности и объема, раскрытых в данном документе. [00163] In addition, the techniques, systems, subsystems, and methods described and illustrated in various embodiments as discrete or separate may be combined or integrated with other systems, modules, technologies, or methods without departing from the scope of this disclosure. Other elements shown or discussed as related or directly connected or interacting with each other may be indirectly connected or interact through some interface, device or intermediate component, electrically, mechanically or otherwise. Other examples of changes and substitutions can be established by a person skilled in the art and can be made without deviating from the spirit and scope disclosed in this document.

Claims (26)

1. Способ кодирования, реализуемый посредством устройства кодирования, содержащий этапы, на которых: 1. An encoding method implemented by an encoding device, comprising the steps of: выбирают с использованием устройства кодирования режим внутреннего предсказания для текущего блока иselect, using the encoder, an intra prediction mode for the current block, and кодируют с использованием устройства кодирования выбранный режим внутреннего предсказания с использованием усеченного двоичного кодирования; encode using the coding device the selected mode of intra prediction using truncated binary coding; при этом все режимы внутреннего предсказания принадлежат либо списку наиболее вероятных режимов (MPM), либо оставшимся режимам, при этом имеется 6 режимов в списке MPM и 61 режим в оставшихся режимах и все оставшиеся режимы кодируются с использованием усеченного двоичного кодирования, и при этом кодирование использует 5 битов, когда выбранный режим внутреннего предсказания является одним из первых трех режимов из оставшихся режимов, и 6 битов, когда режим внутреннего предсказания находится вне упомянутых первых трех режимов.wherein all intra prediction modes belong to either the most likely mode (MPM) list or the remaining modes, while there are 6 modes in the MPM list and 61 modes in the remaining modes, and all remaining modes are encoded using truncated binary coding, and the coding uses 5 bits when the selected intra prediction mode is one of the first three modes of the remaining modes, and 6 bits when the intra prediction mode is outside of the first three modes. 2. Способ декодирования, реализуемый посредством устройства декодирования, содержащий этапы, на которых: 2. A decoding method implemented by a decoding device, comprising the steps of: получают посредством устройства декодирования усеченный двоичный код; obtaining by means of a decoding device a truncated binary code; декодируют посредством устройства декодирования усеченный двоичный код для получения режима внутреннего предсказания, содержащего оставшийся режим;decoding by means of the decoding device the truncated binary code to obtain an intra prediction mode containing the remaining mode; при этом все режимы внутреннего предсказания принадлежат либо списку наиболее вероятных режимов (MPM), либо оставшимся режимам, при этом имеется 6 режимов в списке MPM и 61 режим в оставшихся режимах и все оставшиеся режимы кодируются с использованием усеченного двоичного кодирования, и при этом декодирование использует 5 битов, когда режим внутреннего предсказания был одним из первых трех режимов из оставшихся режимов, и 6 битов, когда режим внутреннего предсказания находится вне упомянутых первых трех режимов; иwherein all intra prediction modes belong to either the most likely mode (MPM) list or the remaining modes, while there are 6 modes in the MPM list and 61 modes in the remaining modes, and all remaining modes are encoded using truncated binary coding, and decoding uses 5 bits when the intra prediction mode was one of the first three modes of the remaining modes, and 6 bits when the intra prediction mode is outside of the first three modes; and при этом способ дополнительно содержит этап, на которомwherein the method further comprises the step of формируют посредством устройства декодирования текущий блок с использованием режима внутреннего предсказания, который был получен. generating, by the decoding apparatus, a current block using the intra prediction mode that has been obtained. 3. Способ по п. 2, дополнительно содержащий этап, на котором определяют, что режим внутреннего предсказания находится вне списка MPM. 3. The method of claim 2, further comprising determining that the intra prediction mode is outside the MPM list. 4. Способ по п. 2 или 3, в котором начальные режимы в списке оставшихся режимов берутся из предварительно определенного списка режимов по умолчанию. 4. The method of claim 2 or 3, wherein the initial modes in the list of remaining modes are taken from a predetermined list of default modes. 5. Способ по п. 4, в котором предварительно определенный список режимов по умолчанию содержит планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (MODE2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX). 5. The method of claim 4, wherein the predefined default mode list comprises Planar Mode (PLANAR_IDX), DC Mode (DC_IDX), Vertical Mode (VER_IDX), Horizontal Mode (HOR_IDX), Inner Mode 2 (MODE2), Vertical Diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX). 6. Способ по п. 2 или 3, в котором начальные режимы в списке оставшихся режимов основаны на смещении угловых режимов, включенных в список MPM. 6. The method of claim 2 or 3, wherein the initial modes in the list of remaining modes are based on an offset of the angular modes included in the MPM list. 7. Способ по п. 6, отличающийся тем, что смещение составляет +/-N, где N - целое число со значением 1, 2, 3 или 4. 7. The method according to claim 6, characterized in that the offset is +/-N, where N is an integer with a value of 1, 2, 3 or 4. 8. Способ по п. 6 или 7, в котором смещение добавляют только к первому из двух угловых режимов в списке MPM. 8. The method of claim 6 or 7, wherein the offset is added to only the first of the two angle modes in the MPM list. 9. Способ по п. 2 или 3, в котором начальные режимы в списке оставшихся режимов основаны на режимах соседних блоков, не смежных непосредственно с текущим блоком. 9. The method of claim 2 or 3, wherein the initial modes in the list of remaining modes are based on the modes of neighboring blocks not directly adjacent to the current block. 10. Способ по п. 2 или 3, в котором начальные режимы в списке оставшихся режимов основаны на режимах соседей второго уровня текущего блока вместо соседей первого уровня. 10. The method of claim 2 or 3, wherein the initial modes in the list of remaining modes are based on the modes of the second level neighbors of the current block instead of the first level neighbors. 11. Способ по п. 2 или 3, в котором начальные режимы в списке оставшихся режимов основаны на расположении большинства режимов в списке MPM относительно одного из планарного режима (PLANAR_IDX), режима DC (DC_IDX), вертикального режим (VER_IDX), горизонтального режима (HOR_IDX), внутреннего режима 2 (MODE2), вертикального диагонального режима (VDIA_IDX) и диагонального режима (DIA_IDX). 11. The method of claim 2 or 3, wherein the initial modes in the list of remaining modes are based on the location of most of the modes in the MPM list relative to one of planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode ( HOR_IDX), Inner Mode 2 (MODE2), Vertical Diagonal Mode (VDIA_IDX), and Diagonal Mode (DIA_IDX). 12. Способ по п. 2 или 3, в котором начальные режимы в списке оставшихся режимов определялись посредством: 12. The method according to claim 2 or 3, in which the initial modes in the list of remaining modes were determined by: сравнения каждого из режимов в списке MPM с расположением различных режимов в списке режимов по умолчанию; comparing each of the modes in the MPM list with the location of the various modes in the default mode list; определения того, что выигравший один из различных режимов в списке режимов по умолчанию является ближайшим к большинству режимов в списке MPM; иdetermining that the winner of one of the various modes in the default mode list is closest to the majority of the modes in the MPM list; and заполнения первых трех режимов в списке оставшихся режимов режимами, ближайшими к выигравшему одному из различных режимов в списке режимов по умолчанию. populating the first three modes in the list of remaining modes with the modes closest to the winning one of the various modes in the list of default modes. 13. Способ по п. 12, в котором различные режимы в категории режимов содержат планарный режим (PLANAR_IDX), режим DC (DC_IDX), вертикальный режим (VER_IDX), горизонтальный режим (HOR_IDX), внутренний режим 2 (MODE2), вертикальный диагональный режим (VDIA_IDX) и диагональный режим (DIA_IDX). 13. The method of claim 12, wherein the different modes in the mode category comprise planar mode (PLANAR_IDX), DC mode (DC_IDX), vertical mode (VER_IDX), horizontal mode (HOR_IDX), indoor mode 2 (MODE2), vertical diagonal mode (VDIA_IDX) and diagonal mode (DIA_IDX). 14. Устройство кодирования, выполненное с возможностью выполнения способа по п. 1. 14. An encoding device configured to perform the method according to claim 1. 15. Устройство декодирования, выполненное с возможностью выполнения способа по любому из пп. 2-13. 15. The decoding device, configured to perform the method according to any one of paragraphs. 2-13.
RU2021102488A 2018-07-11 2019-05-08 Internal brightness mode signaling RU2787010C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/696,739 2018-07-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2022132868A Division RU2022132868A (en) 2018-07-11 2019-05-08 INTERNAL BRIGHTNESS ALARM

Publications (2)

Publication Number Publication Date
RU2021102488A RU2021102488A (en) 2022-08-11
RU2787010C2 true RU2787010C2 (en) 2022-12-28

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2838578A1 (en) * 2012-01-20 2013-07-25 Huawei Technologies Co., Ltd. Encoding or decoding method and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2838578A1 (en) * 2012-01-20 2013-07-25 Huawei Technologies Co., Ltd. Encoding or decoding method and apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kotra A.M. и др. "CE3.2.2: Intra mode signaling with priority based MPM and non-MPM list construction", Любляна, Словения, опубл. 10.07.2018. Alshin Alexander и др., "Description of SDR, HDR and 360. *

Similar Documents

Publication Publication Date Title
KR102288109B1 (en) Bidirectional prediction in video compression
US11019339B2 (en) Fractional quantization parameter offset in video compression
US9807401B2 (en) Transform unit partitioning for chroma components in video coding
US9172963B2 (en) Joint coding of syntax elements for video coding
US9491491B2 (en) Run-mode based coefficient coding for video coding
US11695927B2 (en) Luma intra mode signaling
US11889079B2 (en) Constrained prediction mode for video coding
WO2019068261A1 (en) Bidirectional intra prediction
US11917152B2 (en) Position dependent spatial varying transform for video coding
RU2787010C2 (en) Internal brightness mode signaling
KR20210125085A (en) Transform unit partition method for video coding
WO2019072210A1 (en) Restriction on sub-block size derivation for affine inter-prediction
WO2019199838A1 (en) Reducing context switching for coding transform coefficients