RU2669005C2 - Предсказание вектора блока в кодировании/декодировании видео и изображений - Google Patents

Предсказание вектора блока в кодировании/декодировании видео и изображений Download PDF

Info

Publication number
RU2669005C2
RU2669005C2 RU2016125260A RU2016125260A RU2669005C2 RU 2669005 C2 RU2669005 C2 RU 2669005C2 RU 2016125260 A RU2016125260 A RU 2016125260A RU 2016125260 A RU2016125260 A RU 2016125260A RU 2669005 C2 RU2669005 C2 RU 2669005C2
Authority
RU
Russia
Prior art keywords
current block
value
predictor
prediction
block
Prior art date
Application number
RU2016125260A
Other languages
English (en)
Other versions
RU2016125260A (ru
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 RU2016125260A publication Critical patent/RU2016125260A/ru
Application granted granted Critical
Publication of RU2669005C2 publication Critical patent/RU2669005C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в улучшении эффективности кодирования для предсказанных внутри копии (BC) блоков. Способ кодирования видео или изображений, выполняемый в вычислительном устройстве с кодером видео или кодером изображений, содержит этапы, на которых определяют предиктор вектора блока (BV) по умолчанию для текущего блока картинки, причем предиктор BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением; и кодируют текущий блок с использованием предсказания внутри BC с предиктором BV по умолчанию. 10 н. и 58 з.п. ф-лы, 25 ил.

Description

УРОВЕНЬ ТЕХНИКИ
[001] Инженеры используют сжатие (также называемое кодированием источника или шифрованием источника) для уменьшения битовой скорости (битрейта) цифрового видео. Сжатие уменьшает издержки хранения и передачи видеоинформации путем преобразования информации в форму с более низкой битовой скоростью. Распаковка (также называемая декодированием) воспроизводит версию исходной информации из сжатой формы. "Кодек" является системой кодера/декодера.
[002] За последние два десятилетия различные стандарты видеокодеков были приняты, включая стандарты ITU-T H.261, H.262 (MPEG-2 или ISO/IEC 13818-2), H.263 и H.264 (MPEG-4 AVC или ISO/IEC 14496-10), стандарты MPEG-1 (ISO/IEC 11172-2) и MPEG-4 Visual (ISO/IEC 14496-2) и стандарт SMPTE 421M (VC-1). Совсем недавно стандарт HEVC (ITU-T H.265 или ISO/IEC 23008-2) был одобрен. Расширения для стандарта HEVC (например, для масштабируемого кодирования/декодирования видео, для кодирования/декодирования видео с более высокой точностью в плане битовой глубины выборки или частоты дискретизации по цветности, или для многовидового кодирования/декодирования) в текущий момент разрабатываются. Стандарт видеокодека обычно определяет варианты для синтаксиса битового потока закодированного видео, детализируя параметры в битовом потоке, когда конкретные признаки используются в кодировании и декодировании. Во многих случаях стандарт видеокодека также обеспечивает подробности об операциях декодирования, которые декодер должен выполнять для достижения соответствующих результатов декодирования. Помимо стандартов кодека, различные запатентованные форматы кодека определяют другие варианты для синтаксиса битового потока закодированного видео и соответствующих операций декодирования.
[003] Предсказание внутри копии блока ("BC") является режимом предсказания, разрабатываемым для расширений HEVC. Для режима предсказания внутри BC значения выборки текущего блока картинки предсказываются с использованием ранее воспроизведенных значений выборки в той же самой картинке. Вектор блока ("BV") указывает смещение от текущего блока к некоторой области картинки, которая включает в себя ранее воспроизведенные значения выборки, используемые для предсказания. BV сигнализируется в битовом потоке. Предсказание внутри BC является формой предсказания внутри картинки - предсказание внутри BC для блока картинки не использует каких-либо значений выборки за исключением значений выборки в той же самой картинке.
[004] Как в текущий момент определено в стандарте HEVC и осуществляется в некоторых ссылочных программных средствах для стандарта HEVC, режим предсказания внутри BC имеет несколько проблем. В частности, значения BV не сигнализируются эффективно во многих ситуациях, и кодирование блоков с предсказуемым смещением BC не обрабатывается эффективно.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[005] В кратком изложении подробное описание представляет нововведения в области предсказания значений вектора блока ("BV") в течение кодирования или декодирования блоков с использованием предсказания внутри копии блока ("BC"). Например, некоторые из нововведений относятся к использованию элемента предсказания (предиктора) BV по умолчанию с ненулевым значением. Другие нововведения относятся к использованию выбранного одного из множества вариантов элемента предсказания BV для текущего блока. Дополнительные нововведения относятся к использованию режима пропуска, в котором текущий предсказанный внутри BC блок использует предсказанное значение BV. Во многих ситуациях нововведения улучшают эффективность кодирования значений BV или иным образом улучшают эффективность кодирования для предсказанных внутри BC блоков.
[006] Согласно первому аспекту нововведений, описанных здесь, кодер определяет элемент предсказания BV по умолчанию для текущего блока картинки. Элемент предсказания BV по умолчанию включает в себя компонент элемента предсказания BV с ненулевым значением. Например, один из вертикального и горизонтального компонентов BV элемента предсказания BV по умолчанию равен нулю, а другой имеет ненулевое значение. Кодер кодирует текущий блок с использованием элемента предсказания BV по умолчанию. Например, кодер выполняет предсказание внутри копии блока ("BC") с использованием значения BV для текущего блока, определяет дифференциал BV с использованием значения BV и элемента предсказания BV по умолчанию для текущего блока, затем кодирует дифференциал BV. Либо кодер просто выполняет предсказание внутри BC с использованием элемента предсказания BV по умолчанию.
[007] Соответствующий декодер определяет элемент предсказания BV по умолчанию для текущего блока картинки. Элемент предсказания BV по умолчанию включает в себя компонент элемента предсказания BV с ненулевым значением. Например, один из вертикального и горизонтального компонентов BV элемента предсказания BV по умолчанию равен нулю, а другой имеет ненулевое значение. Декодер декодирует текущий блок с использованием элемента предсказания BV по умолчанию. Например, декодер декодирует дифференциал BV для текущего блока, затем комбинирует декодированный дифференциал BV с элементом предсказания BV по умолчанию для воспроизведения значения BV для текущего блока. Декодер выполняет предсказание внутри BC с использованием значения BV. Либо декодер просто выполняет предсказание внутри BC с использованием элемента предсказания BV по умолчанию.
[008] Кодер или декодер может в зависимости от условий использовать элемент предсказания BV по умолчанию в зависимости от того, доступно ли фактическое значение BV для предыдущего блока картинки. Например, кодер/декодер проверяет, доступно ли фактическое значение BV для предыдущего блока картинки. Если да, фактическое значение BV для предыдущего блока используется в качестве элемента предсказания BV для текущего блока. Иначе элемент предсказания BV по умолчанию используется в качестве элемента предсказания BV для текущего блока. В некоторых осуществлениях фактическое значение BV для предыдущего блока доступно, если (1) предыдущий блок и текущий блок входят в состав заданного элемента дерева кодирования, и (2) режим предсказания предыдущего блока является режимом предсказания внутри BC.
[009] Согласно второму аспекту нововведений, описанных здесь, кодер использует предсказание BV для определения значения BV для текущего блока картинки. Значение BV для текущего блока указывает смещение к некоторой области внутри картинки. Кодер кодирует текущий блок с использованием внутренней BC со значением BV (в данном случае элемента предсказания BV). Кодер выводит в битовом потоке указание, что текущий блок закодирован в режиме пропуска, и битовый поток не имеет дифференциала BV и остаточных данных для текущего блока.
[010] Соответствующий декодер принимает из битового потока указание, что текущий блок картинки закодирован в режиме пропуска. Битовый поток не имеет дифференциала BV и остаточных данных для текущего блока. Декодер использует предсказание BV для определения значения BV для текущего блока. Декодер затем декодирует текущий блок с использованием предсказания внутри копии блока со значением BV (в данном случае элемента предсказания BV).
[011] Для пропущенного блока битовый поток может включать в себя значение индекса, которое указывает выбор варианта элемента предсказания BV, из набора множества вариантов элемента предсказания BV, для использования в качестве значения BV (в данном случае элемента предсказания BV) для текущего блока. Значение индекса может быть флаговым значением или целочисленным значением.
[012] Согласно третьему аспекту нововведений, описанных здесь, кодер определяет набор множества вариантов элемента предсказания BV для текущего блока картинки, затем выбирает один из вариантов элемента предсказания BV для использования для текущего блока. Кодер кодирует текущий блок с использованием выбранного варианта элемента предсказания BV, выводя в битовом потоке значение индекса, которое указывает выбранный вариант элемента предсказания BV.
[013] Соответствующий декодер принимает из битового потока значение индекса. Декодер определяет набор множества вариантов элемента предсказания BV для текущего блока картинки и, на основе значения индекса, выбирает один из вариантов элемента предсказания BV для использования для текущего блока. Декодер декодирует текущий блок с использованием выбранного варианта элемента предсказания BV.
[014] В некоторых случаях, битовый поток включает в себя дифференциал BV для текущего блока (который является блоком режима без пропуска, режима без объединения). Дифференциал BV указывает разницу между выбранным вариантом элемента предсказания BV и значением BV для текущего блока. В других случаях, текущий блок является блоком режима объединения, и битовый поток не имеет дифференциала BV для текущего блока, но может включать в себя остаточные данные для текущего блока. В дополнительных случаях, значение в битовом потоке указывает, что текущий блок является блоком режима пропуска. В этих случаях, битовый поток не имеет дифференциала BV для текущего блока, и битовый поток не имеет остаточных данных для текущего блока.
[015] В общем случае, множество вариантов элемента предсказания BV включает в себя вплоть до x фактических значений BV предыдущих блоков. Предыдущие блоки могут быть идентифицированы по меньшей мере частично на основе местоположения в окружении вокруг текущего блока (например, блоки слева, сверху и сверху справа от текущего блока). Либо предыдущие блоки могут быть идентифицированы по меньшей мере частично на основе порядка декодирования по сравнению с текущим блоком (например, последние три предсказанных внутри BC блока). Множество вариантов элемента предсказания BV могут также включать в себя один или несколько элементов предсказания BV по умолчанию.
[016] Нововведения для предсказания BV могут осуществляться в составе способа, в составе вычислительного устройства, выполненного с возможностью выполнения способа, или в составе материальных машиночитаемых носителей, хранящих машиноисполняемые инструкции для побуждения вычислительного устройства выполнять способ. Различные нововведения могут быть использованы в комбинации или отдельно. В частности, режим объединения для предсказания BV может быть использован в сочетании с элементами предсказания BV по умолчанию с ненулевым движением и/или режимом пропуска для предсказанных внутри BC блоков. Режим пропуска для предсказанных внутри BC блоков может быть использован в сочетании с элементами предсказания BV по умолчанию с ненулевым движением.
[017] Вышеупомянутые и другие цели, признаки и преимущества изобретения станут более очевидны из последующего подробного описания, которое осуществляется со ссылками на сопроводительные чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[018] Фиг.1 изображает схему примерной вычислительной системы, в которой некоторые описанные варианты осуществления могут осуществляться.
[019] Фиг.2a и 2b изображают схемы примерных сетевых сред, в которых некоторые описанные варианты осуществления могут осуществляться.
[020] Фиг.3 изображает схему примерной системы кодера, в сочетании с которой некоторые описанные варианты осуществления могут осуществляться.
[021] Фиг.4 изображает схему примерной системы декодера, в сочетании с которой некоторые описанные варианты осуществления могут осуществляться.
[022] Фиг.5a и 5b изображают схемы, иллюстрирующие примерный кодер видео, в сочетании с которым некоторые описанные варианты осуществления могут осуществляться.
[023] Фиг.6 изображает схему, иллюстрирующую примерный декодер видео, в сочетании с которым некоторые описанные варианты осуществления могут осуществляться.
[024] Фиг.7a-7d изображают схемы, иллюстрирующие предсказание внутри BC для блока картинки, предсказание BV для блока, элемент предсказания BV по умолчанию (0, 0) и элемент предсказания BV по умолчанию с ненулевым значением, соответственно.
[025] Фиг.8 и 9 изображают блок-схемы, иллюстрирующие методики для кодирования, которые включают в себя использование элемента предсказания BV по умолчанию с ненулевым значением.
[026] Фиг.10 и 11 изображают блок-схемы, иллюстрирующие методики для декодирования, которые включают в себя использование элемента предсказания BV по умолчанию с ненулевым значением.
[027] Фиг.12 и 13 изображают блок-схемы, иллюстрирующие методики для кодирования и декодирования, соответственно, которые включают в себя режим пропуска для предсказанных внутри BC блоков.
[028] Фиг.14 изображает схему, иллюстрирующую варианты элемента предсказания BV среди фактических значений BV предыдущих блоков в картинке.
[029] Фиг.15 изображает схему, иллюстрирующую варианты элемента предсказания BV среди фактических значений BV соседних блоков в картинке.
[030] Фиг.16a и 16b изображают блок-схемы, иллюстрирующие методики для кодирования, которые включают в себя выбор из множества вариантов элемента предсказания BV.
[031] Фиг.17a и 17b изображают блок-схемы, иллюстрирующие методики для декодирования, которые включают в себя выбор из множества вариантов элемента предсказания BV.
ПОДРОБНОЕ ОПИСАНИЕ
[032] Подробное описание представляет нововведения в области предсказания значений вектора блока ("BV") в течение кодирования или декодирования блоков с использованием предсказания внутри копии блока ("BC"). Например, некоторые из нововведений относятся к использованию элемента предсказания BV по умолчанию с ненулевым значением. Другие нововведения относятся к использованию выбранного одного из множества вариантов элемента предсказания BV для текущего блока. Дополнительные нововведения относятся к использованию режима пропуска, в котором текущий предсказанный внутри BC блок использует предсказанное значение BV. Во многих ситуациях нововведения улучшают эффективность кодирования значений BV, что может снизить битовую скорость и/или улучшить качество, или иным образом улучшить эффективность кодирования для предсказанных внутри BC блоков.
[033] Хотя операции, описанные здесь, местами описываются как выполняемые кодером или декодером видео, во многих случаях операции могут выполняться другим типом инструмента обработки мультимедиа (например, кодером или декодером изображений).
[034] Некоторые из нововведений, описанных здесь, иллюстрируются со ссылками на синтаксические элементы и операции, характерные для стандарта HEVC. Например, делается ссылка на предварительную версию JCTVC-O1005 стандарта HEVC - ("High Efficiency Video Coding (HEVC) Range Extensions Text Specification: Draft 5" ("Техническое описание текста расширений диапазона кодирования видео высокой Эффективности (HEVC): Предварительная версия 5"), JCTVC-O1005_v3, ноябрь 2013 г. Нововведения, описанные здесь, могут также осуществляться для других стандартов или форматов.
[035] В более общем случае, возможны различные альтернативы для примеров, описанных здесь. Например, некоторые из способов, описанных здесь, могут быть изменены путем изменения порядка описанных действий способов, путем разбиения, повторения или опускания конкретных действий способов и т. д. Различные аспекты раскрываемой технологии могут быть использованы в комбинации или отдельно. Различные варианты осуществления используют одно или несколько из описанных нововведений. Некоторые из нововведений, описанных здесь, решают одну или несколько из проблем, отмеченных в предшествующем уровне техники. Обычно заданная методика/инструмент не решает всех таких проблем.
I. Примерные вычислительные системы.
[036] Фиг.1 изображает обобщенный пример подходящей вычислительной системы (100), в которой несколько из описанных нововведений могут осуществляться. Вычислительная система (100) не предназначена для наложения какого-либо ограничения в отношении объема использования или функциональных возможностей, поскольку нововведения могут осуществляться в разнообразных универсальных или специализированных вычислительных системах.
[037] Со ссылками на фиг.1, вычислительная система (100) включает в себя один или несколько обрабатывающих элементов (110, 115) и память (120, 125). Обрабатывающие элементы (110, 115) исполняют машиноисполняемые инструкции. Обрабатывающий элемент может быть универсальным центральным процессором ("CPU"), процессором в специализированной интегральной цепи ("ASIC") или процессором любого другого типа. В многопроцессорной системе множество обрабатывающих элементов исполняют машиноисполняемые инструкции для увеличения производительности обработки. Например, фиг.1 изображает центральный процессор (110), а также графический обрабатывающий элемент или сопроцессорный элемент (115). Материальная память (120, 125) может быть энергозависимой памятью (например, реестрами, кэшем, RAM), энергонезависимой памятью (например, ROM, EEPROM, флэш-памятью и т. д.), или некоторыми их комбинациями, доступными обрабатывающему элементу(-ам). Память (120, 125) хранит программные средства (180), осуществляющие одно или несколько нововведений для предсказания вектора блока, в форме машиноисполняемых инструкций, подходящих для исполнения обрабатывающим элементом(-ами).
[038] Вычислительная система может иметь дополнительные признаки. Например, вычислительная система (100) включает в себя хранилище (140), одно или несколько устройств (150) ввода, одно или несколько устройств (160) вывода и одно или несколько соединений (170) связи. Механизм взаимного соединения (не показан), такой как шина, средство управления или сеть, взаимно соединяет компоненты вычислительной системы (100). Обычно программные средства операционной системы (не показаны) обеспечивают операционную среду для исполнения других программных средств в вычислительной системе (100), и координируют действия компонентов вычислительной системы (100).
[039] Материальное хранилище (140) может быть сменным или несменным и включает в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD или любой другой носитель, который может быть использован для хранения информации и к которому может осуществляться доступ внутри вычислительной системы (100). Хранилище (140) хранит инструкции для программных средств (180), осуществляющих одно или несколько нововведений для предсказания вектора блока.
[040] Устройством(-ами) (150) ввода может быть сенсорное устройство ввода, такое как клавиатура, мышь, стилус или трекбол, устройство голосового ввода, устройство сканирования или другое устройство, которое обеспечивает ввод в вычислительную систему (100). Для видео, устройством(-ами) (150) ввода могут быть камера, видеокарта, карта TV-тюнера или подобное устройство, которое принимает ввод видео в аналоговой или цифровой форме, или CD-ROM или CD-RW, который считывает ввод видео в вычислительную систему (100). Устройством(-ами) (160) вывода могут быть дисплей, принтер, динамик, средство записи CD или другое устройство, которое обеспечивает вывод из вычислительной системы (100).
[041] Соединение(-я) (170) связи обеспечивает связь через среду связи с другим вычислительным объектом. Среда связи переносит информацию, такую как машиноисполняемые инструкции, ввод или вывод аудио или видео или другие данные в модулированном сигнале данных. Модулированный сигнал данных является сигналом, одна или несколько из характеристик которого установлена или изменена таким образом, чтобы закодировать информацию в сигнале. В качестве примера и не ограничения, среда связи может использовать электрический, оптический, RF- или другие несущие каналы.
[042] Нововведения могут быть описаны в общем контексте машиночитаемых носителей. Машиночитаемые носители являются любыми доступными материальными носителями, к которым может осуществляться доступ внутри вычислительной среды. В качестве примера и не ограничения, при вычислительной системе (100) машиночитаемые носители включают в себя память (120, 125), хранилище (140) и комбинаций любых элементов из вышеперечисленных.
[043] Нововведения могут быть описаны в общем контексте машиноисполняемых инструкций, таких как включенные в программные модули, исполняемые в вычислительной системе на требуемом реальном или виртуальном процессоре. В общем случае, программные модули включают в себя подпрограммы, программы, библиотеки, объекты, классы, компоненты, структуры данных и т. д., которые выполняют конкретные задачи или осуществляют конкретные абстрактные типы данных. Функциональные возможности программных модулей могут комбинироваться или разбиваться между программными модулями в зависимости от желаемого в различных вариантах осуществления. Машиноисполняемые инструкции для программных модулей могут исполняться внутри локальной или распределенной вычислительной системы.
[044] Термины "система" и "устройство" используются здесь взаимозаменяемым образом. Если контекст явно не указывает обратного, никакой термин не подразумевает какого-либо ограничения для типа вычислительной системы или вычислительного устройства. В общем случае, вычислительная система или вычислительное устройство могут быть локальными или распределенными и могут включать в себя любую комбинацию специализированных аппаратных средств и/или универсальных аппаратных средств с программными средствами, осуществляющими функциональные возможности, описанные здесь.
[045] Раскрываемые способы могут также осуществляться с использованием специализированных вычислительных аппаратных средств, сконфигурированных для выполнения любого из раскрываемых способов. Например, раскрываемые способы могут осуществляться интегральной цепью (например, ASIC (такой как процессор цифровых сигналов ("DSP") ASIC, графический обрабатывающий элемент ("GPU") или программируемое логическое устройство ("PLD"), такое как программируемая пользователем вентильная матрица ("FPGA")), специально спроектированной или сконфигурированной для осуществления любого из раскрываемых способов.
[046] В целях представления подробное описание использует такие термины, как "определять" и "использовать", для описания компьютерных операций в вычислительной системе. Эти термины являются абстракциями высокого уровня для операций, выполняемых компьютером, и не должны быть спутаны с действиями, выполняемыми человеком. Фактические компьютерные операции, соответствующие этим терминам, варьируются в зависимости от осуществления.
II. Примерные сетевые среды.
[047] Фиг.2a и 2b изображают примерные сетевые среды (201, 202), которые включают в себя кодеры (220) видео и декодеры (270) видео. Кодеры (220) и декодеры (270) соединены по сети (250) с использованием надлежащего протокола связи. Сеть (250) может включать в себя Интернет или другую компьютерную сеть.
[048] В сетевой среде (201), изображенной на фиг.2a, каждый инструмент (210) связи в реальном времени ("RTC") включает в себя оба из кодера (220) и декодера (270) для двунаправленной связи. Заданный кодер (220) может производить выходной сигнал, согласующийся с вариацией или расширением стандарта HEVC (также известного как H.265), стандарта SMPTE 421M, стандарта ISO-IEC 14496-10 (также известного как H.264 или AVC), другого стандарта или патентованного формата, причем соответствующий декодер (270) принимает закодированные данные от кодера (220). Двунаправленная связь может быть частью видеоконференции, видеотелефонного вызова или другого сценария связи с двумя сторонами или с множеством сторон. Хотя сетевая среда (201) на фиг.2a включает в себя два инструмента (210) связи в реальном времени, сетевая среда (201) может вместо этого включать в себя три или более инструмента (210) связи в реальном времени, которые участвуют в связи с множеством сторон.
[049] Инструмент (210) связи в реальном времени управляет кодированием посредством кодера (220). Фиг.3 изображает примерную систему (300) кодера, которая может быть включена в инструмент (210) связи в реальном времени. В качестве альтернативы, инструмент (210) связи в реальном времени использует другую систему кодера. Инструмент (210) связи в реальном времени также управляет декодированием посредством декодера (270). Фиг.4 изображает примерную систему (400) декодера, которая может быть включена в инструмент (210) связи в реальном времени. В качестве альтернативы, инструмент (210) связи в реальном времени использует другую систему декодера.
[050] В сетевой среде (202), изображенной на фиг.2b, инструмент (212) кодирования включает в себя кодер (220), который кодирует видео для доставки к множеству инструментов (214) проигрывания, которые включают в себя декодеры (270). Однонаправленная связь может быть обеспечена для системы видеонаблюдения, системы наблюдения на основе веб-камеры, представления конференции удаленного настольного компьютера или других сценариев, в которых видео кодируется и посылается от одного местоположения к одному или нескольким другим местоположениям. Хотя сетевая среда (202) на фиг.2b включает в себя два инструмента (214) проигрывания, сетевая среда (202) может включать в себя больше или меньше инструментов (214) проигрывания. В общем, инструмент (214) проигрывания связывается с инструментом кодирования (212) для определения потока видео для инструмента (214) проигрывания для приема. Инструмент (214) проигрывания принимает поток, буферизует принятые закодированные данные на надлежащий период и начинает декодирование и проигрывание.
[051] Фиг.3 изображает примерную систему (300) кодера, которая может быть включена в инструмент (212) кодирования. В качестве альтернативы, инструмент (212) кодирования использует другую систему кодера. Инструмент (212) кодирования может также включать в себя логику управления на стороне сервера для руководства соединениями с одним или несколькими инструментами (214) проигрывания. Фиг.4 изображает примерную систему (400) декодера, которая может быть включена в инструмент (214) проигрывания. В качестве альтернативы, инструмент (214) проигрывания использует другую систему декодера. Инструмент (214) проигрывания может также включать в себя логику управления на стороне сервера для руководства соединениями с инструментом (212) кодирования.
III. Примерные системы кодера.
[052] Фиг.3 изображает структурную схему примерной системы (300) кодера, в сочетании с которой некоторые описанные варианты осуществления могут осуществляться. Система (300) кодера может быть универсальным инструментом кодирования с возможностью операции в любом из множества режимов кодирования, таких как режим кодирования с малой задержкой для связи в реальном времени, режим перекодирования и режим кодирования с более высокой задержкой, чтобы производить мультимедиа для проигрывания из файла или потока, или она может быть специализированным инструментом кодирования, выполненным с возможностью одного такого режима кодирования. Система (300) кодера может осуществляться в качестве модуля операционной системы в составе библиотеки приложения или в качестве самостоятельного приложения. В общем, система (300) кодера принимает последовательность видеокадров (311) источника от источника (310) видео и производит закодированные данные в качестве выводимых в канал (390). Закодированные данные, выводимые в канал, могут включать в себя содержимое, закодированное с использованием нововведений в предсказании BV, как описано здесь.
[053] Источником (310) видео может быть камера, карта тюнера, носители памяти или другой цифровой источник видео. Источник (310) видео производит последовательность видеокадров со скоростью кадров, например, 30 кадров в секунду. Используемый здесь термин "кадр" в общем случае ссылается на кодированные или воспроизведенные данные изображения источника. Для видео прогрессивной развертки, кадр является кадром видео прогрессивной развертки. Для чересстрочного видео, в примерных вариантах осуществления, из кадра чересстрочного видео устраняется чересстрочная развертка перед кодированием. В качестве альтернативы, два дополняющих друг друга поля чересстрочного видео кодируются вместе в качестве одного видеокадра или кодируются в качестве двух отдельно закодированных полей. Помимо указания видеокадра прогрессивной развертки или видеокадра чересстрочной развертки, термин "кадр" или "картинка" могут указывать одно непарное поле видео, дополняющую пару полей видео, плоскость объекта видео, которая представляет объект видео в некоторое заданное время, или область, представляющую интерес в большем изображении. Плоскость или область объекта видео могут входить в состав большего изображения, которое включает в себя множество объектов или областей сцены.
[054] Поступающий кадр (311) источника сохраняется во временной области (320) хранения памяти кадров источника, которая включает в себя множество областей (321, 322,..., 32n) хранения буфера кадров. Буфер (321, 322 и т. д.) кадров содержит один кадр источника в области (320) хранения кадра источника. После того как один или несколько из кадров (311) источника были сохранены в буферах (321, 322 и т. д.) кадров, средство (330) выбора кадра выбирает отдельный кадр источника из области (320) хранения кадра источника. Порядок, в котором кадры выбираются средством (330) выбора кадра для ввода в кодер (340), может отличаться от порядка, в котором кадры производятся источником (310) видео, например, кодирование некоторых кадров может быть задержано в порядке с той целью, чтобы обеспечить возможность некоторым последующим кадрам быть закодированными раньше и чтобы, таким образом, обеспечить временно обратное предсказание. Перед кодером (340) система (300) кодера может включать в себя препроцессор (не показан), который выполняет предварительную обработку (например, фильтрацию) выбранного кадра (331) перед кодированием. Предварительная обработка может включать в себя преобразование пространства цветов в первичные (например, яркость) и вторичные (например, различия цветности к красному и к синему) компоненты и обработку повторной дискретизации (например, для уменьшения пространственного разрешения компонентов цветности) для кодирования. Обычно перед кодированием видео преобразовано в пространство цветов, такое как YUV, в котором значения выборки компонента яркости (Y) представляют значения светлоты или интенсивности, а значения выборки компонентов цветности (U, V) представляют значения цветовых различий. Значения выборки цветности могут быть дискретизованы с понижением в более низкую частоту дискретизации по цветности (например, для формата YUV 4:2:0), или значения выборки цветности могут иметь то же самое разрешение, что и значения выборки яркости (например, для формата YUV 4:4:4). Или видео может быть закодировано в другом формате (например, формате RGB 4:4:4).
[055] Кодер (340) кодирует выбранный кадр (331), чтобы произвести кодированный кадр (341), и также производит сигналы (342) управляющей операции руководства памятью ("MMCO") или информацию набора опорных картинок ("RPS"). Если текущий кадр не является первым кадром, который был закодирован, при выполнении своего процесса кодирования кодер (340) может использовать один или несколько ранее закодированных/декодированных кадров (369), которые были сохранены во временной области (360) хранения памяти декодированных кадров. Такие сохраненные декодированные кадры (369) используются в качестве опорных кадров для межкадрового предсказания содержимого текущего кадра (331) источника. Информация (342) MMCO/RPS указывает декодеру, какие воспроизведенные кадры могут быть использованы в качестве опорных кадров и, таким образом, должны быть сохранены в области хранения кадра.
[056] В общем случае, кодер (340) включает в себя множество модулей кодирования, которые выполняют задачи кодирования, такие как разделение на сегменты (плитки), оценка внутреннего предсказания и предсказание, оценка и компенсация движения, частотные преобразования, квантование и энтропийное кодирование. Точные операции, выполняемые кодером (340), могут варьироваться в зависимости от формата сжатия. Формат выходных закодированных данных может быть вариацией или расширением формата HEVC (H.265), формата Windows Media Video, формата VC-1, формата MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формата H.26x (например, H.261, H.262, H.263, H.264) или другого формата.
[057] Кодер (340) может разделять кадр на множество сегментов одного и того же размера или различных размеров. Например, кодер (340) разбивает кадр по строкам сегментов и столбцам сегментов, которые, с границами кадра, определяют горизонтальные и вертикальные границы сегментов внутри кадра, где каждый сегмент является прямоугольной областью. Сегменты часто используются для обеспечения опций для параллельной обработки. Кадр может также быть организован в качестве одного или нескольких секторов (слайсов), где сектором может быть весь кадр или область кадра. Сектор может быть декодирован независимо от других секторов в кадре, что улучшает устойчивость против ошибок. Содержимое сектора или сегмента дополнительно разделяется на блоки или другие наборы выборок в целях кодирования и декодирования.
[058] Для синтаксиса согласно стандарту HEVC кодер разбивает содержимое кадра (или сектор, или сегмент) на элементы дерева кодирования. Элемент дерева кодирования ("CTU") включает в себя значения выборки яркости, организованные в виде блока дерева кодирования ("CTB") яркости, и соответствующие значения выборки цветности, организованные в виде двух CTB цветности. Размер CTU (и его CTB) выбирается кодером и может быть, например, 64×64, 32×32 или 16×16 значений выборки. CTU включает в себя один или несколько элементов кодирования. Элемент кодирования ("CU") имеет блок кодирования ("CB") яркости и два соответствующих CB цветности. Например, CTU с CTB яркости 64×64 и двумя CTB цветности 64×64 (формат YUV 4:4:4) может быть разбит на четыре CU, причем каждый CU включает в себя CB яркости 32×32 и два CB цветности 32×32, и причем каждый CU, возможно, разбивается дополнительно на меньшие CU. Либо, в качестве другого примера, CTU с CTB яркости 64×64 и двумя CTB цветности 32×32 (формат YUV 4:2:0) может быть разбит на четыре CU, причем каждый CU включает в себя CB яркости 32×32 и два CB цветности 16×16, и причем каждый CU, возможно, разбивается дополнительно на меньшие CU. Наименьший допустимый размер CU (например, 8×8, 16×16) может быть просигнализирован в битовом потоке.
[059] В общем случае, CU имеет режим предсказания, такой как промежуточный или внутренний. CU включает в себя один или несколько элементов предсказания в целях сигнализирования информации предсказания (такой как подробности режима предсказания, значения смещений и т. д.) и/или обработки предсказания. Элемент предсказания ("PU") имеет блок предсказания ("PB") яркости и два PB цветности. Для внутренне предсказанного CU, PU имеет тот же самый размер, что и CU, если CU не имеет наименьшего размера (например, 8×8). В таком случае, CU может быть разбит на четыре меньших PU (например, 4×4 каждый, если наименьший размер CU равен 8×8) или PU может иметь наименьший размер CU, как указано синтаксическим элементом для CU. CU также имеет один или несколько элементов преобразования в целях остаточного кодирования/декодирования, где элемент преобразования ("TU") имеет блок преобразования ("TB") и два TB цветности. PU во внутренне предсказанном CU может содержать единственный TU (равный по размеру PU) или множество TU. Используемый здесь термин "блок" может указывать CB, PB, TB или другие наборы значений выборки в зависимости от контекста. Кодер принимает решение, как подразделять видео на CTU, CU, PU, TU и т. д.
[060] Возвращаясь к фиг.3, кодер представляет внутренне кодированный блок кадра (331) источника в плане предсказания из других, ранее воспроизведенных значений выборки в кадре (331). Для предсказания внутри BC средство оценки внутри картинки оценивает смещение блока относительно других, ранее воспроизведенных значений выборки. Опорная область внутрикадрового предсказания является областью выборок в кадре, которые используются для генерирования значений BC-предсказания для блока. Область внутрикадрового предсказания может быть указана значением блока вектора ("BV") (определенным в оценке BV). Для внутреннего пространственного предсказания для блока средство оценки внутри картинки оценивает экстраполяцию соседних воспроизведенных значений выборки в блок. Средство оценки внутри картинки может выводить информацию предсказания (такую как значения BV для предсказания внутри BC или режима предсказания (направления) для внутреннего пространственного предсказания), которая энтропийно кодируется. Элемент предсказания внутрикадрового предсказания применяет информацию предсказания для определения значений внутреннего предсказания.
[061] Кодер (340) представляет межкадровый кодированный предсказанный блок кадра (331) источника в плане предсказания из опорных кадров. Средство оценки движения оценивает движение блока в отношении одного или нескольких опорных кадров (369). Когда множество опорных кадров используются, множество опорных кадров может быть от различных временных направлений или одного и того же временного направления. Опорная область предсказания с компенсацией движения является областью выборок в опорном кадре(-ах), которые используются для генерирования значений предсказания с компенсацией движения для блока выборок текущего кадра. Средство оценки движения выводит информацию движения, такую как информация вектора движения ("MV"), которая энтропийно кодируется. Компенсатор движения применяет MV к опорным кадрам (369) для определения значений предсказания с компенсацией движения для межкадрового предсказания.
[062] Кодер может определять различия (если имеются) между значениями предсказания блока (внутри или между) и соответствующими исходными значениями. Эти остаточные значения предсказания дополнительно кодируются с использованием частотного преобразования, квантования и энтропийного кодирования. Например, кодер (340) устанавливает значения для параметра квантования ("QP") для картинки, сегмента, сектора и/или другой части видео и квантует коэффициенты преобразования соответственно. Энтропийное средство кодирования кодера (340) сжимает квантованные значения коэффициентов преобразования, а также некоторую побочную информацию (например, информацию MV, значения индекса для элементов предсказания BV, дифференциалы BV, значения QP, решения о режиме, выборы параметров). Типичные методики энтропийного кодирования включают в себя экспоненциальное кодирование Голомба, кодирование Голомба-Райса, арифметическое кодирование, дифференциальное кодирование, кодирование Хаффмана, кодирование длин серий, кодирование из переменной длины в переменную длину ("V2V"), кодирование из переменной длины в фиксированную длину ("V2F"), кодирование Лемпеля-Зива ("LZ"), кодирование словаря, разделительное энтропийное кодирование интервала вероятности ("PIPE") и комбинации вышеперечисленного. Энтропийный кодер может использовать различные методики кодирования для различных видов информации, может применять множество методик в комбинации (например, путем применения кодирования Голомба-Райса, за которым следует арифметическое кодирование) и может выбирать из множества кодовых таблиц внутри конкретной методики кодирования.
[063] Адаптивный деблокинг-фильтр включается в цикл компенсации движения в кодере (340) для сглаживания неоднородностей на строках и/или столбцах границ блоков в декодированном кадре. Другая фильтрация (такая как фильтрация подавления реверберации, адаптивная контурная фильтрация ("ALF"), или адаптивная к выборке фильтрация смещения ("SAO"); не показаны) может в качестве альтернативы или дополнения применяться в качестве операций петлевой фильтрации.
[064] Кодированные кадры (341) и информация (342) MMCO/RPS (или информация, эквивалентная информации (342) MMCO/RPS, поскольку взаимозависимости и структуры упорядочивания для кадров уже известны в кодере (340)) обрабатываются посредством эмулятора (350) процесса декодирования. Эмулятор (350) процесса декодирования осуществляет некоторые из функциональных возможностей декодера, например задачи декодирования для воспроизведения опорных кадров. Способом, соответствующим информации (342) MMCO/RPS, эмулятор (350) процессов декодирования определяет, должен ли заданный кодированный кадр (341) быть воспроизведен и сохранен для использования в качестве опорного кадра в межкадровом предсказании последующих кадров, которые должны быть закодированы. Если кодированный кадр (341) должен быть сохранен, эмулятор (350) процесса декодирования моделирует процесс декодирования, который проводился бы декодером, который принимает кодированный кадр (341) и производит соответствующий декодированный кадр (351). Таким образом, когда кодер (340) использовал декодированный кадр(ы) (369), который был сохранен в области (360) хранения декодированного кадра, эмулятор (350) процесса декодирования также использует декодированный кадр(ы) (369) из области (360) хранения в составе процесса декодирования.
[065] Временная область (360) хранения памяти декодированных кадров включает в себя множество областей хранения буфера (361, 362,..., 36n) кадров. Способом в соответствии с информацией (342) MMCO/RPS эмулятор (350) процесса декодирования управляет содержимым области (360) хранения для того, чтобы определять любые буферы (361, 362 и т. д.) кадров с кадрами, которые больше не необходимы кодеру (340), для использования в качестве опорных кадров. После моделирования процесса декодирования эмулятор (350) процесса декодирования сохраняет заново декодированные кадры (351) в буфере (361, 362 и т. д.) кадров, который был идентифицирован таким образом.
[066] Кодированные кадры (341) и информация (342) MMCO/RPS буферизуются во временной области (370) кодированных данных. Кодированные данные, которые агрегируются в области (370) кодированных данных, содержат, в составе синтаксиса элементарного битового потока кодированного видео, закодированные данные для одной или нескольких картинок. Кодированные данные, которые агрегируются в области (370) кодированных данных, могут также включать в себя метаданные мультимедиа, относящиеся к кодированным видеоданным (например, в виде одного или нескольких параметров в одном или нескольких сообщениях вспомогательной информации улучшения ("SEI") или сообщениях информации применимости видео ("VUI")).
[067] Агрегированные данные (371) из временной области (370) кодированных данных обрабатываются кодером (380) канала. Кодер (380) канала может объединять в пакеты и/или мультиплексировать агрегированные данные для передачи или хранения в качестве потока мультимедиа (например, согласно формату потока программы мультимедиа или формату транспортного потока, такому как ITU-T H.222.0 | ISO/IEC 13818-1, или формату транспортного протокола реального времени Интернета, такому как IETF RFC 3550), в случае чего кодер (380) канала может добавлять синтаксические элементы как часть синтаксиса потока передачи мультимедиа. Либо кодер (380) канала может организовывать агрегированные данные для хранения в качестве файла (например, согласно формату контейнера мультимедиа, такому как ISO/IEC 14496-12), в случае чего кодер (380) канала может добавлять синтаксические элементы как часть синтаксиса файла хранения мультимедиа. Либо, в более общем случае, кодер (380) канала может осуществлять один или несколько протоколов мультиплексирования системы мультимедиа или транспортных протоколов, в случае чего кодер (380) канала может добавлять синтаксические элементы как часть синтаксиса протокола(-ов). Кодер (380) канала обеспечивает выходной сигнал каналу (390), который представляет хранилище, соединение связи или другой канал для выходного сигнала. Кодер (380) канала или канал (390) могут также включать в себя другие элементы (не показаны), например, для кодирования с прямым исправлением ошибок ("FEC") и модуляции аналогового сигнала.
IV. Примерные системы кодера.
[068] Фиг.4 изображает структурную схему примерной системы (400) декодера, в сочетании с которой некоторые описанные варианты осуществления могут осуществляться. Система (400) декодера может быть универсальным инструментом декодирования с возможностью оперирования в любом из множества режимов декодирования, таких как режим декодирования с малой задержкой для связи в реальном времени и режим декодирования с более высокой задержкой для проигрывания мультимедиа из файла или потока, или она может быть специализированным инструментом декодирования, выполненным с возможностью одного такого режима декодирования. Система (400) декодера может осуществляться в качестве модуля операционной системы, в составе библиотеки приложения или в качестве самостоятельного приложения. В общем, система (400) декодера принимает кодированные данные из канала (410) и производит воспроизведенные кадры в качестве выходного сигнала для места (490) назначения вывода. Кодированные данные могут включать в себя содержимое, которое было закодировано с использованием нововведений в предсказании BV, как описано здесь.
[069] Система (400) декодера включает в себя канал (410), который может представлять хранилище, соединение связи или другой канал для кодированных данных в качестве входных. Канал (410) производит кодированные данные, которые было кодированы в канале. Декодер (420) канала может обрабатывать кодированные данные. Например, декодер (420) канала распаковывает из пакетов и/или демультиплексирует данные, которые были агрегированы для передачи или хранения в виде потока мультимедиа (например, согласно формату потока программы мультимедиа или транспортного потока, такому как ITU-T H.222.0 | ISO/IEC 13818-1, или формату транспортного протокола реального времени Интернета, такому как IETF RFC 3550), в случае чего декодер (420) канала может синтаксически анализировать синтаксические элементы, добавленные в составе синтаксиса потока передачи мультимедиа. Либо декодер (420) канала отделяет кодированные видеоданные, которые были агрегированы для хранения, в качестве файла (например, согласно формату контейнера мультимедиа, такому как ISO/IEC 14496-12), в случае чего декодер (420) канала может синтаксически анализировать синтаксические элементы, добавленные в составе синтаксиса файла хранения мультимедиа. Либо, в более общем случае, декодер (420) канала может осуществлять один или несколько протоколов демультиплексирования системы мультимедиа или транспортных протоколов, в случае чего декодер (420) канала может синтаксически анализировать синтаксические элементы, добавленные в составе синтаксиса протокола(-ов). Канал (410) или декодер (420) канала могут также включать в себя другие элементы (не показаны), например, для декодирования FEC и демодуляции аналогового сигнала.
[070] Кодированные данные (421), которые выводятся из декодера (420) канала, сохраняются во временной области (430) кодированных данных, пока не принято достаточное количество таких данных. Кодированные данные (421) включают в себя кодированные кадры (431) и информацию (432) MMCO/RPS. Кодированные данные (421) в области (430) кодированных данных содержат, в составе синтаксиса элементарного битового потока кодированного видео, кодированные данные для одной или нескольких картинок. Кодированные данные (421) в области (430) кодированных данных могут также включать в себя метаданные мультимедиа, относящиеся к закодированным видеоданным (например, в виде одного или нескольких параметров в одном или нескольких сообщениях SEI или сообщениях VUI).
[071] В общем случае, область (430) кодированных данных временно хранит кодированные данные (421), пока такие кодированные данные (421) не используются декодером (450). В этот момент кодированные данные для кодированного кадра (431) и информация (432) MMCO/RPS переносятся из области (430) кодированных данных к декодеру (450). Пока декодирование продолжается, новые кодированные данные добавляются в область (430) кодированных данных и самые старые кодированные данные, остающиеся в области (430) кодированных данных, переносятся к декодеру (450).
[072] Декодер (450) декодирует кодированный кадр (431), чтобы произвести соответствующий декодированный кадр (451). Если это уместно, при выполнении своего процесса декодирования декодер (450) может использовать один или несколько ранее декодированных кадров (469) в качестве опорных кадров для межкадрового предсказания. Декодер (450) считывает такие ранее декодированные кадры (469) из временной области (460) хранения памяти декодированных кадров. В общем случае, декодер (450) включает в себя множество модулей декодирования, которые выполняют задачи декодирования, такие как энтропийное декодирование, внутрикадровое предсказание, межкадровое предсказание с компенсацией движения, обратное квантование, обратные частные преобразования и объединение сегментов. Точные операции, выполняемые декодером (450), могут варьироваться в зависимости от формата сжатия.
[073] Например, декодер (450) принимает закодированные данные для сжатого кадра или последовательности кадров и производит выходной сигнал, включающий в себя декодированный кадр (451). В декодере (450) буфер принимает закодированные данные для сжатого кадра и, в надлежащее время, делает принятые закодированные данные доступными для энтропийного декодера. Энтропийный декодер энтропийно декодирует энтропийно кодированные квантованные данные, а также энтропийно кодированную побочную информацию, обычно применяя обратную операцию от энтропийного кодирования, выполняемого в кодере. Компенсатор движения применяет информацию движения к одному или нескольким опорным кадрам для формирования значений предсказания с компенсируемым движением для любых промежуточно кодированных блоков воспроизводимого кадра. Модуль внутрикадрового предсказания может пространственно предсказывать значения выборки текущего блока из соседних, ранее воспроизведенных значений выборки или, для предсказания внутри BC, предсказывать значения выборки текущего блока с использованием ранее воспроизведенных значений выборки области внутрикадрового предсказания в кадре. Область внутрикадрового предсказания может быть указана значением BV. Декодер (450) также воспроизводит остаточные значения предсказания. Обратный квантователь обратно квантует энтропийно декодированные данные. Например, декодер (450) устанавливает значения для QP для картинки, сегмента, сектора и/или другой части видео на основе синтаксических элементов в битовом потоке и обратно квантует коэффициенты преобразования, соответственно. Обратный частотный преобразователь преобразует квантованные данные частотной области в данные пространственной области. Для межкадровым образом предсказанного блока декодер (450) комбинирует воспроизведенные остаточные значения предсказания со значениями предсказания с компенсируемым движением. Декодер (450) может подобным образом комбинировать остаточные значения предсказания со значениями предсказания из внутреннего предсказания. Адаптивный деблокинг-фильтр включается в цикл компенсации движения в видеодекодере (450), чтобы сгладить неоднородность на строках и/или столбцах границ блоков в декодированном кадре (451). Другая фильтрация (такая как фильтрация подавления ревербераций, ALF или SAO-фильтрация; не показаны) может в качестве альтернативы или дополнения применяться в качестве операций фильтрации внутри цикла.
[074] Временная область (460) хранения памяти декодированных кадров включает в себя множество областей (461, 462,..., 46n) хранения буфера кадров. Область (460) хранения декодированного кадра является примером буфера декодированных картинок. Декодер (450) использует информацию (432) MMCO/RPS для определения буфера (461, 462 и т. д.) кадров, в котором он может сохранить декодированный кадр (451). Декодер (450) сохраняет декодированный кадр (451) в этом буфере кадров.
[075] Секвенсор (480) вывода определяет, когда следующий кадр, который должен быть произведен в порядке вывода, доступен в области (460) хранения декодированного кадра. Когда следующий кадр (481), который должен быть произведен в порядке вывода, доступен в области (460) хранения декодированного кадра, он считывается секвенсором (480) вывода и выводится к пункту (490) назначения вывода (например, дисплею). В общем, порядок, в котором кадры выводятся из области (460) хранения декодированного кадра секвенсором (480) вывода, может отличаться от порядка, в котором кадры декодируются декодером (450).
V. Примерные видеокодеры.
[076] Фиг.5a и 5b изображают структурную схему обобщенного кодера (500) видео, в сочетании с которым некоторые описанные варианты осуществления могут осуществляться. Кодер (500) принимает последовательность картинок видео, включающую в себя текущую картинку, в качестве входного видеосигнала (505) и производит закодированные данные в битовом потоке (595) кодированного видео в качестве выходных данных.
[077] Кодер (500) основывается на блоках и использует формат блоков, который зависит от осуществления. Блоки могут дополнительно подразделяться на различных этапах, например, на этапах предсказания, частотного преобразования и/или энтропийного кодирования. Например, картинка может разделяться на блоки 64×64, блоки 32×32 или блоки 16×16, которые могут в свою очередь разделяться на меньшие блоки значений выборки для кодирования и декодирования. В осуществлениях кодирования для стандарта HEVC кодер разделяет картинку на CTU (CTB), CU (CB), PU (PB) и TU (TB).
[078] Кодер (500) сжимает картинки с использованием кодирования внутри картинки и/или кодирования между картинками. Многие из компонентов кодера (500) используются как для кодирования внутри картинки, так и для кодирования между картинками. Точные операции, выполняемые этими компонентами, могут варьироваться в зависимости от типа сжимаемой информации.
[079] Модуль (510) сегментирования опционально разделяет картинку на множество сегментов одного и того же размера или различных размеров. Например, модуль (510) сегментирования разбивает картинку по строкам сегментов и столбцам сегментов, которые, с границами картинок, определяют горизонтальные и вертикальные границы сегментов внутри картинки, где каждый сегмент является прямоугольной областью.
[080] Общее управление (520) кодированием принимает картинки для входного видеосигнала (505), а также обратную связь (не показана) от различных модулей кодера (500). В общем, общее управление (520) кодированием обеспечивает управляющие сигналы (не показаны) другим модулям (таким как модуль (510) сегментирования, преобразователь/средство масштабирования/квантователь (530), средство масштабирования/обратный преобразователь (535), средство (540) оценки внутри картинки, средство (550) оценки движения и переключатель "внутри/между") для установления и изменения параметров кодирования в течение кодирования. В частности, общее управление (520) кодированием может принимать решение, использовать ли и как использовать аспекты предсказания BV (например, режим пропуска с предсказанными значениями BV, режим объединения для предсказания BV) в течение кодирования. Общее управление (520) кодированием может также оценивать промежуточные результаты в течение кодирования, например, выполняя анализ отношения скорости к искажению. Общее управление (520) кодированием производит данные (522) общего управления, которые указывают решения, принятые в течение кодирования, так, чтобы соответствующий декодер мог принимать непротиворечивые решения. Данные (522) общего управления обеспечиваются средству форматирования заголовка/энтропийному кодеру (590).
[081] Если текущая картинка предсказывается с использованием предсказания между картинками, средство (550) оценки движения оценивает движение блоков значений выборки текущей картинки входного видеосигнала (505) в отношении одной или нескольких опорных картинок. Буфер (570) декодированных картинок буферизует одну или несколько воспроизведенных ранее кодированных картинок для использования в качестве опорных картинок. Когда множество опорных картинок используются, множество опорных картинок может быть с различных временных направлений или с одного и того же временного направления. Средство (550) оценки движения производит в качестве побочной информации данные (552) движения, такие как данные MV, значения индексов режима объединения и данные выбора опорной картинки. Данные (552) движения обеспечиваются средству форматирования заголовка/энтропийному кодеру (590), а также компенсатору (555) движения.
[082] Компенсатор (555) движения применяет MV к воспроизведенной опорной картинке(-ам) из буфера (570) декодированных картинок. Компенсатор движения (555) производит предсказания с компенсацией движения для текущей картинки.
[083] В отдельном пути внутри кодера (500) средство (540) оценки внутри картинки определяет, как выполнять предсказание внутри картинки для блоков значений выборки текущей картинки входного видеосигнала (505). Текущая картинка может быть целиком или частично кодирована с использованием кодирования внутри картинки. С использованием значений воспроизведения (538) текущей картинки, для внутреннего пространственного предсказания, средство (540) оценки внутри картинки определяет, как пространственно предсказать значения выборки текущего блока текущей картинки из соседних, ранее воспроизведенных значений выборки текущей картинки. Либо для предсказания внутри BC с использованием значений BV, средство (540) оценки внутри картинки оценивает смещение значений выборки текущего блока к различным областям-кандидатам внутри текущей картинки.
[084] Средство (540) оценки внутри картинки производит в качестве побочной информации данные (542) внутреннего предсказания, такие как информация, указывающая, использует ли внутреннее предсказание пространственное предсказание или же предсказание внутри BC (например, флаговое значение для каждого внутреннего блока), направление режима предсказания (для внутреннего пространственного предсказания) и значения BV (для предсказания внутри BC). Данные (542) внутреннего предсказания обеспечиваются средству форматирования заголовка/энтропийному кодеру (590), а также элементу (545) предсказания внутри картинки.
[085] Согласно данным (542) внутреннего предсказания, элемент (545) предсказания внутри картинки пространственно предсказывает значения выборки текущего блока текущей картинки из соседних, ранее воспроизведенных значений выборки текущей картинки. Либо, для предсказания внутри BC, элемент (545) предсказания внутри картинки предсказывает значения выборки текущего блока с использованием ранее воспроизведенных значений выборки области внутрикадрового предсказания, которая указывается значением BV для текущего блока. В некоторых случаях (например, для блока режима пропуска или блока режима объединения), значение BV может быть элементом предсказания BV (предсказанное значение BV). Когда данные цветности для картинки имеют то же самое разрешение, что и данные яркости (например, когда формат является форматом YUV 4:4:4 или форматом RGB 4:4:4), значение BV, которое применяется для блока цветности, может быть тем же самым, что и значение BV, применяемое для блока яркости. С другой стороны, когда данные цветности для картинки имеют уменьшенное разрешение по отношению к данным яркости (например, когда формат является форматом YUV 4:2:0), значение BV, которое применяется для блока цветности, может быть уменьшено по масштабу и, возможно, округлено для регулирования в отношении разницы в разрешении цветности (например, путем разделения вертикального и горизонтального компонентов значения BV на два и отбрасывания дробной части или округления их до целочисленных значений).
[086] Переключатель "внутри/между" выбирает значения предсказания с компенсацией движения или предсказания внутри картинки для использования в качестве предсказания (558) для заданного блока. Различие (если имеется) между блоком предсказания (558) и соответствующей частью исходной текущей картинки входного видеосигнала (505) обеспечивает значения остатка (518), для блока режима без пропуска. В течение воспроизведения текущей картинки, для блока режима без пропуска, воспроизведенные остаточные значения комбинируются с предсказанием (558), чтобы произвести воспроизведение (538) исходного содержимого из видеосигнала (505). В сжатии с потерями, однако, некоторая информация все равно теряется из видеосигнала (505).
[087] В преобразователе/средстве масштабирования/квантователе (530) частотный преобразователь преобразует видеоинформацию пространственной области в данные частотной области (т. е. спектральные данные, данные преобразования). Для кодирования видео на основе блоков частотный преобразователь применяет дискретное косинусное преобразование ("DCT"), его целочисленное приближение или другой тип прямого преобразования блоков (например, дискретное синусное преобразование или его целочисленное приближение) в блоки остаточных данных предсказания (или данных значения выборки, если предсказание (558) недействительно), производя блоки коэффициентов частотного преобразования. Кодер (500) может также иметь возможность указывать, что такой этап преобразования пропускается. Средство масштабирования/квантователь масштабирует и квантует коэффициенты преобразования. Например, квантователь применяет скалярное квантование зоны нечувствительности к данным частотной области с размером этапа квантования, который варьируется от кадра к кадру, от сегмента к сегменту, от сектора к сектору, от блока к блоку, на основе частоты или на другой основе. Данные (532) квантованного коэффициента преобразования обеспечиваются средству форматирования заголовка/энтропийному кодеру (590).
[088] В средстве масштабирования/обратном преобразователе (535) средство масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование над квантованными коэффициентами преобразования. Обратный частотный преобразователь выполняет обратное частотное преобразование, производя блоки воспроизведенных остаточных значений предсказания или значений выборки. Для блока режима без пропуска кодер (500) комбинирует воспроизведенные остаточные значения со значениями (558) предсказания (например, значениями предсказания с компенсацией движения, значениями предсказания внутри картинки) для формирования воспроизведения (538). Для блока режима пропуска кодер (500) использует значения предсказания (558) в качестве воспроизведения (538).
[089] Для предсказания внутри картинки, значения воспроизведения (538) могут подаваться обратно средству (540) оценки внутри картинки и элементу (545) предсказания внутри картинки. Кроме того, значения воспроизведения (538) могут быть использованы для предсказания с компенсацией движения последующих картинок. Значения воспроизведения (538) могут дополнительно фильтроваться. Управление (560) фильтрацией определяет, как выполнять фильтрацию с устранением блочности (деблокинг-фильтрацию) и фильтрацию SAO над значениями воспроизведения (538), для заданной картинки видеосигнала (505). Управление (560) фильтрацией производит данные (562) управления фильтра, которые обеспечиваются средству форматирования заголовка/энтропийному кодеру (590) и средству объединения/фильтру(-ам) (565).
[090] В средстве объединения/фильтре(-ах) (565) кодер (500) объединяет содержимое от различных сегментов в воспроизведенную версию картинки. Кодер (500) выборочно выполняет деблокинг-фильтрацию и SAO-фильтрацию согласно данным (562) управления фильтра, для того, чтобы адаптивно сгладить неоднородности на границах в кадрах. Другая фильтрация (такая как фильтрация подавления реверберации или ALF; не показана) может применяться в качестве альтернативы или дополнения. Границы сегментов могут фильтроваться выборочно или не фильтроваться вообще в зависимости от установок кодера (500), и кодер (500) может обеспечивать синтаксис внутри кодированного битового потока для указания, была ли применена такая фильтрация или нет. Буфер (570) декодированных картинок буферизует воспроизведенную текущую картинку для использования в последующем предсказании с компенсацией движения.
[091] Средство форматирования заголовка/энтропийный кодер (590) форматирует и/или энтропийно кодирует общие управляющие данные (522), данные (532) квантованного коэффициента преобразования, данные (542) внутреннего предсказания, данные (552) движения и данные (562) управления фильтра. Для данных (542) внутреннего предсказания средство форматирования заголовка/энтропийный кодер (590) выбирает и энтропийно кодирует значения индекса элемента предсказания BV (для предсказания внутри BC), например, с использованием контекстно-адаптивного двоичного арифметического кодирования. Для блоков режима без пропуска, режима без объединения средство форматирования заголовка/энтропийный кодер (590) определяет дифференциалы BV для значений BV (по отношению к элементам предсказания BV для значений BV), затем энтропийно кодирует дифференциалы BV, например, с использованием контекстно-адаптивного двоичного арифметического кодирования. Для блока режима пропуска или блока режима объединения дифференциал BV опускается.
[092] Средство форматирования заголовка/энтропийный кодер (590) обеспечивает закодированные данные в битовом потоке (595) кодированного видео. Формат битового потока (595) кодированного видео может быть вариацией или расширением формата HEVC, формата Windows Media Video, формата VC-1, формата MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формата H.26x (например, H.261, H.262, H.263, H.264) или другого формата.
[093] В зависимости от осуществления и желаемого типа сжатия модули кодера могут добавляться, опускаться, разбиваться на множество модулей, комбинироваться с другими модулями и/или замещаться подобными модулями. В альтернативных вариантах осуществления кодеры с другими модулями и/или другими конфигурациями модулей выполняют одну или несколько из описанных методик. Конкретные варианты осуществления кодеров обычно используют вариацию или дополненную версию кодера (500). Отношения, показанные между модулями внутри кодера (500), указывают общие потоки информации в кодере; другие отношения не показаны в целях упрощения.
VI. Примерные видеодекодеры.
[094] Фиг.6 изображает структурную схему обобщенного декодера (600), в сочетании с которым некоторые описанные варианты осуществления могут осуществляться. Декодер (600) принимает закодированные данные в битовом потоке (605) кодированного видео и производит выходной сигнал, включающий в себя картинки для воспроизведенного видео (695). Формат битового потока (605) кодированного видео может быть вариацией или расширением формата HEVC, формата Windows Media Video, формата VC-1, формата MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формата H.26x (например, H.261, H.262, H.263, H.264) или другого формата.
[095] Декодер (600) основывается на блоках и использует блочный формат, который зависит от осуществления. Блоки могут дополнительно подразделяться на различных этапах. Например, картинка может разделяться на блоки 64×64, блоки 32×32 или блоки 16×16, которые могут в свою очередь разделяться на меньшие блоки значений выборки. В осуществлениях декодирования для стандарта HEVC картинка разделяется на CTU (CTB), CU (CB), PU (PB) и TU (TB).
[096] Декодер (600) распаковывает картинки с использованием декодирования внутри картинки и/или декодирования между картинками. Многие из компонентов декодера (600) используются как для декодирования внутри картинки, так и для декодирования между картинками. Точные операции, выполняемые этими компонентами могут варьироваться в зависимости от типа информации, которая распаковывается.
[097] Буфер принимает закодированные данные в битовом потоке (605) кодированного видео и делает принятые закодированные данные доступными для синтаксического анализатора/энтропийного декодера (610). Синтаксический анализатор/энтропийный декодер (610) энтропийно декодирует энтропийно кодированные данные, обычно применяя обратную операцию для энтропийного кодирования, выполняемого в кодере (500) (например, контекстно-адаптивное двоичное арифметическое декодирование). В результате синтаксического анализа и энтропийного декодирования, синтаксический анализатор/энтропийный декодер (610) производит данные (622) общего управления, данные (632) квантованного коэффициента преобразования, данные (642) внутреннего предсказания, данные (652) движения и данные (662) управления фильтра. Для данных (642) внутреннего предсказания, синтаксический анализатор/энтропийный декодер (610) энтропийно декодирует значения индекса элемента предсказания BV (для предсказания внутри BC), например, с использованием контекстно-адаптивного двоичного арифметического декодирования. Для блоков режима без пропуска, режима без объединения синтаксический анализатор/энтропийный декодер (610) также энтропийно декодирует дифференциалы BV для значений BV (например, с использованием контекстно-адаптивного двоичного арифметического декодирования), затем комбинирует дифференциалы BV с соответствующими элементами предсказания BV для воспроизведения значений BV. Для блока режима пропуска или блока режима объединения, дифференциал BV опускается из битового потока, и значение BV является просто элементом предсказания BV (например, указанным значением индекса элемента предсказания BV).
[098] Общее управление (620) декодированием принимает данные (622) общего управления и обеспечивает управляющие сигналы (не показаны) другим модулям (таким как средство масштабирования/обратный преобразователь (635), элемент (645) предсказания внутри картинки, компенсатор (655) движения и переключатель "внутри/между") для установления и изменения параметров декодирования в течение декодирования.
[099] Если текущая картинка предсказывается с использованием предсказания между картинками, компенсатор (655) движения принимает данные (652) движения, такие как данные MV, данные выбора опорной картинки и значения индексов режима объединения. Компенсатор (655) движения применяет MV к воспроизведенной опорной картинке(-ам) из буфера (670) декодированных картинок. Компенсатор (655) движения производит предсказания с компенсацией движения для промежуточно кодированных блоков текущей картинки. Буфер (670) декодированных картинок сохраняет одну или несколько ранее воспроизведенных картинок для использования в качестве опорных картинок.
[0100] В отдельном пути внутри декодера (600) элемент (645) предсказания внутрикадрового предсказания принимает данные (642) внутреннего предсказания, такие как информация, указывающая, использует ли внутреннее предсказание пространственное предсказание или предсказание внутри BC (например, флаговое значение на внутренний блок), направление режима предсказания (для внутреннего пространственного предсказания) и значения BV (для предсказания внутри BC). Для внутреннего пространственного предсказания, с использованием значений воспроизведения (638) текущей картинки, согласно данным режима предсказания, элемент (645) предсказания внутри картинки пространственно предсказывает значения выборки текущего блока текущей картинки из соседних, ранее воспроизведенных значений выборки текущей картинки. Либо, для предсказания внутри BC с использованием значений BV, элемент (645) предсказания внутри картинки предсказывает значения выборки текущего блока с использованием ранее воспроизведенных значений выборки области внутрикадрового предсказания, которая указывается значением BV для текущего блока.
[0101] Переключатель "внутри/между" выбирает значения предсказания с компенсацией движения или предсказания внутри картинки для использования в качестве предсказания (658) для заданного блока. Например, если следовать синтаксису HEVC, управление переключателем "внутри/между" может осуществляться на основе синтаксического элемента, закодированного для CU картинки, которая может содержать внутренне предсказанные CU и промежуточно предсказанные CU. Для блока режима без пропуска декодер (600) комбинирует предсказание (658) с воспроизведенными остаточными значениями, чтобы произвести воспроизведение (638) содержимого из видеосигнала. Для блока режима пропуска декодер (600) использует значения (658) предсказания в качестве воспроизведения (638).
[0102] Для воспроизведения остатка для блока режима без пропуска, средство масштабирования/обратный преобразователь (635) принимает и обрабатывает данные (632) квантованного коэффициента преобразования. В средстве масштабирования/обратном преобразователе (635) средство масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование над квантованными коэффициентами преобразования. Обратный частотный преобразователь выполняет обратное частотное преобразование, производя блоки воспроизведенных остаточных значений предсказания или значений выборки. Например, обратный частотный преобразователь применяет обратное преобразование блока к коэффициентам частотного преобразования, производя данные значений выборки или остаточные данные предсказания. Обратное частотное преобразование может быть обратным DCT, его целым приближением или другим типом обратного частотного преобразования (например, обратное дискретное синус-преобразование или его целое приближение).
[0103] Для предсказания внутри картинки, значения воспроизведения (638) могут быть поданы обратно элементу (645) предсказания внутри картинки. Для предсказания внутри картинки, значения воспроизведения (638) могут дополнительно фильтроваться. В средстве объединения/фильтре(-ах) (665) декодер (600) объединяет содержимое из различных сегментов в воспроизведенную версию картинки. Декодер (600) выборочно выполняет деблокинг-фильтрацию и SAO-фильтрацию согласно данным (662) управления фильтра и принимает решение о фильтровой адаптации для того, чтобы адаптивным образом сгладить неоднородности на границах в кадрах. Другая фильтрация (такая как фильтрация подавления реверберации или ALF; не показана) может применяться в качестве альтернативы или дополнения. Границы сегментов могут выборочно фильтроваться или не фильтроваться вообще, в зависимости от установок декодера (600) или синтаксического указания внутри закодированных данных битового потока. Буфер (670) декодированных картинок буферизует воспроизведенную текущую картинку для использования в последующем предсказании с компенсацией движения.
[0104] Декодер (600) может также включать в себя фильтр постобработки. Фильтр (608) постобработки может включать в себя фильтрацию подавления реверберации, адаптивную фильтрацию Винера, фильтрацию воссоздания зернистости пленки, SAO-фильтрацию или другой вид фильтрации.
[0105] В зависимости от осуществления и желаемого типа распаковывания модули декодера могут добавляться, опускаться, разбиваться на множество модулей, комбинироваться с другими модулями и/или замещаться подобными модулями. В альтернативных вариантах осуществления декодеры с другими модулями и/или другими конфигурациями модулей выполняют одну или несколько из описанных методик. Конкретные варианты осуществления декодеров обычно используют вариацию или дополненную версию декодера (600). Отношения, показанные между модулями внутри декодера (600), указывают общие потоки информации в декодере; другие отношения не показаны в целях упрощения.
VII. Нововведения в предсказании вектора блока.
[0106] Этот раздел представляет различные признаки предсказания вектора блока ("BV"). Некоторые из признаков относятся к использованию элемента предсказания BV по умолчанию, в то время как другие признаки относятся к режиму объединения для элементов предсказания BV или режиму пропуска для предсказания внутри копии блока ("BC"). Эти признаки могут способствовать предсказанию внутри BC, которое более эффективно в плане производительности отношения скорости к искажению.
[0107] В частности, описанные нововведения могут улучшать производительность отношения скорости к искажению при кодировании конкретного "искусственно" созданного видеосодержимого, такого как содержимое захвата экрана. Содержимое захвата экрана обычно включает в себя повторяемые структуры (например, графику, текстовые знаки), которые обеспечивают возможности для предсказания внутри BC для улучшения выполнения. Содержимое захвата экрана обычно кодируется в формате (например, YUV 4:4:4 или RGB 4:4:4) с высоким разрешением дискретизации по цветности, хотя может также быть закодировано в формате с пониженным разрешением дискретизации по цветности (например, YUV 4:2:0). Общие сценарии для кодирования/декодирования содержимого захвата экрана включают в себя проведение конференции удаленного настольного компьютера и кодирование/декодирование графических накладных элементов на естественном видео или другом видео со "смешанным содержимым".
A. Режим предсказания внутри BC, значения BV и предсказание BV - Введение.
[0108] Для предсказания внутри BC значения выборки текущего блока картинки предсказываются с использованием значений выборки в той же самой картинке. Значение BV указывает смещение от текущего блока к области картинки, которая включает в себя значения выборки, используемые для предсказания. Значения выборки, используемые для предсказания, являются ранее воспроизведенными значениями выборок. Значение BV может быть просигнализировано в битовом потоке, и декодер может использовать значение BV для определения области картинки для использования для предсказания, которое также воспроизводится в декодере. Предсказание внутри BC является формой предсказания внутри картинки - предсказание внутри BC для блока картинки не использует каких-либо значений выборки за исключением значений выборки в той же самой картинке.
[0109] Фиг.7a изображает предсказание внутри BC для текущего блока (760) текущего кадра (710). Текущий блок может быть блоком кодирования ("CB") элемента кодирования ("CU"), блоком предсказания ("PB") элемента предсказания ("PU"), блоком преобразования ("TB") элемента преобразования ("TU") или другим блоком. Размер текущего блока может быть 64×64, 32×32, 16×16, 8×8 или некоторым другим размером. В более общем случае, размер текущего блока равен m×n, где каждое из m и n является целым числом, и где m и n могут быть равны друг другу или могут иметь различные значения. В качестве альтернативы, текущий блок может иметь некоторую другую форму (например, область кодированного видеообъекта с непрямоугольной формой).
[0110] BV (761) указывает смещение (или сдвиг) от текущего блока (760) к области (762) картинки, которая включает в себя значения выборки, используемые для предсказания. Область (762) внутрикадрового предсказания, указанная BV (761), иногда называется "совпадающим блоком" для текущего блока (760). Совпадающий блок может быть идентичен текущему блоку (760) или он может быть приближением текущего блока (760). Предположим, верхняя левая позиция текущего блока находится в позиции (x 0 , y 0 ) в текущем кадре, и предположим, что верхняя левая позиция области внутрикадрового предсказания находится в позиции (x 1 , y 1 ) в текущем кадре. BV указывает смещение (x 1 -x 0 , y 1 -y 0 ). Например, если верхняя левая позиция текущего блока находится в позиции (256, 128), и верхняя левая позиция области внутрикадрового предсказания находится в позиции (176, 104), значение BV равно (-80, -24). В этом примере отрицательное горизонтальное смещение указывает позицию левее текущего блока, и отрицательное вертикальное смещение указывает позицию выше текущего блока.
[0111] Предсказание внутри BC может улучшить эффективность кодирования путем задействования избыточности (такой как повторяемые закономерности внутри кадра) с использованием операций BC. Значения выборки текущего блока представляются с использованием значения BV вместо непосредственного кодирования значений выборки текущего блока. Даже если значения выборки текущего блока не точно совпадают с значениями выборок области внутрикадрового предсказания, указанной значением BV, различия могут быть пренебрежимо малы (не заметны для восприятия). Или, если различия существенны, различия могут быть закодированы в качестве остаточных значений, которые могут быть сжаты более эффективно, чем исходные значения выборки для текущего блока.
[0112] В совокупности, значения BV для блоков, закодированные с использованием предсказания внутри BC, могут потреблять существенное количество бит. Значения BV могут энтропийно кодироваться для уменьшения битовой скорости. Чтобы дополнительно уменьшить битовую скорость для значений BV, кодер может использовать предсказание значений BV. Значения BV часто демонстрируют избыточность - значение BV для заданного блока часто подобно, или даже равно, значениям BV предыдущих блоков в картинке. Для предсказания BV значение BV для заданного блока предсказывается с использованием элемента предсказания BV. Разница (или дифференциал BV) между значением BV для заданного блока и элементом предсказания BV затем энтропийно кодируется. Обычно дифференциал BV вычисляется для горизонтальных и вертикальных компонентов значения BV и элемента предсказания BV. Когда предсказание BV срабатывает, дифференциалы BV имеют распределение вероятностей, которое поддерживает эффективное энтропийное кодирование. В текущей предварительной версии стандарта HEVC (JCTVC-O1005) элемент предсказания BV является значением BV последнего кодированного CU внутри текущего CTU (то есть значением BV предыдущего предсказанного внутри BC блока внутри текущего CTU).
[0113] Фиг.7b изображает BV (761) текущего блока (760) в кадре, а также BV (751) предыдущего блока (750) в кадре (710). BV (751) предыдущего блока (750) используется в качестве элемента предсказания BV для BV (761) текущего блока (760). Например, если значение BV равно (-80, -24) и элемент предсказания BV равен (-80, -32), дифференциал BV (0, 8) энтропийно кодируется.
[0114] Декодер принимает и энтропийно декодирует энтропийно кодированный дифференциал BV для значения BV. Декодер также определяет элемент предсказания BV для значения BV. Элемент предсказания BV, определенный декодером, является тем же самым, что и элемент предсказания BV, определенный кодером. Декодер комбинирует элемент предсказания BV и декодированный дифференциал BV для воспроизведения значения BV.
[0115] В текущей предварительной версии стандарта HEVC (JCTVC-O1005_v3) элемент предсказания BV на основе фактического значения BV недоступен в некоторых ситуациях. Например, предыдущее фактическое значение BV недоступно для первого предсказанного внутри BC блока в заданном CTU. Когда предыдущее фактическое значение BV недоступно для элемента предсказания BV (как показано на фиг.7c), значение по умолчанию (0, 0) используется в качестве элемента предсказания BV. На практике это означает, что предсказание BV пропускается, когда никакое значение BV не доступно для предыдущего предсказанного внутри BC блока в CTU.
B. Элемент предсказания BV по умолчанию с ненулевым компонентом.
[0116] Согласно одному аспекту нововведений, описанному здесь, когда предыдущее фактическое значение BV недоступно для использования в качестве элемента предсказания BV для значения BV текущего блока, кодер и декодер используют элемент предсказания BV по умолчанию с ненулевым компонентом. По сравнению с элементом предсказания BV по умолчанию с нулевым значением, элемент предсказания BV по умолчанию с ненулевым компонентом имеет тенденцию быть ближе к значению BV текущего блока, что приводит в результате к более эффективному энтропийному кодированию дифференциала BV. Кроме того, элемент предсказания BV по умолчанию с ненулевым значением может обеспечивать полезный вариант для режима пропуска или режима объединения для предсказания BV.
1. Пример элементов предсказания BV по умолчанию.
[0117] Как изображено на фиг.7d, для значения (761) BV текущего блока (760) элемент (763) предсказания BV по умолчанию может иметь ненулевой горизонтальный компонент. Например, элемент предсказания BV по умолчанию является горизонтальным вектором (BVx, 0). Значение горизонтального компонента BV BVx может быть фиксированным ненулевым значением. Либо значение BVx может быть шириной текущего блока, что является наименьшим значением горизонтального компонента BV BVx, который избегает взаимного наложения между текущим блоком и опорной областью.
[0118] Например, когда текущий блок является CB из CU, имеющего ширину W и высоту H, значение горизонтального компонента BV BVx для элемента предсказания BV по умолчанию может быть отрицательным сдвигом, равным ширине W CU. То есть элемент предсказания BV по умолчанию может быть (-W, 0). Элемент предсказания BV по умолчанию (BVx, 0) может быть использован всегда, когда обычный элемент предсказания BV (на основе фактического значения BV предыдущего блока) недоступен. Либо элемент предсказания BV по умолчанию (BVx, 0) может в зависимости от условий использоваться в зависимости от значения BV текущего блока. Например, если вертикальный компонент BV значения BV текущего блока меньше -H, элемент предсказания BV по умолчанию равен (-W, 0). Иначе (вертикальный компонент BV значения BV текущего блока не меньше -H), элемент предсказания BV по умолчанию равен (0, 0). Это условие обеспечивает то, что элемент предсказания BV по умолчанию (-W, 0) не применяется, когда значение BV текущего блока имеет существенный вертикальный компонент BV. В качестве альтернативы, ненулевой элемент предсказания BV по умолчанию (BVx, 0) в зависимости от условий применяется согласно другому условию.
[0119] Вместо того, чтобы иметь отрицательный сдвиг -W, элемент предсказания BV по умолчанию может иметь другой отрицательный сдвиг. Например, элемент предсказания BV по умолчанию может быть (-2*W, 0).
[0120] В качестве альтернативы, элемент предсказания BV по умолчанию является вертикальным вектором (0, BVy). Значение вертикального компонента BV BVy может быть фиксированным ненулевым значением, или значение BVy может быть высотой текущего блока, которая является наименьшим значением BVy, которое избегает взаимного наложения между текущим блоком и опорной областью. Например, когда текущий блок является CB из CU, имеющего ширину W и высоту H, элемент предсказания BV по умолчанию может быть (0, -H). Элемент предсказания BV по умолчанию (0, BVy) может быть использован всегда, когда обычный элемент предсказания BV недоступен, или элемент предсказания BV по умолчанию (0, BVy) может быть в зависимости от условий использован в зависимости от значения BV текущего блока.
[0121] В качестве альтернативы, элемент предсказания BV по умолчанию может иметь ненулевой горизонтальный компонент и ненулевой вертикальный компонент.
2. Примерное кодирование с элементами предсказания BV по умолчанию.
[0122] Фиг.8 изображает обобщенную методику (800) для использования элемента предсказания BV по умолчанию с ненулевым компонентом в течение кодирования. Кодер изображений или кодер видео, такой как описанный со ссылками на фиг.3 или фиг.5a-5b, может выполнять методику (800).
[0123] Кодер (830) определяет элемент предсказания BV по умолчанию для текущего блока картинки. Например, в осуществлениях HEVC текущий блок входит в состав элемента кодирования элемента дерева кодирования. Элемент предсказания BV по умолчанию включает в себя компонент элемента предсказания BV с ненулевым значением. Например, компонент элемента предсказания BV с ненулевым значением является горизонтальным компонентом BV. В зависимости от осуществления, ненулевой горизонтальный компонент BV может иметь фиксированное значение (независимое от размера текущего блока), значение, равное ширине текущего блока, или некоторое другое ненулевое значение. Либо компонент элемента предсказания BV с ненулевым значением равен вертикальному компоненту BV. В зависимости от осуществления, ненулевой вертикальный компонент BV может иметь фиксированное значение (независимое от размера текущего блока), значение, равное высоте текущего блока, или некоторое другое ненулевое значение. Либо элемент предсказания BV по умолчанию может включать в себя ненулевой горизонтальный компонент BV и ненулевой вертикальный компонент BV. Элемент предсказания BV по умолчанию может входить в состав набора множества вариантов элемента предсказания BV, собранного для режима пропуска, как описано в разделе C, или для режима объединения, как описано в разделе D.
[0124] Кодер кодирует (850) текущий блок с использованием элемента предсказания BV по умолчанию. Например, кодер (a) выполняет предсказание внутри BC с использованием значения BV для текущего блока, (b) определяет дифференциал BV с использованием значения BV и элемента предсказания BV по умолчанию для текущего блока, и (c) кодирует дифференциал BV. В качестве альтернативы, кодер просто выполняет предсказание внутри BC с использованием элемента предсказания BV по умолчанию.
[0125] Фиг.9 изображает более подробную примерную методику (900) для использования элемента предсказания BV по умолчанию с ненулевым компонентом в течение кодирования. Кодер изображений или кодер видео, такой как описанный со ссылками на фиг.3 или фиг.5a-5b, может выполнять методику (900).
[0126] Для начала кодер определяет (910) значение BV для текущего блока картинки. Кодер может использовать любую форму оценки BV для определения значения BV для текущего блока. В осуществлениях HEVC текущий блок входит в состав элемента кодирования элемента дерева кодирования.
[0127] Кодер проверяет (920), доступен ли фактический BV для использования в качестве элемента предсказания BV. Например, кодер проверяет, доступно ли фактическое значение BV для предыдущего блока картинки. В осуществлениях HEVC фактическое значение BV для предыдущего блока доступно, если (1) предыдущий блок и текущий блок входят в состав одного и того же CTU, и (2) режим предсказания предыдущего блока является режимом предсказания внутри BC. Фактическое значение BV для предыдущего блока недоступно, например, для первого предсказанного внутри BC блока заданного CTU.
[0128] Если фактический BV доступен для использования в качестве элемента предсказания BV, кодер использует (940) фактический BV в качестве элемента предсказания BV. С другой стороны, если никакой фактический BV для какого-либо предыдущего блока не доступен для использования в качестве элемента предсказания BV, кодер определяет (930) элемент предсказания BV по умолчанию для текущего блока. Элемент предсказания BV по умолчанию включает в себя компонент элемента предсказания BV с ненулевым значением. Например, элемент предсказания BV по умолчанию определяется, как описано выше в отношении действия (830) с фиг.8.
[0129] Кодер определяет (950) дифференциал BV между значением BV для текущего блока и элементом предсказания BV. Кодер энтропийно кодирует (960) дифференциал BV.
3. Примерное декодирование с элементами предсказания BV по умолчанию.
[0130] Фиг.10 изображает обобщенную методику (1000) для использования элемента предсказания BV по умолчанию с ненулевым компонентом в течение декодирования. Декодер изображений или декодер видео, такой как описанный со ссылками на фиг.4 или фиг.6, может выполнять методику (1000).
[0131] Декодер определяет (1030) элемент предсказания BV по умолчанию для текущего блока картинки. Например, в осуществлениях HEVC текущий блок входит в состав элемента кодирования элемента дерева кодирования. Элемент предсказания BV по умолчанию включает в себя компонент элемента предсказания BV с ненулевым значением. Например, компонент элемента предсказания BV с ненулевым значением является горизонтальным компонентом BV. В зависимости от осуществления, ненулевой горизонтальный компонент BV может иметь фиксированное значение (независимое от размера текущего блока), значение, равное ширине текущего блока, или некоторое другое ненулевое значение. Либо компонент элемента предсказания BV с ненулевым значением является вертикальным компонентом BV. В зависимости от осуществления, ненулевой вертикальный компонент BV может иметь фиксированное значение (независимое от размера текущего блока), значение, равное высоте текущего блока, или некоторое другое ненулевое значение. Либо элемент предсказания BV по умолчанию может включать в себя ненулевой горизонтальный компонент BV и ненулевой вертикальный компонент BV. Элемент предсказания BV по умолчанию может входить в состав набора множества вариантов элемента предсказания BV, собранного для режима пропуска, как описано в разделе C, или для режима объединения, как описано в разделе D.
[0132] Декодер декодирует (1050) текущий блок с использованием элемента предсказания BV по умолчанию. Например, кодер (a) декодирует дифференциал BV для текущего блока, (b) комбинирует декодированный дифференциал BV с элементом предсказания BV по умолчанию для воспроизведения значения BV для текущего блока, и (c) выполняет предсказание внутри BC с использованием значения BV для текущего блока. В качестве альтернативы, декодер просто выполняет предсказание внутри BC с использованием элемента предсказания BV по умолчанию.
[0133] Фиг.11 изображает более подробную примерную методику (1100) для использования элемента предсказания BV по умолчанию с ненулевым компонентом в течение декодирования. Декодер изображений или декодер видео, такие как описанные со ссылками на фиг.4 или фиг.6, могут выполнять методику (1100).
[0134] Декодер проверяет (1120), доступен ли фактический BV для использования в качестве элемента предсказания BV для значения BV для текущего блока картинки. Например, декодер проверяет, доступно ли фактическое значение BV для предыдущего блока картинки. В осуществлениях HEVC фактическое значение BV для предыдущего блока доступно, если (1) предыдущий блок и текущий блок входят в состав одного и того же CTU, и (2) режим предсказания предыдущего блока является режимом предсказания внутри BC. Фактическое значение BV для предыдущего блока недоступно, например, для первого предсказанного внутри BC блока заданного CTU.
[0135] Если фактический BV доступен для использования в качестве элемента предсказания BV, декодер использует (1140) фактический BV в качестве элемента предсказания BV. С другой стороны, если никакой фактический BV для какого-либо предыдущего блока не доступен для использования в качестве элемента предсказания BV, декодер определяет (1130) элемент предсказания BV по умолчанию для текущего блока. Элемент предсказания BV по умолчанию включает в себя компонент элемента предсказания BV с ненулевым значением. Например, элемент предсказания BV по умолчанию определяется, как описано выше в отношении действия (1030) с фиг.10.
[0136] Декодер также энтропийно декодирует (1150) дифференциал BV для текущего блока. Декодер затем комбинирует (1160) дифференциал BV с элементом предсказания BV для воспроизведения значения BV для текущего блока.
4. Альтернативы и вариации.
[0137] В примерах элементов предсказания BV по умолчанию, описанных выше, значение элемента предсказания BV по умолчанию не ограничивается в зависимости от местоположения текущего блока. В качестве альтернативы, значение элемента предсказания BV по умолчанию может быть ограничено в зависимости от местоположения текущего блока. Например, если текущий блок находится на краю картинки, так, что элемент предсказания BV по умолчанию будет указывать на местоположение вне картинки, элемент предсказания BV по умолчанию ограничивается для указания на местоположение внутри картинки, или элемент предсказания BV (0, 0) используется. Либо, в качестве другого примера для осуществлений HEVC, в которых значения BV ограничиваются для ссылки на местоположение в некотором наборе CTU (например, текущий CTU и предыдущий CTU), элемент предсказания BV по умолчанию ограничивается для ссылки на местоположение внутри этого набора CTU. Либо, в качестве другого примера для осуществлений HEVC, в которых картинка включает в себя множество сегментов или множество секторов, значения BV (и элементы предсказания BV по умолчанию) могут ограничиваться для ссылки на местоположение с текущим сегментом (и/или текущим сектором).
[0138] В примерах элементов предсказания BV по умолчанию, описанных выше, значение элемента предсказания BV по умолчанию не переключается в зависимости от местоположения текущего блока. В качестве альтернативы, значение элемента предсказания BV по умолчанию может переключаться в зависимости от местоположения текущего блока. Например, элемент предсказания BV по умолчанию является горизонтальным элементом предсказания BV (BVx, 0), если текущий блок находится где-то, кроме левого края картинки (или сегмента, или сектора, если они используются). Если текущий блок находится с левого края картинки (или сегмента, или сектора, если они используются), или горизонтальный элемент предсказания BV по умолчанию будет другим образом ссылаться на местоположение вне картинки (или сегмента, или сектора, если они используются), элемент предсказания BV по умолчанию является вертикальным элементом предсказания BV (0, BVy). И, если текущий блок находится в верхнем левом углу картинки (или сегмента, или сектора, если они используются), или горизонтальный элемент предсказания BV и вертикальный элемент предсказания BV по умолчанию будут другим образом ссылаться на местоположение вне картинки (или сегмента, или сектора, если они используются), элемент предсказания BV по умолчанию является элементом предсказания BV (0, 0).
C. Режим пропуска для предсказания внутри BC.
[0139] Согласно другому аспекту нововведений, описанных здесь, кодер и декодер используют режим пропуска для конкретных предсказанных внутри BC блоков. В режиме пропуска предсказанный внутри BC блок использует предсказанное значение BV и не имеет никаких остаточных данных в битовом потоке. В некоторых сценариях использование режима пропуска для предсказанных внутри BC блоков могут существенно улучшить эффективность отношения скорости к искажению.
[0140] В общем случае, кодер принимает решение, когда использовать режим пропуска для текущего предсказанного внутри BC блока. Кодер может принимать решение использовать режим пропуска на основе того, как близко область предсказания внутри BC совпадает с текущим блоком, на основе воспринимаемой важности остаточных значений, на основе битовой скорости, доступной для кодирования остаточных значений, и/или на основе других факторов. Кодер может предпочесть режим пропуска для предсказанных внутри BC блоков в конкретных режимах кодирования, в которых скорость кодирования является ограничением, например кодирование в реальном времени.
[0141] Фиг.12 изображает обобщенную методику (1200) для кодирования, которая включает в себя режим пропуска для предсказанных внутри BC блоков. Кодер изображений или кодер видео, такой как описанный со ссылками на фиг.3 или фиг.5a-5b, может выполнять методику (1200).
[0142] Для текущего блока картинки, если текущий блок является предсказанным внутри BC блоком, закодированным в режиме пропуска, кодер использует (1210) предсказание BV для определения значения BV для текущего блока. Значение BV для текущего блока указывает смещение к некоторой области внутри картинки. Предсказание BV может включать в себя предсказание в режиме объединения, предсказание с использованием значения BV последнего кодированного предсказанного внутри BC блока, предсказание с использованием покомпонентной медианы значений BV соседних предсказанных внутри BC блоков, или некоторую другую форму предсказания BV. Текущий блок, например, входит в состав CU CTU.
[0143] Кодер кодирует (1220) текущий блок с использованием предсказания внутри BC со значением BV (здесь предсказанное значение BV). Кодер выводит (1230) в битовом потоке указание, что текущий блок закодирован в режиме пропуска. Поскольку блок закодирован в режиме пропуска, битовый поток не имеет дифференциала BV и остаточных данных для текущего блока. Битовый поток может включать в себя, однако, значение индекса, которое указывает выбор варианта элемента предсказания BV, из набора множества вариантов элемента предсказания BV, для использования в качестве значения BV для текущего блока. Например, когда набор множества вариантов элемента предсказания BV имеет два варианта элемента предсказания BV, значение индекса является флаговым значением. Либо, когда набор множества вариантов элемента предсказания BV имеет более двух вариантов элемента предсказания BV, значение индекса является целочисленным значением. Значение индекса может быть энтропийно кодированным, например, с использованием арифметического кодирования.
[0144] Фиг.13 изображает обобщенную методику (1300) для декодирования, которая включает в себя режим пропуска для предсказанных внутри BC блоков. Декодер изображений или декодер видео, такой как описанный со ссылками на фиг.4 или фиг.6, может выполнять методику (1300).
[0145] Для текущего блока картинки, если текущий блок является предсказанным внутри BC блоком, закодированным в режиме пропуска, декодер принимает (1310) из битового потока указание, что текущий блок закодирован в режиме пропуска. Поскольку блок закодирован в режиме пропуска, битовый поток не имеет дифференциала BV и остаточных данных для текущего блока. Как описано выше, однако, битовый поток может включать в себя значение индекса, которое указывает выбор варианта элемента предсказания BV, из набора множества вариантов элемента предсказания BV, для использования в качестве значения BV для текущего блока. Текущий блок, например, входит в состав CU CTU.
[0146] Декодер использует (1320) предсказание BV для определения значения BV для текущего блока. Предсказание BV в общем случае зеркально отражает предсказание BV, выполняемое в кодере. Оно может включать в себя предсказание в режиме объединения, предсказание с использованием значения BV последнего кодированного предсказанного внутри BC блока, предсказание с использованием покомпонентной медианы значений BV соседних предсказанных внутри BC блоков, или некоторую другую форму предсказания BV. Декодер декодирует (1330) текущий блок с использованием предсказания внутри BC со значением BV (здесь, предсказанное значение BV).
D. Режим объединения для предсказания BV.
[0147] Согласно другому аспекту нововведений, описанных здесь, кодер и декодер используют режим объединения для предсказания BV. Режим объединения может существенно улучшить качество предсказания BV, что в свою очередь уменьшает количество бит, потребляемых дифференциалами BV в битовом потоке.
[0148] Для режима объединения, при определении элемента предсказания BV для блока, кодер собирает набор вариантов элемента предсказания BV, выбирает один из вариантов элемента предсказания BV для использования в качестве элемента предсказания BV для блока и сигнализирует в битовом потоке значение индекса, которое указывает выбранный вариант элемента предсказания BV. Декодер собирает набор вариантов элемента предсказания BV и, на основе просигнализированного значения индекса, выбирает один из вариантов элемента предсказания BV для использования в качестве элемента предсказания BV для блока. Хотя значения индекса потребляют биты в битовом потоке, режим объединения может существенно улучшить предсказание BV и, следовательно, уменьшить количество бит, потребляемых дифференциалами BV, что в результате приводит к общему уменьшению в битовой скорости.
[0149] В примерных осуществлениях режим объединения для предсказания BV используется в комбинации с режимом пропуска для предсказанных внутри BC блоков. В качестве альтернативы, режим объединения для предсказания BV может быть использован, даже если режим пропуска не позволен для предсказанных внутри BC блоков.
1. Примерные варианты элемента предсказания BV и значения индекса.
[0150] При определении элемента предсказания BV для блока в режиме объединения, кодер или декодер собирает набор вариантов элемента предсказания BV. Составляющие набора вариантов элемента предсказания BV зависят от осуществления, но являются одними и теми же на стороне кодера и стороне декодера.
[0151] В одном подходе варианты элемента предсказания BV собираются из фактических значений BV ранее кодированных блоков в картинке. В общем случае, кодер и декодер определяют вплоть до x фактических значений BV предыдущих блоков в картинке. Предыдущие блоки являются ранее кодированными предсказанными внутри BC блоками в картинке. В частности, они являются x ближайшими предсказанными внутри BC блоками, более ранними в порядке декодирования, чем текущий блок. Значение x зависит от осуществления и может быть, например, 2, 3, 4, 5 или некоторым другим числом. Использование большего количества вариантов элемента предсказания BV имеет тенденцию увеличивать битовую скорость для значений индекса, но улучшать качество предсказания BV, что, в свою очередь, уменьшает количество бит, потребляемых дифференциалами BV.
[0152] Предыдущие предсказанные внутри BC блоки не обязаны быть соседними для текущего блока. Если меньше чем x предыдущих блоков с фактическими значениями BV доступно, набор вариантов элемента предсказания BV может включать в себя меньше чем x вариантов элемента предсказания BV.
[0153] Фиг.14 изображает пример этого подхода. На фиг.14 три значения (1431, 1441, 1451) BV трех предыдущих предсказанных внутри BC блоков (1430, 1440, 1450) обеспечивают варианты элемента предсказания BV для режима объединения для элемента предсказания BV текущего блока (1460) текущего кадра (1410). Хотя предыдущие блоки (1430, 1440, 1450) являются смежными в примере с фиг.14, предыдущие блоки не обязаны быть смежными. (То есть предыдущие предсказанные внутри BC блоки, которые обеспечивают варианты элемента предсказания BV, могут быть разделены другими, не предсказанными внутри BC блоками в картинке.)
[0154] Набор вариантов элемента предсказания BV может дополнительно включать в себя один или несколько элементов предсказания BV по умолчанию. В примере с фиг.14, набор вариантов элемента предсказания BV включает в себя элемент предсказания BV по умолчанию (BVx, 0) с горизонтальным смещением и элемент предсказания BV по умолчанию (0, BVy) с вертикальным смещением. В частности, элементы предсказания BV по умолчанию с горизонтальным смещением и вертикальным смещением имеют тенденцию быть полезными для текстового содержимого, которое в общем случае следует чисто горизонтальному или вертикальному направлению.
[0155] Режим объединения значений индекса ассоциирован с соответственными вариантами элемента предсказания BV. Обычно меньшие значения индекса ассоциированы с вариантами элемента предсказания BV, которые с наибольшей вероятностью будут выбраны, и большие значения индекса ассоциированы с вариантами элемента предсказания BV, которые с меньшей вероятностью будут выбраны, что имеет тенденцию уменьшать битовую скорость для значений индексов после энтропийного кодирования. На фиг.14, значения индексов idx 0,..., idx 4 назначаются вариантам элемента предсказания BV со значениями BV (1451, 1441, 1431) и элементам предсказания BV по умолчанию согласно ожидаемой вероятности выбора.
[0156] Например, в некоторых осуществлениях два фактических значения BV ранее кодированных блоков сохраняются в качестве вариантов элемента предсказания BV BVканд0 и BVканд1. После того как новое значение BV было использовано, более старый вариант элемента предсказания BV BVканд1 замещается более новым вариантом элемента предсказания BV BVканд0, и более новый вариант элемента предсказания BV BVканд0 замещается значением BV, которое было только что использовано. На стороне кодера для текущего блока кодер выбирает один из BVканд0 и BVканд1 для использования в качестве элемента предсказания BV. В качестве значения индекса режима объединения кодер сигнализирует флаговое значение, которое указывает, который из BVканд0 и BVканд1 был использован кодером и должен быть использован декодером. На стороне декодера декодер принимает и выполняет синтаксический анализ флагового значения и на основе флагового значения выбирает один из BVканд0 и BVканд1 для использования в качестве элемента предсказания BV для блока. В этом подходе каждый из кодера и декодера сохраняет и обновляет два варианта элемента предсказания BV BVканд0 и BVканд1.
[0157] В качестве другого примера, в некоторых других осуществлениях одно фактическое значение BV ранее кодированного блока сохраняется в качестве первого варианта элемента предсказания BV BVканд0, и элемент предсказания BV по умолчанию сохраняется в качестве второго варианта элемента предсказания BV BVканд1. Например, элемент предсказания BV по умолчанию равен (BVx, 0), где BVx может быть отрицательным сдвигом, равным ширине W текущего блока, или иметь некоторое другое ненулевое значение. После того как новое значение BV было использовано, первый вариант элемента предсказания BV BVканд0 замещается значением BV, которое было только что использовано, но второй вариант элемента предсказания BV BVканд1 остается неизменным. На стороне кодера, для текущего блока, кодер выбирает один из BVканд0 и BVканд1 для использования в качестве элемента предсказания BV. Кодер сигнализирует флаговое значение, которое указывает, какой из BVканд0 и BVканд1 был использован кодером и должен быть использован декодером. Декодер принимает и выполняет синтаксический анализ флагового значения и, на основе флагового значения, выбирает один из BVканд0 и BVканд1 для использования в качестве элемента предсказания BV для блока. В этом подходе каждый из кодера и декодера сохраняет два варианта элемента предсказания BV BVканд0 и BVканд1, и первый вариант элемента предсказания BV BVканд0 обновляется в течение кодирования или декодирования.
[0158] В другом подходе варианты элемента предсказания BV собираются из фактических значений BV ранее кодированных блоков, которые являются соседними для текущего блока в картинке. Кодер и декодер определяют вплоть до x фактических значений BV соседних блоков. Соседние блоки являются ранее кодированными предсказанными внутри BC блоками в картинке слева от текущего блока, сверху от текущего блока, сверху справа от текущего блока и так далее. Значение x зависит от осуществления и может быть, например, 2, 3, 4, 5 или некоторым другим числом. Если менее чем x соседних блоков с фактическими значениями BV доступно, набор вариантов элемента предсказания BV может включать в себя менее чем x вариантов элемента предсказания BV.
[0159] Фиг.15 изображает пример этого подхода. На фиг.15 три значения BV (1531, 1541, 1551) трех соседних предсказанных внутри BC блоков (1530, 1540, 1550) обеспечивают варианты элемента предсказания BV для режима объединения для элемента предсказания BV текущего блока (1560) текущего кадра (1510). Если один из соседних блоков недоступен (например, не является предсказанным внутри BC блоком или находится вне картинки, сегмента или сектора), в некоторых случаях другой соседний блок может добавляться (например, блок выше и левее текущего блока). Как изображено на фиг.15, набор вариантов элемента предсказания BV может включать в себя один или несколько элементов предсказания BV по умолчанию (таких как элемент предсказания BV по умолчанию (BVx, 0) с горизонтальным смещением и элемент предсказания BV по умолчанию (0, BVy) с вертикальным смещением). На фиг.15 значения индекса idx 0,..., idx 4 назначаются вариантам элемента предсказания BV со значениями BV (1541, 1531, 1551) и элементам предсказания BV по умолчанию согласно ожидаемой вероятности выбора.
[0160] Обработка избыточных значений среди вариантов элемента предсказания BV зависит от осуществления. В некоторых осуществлениях набор вариантов элемента предсказания BV для режима объединения может включать в себя избыточные значения - то есть избыточные варианты элемента предсказания BV не удаляются и не замещаются. В других осуществлениях, при сборе набора вариантов элемента предсказания BV для режима объединения, кодер и декодер не добавляют избыточное значение элемента предсказания BV в набор. Этот подход может давать в результате меньший набор вариантов элемента предсказания BV, что может уменьшать битовую скорость для кодированных значений индекса. В дополнительных осуществлениях, при сборе набора вариантов элемента предсказания BV для режима объединения, кодер и декодер замещают вариант элемента предсказания BV, который был бы избыточным для варианта элемента предсказания BV, уже находящегося в наборе, другим вариантом элемента предсказания BV (например, из другого ранее кодированного предсказанного внутри BC блока, из другого соседнего предсказанного внутри BC блока, из другого варианта элемента предсказания BV по умолчанию). Например, если значение BV 3-го предыдущего предсказанного внутри BC блока то же самое, что и значение BV 1-го предыдущего предсказанного внутри BC блока или 2-го предыдущего предсказанного внутри BC блока, кодер/декодер вместо этого добавляют значение BV 4-го предыдущего предсказанного внутри BC блока в набор вариантов элемента предсказания BV. Если это значение BV было бы избыточным, кодер/декодер вместо этого добавляет значение BV 5-го, 6-го и т. д. предыдущего предсказанного внутри BC блока. Либо кодер/декодер добавляет другой элемент предсказания BV по умолчанию.
2. Примерное кодирование с выбранными элементами предсказания BV.
[0161] Фиг.16a изображает обобщенную методику (1600) для кодирования, которая включает в себя режим объединения для элементов предсказания BV. Кодер изображений или кодер видео, такой как описанный со ссылками на фиг.3 или фиг.5a-5b, может выполнять методику (1600).
[0162] Для начала, кодер определяет (1610) набор множества вариантов элемента предсказания BV для текущего предсказанного внутри BC блока картинки. Текущий блок, например, входит в состав CU CTU. Кодер может определять набор вариантов элемента предсказания BV с использованием одного из подходов, описанных со ссылками на фиг.14 и 15, или с использованием другого подхода. В общем, варианты элемента предсказания BV могут включать в себя вплоть до x фактических значений BV предыдущих блоков, соответственно, где x зависит от осуществления (например, x равно 2, 3, 4, 5 или какому-либо другому числу). x предыдущих блоков могут быть идентифицированы на основе, по меньшей мере частично, местоположения в окружении вокруг текущего блока (см., например, фиг.15) и/или порядка декодирования по сравнению с текущим блоком (см., например, фиг.14). варианты элемента предсказания BV могут также включать в себя один или несколько элементов предсказания BV по умолчанию (например, каждый из которых имеет компонент элемента предсказания BV с ненулевым значением).
[0163] Кодер выбирает (1620) один из множества вариантов элемента предсказания BV для использования для текущего предсказанного внутри BC блока. Например, когда текущий блок будет кодироваться с использованием предсказания внутри BC с выбранным вариантом элемента предсказания BV, кодер выбирает вариант элемента предсказания BV, для которого область внутреннего предсказания, на которую сделана ссылка, наиболее близко совпадает с текущим блоком по некоторой метрике (например, сумме абсолютной разности, среднеквадратической ошибке). Либо, когда текущий блок имеет значение BV (идентифицированное через оценку BV), которое будет использовано для предсказания внутри BC, кодер выбирает вариант элемента предсказания BV, который наиболее близко совпадает со значением BV для текущего блока. Этот выбор дает в результате наименьший дифференциал BV, который имеет тенденцию улучшать эффективность энтропийного кодирования.
[0164] Кодер кодирует (1630) текущий предсказанный внутри BC блок с использованием выбранного варианта элемента предсказания BV. Фиг.16b изображает подробности кодирования (1630) текущего блока в примерных осуществлениях. Кодер проверяет (1632), закодирован ли текущий блок в режиме пропуска. Если да, кодер кодирует (1633) текущий блок с использованием предсказания внутри BC с выбранным элементом предсказания BV, но не с использованием каких-либо остаточных данных. Иначе (не в режиме пропуска) кодер проверяет (1634), закодирован ли текущий блок в режиме объединения. Если да, кодер кодирует (1635) текущий блок с использованием предсказания внутри BC с выбранным элементом предсказания BV. В режиме объединения кодер опционально кодирует остаточные данные для текущего блока. Иначе (не в режиме объединения) кодер кодирует (1637) текущий блок с использованием предсказания внутри BC со значением BV для текущего блока, опционально кодируя остаточные данные для текущего блока.
[0165] Кодер выводит (1640) в битовом потоке значение индекса, которое указывает выбранный вариант элемента предсказания BV. Когда набор вариантов элемента предсказания BV включает в себя два варианта элемента предсказания BV, значение индекса может быть флаговым значением. Либо, когда присутствует более двух вариантов элемента предсказания BV, значение индекса может быть целочисленным значением. Значение индекса может быть энтропийно кодировано или сигнализировано в виде значения фиксированной длины. Значение индекса может (в зависимости от условий) сигнализироваться в битовом потоке в качестве отдельного синтаксического элемента, если синтаксический элемент режима предсказания внутри BC указывает, что текущий блок закодирован с использованием режима предсказания внутри BC. Либо значение индекса может сигнализироваться в битовом потоке совместно с другим синтаксическим элементом (например, синтаксическим элементом, который указывает, закодирован ли текущий блок с использованием режима предсказания внутри BC).
[0166] Кодер также выводит любые закодированные данные для текущего блока. Значение в битовом потоке может указывать, закодирован ли текущий блок в режиме пропуска. Если текущий блок является блоком режима пропуска, битовый поток не имеет дифференциала BV для текущего блока и не имеет остаточных данных для текущего блока. Если текущий блок является блоком режима объединения, битовый поток не имеет дифференциала BV для текущего блока, но может включать в себя остаточные данные для текущего блока. Иначе (текущий блок является блоком режима без пропуска, режима без объединения), битовый поток включает в себя дифференциал BV для текущего блока (указывающий разницу между выбранным вариантом элемента предсказания BV и значением BV для текущего блока) и может также включать в себя остаточные данные для текущего блока.
[0167] Когда кодер использует структуру данных для отслеживания используемых фактических значений BV для предыдущих предсказанных внутри BC блоков, кодер может обновить структуру данных со значением BV для текущего блока.
3. Примерное декодирование с выбранными элементами предсказания BV.
[0168] Фиг.17a изображает обобщенную методику (1700) для декодирования, которая включает в себя режим объединения для элементов предсказания BV. Декодер изображений или декодер видео, такой как описанный со ссылками на фиг.4 или фиг.6, может выполнять методику (1700).
[0169] Для начала декодер принимает (1710) из битового потока значение индекса для текущего блока картинки. Текущий блок, например, входит в состав CU CTU. Значение индекса указывает выбранный вариант элемента предсказания BV из набора множества вариантов элемента предсказания BV. Когда набор вариантов элемента предсказания BV включает в себя два варианта элемента предсказания BV, значение индекса может быть флаговым значением. Либо, когда существует более двух вариантов элемента предсказания BV, значение индекса может быть целым значением. Значение индекса может быть энтропийно кодировано, в случае чего декодер энтропийно декодирует значение индекса, или сигнализировано в виде значения фиксированной длины. Значение индекса может быть (в зависимости от условий) сигнализировано в битовом потоке в качестве отдельного синтаксического элемента, если синтаксический элемент режима предсказания внутри BC указывает, что текущий блок был закодирован с использованием режима предсказания внутри BC. Либо значение индекса может сигнализироваться в битовом потоке совместно с другим синтаксическим элементом (например, синтаксическим элементом, который указывает, закодирован ли текущий блок с использованием режима предсказания внутри BC).
[0170] Декодер также принимает любые закодированные данные для текущего блока. Декодер энтропийно декодирует закодированные данные на надлежащем этапе декодирования. Значение в битовом потоке может указывать, был ли текущий блок закодирован в режиме пропуска. Если текущий блок является блоком режима пропуска, битовый поток не имеет дифференциала BV для текущего блока и не имеет остаточных данных для текущего блока. Если текущий блок является блоком режима объединения, битовый поток не имеет дифференциала BV для текущего блока, но может включать в себя остаточные данные для текущего блока. Иначе (текущий блок является блоком режима без пропуска, режима без объединения), битовый поток включает в себя дифференциал BV для текущего блока и может также включать в себя остаточные данные для текущего блока.
[0171] Декодер определяет (1720) набор множества вариантов элемента предсказания BV для текущего блока. Декодер может определять набор вариантов элемента предсказания BV с использованием одного из подходов, описанных со ссылками на фиг.14 и 15, или с использованием другого подхода. В общем, варианты элемента предсказания BV могут включать в себя вплоть до x фактических значений BV предыдущих блоков, где x зависит от осуществления (например, x равно 2, 3, 4, 5 или некоторому другому числу). x предыдущих блоков может быть идентифицировано на основе, по меньшей мере частично, местоположения в окружении вокруг текущего блока (см., например, фиг.15) и/или порядка декодирования по сравнению с текущим блоком (см., например, фиг.14). варианты элемента предсказания BV могут также включать в себя один или несколько элементов предсказания BV по умолчанию (например, каждый из которых имеет компонент элемента предсказания BV с ненулевым значением).
[0172] На основе значения индекса декодер выбирает (1730) один из множества вариантов элемента предсказания BV для использования для текущего блока. Декодер декодирует (1740) текущий блок с использованием выбранного варианта элемента предсказания BV. Фиг.17b изображает подробности декодирования (1740) текущего блока в примерных осуществлениях. Декодер проверяет (1742), был ли текущий блок закодирован в режиме пропуска. Если да, то декодер декодирует (1743) текущий блок с использованием предсказания внутри BC с выбранным элементом предсказания BV, но без использования каких-либо остаточных данных. Иначе (не в режиме пропуска) декодер проверяет (1744), был ли текущий блок закодирован в режиме объединения. Если да, то декодер декодирует (1745) текущий блок с использованием предсказания внутри BC с выбранным элементом предсказания BV. В режиме объединения декодер декодирует остаточные данные (если присутствуют) для текущего блока. Иначе (не в режиме объединения) декодер декодирует (1747) текущий блок с использованием предсказания внутри BC со значением BV для текущего блока (декодированным с дифференциалом BV по отношению к выбранному элементу предсказания BV), также декодируя остаточные данные (если присутствуют) для текущего блока.
[0173] Когда декодер использует структуру данных для отслеживания фактических значений BV, используемых для предыдущих предсказанных внутри BC блоков, декодер может обновлять структуру данных со значением BV для текущего блока.
4. Примерные осуществления режима объединения.
[0174] В осуществлениях HEVC синтаксис и семантика для CU могут быть модифицированы в синтаксические элементы сигнала для режима объединения для предсказания BV и/или режима пропуска для предсказанных внутри BC блоков.
[0175] В предварительном техническом описании HEVC в JCTVC-O1005_v3, cu_skip_flag[x0][y0] указывает, пропускается ли текущий CU, но флаг сигнализируется, только если текущий сектор является предсказательным ("P") сектором или би-предсказательным ("B") сектором. Индексы матрицы x0, y0 определяют местоположение (x0, y0) верхней левой выборки яркости рассматриваемого CB по отношению к верхней левой выборке яркости картинки. Если cu_skip_flag[x0][y0] равен 1, текущий CU пропускается, и никакие дополнительные синтаксические элементы синтаксически не анализируются после cu_skip_flag[x0][y0] для CU, кроме индекса варианта объединения merge_idx [x0][y0]. Если cu_skip_flag[x0][y0] равен 0, CU не пропускается. Когда cu_skip_flag[x0][y0] отсутствует, он предполагается равным 0.
[0176] Согласно одной возможной модификации, cu_skip_flag[x0][y0] также сигнализируется, если текущий сектор является внутренним ("I") сектором. Когда обеспечена возможность предсказания внутри BC (согласно флагу intra_block_copy_enabled_flag в наборе параметров последовательности), если значение cu_skip_flag[x0][y0] равно 1, текущий CU пропускается, и никакие дополнительные синтаксические элементы не анализируются синтаксически после cu_skip_flag[x0][y0] для CU, кроме значения индекса элемента предсказания BV idx. В частности, никакая разница BV не сигнализируется для текущего, пропущенного CU. С другой стороны, если значение cu_skip_flag[x0][y0] равно 0, текущий CU не пропускается.
[0177] В предварительном техническом описании HEVC в JCTVC-01005_v3 intra_bc_flag[x0][y0] указывает, кодируется ли текущий CU в режиме предсказания внутри BC. Индексы матрицы x0, y0 определяют местоположение (x0, y0) верхней левой выборки яркости рассматриваемого CB по отношению к верхней левой выборке яркости картинки. Если intra_bc_flag[x0][y0] равен 1, текущий CU кодируется в режиме предсказания внутри BC. Если intra_bc_flag[x0][y0] равен 0, текущий CU кодируется посредством внутреннего пространственного предсказания. Если он отсутствует, значение intra_bc_flag предполагается равным 0.
[0178] Согласно одной возможной модификации для intra_bc_flag[x0][y0], когда intra_bc_flag[x0][y0] равен 1, синтаксис для текущего CU включает в себя значение индекса элемента предсказания BV idx, которое указывает выбор варианта элемента предсказания BV. Значение индекса idx может быть флаговым значением для указания выбора между двумя вариантами элемента предсказания BV или целым значением для указания выбора из более чем двух вариантов элемента предсказания BV. Значение индекса может быть энтропийно кодировано с использованием, например, арифметического кодирования.
[0179] Либо, согласно другой возможной модификации для intra_bc_flag[x0][y0], синтаксический элемент является целочисленным значением вместо двоичного флага. Если intra_bc_flag[x0][y0] равен 0, текущий CU кодируется с внутренним пространственным предсказанием, как в JCTVC-O1005_v3. С другой стороны, если intra_bc_flag[x0][y0] больше 0, то текущий CU кодируется в режиме предсказания внутри BC, и intra_bc_flag[x0][y0] также указывает значение индекса элемента предсказания BV idx. Например, если intra_bc_flag[x0][y0] равен 1, то idx равен 1; если intra_bc_flag[x0][y0] равен 2, то idx равен 2; и так далее. Иными словами, значение индекса элемента предсказания BV idx совместно кодируется с двоичным значением для пространственного предсказания или предсказания BC в одном синтаксическом элементе.
[0180] Для любого из способов модификации intra_bc_flag[x0][y0] и сигнализирования значения индекса idx, переменная BvIntraPredictor[idx][compIdx] определяет вариант элемента предсказания BV, который должен быть использован для предсказания внутри BC текущего CU. Например, в примере с фиг.14, BvIntraPredictor[0][compIdx], BvIntraPredictor[l][compIdx] и BvIntraPredictor[2][compIdx] хранят значения BV вплоть до трех наиболее свежих предыдущих предсказанных внутри BC блоков. Либо в примере с фиг.15, BvIntraPredictor[0][compIdx], BvIntraPredictor[l][compIdx] и BvIntraPredictor[2][compIdx] хранят значения BV вплоть до трех соседних предсказанных внутри BC блоков. BvIntraPredictor[3][compIdx] и BvIntraPredictor[4][compIdx] хранят элементы предсказания BV по умолчанию в горизонтальном и вертикальном направлениях, соответственно. Горизонтальный компонент BV назначен compIdx=0, и вертикальный компонент BV назначен compIdx=1.
[0181] Для блока режима пропуска или блока режима объединения никакой дифференциал BV не сигнализируется для блока. Значение BV для блока является выбранным вариантом элемента предсказания BV.
[0182] Для блока режима без пропуска режима без объединения дифференциал BV сигнализируется в битовом потоке. Переменная BvdIntra[x0][y0][compIdx] определяет дифференциал BV. Индексы матрицы x0, y0 определяют местоположение (x0, y0) верхней левой выборки яркости рассматриваемого PB по отношению к верхней левой выборке яркости картинки. Горизонтальному компоненту дифференциала BV назначается compIdx=0, и вертикальному компоненту дифференциала BV назначается compIdx=1. Значение BV для блока равно BvIntra[x0][y0][compIdx]=BvdIntra[x0][y0][compIdx]+BvIntraPredictor[idx][compIdx], при compIdx=0..1.
[0183] Переменный BvIntraPredictor[idx][compIdx] может затем обновляться для включения значения BV для текущего CU.
5. Альтернативы и вариации.
[0184] Когда текущий блок имеет значение BV, которое идентифицировано через оценку BV, кодер может использовать любую форму оценки BV для определения значения BV для текущего блока. В течение оценки BV для текущего блока кодер может начинать с расчета одного или нескольких вариантов элемента предсказания BV, которые доступны для текущего блока. Начало оценки BV вариантом(-ами) элемента предсказания BV может помочь быстро определить подходящее значение BV, избегая расчета других значений BV. Кодер рассчитывает другие значения BV при необходимости. Кодер может использовать структуру данных для отслеживания вариантов элемента предсказания BV. Когда значение BV может применяться для различных размеров блоков (например, для CU 32×32, CU 16×16, CU 8×8 или меньших TU или CU), структура данных может включать в себя различные варианты элемента предсказания BV для различных размеров блоков (например, один или несколько вариантов элемента предсказания BV для CU 32×32, один или несколько вариантов элемента предсказания BV для CU 16×16 и так далее). Для текущего блока кодер сначала рассчитывает вариант(ы) элемента предсказания BV, сохраненные в структуре данных, для уровня (размера) текущего блока затем переходит к оценке других значений BV, если необходимо.
[0185] Ввиду множества возможных вариантов осуществления, к которым принципы раскрываемого изобретения могут применяться, следует понимать, что иллюстрируемые варианты осуществления являются только предпочтительными примерами изобретения и не должны восприниматься как ограничивающие объем изобретения. В действительности, объем изобретения определен следующей формулой. Мы, таким образом, заявляем в качестве нашего изобретения все, что находится внутри объема и сущности этой формулы.

Claims (92)

1. Способ кодирования видео или изображений, выполняемый в вычислительном устройстве с кодером видео или кодером изображений, содержащий этапы, на которых:
определяют предиктор вектора блока (BV) по умолчанию для текущего блока картинки, причем предиктор BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением; и
кодируют текущий блок с использованием предсказания внутри копии блока (BC) с предиктором BV по умолчанию.
2. Способ по п.1, в котором кодирование текущего блока с использованием предиктора BV по умолчанию включает в себя этапы, на которых:
выполняют предсказание внутри BC с использованием значения BV для текущего блока;
определяют дифференциал BV для текущего блока с использованием значения BV для текущего блока и предиктора BV по умолчанию для текущего блока; и
кодируют дифференциал BV для текущего блока.
3. Способ по п.1, в котором кодирование текущего блока с использованием предиктора BV по умолчанию включает в себя этап, на котором выполняют предсказание внутри BC с использованием предиктора BV по умолчанию.
4. Способ по п.1, в котором предиктор BV по умолчанию входит в состав собранного набора из множества вариантов предиктора BV.
5. Способ по п.1, дополнительно содержащий этап, на котором проверяют, доступно ли фактическое значение BV для предыдущего блока картинки, причем предиктор BV по умолчанию для текущего блока используется, только если никакого фактического значения BV для любого предыдущего блока картинки не доступно.
6. Способ по п.5, в котором фактическое значение BV для предыдущего блока доступно, если (1) предыдущий блок и текущий блок входят в состав заданного элемента дерева кодирования, и (2) режим предсказания предыдущего блока является режимом предсказания внутри BC.
7. Способ по п.1, в котором текущий блок входит в состав элемента кодирования.
8. Способ по п.1, в котором компонент предиктора BV с ненулевым значением является горизонтальным компонентом BV.
9. Способ по п.1, в котором компонент предиктора BV с ненулевым значением является вертикальным компонентом BV.
10. Способ по п.1, в котором ненулевое значение является высотой или шириной текущего блока.
11. Способ по п.1, в котором ненулевое значение является фиксированным значением, независимым от размера текущего блока.
12. Способ декодирования видео или изображений, выполняемый в вычислительном устройстве с декодером видео или декодером изображений, содержащий этапы, на которых:
определяют предиктор вектора блока (BV) по умолчанию для текущего блока картинки, причем предиктор BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением; и
декодируют текущий блок с использованием предсказания внутри копии блока (BC) с предиктором BV по умолчанию.
13. Способ по п.12, в котором декодирование текущего блока с использованием предиктора BV по умолчанию включает в себя этапы, на которых:
декодируют дифференциал BV для текущего блока;
комбинируют декодированный дифференциал BV для текущего блока с предиктором BV по умолчанию для текущего блока, чтобы восстановить значение BV для текущего блока; и
выполняют предсказание внутри BC с использованием значения BV для текущего блока.
14. Способ по п.12, в котором декодирование текущего блока с использованием предиктора BV по умолчанию включает в себя этап, на котором выполняют предсказание внутри BC с использованием предиктора BV по умолчанию.
15. Способ по п.12, в котором предиктор BV по умолчанию входит в состав собранного набора из множества вариантов предиктора BV.
16. Способ по п.12, дополнительно содержащий этап, на котором проверяют, доступно ли фактическое значение BV для предыдущего блока картинки, причем предиктор BV по умолчанию для текущего блока используется, только если никакого фактического значения BV для любого предыдущего блока картинки не доступно.
17. Способ по п.16, в котором фактическое значение BV для предыдущего блока доступно, если (1) предыдущий блок и текущий блок входят в состав заданного элемента дерева кодирования, и (2) режим предсказания предыдущего блока является режимом предсказания внутри BC.
18. Способ по п.12, в котором текущий блок входит в состав элемента кодирования.
19. Способ по п.12, в котором компонент предиктора BV с ненулевым значением является горизонтальным компонентом BV.
20. Способ по п.12, в котором компонент предиктора BV с ненулевым значением является вертикальным компонентом BV.
21. Способ по п.12, в котором ненулевое значение является высотой или шириной текущего блока.
22. Способ по п.12, в котором ненулевое значение является фиксированным значением, независимым от размера текущего блока.
23. Способ кодирования видео или изображений, выполняемый в вычислительном устройстве с кодером видео или кодером изображений, содержащий этапы, на которых:
используют предсказание вектора блока (BV) для определения значения BV для текущего блока картинки, причем значение BV для текущего блока указывает смещение к некоторой области внутри картинки;
кодируют текущий блок с использованием предсказания внутри копии блока со значением BV; и
выводят в битовом потоке указание, что текущий блок закодирован в режиме пропуска, причем в битовом потоке отсутствует дифференциал BV и остаточных данных для текущего блока.
24. Способ по п.23, в котором битовый поток включает в себя значение индекса, которое указывает выбор варианта предиктора BV, из набора множества вариантов предиктора BV, для использования в качестве значения BV для текущего блока.
25. Способ по п.24, в котором значение индекса является флаговым значением, причем в наборе множества вариантов предиктора BV имеется два варианта предиктора BV.
26. Способ по п.24, в котором значение индекса является целочисленным значением, причем в наборе множества вариантов предиктора BV имеется более двух вариантов предиктора BV.
27. Способ по п.26, в котором множество вариантов предиктора BV включает в себя один или более предикторов BV по умолчанию, причем каждый из этих одного или более предикторов BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением.
28. Способ декодирования видео или изображений, выполняемый в вычислительном устройстве с декодером видео или декодером изображений, содержащий этапы, на которых:
принимают из битового потока указание, что текущий блок картинки закодирован в режиме пропуска, причем в битовом потоке отсутствует дифференциал вектора блока (BV) и остаточных данных для текущего блока;
используют предсказание BV для определения значения BV для текущего блока, причем значение BV для текущего блока указывает смещение к некоторой области внутри картинки; и
декодируют текущий блок с использованием предсказания внутри копии блока со значением BV.
29. Способ по п.28, в котором битовый поток включает в себя значение индекса, которое указывает выбор варианта предиктора BV, из набора множества вариантов предиктора BV, для использования в качестве значения BV для текущего блока.
30. Способ по п.29, в котором значение индекса является флаговым значением, причем в наборе множества вариантов предиктора BV имеется два варианта предиктора BV.
31. Способ по п.29, в котором значение индекса является целочисленным значением, причем в наборе множества вариантов предиктора BV имеется более двух вариантов предиктора BV.
32. Способ по п.31, в котором множество вариантов предиктора BV включает в себя один или более предикторов BV по умолчанию, причем каждый из этих одного или более предикторов BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением.
33. Способ кодирования видео или изображений, выполняемый в вычислительном устройстве с кодером видео или кодером изображений, содержащий этапы, на которых:
определяют набор множества вариантов предиктора вектора блока (BV) для текущего блока картинки;
выбирают один из множества вариантов предиктора BV для использования для текущего блока;
кодируют текущий блок с использованием предсказания внутри копии блока (BC) с выбранным вариантом предиктора BV; и
выводят в битовом потоке значение индекса, которое указывает выбранный вариант предиктора BV.
34. Способ по п.33, в котором текущий блок является блоком режима объединения, причем в битовом потоке отсутствует дифференциал BV для текущего блока.
35. Способ по п.34, в котором в битовом потоке отсутствуют остаточные данные для текущего блока.
36. Способ по п.34, в котором битовый поток включает в себя остаточные данные для текущего блока.
37. Способ по п.33, в котором значение в битовом потоке указывает, что текущий блок является блоком режима пропуска, причем в битовом потоке отсутствует дифференциал BV для текущего блока и в битовом потоке отсутствуют остаточные данные для текущего блока.
38. Способ по п.33, в котором битовый поток включает в себя дифференциал BV для текущего блока, причем дифференциал BV указывает разницу между выбранным вариантом предиктора BV и значением BV для текущего блока.
39. Способ по п.33, в котором значение индекса является флаговым значением, причем в наборе множества вариантов предиктора BV имеется два варианта предиктора BV.
40. Способ по п.33, в котором значение индекса является целочисленным значением, причем в наборе множества вариантов предиктора BV имеется более двух вариантов предиктора BV.
41. Способ по п.33, в котором множество вариантов предиктора BV включает в себя вплоть до x фактических значений BV предыдущих блоков.
42. Способ по п.41, в котором x равно по меньшей мере 2.
43. Способ по п.41, в котором предыдущие блоки идентифицируются, по меньшей мере отчасти, на основе местоположения по соседству вокруг текущего блока.
44. Способ по п.41, в котором предыдущие блоки идентифицируются, по меньшей мере отчасти, на основе порядка декодирования по сравнению с текущим блоком.
45. Способ по п.33, в котором множество вариантов предиктора BV включает в себя один или более предикторов BV по умолчанию, причем каждый из этих одного или более предикторов BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением.
46. Способ по п.33, в котором значение индекса сигнализируется в битовом потоке в составе синтаксического элемента, которое указывает, закодирован ли текущий блок с использованием режима предсказания внутри BC.
47. Способ по п.33, в котором значение индекса в зависимости от условий сигнализируется в битовом потоке, если синтаксический элемент режима предсказания внутри BC указывает, что текущий блок закодирован с использованием режима предсказания внутри BC.
48. Способ по п.33, дополнительно содержащий этап, на котором обновляют структуру данных, используемую для отслеживания фактических значений BV предыдущих блоков.
49. Способ декодирования видео или изображений, выполняемый в вычислительном устройстве с декодером видео или декодером изображений, содержащий этапы, на которых:
принимают из битового потока значение индекса;
определяют набор множества вариантов предиктора вектора блока (BV) для текущего блока картинки;
на основе значения индекса выбирают один из множества вариантов предиктора BV для использования для текущего блока; и
декодируют текущий блок с использованием предсказания внутри копии блока (BC) с выбранным вариантом предиктора BV.
50. Способ по п.49, в котором текущий блок является блоком режима объединения, причем в битовом потоке отсутствует дифференциал BV для текущего блока.
51. Способ по п.50, в котором в битовом потоке отсутствуют остаточные данные для текущего блока.
52. Способ по п.50, в котором битовый поток включает в себя остаточные данные для текущего блока.
53. Способ по п.49, в котором значение в битовом потоке указывает, что текущий блок является блоком режима пропуска, причем в битовом потоке отсутствует дифференциал BV для текущего блока и в битовом потоке отсутствуют остаточные данные для текущего блока.
54. Способ по п.49, в котором битовый поток включает в себя дифференциал BV для текущего блока, причем дифференциал BV указывает разницу между выбранным вариантом предиктора BV и значением BV для текущего блока.
55. Способ по п.49, в котором значение индекса является флаговым значением, причем в наборе множества вариантов предиктора BV имеется два варианта предиктора BV.
56. Способ по п.49, в котором значение индекса является целочисленным значением, причем в наборе множества вариантов предиктора BV имеется более двух вариантов предиктора BV.
57. Способ по п.49, в котором множество вариантов предиктора BV включает в себя вплоть до x фактических значений BV предыдущих блоков.
58. Способ по п.57, в котором x равно по меньшей мере 2.
59. Способ по п.57, в котором предыдущие блоки идентифицируются, по меньшей мере отчасти, на основе местоположения по соседству вокруг текущего блока.
60. Способ по п.57, в котором предыдущие блоки идентифицируются, по меньшей мере отчасти, на основе порядка декодирования по сравнению с текущим блоком.
61. Способ по п.49, в котором множество вариантов предиктора BV включает в себя один или более предикторов BV по умолчанию, причем каждый из этих одного или более предикторов BV по умолчанию включает в себя компонент предиктора BV с ненулевым значением.
62. Способ по п.49, в котором значение индекса сигнализируется в битовом потоке в составе синтаксического элемента, которое указывает, закодирован ли текущий блок с использованием режима предсказания внутри BC.
63. Способ по п.49, в котором значение индекса в зависимости от условий сигнализируется в битовом потоке, если синтаксический элемент режима предсказания внутри BC указывает, что текущий блок закодирован с использованием режима предсказания внутри BC.
64. Способ по п.49, дополнительно содержащий этап, на котором обновляют структуру данных, используемую для отслеживания фактических значений BV предыдущих блоков.
65. Вычислительное устройство, выполненное с возможностью осуществления способа по любому из пп.1-11, 23-27, 33-48.
66. Вычислительное устройство, выполненное с возможностью осуществления способа по любому из пп.12-22, 28-32, 49-64.
67. Машиночитаемый носитель, на котором хранятся машиноисполняемые инструкции для предписания вычислительному устройству, программируемому ими, выполнять способ по любому из пп.1-11, 23-27, 33-48.
68. Машиночитаемый носитель, на котором хранятся машиноисполняемые инструкции для предписания вычислительному устройству, программируемому ими, выполнять способ по любому из пп.12-22, 28-32, 49-64.
RU2016125260A 2014-01-03 2014-01-03 Предсказание вектора блока в кодировании/декодировании видео и изображений RU2669005C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/070072 WO2015100726A1 (en) 2014-01-03 2014-01-03 Block vector prediction in video and image coding/decoding

Publications (2)

Publication Number Publication Date
RU2016125260A RU2016125260A (ru) 2017-12-28
RU2669005C2 true RU2669005C2 (ru) 2018-10-05

Family

ID=53493035

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016125260A RU2669005C2 (ru) 2014-01-03 2014-01-03 Предсказание вектора блока в кодировании/декодировании видео и изображений

Country Status (12)

Country Link
US (3) US10469863B2 (ru)
EP (2) EP4096221A1 (ru)
JP (1) JP6355744B2 (ru)
KR (2) KR102353787B1 (ru)
CN (1) CN105917650B (ru)
AU (1) AU2014376061B8 (ru)
BR (1) BR112016015080A2 (ru)
CA (1) CA2934699A1 (ru)
ES (1) ES2924392T3 (ru)
MX (1) MX360926B (ru)
RU (1) RU2669005C2 (ru)
WO (1) WO2015100726A1 (ru)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210297659A1 (en) 2018-09-12 2021-09-23 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
RU2779635C1 (ru) * 2019-06-20 2022-09-12 ДжейВиСиКЕНВУД Корпорейшн Устройство для кодирования видео, способ кодирования видео, программа кодирования видео, устройство для декодирования видео, способ декодирования видео и программа декодирования видео
US11589071B2 (en) 2019-01-10 2023-02-21 Beijing Bytedance Network Technology Co., Ltd. Invoke of LUT updating
US11641483B2 (en) 2019-03-22 2023-05-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
US11695921B2 (en) 2018-06-29 2023-07-04 Beijing Bytedance Network Technology Co., Ltd Selection of coded motion information for LUT updating
US11831877B2 (en) 2019-04-12 2023-11-28 Beijing Bytedance Network Technology Co., Ltd Calculation in matrix-based intra prediction
US11877002B2 (en) 2018-06-29 2024-01-16 Beijing Bytedance Network Technology Co., Ltd Update of look up table: FIFO, constrained FIFO
US11895318B2 (en) 2018-06-29 2024-02-06 Beijing Bytedance Network Technology Co., Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US11909989B2 (en) 2018-06-29 2024-02-20 Beijing Bytedance Network Technology Co., Ltd Number of motion candidates in a look up table to be checked according to mode
US11909951B2 (en) 2019-01-13 2024-02-20 Beijing Bytedance Network Technology Co., Ltd Interaction between lut and shared merge list
US11930175B2 (en) 2019-07-26 2024-03-12 Beijing Bytedance Network Technology Co., Ltd Block size dependent use of video coding mode
US11936855B2 (en) 2019-04-01 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Alternative interpolation filters in video coding
US11943444B2 (en) 2019-05-31 2024-03-26 Beijing Bytedance Network Technology Co., Ltd. Restricted upsampling process in matrix-based intra prediction
US11956464B2 (en) 2019-01-16 2024-04-09 Beijing Bytedance Network Technology Co., Ltd Inserting order of motion candidates in LUT

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
RU2654129C2 (ru) 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений
EP3058740B1 (en) 2013-10-14 2020-06-03 Microsoft Technology Licensing, LLC Features of base color index map mode for video and image coding and decoding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
AU2014376061B8 (en) 2014-01-03 2019-05-30 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
KR101908205B1 (ko) * 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
JP6482191B2 (ja) * 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
EP3158734A1 (en) 2014-06-19 2017-04-26 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
US9948949B2 (en) * 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
CN105392008B (zh) * 2014-08-22 2018-09-25 中兴通讯股份有限公司 一种预测编、解码方法和相应的编、解码器和电子设备
US10812817B2 (en) 2014-09-30 2020-10-20 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9854237B2 (en) 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
EP3308540B1 (en) 2015-06-09 2020-04-15 Microsoft Technology Licensing, LLC Robust encoding/decoding of escape-coded pixels in palette mode
WO2018030291A1 (ja) 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
FR3068557A1 (fr) 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
FR3062010A1 (fr) 2017-07-05 2018-07-20 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'une sequence d'images
FR3068558A1 (fr) 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
EP3788787A1 (en) 2018-06-05 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Interaction between ibc and atmvp
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
CN113115046A (zh) 2018-06-21 2021-07-13 北京字节跳动网络技术有限公司 分量相关的子块分割
MX2020013829A (es) * 2018-06-29 2022-05-18 Beijing Bytedance Network Tech Co Ltd Poda parcial/total cuando se añade un candidato a hmvp para fusión/amvp.
WO2020003266A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Resetting of look up table per slice/tile/lcu row
CN114885173A (zh) 2018-06-29 2022-08-09 抖音视界(北京)有限公司 Lut中的运动候选的检查顺序
EP3794824A1 (en) * 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Conditions for updating luts
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
TWI748202B (zh) * 2018-07-02 2021-12-01 大陸商北京字節跳動網絡技術有限公司 Lamvr中取整和修剪的順序
CA3191812A1 (en) * 2018-07-04 2020-01-09 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
CN110719465B (zh) * 2018-07-14 2022-11-22 北京字节跳动网络技术有限公司 用时间信息扩展基于查找表的运动矢量预测
WO2020044196A1 (en) 2018-08-26 2020-03-05 Beijing Bytedance Network Technology Co., Ltd. Combined history-based motion vector predictor and multi-motion model decoding
CN110933411B (zh) * 2018-09-19 2023-12-12 北京字节跳动网络技术有限公司 用于帧内编码的邻近的相邻块的选择
TWI818086B (zh) 2018-09-24 2023-10-11 大陸商北京字節跳動網絡技術有限公司 擴展Merge預測
US10764601B2 (en) * 2018-10-06 2020-09-01 Tencent America LLC Method and apparatus for video coding
CN112997495B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 当前图片参考中的取整
WO2020141853A1 (ko) * 2019-01-01 2020-07-09 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
WO2020156549A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer access methods for intra block copy in video coding
SG11202107959WA (en) 2019-02-02 2021-08-30 Beijing Bytedance Network Technology Co Ltd Buffer management for intra block copy in video coding
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
EP3915252A4 (en) 2019-03-04 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. IMPLEMENTATION OF ASPECTS IN AN INTRA BLOCK COPY IN VIDEO ENCODING
US11012686B2 (en) * 2019-03-08 2021-05-18 Tencent America LLC Unified block vector prediction for intra picture block compensation
JP7303330B2 (ja) 2019-04-28 2023-07-04 北京字節跳動網絡技術有限公司 対称動きベクトル差分符号化
CN113994699B (zh) 2019-06-06 2024-01-12 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
US11039156B2 (en) 2019-06-11 2021-06-15 Tencent America LLC Unified position dependent prediction combination process
CN112118451B (zh) * 2019-06-20 2022-09-27 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN110784712B (zh) * 2019-06-21 2021-05-11 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及存储介质
CN114009037A (zh) * 2019-06-22 2022-02-01 北京字节跳动网络技术有限公司 帧内块复制模式的运动候选列表构建
BR112022000187A2 (pt) 2019-07-06 2022-02-22 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador, meio de gravação não transitório legível por computador
JP7359934B2 (ja) 2019-07-10 2023-10-11 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのサンプル識別
CN117579816A (zh) 2019-07-11 2024-02-20 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
CN114258674A (zh) * 2019-07-19 2022-03-29 Lg 电子株式会社 使用ibc的图像编码/解码方法和装置,以及发送比特流的方法
CN114365495A (zh) 2019-09-09 2022-04-15 北京字节跳动网络技术有限公司 帧内块复制编码与解码
WO2021056454A1 (zh) * 2019-09-27 2021-04-01 Oppo广东移动通信有限公司 当前块的预测方法及装置、设备、存储介质
US11516477B2 (en) * 2021-02-11 2022-11-29 Qualcomm Incorporated Intra block copy scratch frame buffer
CA3178206A1 (en) * 2021-09-30 2023-03-30 Comcast Cable Communications, Llc Video compression using block vector predictor refinement
US11683509B1 (en) * 2021-10-28 2023-06-20 Meta Platforms, Inc. Prediction unit skip detection in encoder
US20230388513A1 (en) * 2022-05-25 2023-11-30 Tencent America LLC Subblock level temporal motion vector prediction with multiple displacement vector predictors and an offset

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120236942A1 (en) * 2011-03-14 2012-09-20 Mediatek Inc. Method and Apparatus for Deriving Temporal Motion Vector Prediction
WO2013057359A1 (en) * 2011-10-21 2013-04-25 Nokia Corporation Method for video coding and an apparatus
GB2495990A (en) * 2011-10-28 2013-05-01 Canon Kk Motion compensated image coding with omission of coding mode cost calculation for a motion predictor in a set.
RU2493670C2 (ru) * 2011-12-15 2013-09-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ блочной межкадровой компенсации движения для видеокодеков
US20140002599A1 (en) * 2011-01-06 2014-01-02 Samsung Electronics Co., Ltd. Competition-based multiview video encoding/decoding device and method thereof

Family Cites Families (252)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2114404B (en) 1982-01-28 1986-07-02 British Broadcasting Corp Generating a colour video signal representative of a stored picture
JPH087553B2 (ja) 1988-10-27 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 色画像量子化方法及び装置
US5706290A (en) 1994-12-15 1998-01-06 Shaw; Venson Method and apparatus including system architecture for multimedia communication
US6389162B2 (en) 1996-02-15 2002-05-14 Canon Kabushiki Kaisha Image processing apparatus and method and medium
JPH10262258A (ja) 1997-03-19 1998-09-29 Sony Corp 画像符号化装置及び方法
JP2000102016A (ja) 1998-09-22 2000-04-07 Victor Co Of Japan Ltd 動き補償予測回路
JP2001251507A (ja) 2000-03-03 2001-09-14 Fujitsu Ltd 画像処理装置
US6701012B1 (en) 2000-07-24 2004-03-02 Sharp Laboratories Of America, Inc. Out-of-layer pixel generation for a decomposed-image layer
US6748116B1 (en) 2000-08-22 2004-06-08 Airzip, Inc. Apparatus and method for compressing and decompressing image files
DE10049571C1 (de) 2000-10-06 2002-06-13 Siemens Ag Verfahren und Anordnung zum Übertragen eines Vektors
US7023924B1 (en) 2000-12-28 2006-04-04 Emc Corporation Method of pausing an MPEG coded video stream
US6853755B2 (en) 2001-03-28 2005-02-08 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive compression of scanned documents
EP1433121A4 (en) 2001-09-12 2007-03-21 Bonet Jeremy S De TRANSFORMATION TO INCREASE THE COMPRESSIBILITY OF IMAGES WITH A MINIMUM OF VISUAL DISTORTION BASED ON LEMPEL-ZIV METHODS
JP2004007379A (ja) 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
US7120196B2 (en) 2002-04-29 2006-10-10 Ess Technology, Inc. Intra-prediction using intra-macroblock motion compensation
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US20060051068A1 (en) 2003-01-10 2006-03-09 Thomson Licensing S.A. Decoder apparatus and method for smoothing artifacts created during error concealment
DE10301362B4 (de) 2003-01-16 2005-06-09 GEMAC-Gesellschaft für Mikroelektronikanwendung Chemnitz mbH Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
US7373005B2 (en) 2003-04-10 2008-05-13 Micron Technology, Inc. Compression system for integrated sensor devices
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
CN1843038B (zh) 2003-08-26 2010-09-22 汤姆森特许公司 用于解码混合内部-相互编码块的方法和装置
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
KR101044934B1 (ko) 2003-12-18 2011-06-28 삼성전자주식회사 움직임 벡터 추정방법 및 부호화 모드 결정방법
JP4591657B2 (ja) 2003-12-22 2010-12-01 キヤノン株式会社 動画像符号化装置及びその制御方法、プログラム
US8036271B2 (en) 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
JP4338654B2 (ja) 2004-03-18 2009-10-07 三洋電機株式会社 動きベクトル検出装置及び方法、及びその動きベクトル検出装置を利用可能な画像符号化装置
JP4418762B2 (ja) 2004-05-07 2010-02-24 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US8116374B2 (en) 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
US7978770B2 (en) 2004-07-20 2011-07-12 Qualcomm, Incorporated Method and apparatus for motion vector prediction in temporal video compression
JP2006140683A (ja) 2004-11-11 2006-06-01 Canon Inc 画像符号化装置
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
US7720154B2 (en) 2004-11-12 2010-05-18 Industrial Technology Research Institute System and method for fast variable-size motion estimation
KR100679035B1 (ko) 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US20060274070A1 (en) 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
KR100716999B1 (ko) 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
KR101211665B1 (ko) 2005-08-12 2012-12-12 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP2007053561A (ja) 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
ATE425516T1 (de) 2005-08-19 2009-03-15 Ericsson Telefon Ab L M Texturkomprimierung auf der basis zweier farbtöne mit modifizierter helligkeit
US7986844B2 (en) 2005-11-22 2011-07-26 Intel Corporation Optimized video compression using hashing function
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US8582905B2 (en) 2006-01-31 2013-11-12 Qualcomm Incorporated Methods and systems for rate control within an encoding device
CN101026761B (zh) 2006-02-17 2010-05-12 中国科学院自动化研究所 一种具有最小误差的快速变尺寸块匹配的运动估计方法
US7668382B2 (en) 2006-02-24 2010-02-23 Microsoft Corporation Block-based fast image compression
US7616816B2 (en) 2006-03-20 2009-11-10 Sarnoff Corporation System and method for mission-driven visual information retrieval and organization
WO2007119198A1 (en) * 2006-04-14 2007-10-25 Nxp B.V. Motion estimation at image borders
CA2655970A1 (en) 2006-07-07 2008-01-10 Telefonaktiebolaget L M Ericsson (Publ) Video data management
DE102007035204A1 (de) 2006-07-28 2008-02-07 Mediatek Inc. Videoverarbeitungs- und - betriebsvorrichtung
US8472527B2 (en) 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
FR2906433B1 (fr) 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
EP2070334A1 (en) 2006-09-22 2009-06-17 THOMSON Licensing Method and apparatus for multiple pass video coding and decoding
US20080084924A1 (en) 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
US8218641B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture encoding using same-picture reference for pixel reconstruction
US8218640B2 (en) * 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
JP2008154015A (ja) 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
US7907783B2 (en) 2007-01-24 2011-03-15 Samsung Electronics Co., Ltd. Apparatus and method of matching symbols in a text image coding and decoding system
CN100527842C (zh) 2007-01-26 2009-08-12 清华大学 基于背景的运动估计编码方法
CA2676709C (en) 2007-02-23 2013-06-25 Nippon Telegraph And Telephone Corporation Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US20100118940A1 (en) 2007-04-19 2010-05-13 Peng Yin Adaptive reference picture data generation for intra prediction
US7903873B2 (en) 2007-09-13 2011-03-08 Microsoft Corporation Textual image coding
CN101420606A (zh) 2007-10-23 2009-04-29 青岛海信电器股份有限公司 图像处理方法和装置
JP2009147807A (ja) 2007-12-17 2009-07-02 Fujifilm Corp 画像処理装置
CN101232619B (zh) 2008-01-25 2011-05-11 浙江大学 嵌入帧内编码块的视频编码方法
TWI375472B (en) 2008-02-04 2012-10-21 Ind Tech Res Inst Intra prediction method for luma block of video
CN101552924B (zh) 2008-03-31 2011-08-03 深圳市融创天下科技发展有限公司 一种用于视频编码的空间预测方法
US9794597B2 (en) 2008-04-11 2017-10-17 Thomson Licensing Dtv Methods and apparatus for deblocking filtering of non-local intra prediction
JP2009260473A (ja) 2008-04-14 2009-11-05 Canon Inc 色処理方法及び装置、プログラム、記録媒体
JP2010035137A (ja) 2008-07-01 2010-02-12 Sony Corp 画像処理装置および方法、並びにプログラム
CN102113326A (zh) 2008-08-04 2011-06-29 杜比实验室特许公司 重叠块差异估计和补偿体系结构
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
KR101306834B1 (ko) 2008-09-22 2013-09-10 에스케이텔레콤 주식회사 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법
US8254704B2 (en) 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
US8180165B2 (en) 2008-12-19 2012-05-15 Microsoft Corp. Accelerated screen codec
KR101359490B1 (ko) 2008-12-23 2014-02-10 에스케이 텔레콤주식회사 컬러 영상 부호화/복호화 방법 및 장치
TW201028018A (en) 2009-01-07 2010-07-16 Ind Tech Res Inst Encoder, decoder, encoding method and decoding method
WO2010085899A1 (en) 2009-02-02 2010-08-05 Calgary Scientific Inc. Image data transmission
RU2420021C2 (ru) 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
EP2249571A1 (en) 2009-05-04 2010-11-10 Thomson Licensing SA Method and device for encoding an image frame comprising macroblocks
EP2446625A1 (en) 2009-06-22 2012-05-02 Thomson Licensing Process for matching pursuit based coding of video data for a sequence of images
US20120275518A1 (en) 2009-07-10 2012-11-01 Shinya Kadono Moving picture coding method, apparatus, program, and integrated circuit
CN101626512A (zh) 2009-08-11 2010-01-13 北京交通大学 一种基于相关性优化准则的多描述视频编码方法及装置
KR101698499B1 (ko) 2009-10-01 2017-01-23 에스케이텔레콤 주식회사 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
TWI566586B (zh) * 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
CN102577392A (zh) * 2009-10-20 2012-07-11 夏普株式会社 运动图像编码装置、运动图像解码装置以及数据结构
JP5321426B2 (ja) 2009-11-26 2013-10-23 株式会社Jvcケンウッド 画像符号化装置、画像復号化装置、画像符号化方法、及び画像復号化方法
KR101623124B1 (ko) 2009-12-03 2016-05-24 에스케이 텔레콤주식회사 비디오 인코딩 장치 및 그 인코딩 방법, 비디오 디코딩 장치 및 그 디코딩 방법, 및 거기에 이용되는 방향적 인트라 예측방법
EP2532159A1 (en) * 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
US20110194613A1 (en) 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
JP5375676B2 (ja) 2010-03-04 2013-12-25 富士通株式会社 画像処理装置、画像処理方法、および画像処理プログラム
CN102939751B (zh) 2010-03-31 2016-03-16 法国电信 通过向前运动补偿、对应的流和计算机程序实施预测的用于对图像序列进行编码和解码的方法和装置
WO2011126348A2 (en) 2010-04-09 2011-10-13 Lg Electronics Inc. Method and apparatus for processing video data
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8619857B2 (en) 2010-04-09 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
US8644375B2 (en) 2010-04-09 2014-02-04 Sharp Laboratories Of America, Inc. Methods and systems for intra prediction
WO2011136896A1 (en) 2010-04-27 2011-11-03 Sony Corporation Boundary adaptive intra prediction for improving subjective video quality
KR20110123651A (ko) 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
EP2583457A4 (en) 2010-06-21 2015-07-29 Thomson Licensing METHOD AND APPARATUS FOR ENCODING / DECODING IMAGE DATA
EP2590411A4 (en) 2010-07-02 2014-07-30 Humax Co Ltd DEVICE AND METHOD FOR ENCRYPTING AND DECOMPOSING IMAGES FOR INTRAPREDICTION ENCRYPTION
KR101484281B1 (ko) 2010-07-09 2015-01-21 삼성전자주식회사 블록 병합을 이용한 비디오 부호화 방법 및 그 장치, 블록 병합을 이용한 비디오 복호화 방법 및 그 장치
BR112013000963B1 (pt) 2010-07-14 2019-12-03 Ntt Docomo Inc métodos de codificação e decodificação de vídeo e codificador e decodificador de vídeo
US9872019B2 (en) 2010-07-20 2018-01-16 Sk Telecom Co., Ltd. Method and device for deblocking-filtering, and method and device for encoding and decoding using same
CN107071487B (zh) 2010-11-04 2020-09-15 Ge视频压缩有限责任公司 支持区块合并和跳过模式的图像编码
US8787459B2 (en) * 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
KR101756442B1 (ko) 2010-11-29 2017-07-11 에스케이텔레콤 주식회사 인트라예측모드의 중복성을 최소화하기 위한 영상 부호화/복호화 방법 및 장치
US20120163457A1 (en) 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
US8767835B2 (en) 2010-12-28 2014-07-01 Mitsubishi Electric Research Laboratories, Inc. Method for coding videos using dictionaries
KR101739579B1 (ko) 2011-01-04 2017-05-24 에스케이 텔레콤주식회사 코딩 유닛 단위 병렬 인트라예측을 이용한 부호화/복호화 방법 및 장치
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
KR102390352B1 (ko) * 2011-01-07 2022-04-25 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법과 이를 이용한 장치
US8737480B2 (en) 2011-01-14 2014-05-27 Motorola Mobility Llc Joint spatial and temporal block merge mode for HEVC
US9066104B2 (en) * 2011-01-14 2015-06-23 Google Inc. Spatial block merge mode
EP3703263A1 (en) 2011-01-14 2020-09-02 GE Video Compression, LLC Entropy encoding and decoding scheme
US8755437B2 (en) 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
US9787981B2 (en) * 2011-01-19 2017-10-10 Renesas Electronics Corporation Image coding device and image decoding device
US9532066B2 (en) 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
US8548057B2 (en) 2011-01-25 2013-10-01 Microsoft Corporation Video coding redundancy reduction
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9288501B2 (en) 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
EP4184918B1 (en) 2011-03-21 2024-02-07 LG Electronics Inc. Video decoding method, video encoding method, computer-readable digital storage medium and transmission method of data for a video
US8693547B2 (en) 2011-04-06 2014-04-08 Google Inc. Apparatus and method for coding using motion vector segmentation
MX2013012300A (es) 2011-04-21 2013-12-06 Samsung Electronics Co Ltd Metodo para cuantificar coeficientes de codificacion predictiva lineal, metodo de codificacion de sonido, metodo para decuantificar coeficientes de codificacion predictiva lineal , metodo de decodificacion de sonido y medio de grabacion.
US20140050414A1 (en) 2011-04-29 2014-02-20 Telefonaktiebolaget L M Ericsson (Publ) Encoder, Decoder and Methods Thereof for Texture Compression
US20120281760A1 (en) 2011-05-04 2012-11-08 Hyung Joon Kim Iterative Grid-Pattern Motion Search
US8971416B2 (en) 2011-05-05 2015-03-03 Vixs Systems, Inc Video decoder with vector processor and methods for use therewith
CN102137263B (zh) 2011-05-09 2013-07-03 松日数码发展(深圳)有限公司 基于cnm关键帧分类的分布式视频编码及解码方法
US20140085418A1 (en) 2011-05-16 2014-03-27 Sony Corporation Image processing device and image processing method
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
CN102238391B (zh) 2011-05-25 2016-12-07 深圳市云宙多媒体技术有限公司 一种预测编码方法、装置
JP5727873B2 (ja) 2011-06-10 2015-06-03 日本放送協会 動きベクトル検出装置、符号化装置、及びこれらのプログラム
US9565428B2 (en) 2011-06-20 2017-02-07 Mediatek Singapore Pte. Ltd. Method and apparatus of chroma intra prediction with reduced line memory
EP3223523A1 (en) * 2011-06-24 2017-09-27 HFI Innovation Inc. Method and apparatus for removing redundancy in motion vector predictors
MY169636A (en) 2011-06-27 2019-04-24 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
US9060173B2 (en) 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
WO2013009896A1 (en) 2011-07-12 2013-01-17 Huawei Technologies Co. Ltd. Pixel-based intra prediction for coding in hevc
CN102223541B (zh) 2011-07-14 2013-07-03 北京工业大学 一种混合图像的编码方法
US9232237B2 (en) 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
US9769472B2 (en) 2011-08-17 2017-09-19 Mediatek Singapore Pte. Ltd. Method and apparatus for Intra prediction using non-square blocks
CN103765886B (zh) 2011-08-29 2017-06-13 苗太平洋控股有限公司 以amvp模式产生预测区块的方法
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
US9578336B2 (en) 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
BR112014012351A2 (pt) 2011-11-08 2017-05-30 Motorola Mobility Llc dispositivos e métodos para codificação e/ou de sinalização de deslocamento adaptado de amostra
WO2013068564A1 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Effective wedgelet partition coding using spatial prediction
US20130121417A1 (en) 2011-11-16 2013-05-16 Qualcomm Incorporated Constrained reference picture sets in wave front parallel processing of video data
EP3739886A1 (en) 2011-11-18 2020-11-18 GE Video Compression, LLC Multi-view coding with efficient residual handling
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
CN108471532B (zh) 2011-11-25 2021-06-29 太阳专利托管公司 图像解码方法及图像解码装置
KR20140120891A (ko) 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 효율적인 변환 유닛 인코딩을 위한 방법 및 장치
US20130163664A1 (en) 2011-12-22 2013-06-27 Qualcomm Incorporated Unified partition mode table for intra-mode coding
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US9900615B2 (en) 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
WO2013102293A1 (en) 2012-01-04 2013-07-11 Mediatek Singapore Pte. Ltd. Improvements of luma-based chroma intra prediction
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US9749661B2 (en) 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
JP2013150173A (ja) 2012-01-19 2013-08-01 Sony Corp 画像処理装置および方法
US20130188719A1 (en) 2012-01-20 2013-07-25 Qualcomm Incorporated Motion prediction in svc using motion vector for intra-coded block
JP2013150215A (ja) 2012-01-20 2013-08-01 Fujitsu Ltd 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
RU2679551C2 (ru) 2012-01-20 2019-02-11 ДжиИ Видео Компрешн, ЭлЭлСи Принцип кодирования, делающий возможной параллельную обработку, транспортный демультиплексор и битовый поток видео
US9210438B2 (en) 2012-01-20 2015-12-08 Sony Corporation Logical intra mode naming in HEVC video coding
US10244246B2 (en) 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
WO2013128010A2 (en) 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
JP2015515806A (ja) 2012-03-26 2015-05-28 ユークリッド・ディスカバリーズ・エルエルシーEuclid Discoveries,Llc コンテキストベースの映像符号化及び映像復号化
US20130258052A1 (en) 2012-03-28 2013-10-03 Qualcomm Incorporated Inter-view residual prediction in 3d video coding
US9838684B2 (en) 2012-04-11 2017-12-05 Qualcomm Incorporated Wavefront parallel processing for video coding
US20130272409A1 (en) 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
SG11201405038RA (en) 2012-04-24 2014-09-26 Mediatek Inc Method and apparatus of motion vector derivation for 3d video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9521410B2 (en) 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
US9762903B2 (en) 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
CN102752595B (zh) 2012-06-29 2014-07-09 香港应用科技研究院有限公司 用于深度图编码和解码的混合型跳过模式
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US9549182B2 (en) 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9467692B2 (en) 2012-08-31 2016-10-11 Qualcomm Incorporated Intra prediction improvements for scalable video coding
US20140071235A1 (en) 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
CA2882792C (en) 2012-09-26 2021-08-03 Panasonic Intellectual Property Corporation Of America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
CN104685881B (zh) * 2012-09-28 2018-05-15 夏普株式会社 图像解码装置、图像编码装置以及图像解码方法
US9998755B2 (en) 2012-10-03 2018-06-12 Mediatek Inc. Method and apparatus for motion information inheritance in three-dimensional video coding
US9357214B2 (en) * 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
US9615090B2 (en) 2012-12-28 2017-04-04 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding
US9826244B2 (en) 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
CN103067716B (zh) 2013-01-10 2016-06-29 华为技术有限公司 深度图像的编解码方法和编解码装置
US9800857B2 (en) 2013-03-08 2017-10-24 Qualcomm Incorporated Inter-view residual prediction in multi-view or 3-dimensional video coding
US9516306B2 (en) 2013-03-27 2016-12-06 Qualcomm Incorporated Depth coding modes signaling of depth data for 3D-HEVC
US10904551B2 (en) * 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
CN103237226B (zh) 2013-04-07 2016-08-03 宁波大学 一种立体视频宏块丢失错误隐藏方法
WO2014166104A1 (en) 2013-04-12 2014-10-16 Mediatek Singapore Pte. Ltd. Removal of parsing dependency for illumination compensation
US11323747B2 (en) 2013-06-05 2022-05-03 Qualcomm Incorporated Residual differential pulse code modulation (DPCM) extensions and harmonization with transform skip, rotation, and scans
CN103281538B (zh) 2013-06-06 2016-01-13 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
CN104244007B (zh) 2013-06-13 2020-09-01 上海天荷电子信息有限公司 一种图像编码方法和装置及解码方法和装置
US9300967B2 (en) 2013-06-19 2016-03-29 Apple Inc. Sample adaptive offset control
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
GB2516422A (en) 2013-07-09 2015-01-28 Sony Corp Data encoding and decoding
US20150016533A1 (en) 2013-07-12 2015-01-15 Qualcomm Incorporated Intra motion compensation extensions
US9558567B2 (en) 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US20150016516A1 (en) 2013-07-15 2015-01-15 Samsung Electronics Co., Ltd. Method for intra prediction improvements for oblique modes in video coding
WO2015010226A1 (en) * 2013-07-24 2015-01-29 Qualcomm Incorporated Simplified advanced motion prediction for 3d-hevc
US9774879B2 (en) * 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
CN104378644B (zh) 2013-08-16 2020-12-04 上海天荷电子信息有限公司 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
US10313682B2 (en) 2013-08-26 2019-06-04 Qualcomm Incorporated Determining regions when performing intra block copying
US9503715B2 (en) 2013-08-30 2016-11-22 Qualcomm Incorporated Constrained intra prediction in video coding
CN104427338B (zh) 2013-09-07 2019-11-05 上海天荷电子信息有限公司 一种使用块匹配的图像编码以及图像解码的方法和装置
US20150071357A1 (en) 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
AU2013228045A1 (en) 2013-09-13 2015-04-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US10009629B2 (en) 2013-10-11 2018-06-26 Sony Corporation Video coding system with search range and method of operation thereof
RU2654129C2 (ru) 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений
EP3058740B1 (en) 2013-10-14 2020-06-03 Microsoft Technology Licensing, LLC Features of base color index map mode for video and image coding and decoding
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
US20150110181A1 (en) 2013-10-18 2015-04-23 Samsung Electronics Co., Ltd. Methods for palette prediction and intra block copy padding
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
CN105981380B (zh) 2013-12-18 2019-08-20 寰发股份有限公司 利用调色板编码的编码视频数据区块的方法和装置
TWI536811B (zh) * 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
AU2014376061B8 (en) 2014-01-03 2019-05-30 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US9883197B2 (en) 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
US20150271515A1 (en) 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
GB2522844A (en) 2014-01-29 2015-08-12 Sony Corp Data encoding and decoding
US9699468B2 (en) 2014-02-10 2017-07-04 Microsoft Technology Licensing, Llc Adaptive screen and video coding scheme
KR101908205B1 (ko) * 2014-02-21 2018-10-15 미디어텍 싱가폴 피티이. 엘티디. 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
EP3114838B1 (en) 2014-03-04 2018-02-07 Microsoft Technology Licensing, LLC Hash table construction and availability checking for hash-based block matching
AU2014385769B2 (en) 2014-03-04 2018-12-06 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
EP3117608B1 (en) 2014-03-14 2021-05-12 HFI Innovation Inc. Method for palette management
US20150312573A1 (en) 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US20150264348A1 (en) 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US10477232B2 (en) 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
AU2014202682A1 (en) * 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
EP3158734A1 (en) 2014-06-19 2017-04-26 Microsoft Technology Licensing, LLC Unified intra block copy and inter prediction modes
JP6640751B2 (ja) * 2014-06-19 2020-02-05 ヴィド スケール インコーポレイテッド ブロックベクトル導出を用いるイントラブロックコピー符号化のための方法およびシステム
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US9948949B2 (en) * 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
US20150381994A1 (en) 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
US10812817B2 (en) 2014-09-30 2020-10-20 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
US11146821B2 (en) 2016-05-25 2021-10-12 Arris Enterprises Llc JVET coding block structure with asymmetrical partitioning
JP2018032949A (ja) 2016-08-23 2018-03-01 キヤノン株式会社 動きベクトル検出装置およびその制御方法
US10817747B2 (en) 2019-03-14 2020-10-27 Ubicquia Iq Llc Homography through satellite image matching

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140002599A1 (en) * 2011-01-06 2014-01-02 Samsung Electronics Co., Ltd. Competition-based multiview video encoding/decoding device and method thereof
US20120236942A1 (en) * 2011-03-14 2012-09-20 Mediatek Inc. Method and Apparatus for Deriving Temporal Motion Vector Prediction
WO2013057359A1 (en) * 2011-10-21 2013-04-25 Nokia Corporation Method for video coding and an apparatus
GB2495990A (en) * 2011-10-28 2013-05-01 Canon Kk Motion compensated image coding with omission of coding mode cost calculation for a motion predictor in a set.
RU2493670C2 (ru) * 2011-12-15 2013-09-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ блочной межкадровой компенсации движения для видеокодеков

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11877002B2 (en) 2018-06-29 2024-01-16 Beijing Bytedance Network Technology Co., Ltd Update of look up table: FIFO, constrained FIFO
RU2807504C2 (ru) * 2018-06-29 2023-11-15 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Взаимодействие между таблицей поиска (lut) и усовершенствованным предсказанием вектора движения (amvp)
US11909989B2 (en) 2018-06-29 2024-02-20 Beijing Bytedance Network Technology Co., Ltd Number of motion candidates in a look up table to be checked according to mode
US11895318B2 (en) 2018-06-29 2024-02-06 Beijing Bytedance Network Technology Co., Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US11695921B2 (en) 2018-06-29 2023-07-04 Beijing Bytedance Network Technology Co., Ltd Selection of coded motion information for LUT updating
US11706406B2 (en) 2018-06-29 2023-07-18 Beijing Bytedance Network Technology Co., Ltd Selection of coded motion information for LUT updating
US11973971B2 (en) 2018-06-29 2024-04-30 Beijing Bytedance Network Technology Co., Ltd Conditions for updating LUTs
US20210297659A1 (en) 2018-09-12 2021-09-23 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
US11589071B2 (en) 2019-01-10 2023-02-21 Beijing Bytedance Network Technology Co., Ltd. Invoke of LUT updating
US11909951B2 (en) 2019-01-13 2024-02-20 Beijing Bytedance Network Technology Co., Ltd Interaction between lut and shared merge list
US11956464B2 (en) 2019-01-16 2024-04-09 Beijing Bytedance Network Technology Co., Ltd Inserting order of motion candidates in LUT
US11962799B2 (en) 2019-01-16 2024-04-16 Beijing Bytedance Network Technology Co., Ltd Motion candidates derivation
RU2808004C2 (ru) * 2019-03-22 2023-11-21 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство внутреннего прогнозирования на основе внутренних субсегментов в системе кодирования изображений
US11641483B2 (en) 2019-03-22 2023-05-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
RU2812698C2 (ru) * 2019-04-01 2024-01-31 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Способ использования интерполяционных фильтров для прогнозирования вектора движения на основе предыстории
US11936855B2 (en) 2019-04-01 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Alternative interpolation filters in video coding
RU2815738C2 (ru) * 2019-04-12 2024-03-21 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Определение режима кодирования цветности на основе внутрикадрового предсказания на основе матрицы
US11831877B2 (en) 2019-04-12 2023-11-28 Beijing Bytedance Network Technology Co., Ltd Calculation in matrix-based intra prediction
US11943444B2 (en) 2019-05-31 2024-03-26 Beijing Bytedance Network Technology Co., Ltd. Restricted upsampling process in matrix-based intra prediction
RU2779635C1 (ru) * 2019-06-20 2022-09-12 ДжейВиСиКЕНВУД Корпорейшн Устройство для кодирования видео, способ кодирования видео, программа кодирования видео, устройство для декодирования видео, способ декодирования видео и программа декодирования видео
RU2815443C2 (ru) * 2019-07-26 2024-03-15 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Определение режима разделения изображения на основе размера блока
US11930175B2 (en) 2019-07-26 2024-03-12 Beijing Bytedance Network Technology Co., Ltd Block size dependent use of video coding mode

Also Published As

Publication number Publication date
EP4096221A1 (en) 2022-11-30
AU2014376061B8 (en) 2019-05-30
EP3090553A1 (en) 2016-11-09
AU2014376061B2 (en) 2019-04-11
KR102258427B1 (ko) 2021-06-01
RU2016125260A (ru) 2017-12-28
KR102353787B1 (ko) 2022-01-19
CA2934699A1 (en) 2015-07-09
AU2014376061A1 (en) 2016-07-07
CN105917650A (zh) 2016-08-31
JP2017510115A (ja) 2017-04-06
US11910005B2 (en) 2024-02-20
AU2014376061A8 (en) 2019-05-30
ES2924392T3 (es) 2022-10-06
BR112016015080A2 (pt) 2017-08-08
US20220295093A1 (en) 2022-09-15
MX360926B (es) 2018-11-22
US10469863B2 (en) 2019-11-05
WO2015100726A1 (en) 2015-07-09
KR20160105510A (ko) 2016-09-06
MX2016008784A (es) 2016-09-08
US20200092579A1 (en) 2020-03-19
US20160330471A1 (en) 2016-11-10
JP6355744B2 (ja) 2018-07-11
EP3090553A4 (en) 2017-12-20
CN105917650B (zh) 2019-12-24
KR20210060650A (ko) 2021-05-26
US11388433B2 (en) 2022-07-12
EP3090553B1 (en) 2022-07-06

Similar Documents

Publication Publication Date Title
US11910005B2 (en) Block vector prediction in video and image coding/decoding
US10652576B2 (en) Features of base color index map mode for video and image coding and decoding
KR102401946B1 (ko) 인트라 블록 카피 예측에서의 스킵 모드 및 블록 플립핑
US10390034B2 (en) Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US10462480B2 (en) Computationally efficient motion estimation
JP6503101B2 (ja) イントラブロックコピー予測におけるブロック反転及びスキップモード