RU2654129C2 - Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений - Google Patents

Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений Download PDF

Info

Publication number
RU2654129C2
RU2654129C2 RU2016114182A RU2016114182A RU2654129C2 RU 2654129 C2 RU2654129 C2 RU 2654129C2 RU 2016114182 A RU2016114182 A RU 2016114182A RU 2016114182 A RU2016114182 A RU 2016114182A RU 2654129 C2 RU2654129 C2 RU 2654129C2
Authority
RU
Russia
Prior art keywords
block
blocks
picture
intra prediction
prediction
Prior art date
Application number
RU2016114182A
Other languages
English (en)
Other versions
RU2016114182A (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 RU2016114182A publication Critical patent/RU2016114182A/ru
Application granted granted Critical
Publication of RU2654129C2 publication Critical patent/RU2654129C2/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/186Methods 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 a colour or a chrominance component
    • 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
    • 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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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

Изобретение относится к области кодирования/декодирования видео. Технический результат – обеспечение эффективного сжатия данных в контексте показателя искажения в зависимости от скорости передачи, посредством использования отфильтрованных значений отсчетов для внутреннего предсказания с блочным копированием. Реализуемый в вычислительном устройстве способ выполнения петлевой деблокинг-фильтрации через границу между блоками содержит этапы, на которых: восстанавливают первый и второй блоки картинки, где картинка включает в себя по меньшей мере некоторые блоки, закодированные с использованием внутреннего предсказания с блочным копированием, и выполняют петлевую деблокинг-фильтрацию через границу между первым и вторым блоками, причем первый и второй блоки закодированы с использованием внутреннего предсказания с блочным копированием, при этом выполнение петлевой деблокинг-фильтрации включает в себя настройку петлевой деблокинг-фильтрации, по меньшей мере отчасти, на основе значений блочных векторов (BV), определенных для первого и второго блоков соответственно. 3 н. и 17 з.п. ф-лы, 25 ил.

Description

УРОВЕНЬ ТЕХНИКИ
Инженеры используют сжатие (также называемое кодированием источника или закодированием источника) для уменьшения битрейта цифрового видео. Сжатие снижает затраты на хранение и передачу видеоинформации путем преобразования этой информации в форму с меньшим битрейтом. Распаковка (также называемая декодированием) восстанавливает версию исходной информации из сжатой формы. Система кодера/декодера представляет собой так называемый «кодек». В последнее двадцатилетие были приняты различные стандарты кодеков для видео, в том числе стандарты ITU-T H.261, H262 (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. Недавно был одобрен стандарт HEVC (ITU-T H.265 или ISO/IEC 23008-2). В настоящее время разрабатываются расширения к стандарту HEVC (например, для масштабируемого видеокодирования/видеодекодирования для кодирования/декодирования видео с более высоким качеством в контексте глубины отсчета в битах или частоты дискретизации цветности, либо для многоракурсного кодирования/декодирования. Стандарт видеокодека, как правило, определяет опции для синтаксиса кодированного видеопотока, детализации параметров в битовом потоке при использовании конкретных функциональных возможностей при кодировании и декодировании. Во многих случаях стандарт видеокодека также обеспечивает детали, касающиеся операций декодирования, которые должен выполнять декодер для достижения подходящих результатов при декодировании. Помимо стандартов кодека различные патентованные форматы кодека определяют другие опции для синтаксиса кодированного битового потока видео и соответствующие операции декодирования.
Внутреннее блочное копирование (BC) представляет режим предсказания, рассматриваемый для расширений стандарта HEVC. Для режима внутреннего предсказания с ВС значения отсчетов текущего блока кадра предсказываются с использованием ранее восстановленных значений отсчетов в том же кадре. Блочный вектор (BV) указывает смещение от текущего блока до области кадра, которая включает в себя ранее восстановленные значения отсчетов, использованные для предсказания. Вектор BV передается в качестве сигнализации в битовом потоке. Внутреннее предсказание с ВС является формой предсказания внутри кадра, то есть, при внутреннем предсказании с ВС для блока кадра не используются какие-либо значения отсчетов, отличные от значений отсчетов в этом же кадре.
Как в настоящее время определено в стандарте HEVC и реализовано в некотором эталонном программном обеспечении для стандарта HEVC, режим внутреннего предсказания с блочным копированием имеет ряд проблем. Например, режим внутреннего предсказания с BC нельзя эффективно интегрировать с различными отличительными признаками стандарта HEVC, такими как опции для частотных преобразований/обратных частотных преобразований, петлевая фильтрация по устранению блочности в видео (деблокинг-фильтрация) и ограниченное внутреннее предсказание. Процесс выбора значений BV эффективно не ограничивается, а закодирование значений BV не эффективно, если иметь в виду использование битрейта.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В данном разделе подробно описываются нововведения в режиме внутреннего предсказания с блочным копированием (BC). Например, некоторые из предложенных нововведений обеспечивают пути для более эффективного выбора значений блочного вектора («BV»). Другие нововведения обеспечивают пути для более эффективного закодирования/декодирования значений BV. Ряд других нововведений указывают, каким образом следует выполнять петлевую деблокинг-фильтрацию, когда блок имеет режим внутреннего предсказания с BC, или указывают, каким образом следует выполнять внутреннее предсказание с BC, когда разрешено ограниченное внутреннее предсказание. Эти нововведения могут повысить эффективность внутреннего предсказания с BC в плане показателя искажений в зависимости от скорости и/или эффективность вычислений для закодирования и декодирования.
Упомянутые нововведения для режима внутреннего предсказания с BC можно реализовать как часть способа, как часть вычислительного устройства, адаптированного для выполнения этого способа, или как часть материального считываемого компьютером носителя (среды), на котором сохранены исполняемые компьютером команды, которые инициируют выполнение вычислительным устройством упомянутого способа. Эти разного рода нововведения можно использовать по отдельности или в комбинациях.
Вышеописанные и другие цели, признаки и преимущества изобретения станут более очевидными при ознакомлении с последующим подробным описанием, которое сопровождается ссылками на прилагаемые чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 – схема примерной вычислительной системы, в которой могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;
Фигуры 2а и 2b – схемы примерных сетевых сред, в которых могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;
Фиг. 3 – схема примерной системы кодера, вместе с которой могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;
Фиг. 4 – схема примерной системы декодера, вместе с которой могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;
Фигуры 5а и 5b – схемы, иллюстрирующие примерный видеокодер, вместе с которым могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;
Фиг. 6 – схема, иллюстрирующая примерный видеодекодер, вместе с которым могут быть реализованы некоторые описанные здесь варианты осуществления изобретения;
Фиг. 7 – схема, иллюстрирующая внутреннее предсказание с BC для одного блока кадра;
Фиг. 8 – схема, иллюстрирующая примерные ограничения на область поиска значений BV;
Фиг. 9 – блок-схема, иллюстрирующая обобщенный способ закодирования с внутренним режимом предсказания с BC с наложенным одним или несколькими ограничениями на выбор значений BV;
Фиг. 10 – схема, иллюстрирующая примерный порядок z сканирования для блоков кадра;
Фигуры 11а и 11b – схемы, иллюстрирующие области с невосстановленными значениями отсчетов, подлежащими замене заполняемыми значениями;
Фиг. 12 – блок-схема, иллюстрирующая обобщенный способ использования режима внутреннего предсказания с BC во время закодирования или декодирования, когда может быть разрешено ограниченное внутреннее предсказание;
Фиг. 13 – схема, иллюстрирующая примерные ограничения на допустимые значения BV, когда разрешено ограниченное внутреннее предсказание;
Фиг. 14 – таблица, иллюстрирующая примерный подход к разблокированию режима внутреннего предсказания с BC, когда разрешено ограниченное внутреннее предсказание;
Фигуры 15а и 15b – схемы, иллюстрирующие примерные диапазоны значений BV, обладающих свойствами, которые можно использовать при закодировании;
Фигуры 16 и 17 – блок-схемы, иллюстрирующие обобщенные способы закодирования и декодирования значений BV соответственно;
Фигуры 18 и 19 – блок-схемы, иллюстрирующие обобщенные способы закодирования и декодирования соответственно с использованием режима внутреннего предсказания с BC и альтернативных прямых (или обратных) частотных преобразований;
Фиг. 20 – схема, иллюстрирующая примерные правила для изменения подхода к петлевой деблокинг-фильтрации в зависимости от режимов предсказания блоков;
Фиг. 21 - блок-схема, иллюстрирующая обобщенный способ петлевой деблокинг-фильтрации во время закодирования или декодирования для блоков, имеющих режим внутреннего предсказания с BC.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В подробном описании представлены нововведения при использовании режима внутреннего предсказания с блочным копированием (BC) во время закодирования и/или декодирования. В частности, в подробном описании представлены нововведения при выборе значений блочного вектора (BV), закодировании/декодировании значений BV, интеграции режима внутреннего предсказания с ВС с ограниченным внутренним предсказанием, выборе прямых и обратных частотных преобразований в случае использования режима внутреннего предсказания с ВС, и петлевой деблокинг-фильтрации через границу блоков с режимом внутреннего предсказания с ВС.
Хотя здесь показано, что описанные операции отчасти выполняются видеокодером или видеодекодером, во многих случаях эти операции могут выполняться средствами обработки медиа другого типа (например, кодером изображений, декодером изображений).
Некоторые из описанных здесь нововведений проиллюстрированы со ссылками на синтаксические элементы и операции, специфичные для стандарта HEVC. Например, показана ссылка на предварительную версию JCTVC-N1005 стандарта HEVC «High Efficiency Video Coding (HEVC) Range Extensions Text Specification: Draft 4,» JCTVC N1005, July 2013. Описанные здесь нововведения также можно реализовать для других стандартов или форматов.
В более общем случае возможно использование различных альтернатив для описанных здесь примеров. Например, некоторые из описанных здесь способов можно изменить, изменив порядок описанных действий способа путем разделения на части, повторения или отбрасывания некоторых действий способа и т.д. Различные аспекты раскрытой здесь технологии можно использовать в сочетании или по отдельности. В разных вариантах осуществления используется одно или несколько из описанных здесь нововведений. Некоторые из писанных здесь нововведений направлены на решение одной или нескольких проблем, отмеченных в разделе «Уровень техники». Как правило, один предложенный способ/одно средство не решают всех указанных проблем.
I. Примерные вычислительные системы
На фиг. 1 показан обобщенный пример подходящей вычислительной системы (100), в которой можно реализовать несколько из описанных здесь нововведений. Здесь не предполагается, что вычислительная система (100) накладывает какое-либо ограничение на объем использования и функциональные возможности, так что эти нововведения могут быть реализованы в различных вычислительных системах общего назначения или специализированных вычислительных системах.
Обратимся к фиг. 1, где вычислительная система (100) включает в себя один или несколько обрабатывающих блоков (110, 115) и память (120, 125). Обрабатывающие блоки (110, 115) выполняют исполняемые компьютером программы. Обрабатывающий блок может представлять собой центральный обрабатывающий блок (CPU) общего назначения, процессор в прикладной специализированной интегральной схеме (ASIC) или процессор любого другого типа. В многопроцессорной системе для повышения производительности исполняемые компьютером команды выполняются множеством обрабатывающих блоков. Например, на фиг. 1 показан центральный управляющий блок (110), а также блок графической обработки или сопроцессорный блок (115). Материальная память (120, 125) может представлять собой энергозависимую память (например, регистры, кэш-память, RAM), энергонезависимую память (например, ROM, EEPROM, флэш-память и т.д.) или некоторую комбинацию из двух указанных устройств, доступных обрабатывающему блоку (блокам). В памяти (120, 125) хранится программное обеспечение (180), реализующее одно или несколько нововведений для режима внутреннего ВС предсказания, в виде считываемых компьютером программ, подходящим для выполнения обрабатывающим блоком (блоками).
Вычислительная система может иметь дополнительные функциональные возможности. Например, вычислительная система (100) включает в себя хранилище (140), одно или несколько устройств (150) ввода, одно или несколько устройств (160) вывода и одно или несколько коммуникационных соединений (170). Компоненты вычислительной системы (100) соединены между собой механизмом межсоединения (не показан), таким как шина, контроллер или сеть. Как правило, программное обеспечение операционной системы (не показано) обеспечивает операционную среду для других программных средств, реализуемых в вычислительной системе (100), и координирует операции, выполняемые компонентами вычислительной системы (100).
Материальное хранилище данных (40) может быть съемным или несъемным и может включать в себя магнитные диски, магнитные ленты или кассеты, CD-ROM, DVD или любой другой носитель, который можно использовать для хранения информации, которая может быть доступна в вычислительной системе (100). Хранилище (140) обеспечивает хранение команд для программного обеспечения (180), используя одну или несколько операций для режима внутреннего предсказания с ВС.
Устройство (устройства) (150) ввода могут представлять собой устройство сенсорного ввода, такое как клавиатура, мышь, перо или шаровой манипулятор, устройство ввода голоса, сканирующее устройство или иное устройство, обеспечивающее ввод в вычислительную систему (100). Для видео устройством (устройствами) (150) ввода может быть камера, видеокарта, карта селектора TV программ или аналогичное устройство, которое получает видео в аналоговой или цифровой форме, либо CD-ROM или CD-RW, которые считывают отсчеты видео в вычислительную систему (100). Устройство (устройства) (160) вывода может представлять собой дисплей, принтер, динамик, устройство записи на CD или какое-либо другое устройство, которое обеспечивает вывод из вычислительной системы (100).
Коммуникационное соединение (соединения) (170) предоставляет возможность связи через среду связи с другим вычислительным объектом. Коммуникационная среда переносит информацию, такую как исполняемые компьютером команды, ввод или вывод видео или иные данные в сигнале, модулированном данными. Сигналом, модулированным данными, является сигнал, имеющий одну или несколько характеристик, установленных или измененных таким образом, чтобы обеспечить закодирование информации в указанном сигнале. Например, но не как ограничение, коммуникационная среда может использовать электрическую, оптическую, радиочастотную (RF) или иную несущую.
Упомянутые нововведения можно описать в общем контексте считываемых компьютером сред. Считываемые компьютером среды представляют собой любые доступные материальные среды, к которым можно обращаться в данной вычислительной среде. Например, но не как ограничение, при использовании вычислительной системы (100) считываемый компьютером среды включают в себя память (120, 125), хранилище (140) и любые комбинации из них.
Упомянутые нововведения можно описать в общем контексте исполняемых компьютером команд, таких как команды, содержащиеся в программных модулях, которые исполняются вычислительной системой на целевом реальном или виртуальном процессоре. Обычно программные модули включают в себя стандартные программы, программы, библиотеки, объекты, классы, компоненты, структуры данных и т.д., которые решают конкретные задачи или реализуют конкретные типы абстрактных данных. Функциональные возможности программных модулей могут быть объединены или разделены между программными модулями в соответствии с требованиями в различных вариантах осуществления. Исполняемые компьютером команды для программных модулей могут выполняться в локальной или распределенной вычислительной системе.
Термины «система» и «устройство» используются здесь как взаимозаменяемые. Если из контекста в явном виде не следует иное, ни один из этих терминов не накладывает какое-либо ограничение на тип вычислительной системы или вычислительного устройства. В общем случае вычислительная система или вычислительное устройство может быть локальным или распределенным и может включать в себя любую комбинацию специализированных аппаратных средств и/или аппаратных средств общего назначения с программным обеспечением, реализующим описанные здесь функциональные возможности.
Раскрытые здесь способы также можно реализовать с использованием специализированных аппаратных вычислительных средств, сконфигурированных для выполнения любого из раскрытых здесь способов. Например, раскрытые способы можно реализовать с помощью интегральной схемы (например, ASIC (такой как блок обработки цифровых сигналов (DSP), блок обработки графики (GPU) или программируемое логическое устройство (PLD), такое как вентильная матрица, программируемая пользователем (FPGA)), специально спроектированная или сконфигурированная для реализации любого из раскрытых здесь способов.
Для представления в данном подробном описании используются термины типа «определяет» и «использует» для описания компьютерных операций в вычислительной системе. Эти термины являются абстракциями высокого уровня для операций, выполняемых компьютером, и их не следует путать с действиями, выполняемыми человеком. Реальные вычислительные операции, соответствующие этим терминам, зависят от конкретной реализации.
II. Примерные сетевые среды
На фигурах 2а и 2b показаны примерные сетевые среды (201, 202), которые включают в себя видеокодеры (220) и видеодекодеры (270). Кодеры (220) и декодеры (270) соединены через сеть (250), использующую соответствующий коммуникационный протокол. Сеть (250) может включать в себя Интернет или другую компьютерную сеть.
В сетевой среде (201), показанной на фиг. 2а, каждое средство связи в режиме реального времени (RTC) включает в себя кодер (220) и декодер (270) для двунаправленного обмена. Данный кодер (220) может создавать выходные данные, совместимые с вариантом или расширением стандарта HEVC, стандарта SMPTE 421M, стандарта ISO-IEC 14496-10 (также называемого H.264 или AVC), другого стандарта или патентованного формата, с соответствующим декодером (270), получающим кодированные данные от кодера (220). Упомянутая двунаправленная связь может быть частью видеоконференции, видеотелефонного звонка или другого сценария двусторонней связи. Хотя сетевая среда (201) на фиг. 2а включает в себя два средства (210) связи в режиме реального времени, сетевая среда (201) может вместо этого включать в себя три или более средства (210) связи в режиме реального времени, которые являются участниками многосторонней связи.
Средство (210) связи в режиме реального времени организует закодирование, выполняемое кодером (220). На фиг.3 показана примерная система (300) кодера, которая может быть включена в средство (210) связи в режиме реального времени. В качестве альтернативы, в средстве (210) связи в режиме реального времени может быть использована другая система кодера. Средство (210) связи в режиме реального времени также организует декодирование, выполняемое декодером (270). На фиг.4 показана примерная система (400) декодера, которая может быть включена в средство (210) связи в режиме реального времени. В качестве альтернативы, в средстве (210) связи в режиме реального времени может быть использована другая система декодера.
В сетевой среде (202), показанной на фиг. 2b, средство закодирования (212) включает в себя кодер (220), выполняющий закодирование видео для доставки на множество средств (214) воспроизведения, которые включают в себя декодеры (270). Однонаправленная связь может быть обеспечена для системы видеонаблюдения, системы текущего контроля с использованием веб-камеры, презентации в режиме телеконференции с использованием удаленных настольных компьютеров или для другого сценария, в котором видео кодируют и посылают из одного места в одно или несколько других мест. Хотя сетевая среда (202) на фиг. 2b включает в себя два средства (214) воспроизведения, сетевая среда (202) может включать в себя больше или меньше средств (214) воспроизведения. Обычно средство (214) воспроизведения осуществляет связь со средством (212) закодирования для определения потока видео для его приема средством (214) воспроизведения. Средство 214 воспроизведения принимает указанный поток, выполняет буферизацию полученных кодированных данных за соответствующий период и приступает к декодированию и воспроизведению.
На фиг. 3 показана примерная система (300) кодера, которая может входить в состав средства (212) закодирования. В качестве альтернативы, в средстве (212) закодирования может использоваться другая система кодера. Средство (212) закодирования также может включать в себя логический блок контроллера на стороне сервера для организации соединений с одним или несколькими средствами (214) воспроизведения. На фиг. 4 показана примерная система (400) декодера, которая может быть включена в средство (214) воспроизведения. В качестве альтернативы в средстве (214) воспроизведения может использоваться другая система декодера. Средство (214) воспроизведения также может включать в себя логический блок контроллера на стороне клиента для организации соединений со средством 212 закодирования.
III. Примерные системы кодера
На фиг. 3 представлена блок-схема примерной системы (300) кодера, вместе с которой можно реализовать некоторые описанные здесь варианты осуществления изобретения. Система (300) кодера может представлять собой средство кодирования общего назначения, способное работать в любом из множества режимов закодирования, таких как режим закодирования с малой задержкой для связи в реальном времени, режим транскодирования и режим регулярного закодирования для воспроизведения медиа из файла или потока, либо может представлять собой специализированное средство закодирования, адаптированное к одному указанному режиму закодирования. Система (300) кодера может быть реализована в виде модуля операционной системы, в виде части библиотеки приложений или в виде автономного приложения. Система (300) кодера принимает в целом последовательность исходных видеокадров (311) от источника (310) видео и создает закодированные данные в качестве выхода в канал (390). Закодированные данные, выведенные в указанный канал, могут включать в себя контент, закодированный с использованием режима внутреннего предсказания с ВС.
Источником (310) видео может быть камера, карта селектора каналов, запоминающая среда или иной источник цифрового видео. Источник (310) видео создает последовательность видеокадров с частотой кадров, например, 30 кадров в секунду Используемый здесь термин «кадр» обычно относится к исходным, кодированным или восстановленным данным изображения. Для прогрессивного видео кадром является прогрессивный видеокадр. Для чересстрочного видео в примерных вариантах осуществления чересстрочный видеокадр является построчным перед закодированием. В качестве альтернативы кодируются два комплементарных чересстрочных видеополя в качестве чересстрочного видеокадра или отдельные поля. Помимо указания на прогрессивный видеокадр термин «frame» (кадр), или «picture» (картинка), может указывать на одно непарное видеополе, комплементарную пару видеополей, плоскость видеообъекта, которая представляет видеообъект в данный момент времени, или интересующая область в более крупном изображении. Плоскость или область видеообъекта может являться частью более крупного изображения, которое включает в себя множество объектов или областей сцены.
Поступающий исходный кадр (311) запоминается в зоне (320) хранения временной памяти исходных кадров, которая включает в себя множество зон (321, 322 …, 32n) хранения буферов кадров. Буфер (321, 322, и т.д.) запоминает исходный кадр в зоне (320) хранения исходных кадров. После запоминания одного или нескольких исходных кадров (311) в буферах (321, 322, и т.д.) кадров селектор (330) кадров периодически выбирает отдельный исходный кадр из зоны 320) хранения исходных кадров. Порядок отбора кадров селектором (330) кадров для ввода в кодер (340) может отличаться от порядка, в котором эти кадры создаются источником (310) видео, например, кадр может по порядку идти впереди для облегчения обратного временного предсказания. Перед кодером (340) система (300) кодера может включать в себя процессор предварительной обработки (не показан), выполняющий предварительную обработку (например, фильтрацию) выбранного кадра (331) перед закодированием. Эта предварительная обработка может также включать в себя преобразование цветового пространства в первичные и вторичные компоненты для закодирования. Как правило, перед закодированием видео преобразуют в цветовое пространства, например, YUV, в котором значения отсчетов компоненты яркости (Y) представляют значения яркости или интенсивности, а значения отсчетов компонент цветности (UV) представляют цветоразностные значения. Значения отсчетов цветности могут быть подвергнуты субдискретизации для обеспечения более низкой частоты дискретизации цветности (например, для формата 4:2:0 YUV), либо значения отсчетов цветности могут иметь такое же разрешение, как значения отсчетов яркости (например, для формата 4:4:4 YUV). Либо видео может быть закодировано в другом формате (например, формат 4:4:4 RGB).
Кодер (340) выполняет закодирование выбранного кадра (331) для создания кодированного кадра (341), а также создает сигналы (342) операций управления памятью (MMCO) или информацию о наборе опорных картинок (RPS). Если текущий кадр не является первым кадром, который был закодированным при выполнении процесса закодирования, то кодер (340) может использовать один или несколько ранее закодированных/декодированных кадров (369), Которые были сохранены в зоне (360) временного хранения декодированных кадров. Указанные запомненные декодированные кадры (369) используют в качестве опорных кадров для межкадрового предсказания контента текущего исходного кадра (331). В общем случае, кодер (340) включает в себя множество кодирующих модулей, которые решают задачи закодирования, такие как разделение на плитки, оценка внутреннего предсказания и предсказание, оценка и компенсация движения, частотные преобразования, квантование и энтропийное кодирование. Точные операции, выполняемые кодером (340) могут варьироваться в зависимости от формата сжатия. Формат выходных закодированных данных может представлять собой версию или расширение формата HEVC, формат Windows Media Video, формат VC-1, формат MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формат H.26x (например, Н.261, Н.262, Н.263, Н.264) или другой формат.
Кодер (340) может разделить кадр на множество плиток одинакового размера или разных размеров. Например, кодер (340) разделить кадр вдоль строк и столбцов плиток, что вместе с границами кадра определяет горизонтальные и вертикальные границы плиток в кадре, где каждая плитка представляет собой прямоугольную область. Плитки часто используют для улучшения опций для параллельной обработки. Кадр также можно сформировать в виде одного или нескольких слайсов, где один слайс может представлять весь кадр или область кадра. Слайс можно будет декодировать независимо от других слайсов в кадре, что повышает устойчивость к ошибкам. Контент слайса или плитки дополнительно разделяется на блоки или другие наборы отсчетов в целях закодирования и декодирования.
Что касается синтаксиса согласно стандарту HEVC, кодер расщепляет контент кадра (или слайса, или плитки) на единицы кодировочного дерева. Единица кодировочного дерева (CTU) включает в себя значения отсчетов яркости, сформированных в виде блока кодировочного дерева яркости (CTB), и соответствующие значения отсчетов цветности, сформированных в виде двух CTB цветности. Размер CTU (и ее CTB) выбирается кодером и может, например, составлять 64×64, 32×32 или 16×16 значений отсчетов. Единица CTU включает в себя одну или несколько единиц кодирования. Единица кодирования (CU) содержит блок кодирования (CB) яркости и два соответствующих CB цветности. Например, CTU с одним CTB яркости размером 64×64 и двумя CTB цветности (в формате 4:4:4 YUV) размером 64×64 может быть разделена на четыре CU, где каждая CU включает в себя один CB яркости размером 32×32 и два CB цветности размером 32×32, причем каждую CU можно разделить дополнительно на более мелкие CU. Либо, как в другом примере, CTU c одним CTB яркости размером 64×64 и двумя CTB цветности размером 32×32 (в формате 4:2:0 YUV) можно разделить на четыре CU, где каждая CU включает в себя CB яркости 32×32 и два CB цветности 16×16, при этом каждую CU можно дополнительно разделить на более мелкие CU. Минимальный допустимый размер CU (например, 8×8, 16×16) может быть передан в битовом потоке в качестве сигнализации.
Обычно 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 и т.д.
Обратимся к фиг. 3, где кодер представляет полученный путем внутреннего кодирования блок исходного кадра (331) в контексте предсказания исходя из других, ранее восстановленных значений отсчетов в кадре (331). В случае внутреннего предсказания с ВС средство оценки внутреннего предсказания оценивает смещение блока по отношению к другим, ранее восстановленным значениям отсчетов. Опорная область внутреннего предсказания представляет собой область отсчетов в кадре, которые используют для создания значений BC предсказания для блока. Что касается внутреннего пространственного предсказания для блока, то средство оценки внутреннего предсказания оценивает результат экстраполяции соседних восстановленных значений отсчетов в данном блоке. Средство оценки внутреннего предсказания выводит информацию о предсказании (например, значения блочного вектора (BV) для внутреннего предсказания с ВС и режим (направление) предсказания для внутреннего пространственного предсказания), которая подвергаются энтропийному кодированию. Средство внутреннего предсказания использует упомянутую информацию о предсказаниях для определения значений внутреннего предсказания.
Кодер (340) представляет кодированный, с использованием внешнего предсказания, блок исходного кадра (331) в контексте предсказания на основе опорных кадров. Средство оценки движения оценивает движение блока относительно одного или нескольких опорных кадров (369). При использовании множества опорных кадров это множество опорных кадров может быть взято из разных временных направлений или одного и того же временного направления. Опорная область предсказания с компенсацией движения является областью отсчетов в опорном кадре (кадрах), которые используют для создания значений предсказания с компенсацией движения для блока отсчетов текущего кадра. Средство оценки движения выводит информацию о движении, такую как информация о векторе движения, которая кодируется с использованием энтропийного кодирования. Компенсатор движения использует векторы движения для опорных кадров (369), чтобы определить значения предсказания с компенсацией движения.
Кодер определяет различия (если это имеет место) между значениями предсказания (внутреннего или внешнего) блока и соответствующими исходными значениями. Эти значения остатков предсказания дополнительно кодируют, используя частотное преобразование, квантование и энтропийное закодирование. Например, кодер (340) устанавливает значения для параметра квантования (QP) для кадра, плитки, слайса и/или другой части видео и квантует коэффициенты преобразования соответствующим образом. Энтропийный кодировщик кодера (340) выполняет сжатие квантованных значений коэффициентов преобразования, а также некоторой вспомогательной информации (например, информация о векторе движения, значения BV, значения QP, принятые решения о режиме, выбранные параметры). Типовые приемы энтропийного кодирования включают в себя экспоненциальное кодирование Голомба, арифметическое кодирование, дифференциальное кодирование, кодирование Хаффмана, кодирование длин серий, кодирование с преобразованием «переменная длина слова-переменная длина слова» (V2V), кодирование с преобразованием «переменная длина слова-фиксированная длина слова» (V2F), LZ кодирование, словарное кодирование, энтропийное кодирование с разделением интервала вероятности (PIPE) и комбинации вышеуказанных способов кодирования. Энтропийный кодировщик может использовать разные приемы кодирования для информации разного рода и может выбирать конкретный способ кодирования из множества кодовых таблиц.
Кодированные кадры (341) и информация (342) о MMCO/RPS обрабатываются эмулятором (350) обработки декодирования. Эмулятор (350) обработки декодирования реализует некоторые из функциональных возможностей декодера, например, декодирование задач для восстановления опорных кадров. Эмулятор (350) обработки декодирования использует информацию (342) о MMCO/RPS для определения того, требуется ли восстановление и запоминание данного кодированного кадра (341) для использования в качестве опорного кадра при межкадровом предсказании последующих кадров, подлежащих закодированию. Если информация (342) о MMCO/RPS указывает, что кодированный кадр (341) необходимо запомнить, то эмулятор 350 процесса декодирования моделирует процесс декодирования, который будет реализован декодером, принимающим кодированный кадр (341) и создающим соответствующий декодированный кадр (351). Действуя таким образом, при использовании кодером (340) декодированного кадра (кадров) (369), который был запомнен в зоне (360) хранения декодированных кадров, эмулятор (350) процесса декодирования также использует декодированный кадр (кадры) (369) из зоны (360) хранения как часть процесса декодирования.
Зона (360) временного хранения декодированных кадров включает в себя множество зон (361, 362, …, 36n) хранения буферов кадров. Эмулятор (350) процесса декодирования использует информацию (342) о MMCO/RPS для управления контентом зоны (360) хранения, чтобы идентифицировать буферы (361, 362, и т.д.) кадров с кадрами, которые больше не нужны кодеру (340) для использования в качестве опорных кадров. После моделирования процесса декодирования эмулятор (350) процесса декодирования запоминает вновь декодированный кадр (351) в буфере (361, 362 и т.д.) кадра, который был идентифицирован указанным образом.
Кодированные кадры (341) и информация (342) о MMCO/RPS буферизируются в зоне (370) временно кодированных данных. Кодированные данные, собранные в зоне (370) кодированных данных, содержат в качестве части синтаксиса элементарно кодированного битового видеопотока, закодированные данные для одного или нескольких кадров. Кодированные данные, собранные в зоне (370) кодированных данных, также могут включать в себя метаданные для медиа, относящиеся к кодированным видеоданным (например, в виде одного или нескольких параметров в одном или нескольких сообщений с дополнительной расширяющей информацией (SEI) или в сообщениях с информацией о годности видео (VUI)).
Агрегированные данные (371) из зоны (370) временно кодированных данных обрабатываются канальным кодером (380). Канальный кодер (380) может пакетировать агрегированные данные для передачи в виде потока медиа (например, в соответствии с форматом мультиплексирования потока медиа, таким как ISO/IEC 13818-1), и в этом случае канальный кодер (380) может добавить синтаксические элементы как часть синтаксиса потока передачи медиа. Либо канальный кодер (380) может сформировать агрегированные данные для хранения в виде файла (например, согласно формату контейнера медиа, такому как ISO/IEC 14496-12), и в этом случае канальный кодер (380) может добавить синтаксические элементы как части синтаксиса файла хранения медиа. Либо, в более общем случае, канальный кодер (380) может реализовать один или несколько протоколов мультиплексирования медиасистем или транспортных протоколов, и в этом случае канальный кодер (380) может добавить синтаксические элементы как части синтаксиса указанного протокола (протоколов). Канальный кодер (380) обеспечивает вывод в канал (390), который представляет хранилище, коммуникационное соединение или другой канал для указанного вывода.
IV. Примерные системы декодера
На фиг. 4 представлена блок-схема примерной системы (400) декодера, вместе с которым можно реализовать некоторые описанные здесь варианты осуществления изобретения. Система (400) декодера может представлять собой средство декодирования общего назначения, способное работать в любом из множества режимов декодирования, таких как режим декодирования с малой задержкой для связи в реальном времени, и режим регулярного декодирования для воспроизведения медиа из файла или потока, либо может представлять собой специализированное средство декодирования, адаптированное к одному указанному режиму декодирования. Система (400) декодера может быть реализована в виде модуля операционной системы, в виде части библиотеки приложений или в виде автономного приложения. Система (400) декодера принимает в целом кодированные данные из канала (410) и создает восстановленные кадры в качестве выхода для адресата (490) выхода. Эти кодированные данные могут включать в себя контент, закодированный с использованием режима внутреннего предсказания с ВС.
Система (400) декодера включает в себя канал (410), который может представлять хранилище, коммуникационное соединение или другой канал для кодированных данных в качестве входных данных. Канал (410) создает кодированные данные, полученные с использованием канального кодирования. Канальный декодер (420) может обрабатывать кодированные данные. Например, канальный декодер (420) распаковывает данные, которые были агрегированы для передачи в виде медиапотока (например, согласно формату мультиплексирования медиапотока, такому как ISO/IEC 13818-1), и в этом случае канальный декодер (420) может проанализировать синтаксические элементы, добавленные как часть синтаксиса потока передачи медиа. Либо канальный декодер (420) выделяет кодированные видеоданные, которые были агрегированы для хранения в виде файла (например, согласно формату контейнера медиа, такому как ISO/IEC 14496-12), и в этом случае канальный декодер (420) может выполнить синтаксический анализ элементов, добавленных как часть синтаксиса файла хранения медиа. Либо, в более общем случае, канальный декодер (420) может реализовать один или несколько протоколов мультиплексирования медиасистем или транспортных протоколов, и в этом случае канальный декодер (420) может выполнить синтаксический анализ элементов, добавленных как часть синтаксиса указанного протокола (протоколов).
Кодированные данные (421), выведенные из канального декодера (420), запоминаются в зоне (430) временных кодированных данных, пока не будет получено достаточное количество таких данных. Кодированные данные (421) включают в себя кодированные кадры (431) и информацию (432) о MMCO/RPS. Кодированные данные (421) в зоне (430) кодированных данных содержат, в качестве части синтаксиса элементарно кодированного битового потока видео кодированные данные для одной или нескольких картинок. Кодированные данные (421) в зоне (430) кодированных данных также могут включать в себя метаданные медиа, относящиеся к закодированным видеоданным (например, в виде одного или нескольких параметров в одном или нескольких сообщениях SEI или сообщениях VUI).
В общем случае в зоне (430) кодированных данных временно хранятся кодированные данные (421), пока указанные кодированные данные (421) не используются декодером (450). В этот момент кодированные данные для кодированного кадра (421) и информация (432) о MMCO/RPS пересылаются из зоны (430) кодированных данных на декодер (450). Так как декодирование продолжается, в зону (430) кодированных данных добавляются новые кодированные данные, а самые старые кодированные данные, остающиеся в зоне (43=20) кодированных данных, пересылаются на декодер (450).
Декодер (450) периодически декодирует кодированный кадр (431) для создания соответствующего декодированного кадра (451). Когда это необходимо, при выполнении процесса декодирования декодер (450) может использовать один или несколько ранее декодированных кадров (469) в качестве опорных кадров для межкадрового предсказания. Декодер (450) считывает указанные ранее декодированные кадры (469) из зоны (460) временного хранения декодированных кадров. Обычно декодер (450) включает в себя множество декодирующих модулей, которые решают такие задачи декодирования, как энтропийное декодирование, обратное квантование, обратные частотные преобразования, внутреннее предсказание, компенсацию движения и объединения плиток. Точный набор операций, выполняемых декодером (450), может изменяться в зависимости от формата сжатия.
Например, декодер (450) принимает кодированные данные для сжатого кадра или последовательности кадров и создает выходные данные, включающие в себя декодированный кадр (451). Имеющийся в декодере (450) буфер получает закодированные данные для сжатого кадра и в подходящее время делает полученные закодированные данные доступными для энтропийного декодера. Энтропийный декодер выполняет энтропийное декодирование кодированных квантованных данных, а также кодированной вспомогательной информации, как правило, применяя операции, обратные энтропийному закодированию, выполненному в кодере. Компенсатор движения использует информацию о движении для одного или нескольких опорных кадров, формируя значения предсказания с компенсацией движения для любых кодированных (с использованием межкадрового кодирования) блоков восстанавливаемого кадра. Модуль внутреннего предсказания может обеспечить предсказание значений отсчетов текущего блока на основе соседних, ранее восстановленных значений отсчетов, или, в случае внутреннего предсказания с ВС, предсказать значение отсчетов текущего блока, используя ранее восстановленные значения отсчетов из области внутреннего предсказания в данном кадре. Декодер (450) также восстанавливает остаточные элементы предсказания. Обратный квантователь выполняет обратное квантование для декодированных (с использованием энтропийного декодирования) данных. Например, декодер (450) устанавливает значения для QP для картинки, плитки, слайса и/или другой части видео на основе синтаксических элементов в битовом потоке и выполняет обратное квантование соответствующих коэффициентов преобразования. Средство обратного частотного преобразования преобразует квантованные данные в частотной области в информацию пространственной области. Для блоков, полученных с использованием межкадрового предсказания, декодер (450) объединяет восстановленные остатки предсказания с предсказаниями с компенсацией движения. Декодер (450) может подобным же образом объединить остатки предсказания с предсказаниями, полученными с использованием внутреннего предсказания. Контур компенсации движения в видеодекодере (450) включает в себя адаптивный деблокинг-фильтр для сглаживания разрывов через строки и/или столбцы на границах блоков в декодированном кадре (451).
Зона (460) временного хранения декодированных кадров включает в себя множество зон (461, 462, …, 46n) хранения буферов кадров. Зона (460) хранения декодированных кадров представляет собой пример буфера декодированных картинок. Декодер (450) использует информацию (432) о MMCO/RPS для идентификации буфера (461, 462 и т.д.) кадров, в котором может храниться декодированный кадр (451). Декодер (450) запоминает декодированный кадр (451) в этом буфере кадров.
Секвенсор (480) вывода использует информацию (432) о MMCO/RPS для идентификации того, когда следующий кадр, создаваемый в порядке вывода, будет доступен в зоне 460 хранения декодированных кадров. Когда в зоне (460) хранения декодированных кадров появится следующий кадр (481), создаваемый в порядке вывода, он считывается секвенсором (480) вывода и выводится для адресата (490) вывода (например, на дисплей). В общем случае порядок, в котором выводятся секвенсором (480) вывода кадры из зоны (460) хранения декодированных кадров, может отличаться от порядка, в котором эти кадры декодировались декодером (450).
V. Примерные видеокодеры
На фигурах 5а и 5b представлена блок-схема обобщенного видеокодера (500), совместно с которым могут быть реализованы некоторые описанные здесь варианты осуществления. Кодер (500) принимает последовательность видеокартинок, включая текущую картинку, в виде входного видеосигнала 505 и создает закодированные данные в кодированном битовом потоке (595) видео в качестве выходных данных.
Кодер (500) создан на блочной основе и использует блочный формат, который зависит от реализации. Блоки могут быть дополнительно разделены на другие ступени, например, при предсказании, частотном преобразовании и/или энтропийном закодировании. Например, картинка может быть разделена на 64×64 блока, 32×32 блока или 16×16 блоков, которые, в свою очередь, можно разделить на более мелкие блоки значений отсчетов для кодирования и декодирования. В реализациях кодирования для стандарта HEVC кодер разделяет картинку на единицы CTU (CTB), CU (CB), PU (PB), и TU (TB).
Кодер (500) выполняет сжатие картинок, используя кодирование внутри одной картинки (внутреннее кодирование) и/или между картинками (внешнее кодирование). Многие компоненты кодера (500) используются как для внутреннего кодирования, так и для внешнего кодирования. Точный список операций, выполняемых этими компонентами, может существенно зависеть от типа сжимаемой информации.
Модуль (510) разделения на плитки выполняет необязательное разделение картинки на множество плиток одинакового размера или разных размеров. Например, модуль (510) разделения на плитки разделяет картинку по строкам и столбцам, которые вместе с границами картинки определяют горизонтальные и вертикальные границы плиток в картинке, где каждая плитка представляет собой прямоугольную область. Модуль (510) разделения на плитки может затем сгруппировать эти плитки в один или несколько наборов, где набор плиток представляет собой одну или несколько плиток.
Средство (520) общего управления закодированием получает картинки для входного видеосигнала (505), а также сигнала обратной связи (не показан) от различных модулей кодера (500). Средство (520) общего управления закодированием в общем случае обеспечивает управляющие сигналы (не показаны) для других модулей (таких как модуль (510) разделения на плитки, преобразователь/средство масштабирования/квантователь (530), средство масштабирования/обратный преобразователь (535), средство (540) оценки внутреннего предсказания, средство (550) оценки движения и переключатель «интра/интер») для установки и изменения параметров кодирования во время закодирования. В частности, средство (520) общего управления закодированием может принять решение о том, использовать ли внутреннее предсказание с ВС во время закодирования и принять решение о том, каким образом это сделать. Средство (520) общего управления закодированием также может оценить промежуточные результаты во время закодирования, например, выполнения анализа зависимости искажения от скорости. средство (520) общего управления закодированием создает общие управляющие данные (522), которые указывают решения, сделанные во время закодирования, так что соответствующий декодер может принять согласованные решения. Общие данные (522) управления подаются в средство форматирования заголовка/кодер (590) энтропийного кодирования.
Если текущая картинка предсказывается с использованием внешнего предсказания компенсатор (550) движения оценивает движение блоков значений отсчетов текущей картинки входного видеосигнала (505) по отношению к одной или нескольким опорным картинкам. Буфер (570) декодированных картинок буферизирует одно или несколько восстановленных ранее кодированных картинок для использования в качестве опорных картинок. При использовании множества опорных картинок это множество опорных картинок может поступать с разных временных направлений или с одного и того же временного направления. Средство (550) оценки движения создает в качестве дополнительной информации данные (552), такие как данные вектора движения и данные по выбору опорных картинок. Данные (552) о движении подаются в средство форматирования заголовка/энтропийный кодировщик 590, а также на компенсатор (555) движения.
Компенсатор (555) движения применяет векторы движения к восстановленной опорной картинке (картинкам) из буфера (570) декодированных картинок. Компенсатор (555) движения создает предсказания с компенсацией движения для текущей картинки.
В отдельном тракте в декодере (500) средство (540) оценки внутреннего предсказания определяет, каким образом выполнить внутреннее предсказание для блоков значений отсчетов текущей картинки входного видеосигнала (505). Эта текущая картинка может быть целиком или частично кодирована с использованием внутреннего кодирования. Используя значения восстановления (538) текущей картинки для внутреннего пространственного предсказания, средство (540) оценки внутреннего предсказания определяет, каким образом выполнить пространственное предсказание значений отсчетов текущего блока текущей картинки исходя из соседних ранее восстановленных значений отсчетов текущей картинки. Либо, если речь идет о внутреннем предсказании с ВС, средство (540) оценки внутреннего предсказания оценивает смещение значений отсчетов текущего блока для различных областей-кандидатов в текущей картинке. Что касается внутреннего предсказания с ВС, то средство (540) оценки внутреннего предсказания оценки может ограничить процесс выбора BV с использованием одного или нескольких ограничений, описанных ниже. Средство (540) оценки внутреннего предсказания может также ограничить использование внутреннего предсказания с ВС, когда разрешено ограниченное внутреннее предсказание, как описано ниже.
Средство (540) оценки внутреннего предсказания создает в качестве вспомогательной информации данные (542) внутреннего предсказания, такую как информация, указывающая, используется ли пространственное предсказание или предсказание с BC (например, значение флага на внутренний блок), направление режима предсказания (для внутреннего пространственного предсказания) и значения BV (для внутреннего предсказания с BC). Данные (542) внутреннего предсказания подаются в средство форматирования заголовка/энтропийный кодировщик (590), а также в средство (545) внутреннего предсказания.
Согласно данным (542) внутреннего предсказания средство 545 внутреннего предсказания выполняет пространственное предсказание значений отсчетов текущего блока текущей картинки исходя из соседних ранее восстановленных значений отсчетов текущей картинки. Либо в случае внутреннего предсказания с ВС, средство (545) внутреннего предсказания обеспечивает значения отсчетов текущего блока, используя ранее восстановленные значения отсчетов в области внутреннего предсказания, которая указана значением BV для текущего блока. Когда данные цветности для картинки имеют такое же разрешение, как данные яркости (например, когда формат представляет собой формат YUV 4:4:4 или формат RGB 4:4:4), значение, которое используется для блока цветности, может совпадать со значением BV, используемым для блока яркости. С другой стороны, когда данные цветности для картинки имеют уменьшенное разрешение по сравнению с данным яркости (например, когда форматом является формат YUV 4:2:0), значение BV, которое используется для блока цветности, может быть уменьшено в масштабе и возможно округлено для согласования с разницей в разрешении цветности (например, путем деления вертикальной и горизонтальной компонент значения BV на два и отбрасывания или округления их до целых значений).
Переключатель «интра/интер» выбирает значения предсказания с компенсацией движения или внутреннего предсказания для использования в качестве предсказания (558) для данного блока. Разность (если она имеет место) между блоком предсказания (558) и соответствующей частью исходной текущей картинки сигнала (505) входного видео обеспечивает значения остатка (518). Во время восстановления текущей картинки восстановленные значения остатков объединяют с результатами предсказания (558) для создания восстановления (538) исходного контента из видеосигнала (505). Однако, при сжатии с потерями некоторая часть информации из видеосигнала (505) теряется.
В преобразователе/блоке масштабирования/квантователе (530) преобразователь частоты выполняет преобразование видеоинформации пространственной области в данные частотной области (например, спектр, преобразование). Для видеокодирования на блочной основе частотный преобразователь применяет дискретное косинусное преобразование (DCT), его целочисленную аппроксимацию или прямое блочное преобразование другого типа в блоки данных остатков предсказания (или данные о значения отсчетов, если предсказание (558) дало нулевой результат), обеспечивая блоки коэффициентов частотного преобразования. При использовании внутреннего предсказания с ВС кодер (500) может применить дискретное синусное преобразование (DST), его целочисленную аппроксимацию или прямое блочное преобразование другого типа (которое отличается от преобразования, использованного для других блоков) по меньшей мере для некоторых размеров блоков значений остатков внутреннего ВС предсказания, как описано ниже. Кодер (500) также способен указать, что данный шаг преобразования пропущен. Средство масштабирования/квантователь выполняет масштабирование и квантование коэффициентов преобразования. Например, квантователь применяет неоднородное масштабируемое квантование к данным частотной области, используя размер шага, который изменяется от кадра к кадру, от плитки к плитке, от слайса к слайсу, от блока к блоку или на другой основе. Квантованные данные (532) о коэффициентах преобразования подаются в средство форматирования заголовка/энтропийный кодировщик (590).
В блоке масштабирования/обратном преобразователе (535) средство масштабирования/обратный квантователь выполняет обратное масштабирование и обратное квантование квантованных коэффициентов преобразования. Обратный частотный преобразователь выполняет обратное частотное преобразование, создавая блоки восстановленных остатков предсказания или значений отсчетов. Кодер (500) объединяет восстановленные остатки со значениями предсказания (558) (например, значения предсказания с компенсацией движения, значения внутреннего предсказания) для формирования восстановления (538).
Что касается внутреннего предсказания, то значения восстановления (538) могут быть направлены обратно в средство (540) оценки внутреннего предсказания и средство (545) внутреннего предсказания. Также значения восстановления (538) могут быть использованы для предсказания (с компенсацией движения) последующих картинок. Значения восстановления (538) кроме того могут подвергнуться фильтрации. Средство (560) управления фильтрацией определяет, каким образом выполнять деблокинг-фильтрацию и фильтрацию с адаптивным смещением отсчетов (SAO) для значений восстановления (538) для данной картинки видеосигнала (505). Средство (560) управления фильтрацией создает данные (562) для управления фильтром, которые подаются в средство форматирования заголовка/энтропийный кодировщик (590) и средство объединения/фильтр (фильтры) (565).
В средстве (565) объединения/фильтре (фильтрах) кодер (500) объединяет контент из разных плиток, формируя восстановленную версию картинки. Кодер (500) избирательно выполняет деблокинг-фильтрацию и фильтрацию с SAO в соответствии с данными (562) для управления фильтром, с тем чтобы адаптивно сглаживать разрывы через границы в кадрах. Кодер (500) может использовать разные подходы при петлевой деблокинг-фильтрации на границах между блоками картинки в зависимости от того, какой режим предсказания используется: внутреннее пространственное предсказание, внутреннее предсказание с ВС или внешнее предсказание, для соответствующих блоков, как описано ниже. Фильтрация границ плиток выполняется избирательно или вообще не выполняется в зависимости от настроек кодера (500), а кодер (500) может предоставить синтаксис в кодированном потоке для указания о том, была ли применена указанная фильтрация. Буфер (570) декодированных картинок буферизирует восстановленную текущую картинку для ее использования при последующем предсказании с компенсацией движения.
Средство форматирования заголовка/энтропийный кодировщик (590) выполняет форматирование и/или энтропийное кодирование общих управляющих данных (522), данных (532) квантованных коэффициентов преобразования, данных (542) внутреннего предсказания, данных (552) движения и данных (562) управления фильтром. Например, средство форматирования заголовка/энтропийный кодировщик (590) используют контекстно-ориентированное двоичное арифметическое кодирование для энтропийного кодирования различных синтаксических элементов. В частности, когда он выполняет закодирование значения BV, средство формирования заголовка/энтропийный кодировщик (590) может использовать вероятности появления значений для одной компоненты вектора BV (например, горизонтальные компоненты), учитывая значение другой компоненты вектора BV (например, вертикальной компоненты), как описано ниже.
Средство форматирования заголовка/энтропийный кодировщик (590) обеспечивает закодированные данные в кодированном битовом потоке (595) видео. Формат кодированного битового потока (595) видео может представлять собой вариант или расширение формата HEVC, формата Windows Media Video, формата VC-1, формата MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формата H.26x (например, Н.261, Н.262, Н.263, Н.264) или другого формата.
В зависимости от реализации и требуемого типа сжатия возможно добавление, удаление, разбиение на множество модулей, объединение с другими модулями и/или замена подобными модулями кодера. В альтернативных вариантах осуществления кодеры с разными модулями и/или с другими конфигурациями модулей выполняют один или несколько описанных здесь способов. В конкретных вариантах осуществления кодеров, как правило, используют вариант или дополнительную версию кодера (500). Показанные здесь взаимосвязи между модулями в кодере (500) указывают общие информационные потоки в кодере; при этом другие взаимосвязи для простоты не показаны.
VI. Примерные видеодекодеры
На фиг. 6 представлена блок-схема обобщенного декодера (600), совместно с которым могут быть реализованы некоторые описанные здесь варианты осуществления. Декодер (600) принимает закодированные данные в кодированном битовом потоке (605) видео и создает выходные данные, включающие в себя картинки для восстановленного видео (695). Формат кодированного битового потока (605) видео может представлять собой вариант или расширение формата HEVC, формата Windows Media Video, формата VC-1, формата MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), формата H.26x (например, Н.261, Н.262, Н.263, Н.264) или другого формата.
Декодер (600) создан на блочной основе и использует блочный формат, который зависит от реализации. Блоки могут быть дополнительно разделены на другие ступени. Например, картинка может быть разделена на 64×64 блока, 32×32 блока или 16×16 блоков, которые, в свою очередь, можно разделить на более мелкие блоки значений отсчетов. В реализациях декодирования для стандарта HEVC картинка разделяется на единицы (блоки) CTU (CTB), CU (CB), PU (PB), и TU (TB).
Декодер (600) выполняет распаковку картинок, используя внутреннее декодирование и/или внешнее декодирование. Многие компоненты декодера (600) используются как для внутреннего декодирования, так и для внешнего декодирования картинок. Точный список операций, выполняемых этими компонентами, может существенно зависеть от типа распаковываемой информации.
Буфер получает закодированные данные в кодированном битовом потоке (605) видео и делает полученные закодированные данные доступными для анализатора/энтропийного декодера (610). Анализатор/энтропийный декодер (610) выполняет энтропийное декодирование данных (полученных в результате энтропийного кодирования), применяя, как правило, операции, обратные энтропийному кодированию, выполненному в кодере (500) (например, контекстно-ориентированное двоичное арифметическое декодирование). В частности, при декодировании значения вектора BV анализатор/энтропийный декодер (610) может декодировать соответствующие компоненты вектора BV, как описано ниже. В результате выполнения синтаксического анализа и энтропийного декодирования анализатор/энтропийный декодер (610) создает данные (622) общего управления, данные (632) о квантованных коэффициентах преобразования, данные (642) внутреннего предсказания, данные (652) движения и данные (662) для управления фильтром.
Средство (620) общего управления декодированием получает общие данные (622) управления и подает управляющие сигналы (не показаны) на другие модули (такие как средство масштабирования/обратный преобразователь (635), компенсатор (655) движения и переключатель «интра/интер») для установки и изменения параметров декодирования в ходе декодирования.
Если текущая картинка предсказывается с использованием внутреннего предсказания компенсатор (655) получает данные (652) движения, такие как данные вектора движения и данные выбора опорной картинки.
Компенсатор (655) движения применяет векторы движения к восстановленной опорной картинке (картинкам) из буфера (670) декодированных картинок. Компенсатор (655) движения создает предсказания с компенсацией движения для кодированных межкадровым кодированием блоков текущей картинки. В буфере (670) декодированных картинок запоминается одна или несколько ранее восстановленных картинок для использования в качестве опорных картинок.
В отдельном тракте в декодере (600) средство (645) внутреннего предсказания получает данные (642) внутреннего предсказания, такие как информация, указывающая, используется ли при внутреннем предсказании пространственное предсказание или предсказание с BC (например, значение флага на внутренний блок), направление режима предсказания (для внутреннего пространственного предсказания) и значения BV (для внутреннего предсказания с ВС). В случае внутреннего пространственного предсказания средство (645) внутреннего предсказания, используя значения восстановления (638) текущей картинки в соответствии с данными режима предсказания, выполняет пространственное предсказание значений отсчетов текущего блока текущей картинки исходя из соседних ранее восстановленных значений отсчетов текущей картинки. Либо, в случае внутреннего предсказания с ВС средство 645 внутреннего предсказания создает значения отсчетов текущего блока, используя ранее восстановленные значения отсчетов области внутреннего предсказания, которая указана значением BV для текущего блока. Средство (645) внутреннего предсказания также может ограничить использование внутреннего предсказания с ВС, когда разрешается ограниченное внутреннее предсказание, как описано ниже.
Переключатель «интра/интер» выбирает значения предсказания с компенсацией движения или внутреннего предсказания для использования в качестве предсказания (658) для данного блока. Например, при использовании синтаксиса HEVC переключатель «интра/интер» может управляться на основе синтаксического элемента, закодированного для CU картинки, которая может содержать предсказанные внутренним предсказанием единицы CU и предсказанные (с использованием внешнего предсказания) единицы CU. Декодер (600) объединяет предсказание (658) с восстановленными значениями остатков для создания данных восстановления (638) контента из видеосигнала.
Для восстановления остатка средство масштабирования/обратный преобразователь (635) принимает и обрабатывает данные (632) квантованных коэффициентов преобразования. В блоке масштабирования/обратного преобразователя (615) средство масштабирования/обратного квантователя выполняет обратное масштабирование и обратное квантование квантованных коэффициентов преобразования. Обратный частотный преобразователь выполняет обратное частотное преобразование, создавая блоки восстановленных остатков предсказания или значения отсчетов. Например, обратный частотный преобразователь применяет обратное блочное преобразование к коэффициентам частотного преобразования, создавая данные значений отсчетов или данные остатков предсказания. Обратное частотное преобразование может представлять собой обратное DCT, его целочисленную аппроксимацию или обратное частотное преобразование другого типа. При использовании внутреннего предсказания с ВС декодер (600) может применить обратное DST, его целочисленную аппроксимацию или обратное блочное преобразование другого типа (отличающееся преобразованием, примененным для других блоков) по меньшей мере для некоторых размеров блоков значений остатков внутреннего предсказания с ВС, как описано ниже.
В случае внутреннего предсказания значения восстановления (638) могут быть направлены обратно в средство (645) внутреннего предсказания. Что касается внешнего предсказания, то значения предсказания (638) кроме того могут быть подвергнуты фильтрации. В блоке объединения/фильтре (фильтрах) (665) декодер (600) объединяет контент из разных плиток в восстановленную версию картинки. Декодер (600) избирательно выполняет деблокинг-фильтрацию и фильтрацию SAO согласно данным (662) для управления фильтром и правилам для адаптации фильтра, с тем чтобы адаптивно сгладить разрывы через границы в кадрах. Декодер (600) может применить другие подходы при петлевой деблокинг-фильтрации границ между блоками картинки в зависимости от того, является ли режим предсказания режимом внутреннего пространственного предсказания, внутреннего предсказания с ВС или внешним предсказанием для соответствующих блоков, как описано ниже. Границы плиток могут быть избирательно отфильтрованы или вообще не фильтроваться в зависимости от настроек декодера (600) или синтаксической индикации в кодированных данных битового потока. Буфер (670) декодированных картинок буферизирует восстановленную текущую картинку для ее использования в последующем предсказании с компенсацией движения.
Декодер (600) также может включать в себя пост-обрабатывающий деблокинг-фильтр. Пост-обрабатывающий деблокинг-фильтр, являющийся опцией, сглаживает разрывы в восстановленных картинках. Также возможно применение другой фильтрации (например, фильтрация периодически появляющихся помех) в качестве части пост-обрабатывающей фильтрации.
В зависимости от реализации и требуемого типа распаковки в декодере возможно добавление модулей, удаление модулей, разбиение их на множество модулей, объединение с другими модулями и/или замена подобными модулями. В альтернативных вариантах осуществления декодеры с разными модулями и/или с другими конфигурациями модулей выполняют один или несколько описанных здесь приемов. В конкретных вариантах осуществления декодеров, как правило, используют вариант или дополнительную версию декодера (600). Показанные здесь взаимосвязи между модулями в декодере (600) указывают общие информационные потоки в декодере; при этом другие взаимосвязи для простоты не показаны.
VII. Нововведения для режима внутреннего предсказания с блочным копированием
Этот раздел представляет различные нововведения для режима внутреннего предсказания с блочным копированием (BC). Некоторые из этих нововведений относятся к выбору значений блочного вектора (BV), в то время как другие относятся к закодированию/декодированию значений BV. Ряд других нововведений относится к интегрированию режима внутреннего предсказания с BC с ограниченным внутренним предсказанием, выбору прямого и обратного частотных преобразований при использовании режима внутреннего предсказания с BC, или петлевой деблокинг-фильтрации через границу блока в связи с режимом внутреннего предсказания с BC. Эти нововведения могут облегчить внутреннее предсказание с BC, которое является более эффективным в контексте показателя искажения в зависимости от скорости и/или в контексте эффективности вычислений для закодирования и декодирования. В частности, внутреннее предсказание с BC может улучшить показатель искажения в зависимости от скорости при закодировании конкретного «искусственно» созданного видеоконтента, такого как контент снимка экрана. Контент снимка экрана, как правило, включает в себя повторяющиеся структуры (например, графика, текстовые символы), которые обеспечивают возможности повышения эффективности внутреннего предсказания с BC. Контент снимка экрана обычно кодируется в формате (например, YUV 4:4:4 или RGB 4:4:4) с высоким разрешением дискретизации цветности, хотя также возможно его закодирование в формате с более низким разрешением дискретизации цветности (например, YUV 4:2:0).
А. Режим внутреннего предсказания с BC – Введение
В режиме внутреннего предсказания с BC значения отсчетов текущего блока картинки предсказываются с использованием значений отсчетов в одной и той же картинке. Вектор BV указывает смещение от текущего блока до области картинки, которая включает в себя значения отсчетов, использованных для предсказания. Как правило, значения отсчетов, использованных для предсказания, представляют собой ранее восстановленные значения отсчетов. Вектор BV передается в битовом потоке в качестве сигнализации. Внутреннее предсказание с DC является формой внутреннего предсказания для картинки, то есть, внутреннее предсказание с BC для блока картинки не использует какие-либо значения отсчетов, отличные от значений отсчетов в той же картинки.
На фиг. 7 показано внутреннее предсказание с BC для текущего блока (730) текущего кадра (710). Текущим блоком может быть блок кодирования (CB) единицы кодирования (CU), блок предсказания (PB) единицы предсказания (PU), блок преобразования (TB) единицы преобразования (TU) или другой блок. Размер текущего блока может составлять 64×64, 32×32, 16×16, 8×8 или некоторый другой размер. В более общем случае размер текущего блока составляет m × n, где m и n являются каждое целым числом, и где m и n могут быть равны друг другу или могут иметь разные значения. В качестве альтернативы текущий блок может иметь другую форму (например, область кодированного видеообъекта непрямоугольной формы).
Вектор BV (740) указывает смещение (или сдвиг) от текущего блока (730) до области (750) картинки, которая включает в себя значения отсчетов, использованных для предсказания. Положим, что верхнее левое положение текущего блока – это положение (x0,y0) в текущем кадре, и положим, что верхнее левое положение области внутреннего предсказания – это положение (xj,yj) в текущем кадре. Вектор BV указывает смещение (xj-x0, yj-y0). Например, если верхним левым положением текущего блока является положение (320, 256), а верхним левым положением области внутреннего предсказания является положение (295, 270), то значение BV составит (-25, 14). Отрицательное горизонтальное смещение указывает на положение влево от текущего блока, а отрицательное вертикальное смещение указывает на положение выше текущего блока.
В некоторых примерных реализациях область (750) внутреннего предсказания ограничена пределами того же слайса или плитки, что текущий блок (730). При указанном внутреннем предсказании с BC не используются значения отсчетов в других слайсах или плитках. На местоположение области 750 внутреннего предсказания могут быть наложены одно или несколько других ограничений (например, для диапазона поиска, касающегося использования восстановленных значений отсчетов кодированных внешним кодированием блоков.
Блоком с внутренним режимом предсказания с BC может быть блок CB, PB или другой блок. Когда это блок CB, вектор BV для этого блока может быть передан в качестве сигнализации на уровне CU (а для других блоков CB в CU используют тот же самый BV или его масштабированную версию). Либо, когда блок объявляется PB блоком вектор BV для этого блока может быть передан в качестве сигнализации на уровне PU (а для других блоков PB в PU используют тот же самый BV или его масштабированную версию). В более общем случае вектор BV для блока внутреннего предсказания с BC передается в качестве сигнализации на соответствующем синтаксическом уровне для данного блока.
Операции блочного копирования для предсказания согласно режиму внутреннего предсказания с BC могут выполняться на уровне CB (когда вектор BV передается в качестве сигнализации для каждого CB) или PB (когда вектор BV передается в качестве сигнализации для каждого PB). Например, положим, что блок CB 16×16 имеет один блок PB 16×16. Вектор BV (для PB) применяется к блочной копии области 16×16. Когда область внутреннего предсказания ограничена, чтобы избежать перекрытия предсказываемого блока 16×16, вектор BV имеет величину (абсолютное значение) по меньшей мере 16 по горизонтали или вертикали.
В качестве альтернативы, операции блочного копирования могут выполняться на уровне блоков TB в блоке PB или CB даже в том случае, когда BV передается в качестве сигнализации для PB или CB. Таким образом, вектор BV, применяемый для TB, может обращаться к позициям других блоков TB в том же самом PB или CB. Например, положим, что блок CB 16×16 имеет один блок PB 16×16, но он разделен на шестнадцать блоков TB 4×4 с целью кодирования/декодирования остатка. Вектор BV (для блока PB) применяется для блочного копирования области 4×4 для первого TB в порядке растрового сканирования, затем этот же BV используется для блочного копирования области 4×4 для второго TB в порядке растрового сканирования и т.д. Область 4×4, используемая в операциях BC для блока TB, может включать в себя положения в ранее восстановленных блоках TB в том же самом CB после объединения значений остатков с предсказанными значениями для этих ранее восстановленных блоков TB. (Вектор BV еще не привязан к каким-либо местам в блоке TB, для которого выполняется предсказание). Применение операций BC на уровне TB облегчает использование векторов BV, имеющих относительно малую величину.
Операции внутреннего предсказания с BC для блоков цветности единицы CU обычно соответствуют операциям внутреннего предсказания с BC для блока яркости единицы CU. Обычно сегментация блоков РB цветности и блоков TB цветности напрямую соответствует сегментации блоков PB яркости и блоков TB яркости в единице CU. При использовании формата видео YUV 4:4:4 размеры блоков PB и TB цветности соответствуют размерам соответствующих блоков PB и TB яркости. Когда форматом видео является формат YUV 4:2:0, ширина блоков PB и блоков TB цветности составляет половину ширины, а высота составляет половину высоты соответствующих блоков PB и TB яркости. Однако, если блок TB яркости имеет минимальный размер преобразования, то используется один блок TB цветности с этим минимальным размером преобразования.
В некоторых реализациях для CU с внутренним предсказанием с BC при внутреннем предсказании с BC для блока цветности в PU используется то же самое значение BV, что и во внутреннем предсказании с BC для блока яркости в PU, возможно после масштабирования и округления, когда данные цветности уменьшили разрешающую способность по сравнению с данными яркости (например, при использовании формата YUV 4:2:0). В качестве альтернативы возможна передача в качестве сигнализации других значений BV для блока яркости и блоков цветности единицы PU.
В некоторых реализациях, если режимом предсказания блока яркости единицы PU является внутреннее предсказание с BC, то режимом предсказания для блоков цветности единицы PU также будет внутреннее предсказание с BC. Например, сообщение о режиме предсказания передается в качестве сигнализации для PU. В качестве альтернативы, режимом предсказания может быть внутреннее предсказание с BC для блока яркости или блоков цветности единицы PU, но не для их обоих.
B. Ограничение поиска BV для режима внутреннего предсказания с BC
В некоторых примерных реализациях кодер ограничивает диапазон BV в соответствии с одним или несколькими ограничениями. Благодаря ограничению диапазона BV область восстановленных значений отсчетов, к которой обращаются путем быстрого доступа к памяти для внутреннего предсказания с BC во время закодирования и декодирования, может быть уменьшена, что открывает дорогу к снижению затрат на реализацию.
На фиг. 8 показаны примерные ограничения на диапазон поиска значений BV. Вдобавок к текущему блоку (830) текущего кадра (810) на фиг. 8 показан диапазон поиска, определенный двумя блоками CTB (820, 822). Текущий блок CTB (820) является частью текущей CTU и включает в себя текущий блок (830). При использовании CTB (822) слева текущий CTB (820) определяет диапазон поиска, в котором могут быть найдены допустимые векторы BV для текущего блока (830). Векторы (842, 844) относятся к областям, находящимся вне диапазона поиска, так что эти значения BV (842, 844) недопустимы.
В некоторых примерных реализациях диапазоном поиска для значений BV для текущего блока является текущий блок CTB и блок CTB слева от него. Например, блок CTB может иметь размер 64×64, 32×32 или 16×16 значений отсчетов, что дает диапазон поиска 128×64, 64×2 или 32×16 значений отсчетов. Для внутреннего предсказания с BC для текущего блока используют только одно значение отсчета в текущем блоке CTB и блоке CTB слева от него. Это упрощает реализацию кодера благодаря ограничению процесса поиска. Это также упрощает реализацию декодера благодаря ограничению количества значений отсчетов, которое буферизирует декодер в быстродействующей памяти для внутреннего предсказания. Другое ограничение состоит в том, что внутреннее предсказание не может обращаться к значениям отсчетов из другого слайса или плитки. Для текущего блока m × n с верхним левым положением (x0,y0) и CTB, имеющих каждый размерность CTB sizey x CTB sizey , кодер может проверить указанные ограничения для двухмерного BV, имеющего горизонтальную компоненту BV[0] и вертикальную компоненту BV[1] следующим образом.
BV[0] >≥ -((x 0% CTB sizeY )+CTB sizeY )
BV[1] ≥ -(y0% CTBsizeY)
Значения отсчетов в положениях (x0,y0), (x0+BV[0], y0+BV[1]) и (x0+BV[0]+m-1, y0+BV[1]+n-1) должны быть в одном и том же слайсе.
Значения отсчетов в положениях (x0,y0), (x0+BV[0], y0+BV[1]) и (x0+BV[0]+m-1, y0+BV[1]+n-1) должны быть из одной и той же плитке.
На фиг. 9 показан прием (900) закодирования с режимом внутреннего предсказания с BC с одним или несколькими ограничениями на выбор значений вектора BV. Данный прием (900) может выполняться кодером, таким как кодер, описанный со ссылками на фиг. 3 или фигуры 5а-5b.
Для запуска процесса кодер определяет (910) вектор BV для текущего блока картинки. Текущим блоком может быть CB, PB или другой блок. Вектор BV указывает смещение до области внутри картинки. При определении BV кодер проверяет выполнение одного или нескольких ограничений.
Согласно одному возможному ограничению кодер проверяет диапазон значений отсчетов, используемых для внутреннего предсказания с BC. Кодер может проверить, что предполагаемая область внутреннего предсказания находится в пределах диапазона, определенного текущим блоком CTB и одним или несколькими другими блоками CTB (например, CTB слева от текущего CTB). Например, когда вектор BV имеет первую компоненту BV[0] и вторую компоненту BV[1], текущий блок имеет верхнее левое положение в положении (x0,y0), а каждый из блоков CTB имеет ширину CTBwidth и высоту CTBheight, удовлетворяется ограничение: если BV[0] ≥ -((x0% CTBwidth)+CTBwidth) и BV[1] ≥ -(y0% CTBheight). Кодер может аналогичным образом проверить ограничение сверху на значения BV[0] и BV[1] в диапазоне поиска: BV[0]<(CTBwidth - m –(x0% CTBwidth)) и BV[1] < (CTBheight - n – (y0% CTBheight)). В качестве альтернативы, диапазон поиска может включать в себя больше или меньше блоков CTB, или диапазон поиска может быть определен каким-либо другим путем.
Согласно еще одному возможному ограничению кодер ограничивает поиск текущим слайсом и плиткой (то есть, текущий блок и область поиска являются частью не более чем одного слайса картинки, и не более одной плитки картинки). Кодер может проверить, являются ли верхнее левое положение текущего блока, верхнее левое положение возможной области внутреннего предсказания и нижнее правое положение возможной области внутреннего предсказания частью одного слайса и одной плитки. Например, выполняется ограничение: (x 0 ,y 0 ), (x 0 +BV[0], y 0 +BV[1]) и (x 0 +BV[0]+m-1, y 0 +BV[1]+n-1) являются частью одного слайса и одной плитки.
В качестве альтернативы, кодер может проверить другие и/или дополнительные ограничения.
Кодер выполняет (920) внутреннее предсказание с BС для текущего блока, используя вектор BV. Например, кодер выполняет внутреннее предсказание с BC для всего текущего блока. Либо кодер выполняет внутреннее предсказание с BC для множества блоков, связанных с текущим блоком (например, для множества блоков TB на поблочной основе, где блоки TB связаны с текущим блоком PB, который имеет BV).
Кодер выполняет закодирование (930) вектора BV. Например, кодер выполняет закодирование (930) вектора BV, как описано ниже. Кодер может повторить выполнение приема (900) для другого блока в режиме внутреннего предсказания с BC. При использовании внутреннего предсказания с BC кодер и декодер используют восстановленные значения отсчетов. Невосстановленные значения отсчетов могут быть представлены как части картинки, которые еще не были закодированы и восстановлены. Во избежание использования невосстановленных значений отсчетов для внутреннего предсказания с BC кодер может установить ограничение на допустимые значения вектора BV, с тем чтобы для внутреннего предсказания с BC в соответствии с BV использовались только действительно ранее восстановленные значения отсчетов.
В некоторых примерных реализациях кодер проверяет значение BV, учитывая порядки z-сканирования текущего блока и блока, содержащего нижнее правое положение предполагаемой области внутреннего предсказания. В частности, кодер проверяет, меньше ли порядок z-сканирования блока, содержащего позицию (x 0 +BV[0]+m-1, y 0 +BV[1]+n-1), чем порядок z-сканирования блока, содержащего (x 0 ,y 0 ). Если да, то блок, который содержит нижнее правое положение области внутреннего предсказания, был ранее восстановлен (и, следовательно, может остаться в области внутреннего предсказания). Вектор BV также удовлетворяет по меньшей мере одному из условий BV[0]+m≤0 и/или BV[1]+n≤0, что гарантирует отсутствие перекрытия области внутреннего предсказания областью внутреннего предсказания текущего блока.
Порядок z-сканирования следует заданной последовательности блоков, на которые разделена картинка. На фиг. 10 показан примерный порядок (1000) z-сканирования для текущего блока (1020) и блоков, которые могли бы включать в себя нижнее правое положение области внутреннего предсказания для возможного вектора BV. Текущим блоком (1030) может быть блок CB, блок PB или другой блок. Порядки z-сканирования обычно выделяются для блоков последовательно слева направо по строке, с повторением в последующих строках сверху вниз. Когда блок разделен на отдельные части, порядки z-сканирования присваивают в разделенном блоке рекурсивно. Для реализаций закодирования/декодирования согласно стандарту HEVC, порядок z-сканирования определяет сканирование от CTB к CTB с использованием шаблона растрового сканирования CTB (слева направо в одной строке CTB, с повторением на последующих строках CTB сверху вниз). Если блок CTB разделен на отдельные части, порядок z-сканирования соответствует шаблону растрового сканирования для блоков CB квадродерева в разделенном CTB. И наконец, если CB разделен на отдельные части (например, на множество блоков CB или множество блоков PB), то порядок z-сканирования соответствует шаблону растрового сканирования для блоков внутри разделенного блока CB.
В качестве альтернативы, во избежание использования невосстановленных значений отсчетов для внутреннего предсказания с BC кодер (и декодер) может заменить невосстановленные значения отсчетов значениями по умолчанию или в ином случае определенными значениями. На фигурах 11а и 11b показаны примеры областей внутреннего предсказания с невосстановленными значениями отсчетов, которые должны быть заменены заполняемыми значениями. На фиг. 11а область (1150) внутреннего предсказания для текущего блока (1130) включает в себя некоторые значения отсчетов в ранее восстановленной строке блоков, но также включает в себя невосстановленные значения отсчетов ниже этой строки. На фиг. 11b область (1152) внутреннего предсказания включает в себя некоторые значения отсчетов в ранее восстановленных блоках над текущим блоком (1130) и слева от текущего блока (1130), но также включают в себя некоторые невосстановленные значения отсчетов в текущем блоке (1130). Кодер (и декодер) могут заполнить невосстановленные значения отсчетов заранее определенным значением. Например, заранее определенное значение составляет 128 (серого) для значений отсчетов, имеющих глубину в битах, равную 8. Либо в качестве заранее определенного значения используется другое значение. Или, вместо заполнения заранее определенным значением невосстановленные значения отсчетов могут быть заполнены посредством расширения или интерполяции по горизонтали и вертикали, либо посредством какого-либо другого вида расширения или интерполяции, такого как угловое направленное расширение, расширение с подбором планарной поверхности или расширение, использующее среднее значение некоторых доступных восстановленных значений отсчетов. В указанном случае кодер может проверить ограничение, с тем чтобы значения отсчетов, находящиеся вне диапазона поиска, не были использованы для внутреннего предсказания с BC. кодировщик также может предоставить синтаксическую информацию в данных кодированного битового потока для управления процессом заполнения невосстановленных значений отсчетов; например, путем посылки постоянного значения, подлежащего использованию, посылки индикатора угла предсказания для углового направленного расширения или путем посылки индикатора для выбора между множеством способов расширения.
Во время закодирования кодер может заполнить невосстановленные значения отсчетов области внутреннего предсказания подставляемыми значениями (например, на основе интерполяции или экстраполяции на действительных восстановленных значениях отсчетов) или заполнить значения отсчетов заранее определенным значением (например, значение серого) в качестве части процесса внутреннего предсказания с BC. Во время декодирования таким же образом декодер может заполнить невосстановленные значения отсчетов области внутреннего предсказания подставляемыми значениями или заполнить значения отсчетов заранее определенным значением в качестве части процесса внутреннего предсказания с BC.
В качестве альтернативы, когда внутреннее предсказание с BC может выполняться на блочной основе (для блоков TB) (смотри раздел G), кодер и декодер могут проверить наличие возможного перекрытия между областью внутреннего предсказания и текущим блоком (TB), а затем использовать результаты этой проверки для решения вопроса о том, следует ли разделить текущий блок TB на более мелкие блоки TB, для применения операции внутреннего предсказания с BC. Положим, что текущий блок TB имеет размер m x n, где m и n могут быть равны друг другу или могут иметь разные значения. Если BV[0] > -m и BV[1] > -n, то область внутреннего предсказания перекрывает текущий блок TB m × n, что представляет проблему, если текущий блок TB m × n разделен на меньшее количество TB для применения операций внутреннего предсказания с BC. Таким образом, если BV[0] > -m и BV[1] > -n, то кодер и декодер разделяет текущий блок TB на более мелкие блоки TB. Проверяется аналогичные условие (например, рекурсивно проверяется) для более мелких блоков TB, которые могут быть дополнительно разделены, если BV[0] > -m и BV[1]> -n для более мелких значений m и n после разделения.
Например, положим, что вектор BV для блока PB равен (-9, -5), а текущий блок TB представляет собой блок 32×32. Кодер и декодер определяют, что 9 > -32, и что -5 > -32, а это указывает на перекрытие областью внутреннего предсказания (чей верхний левый угол смещен: -9, -5) текущего блока TB 32×32. Кодер и декодер разделяют блок TB 32×32 на четыре блока TB 16×16. Для каждого из блоков TB 16×16 кодер и декодер определяют, что -9> -16, и что -5> -16, что указывает на перекрытие областью внутреннего предсказания (чей верхний левый угол смещен: -9, -5) текущего блока TB 16×16. Для блока TB 8×8 вектор BV (-9, -5) не является проблемой, так как блок TB 8×8 не подвергается дополнительному разделению.
В этом сценарии, когда блок TB разделяется из-за значения BV и размера данного блока TB, кодер может пропустить сигнализацию о значении флага, который, в противном случае сообщал бы о том, разделять ли текущий блок TB на более мелкие блоки TB. Битовый поток закодированных данных не содержит значения флага, указывающее декодеру о необходимости разделения текущего блока TB на более мелкие блоки TB. Вместо этого декодер может сделать вывод, что блок TB следует разделить из-за значения BV и размера этого блока TB. Это поможет сэкономить биты, которые, в противном случае, были бы потрачены на передачу сигнальной информации о разделении блоков TB.
С. Режим внутреннего предсказания с BC, если разрешено ограниченное внутреннее предсказание
В некоторых примерных реализациях процедура внутреннего предсказания с BC выполняется в зависимости от того, разрешено ли ограниченное внутреннее предсказание. Ограниченное внутреннее предсказание – это настройка, используемая для управления устойчивостью к ошибкам, которые могут попасть в закодированные видеоданные (например, из-за потерь пакетов или инвертирования бита из-за помех). Ограниченное внутреннее предсказание вводит ограничение на то, какие восстановленные значения отсчетов могут быть использованы для внутреннего предсказания. Когда ограниченное внутреннее предсказание разрешено, восстановленные значения отсчетов из кодированных внешним кодированием блоков не могут быть использованы для внутреннего предсказания с BC или внутреннего пространственного предсказания. Флаг в битовом потоке может указывать, разрешено ли ограниченное внутреннее предсказание.
На фиг. 12 показан прием (1200) использования режима внутреннего предсказания с BC, когда ограниченное внутреннее предсказание может быть разрешено. Кодер, такой как кодер, описанный со ссылками на фиг. 3 или фигуры 5а-5b, может выполнить прием (1200). Либо этот прием (1200) может выполнить декодер, такой как декодер, описанный со ссылками на фиг. 4 или фиг. 6.
Кодер или декодер определяет (1210), разрешено ли ограниченное внутреннее предсказание. Например, кодер или декодер проверяет значение флага, который управляет возможностью разрешения ограниченного внутреннего предсказания. Этот флаг может быть передан в качестве сигнализации как часть набора параметров картинки или на каком-либо другом уровне.
Кодер или декодер (1220) выполняет внутреннее предсказание с BC для текущего блока по меньшей мере частично в зависимости от того, разрешено ли ограниченное внутреннее предсказания. Имеется несколько подходов к настройке внутреннего предсказания с BC в зависимости от того, разрешено ли ограниченное внутреннее предсказание, как подробно описывается ниже. Кодер или декодер может повторять указанный прием (1200) для другого блока режима внутреннего предсказания с BC.
Согласно одному подходу, когда кодер определяет BV для текущего блока, если разрешено ограниченное внутреннее предсказание, то кодер проверяет, что ни одно значение отсчета из возможной области внутреннего предсказания не является восстановленным значением отсчета из кодированного внешним кодированием блока. Если ограниченное внутреннее предсказание не разрешено, то это ограничение не применяется, и внутреннее предсказание с BC может использовать восстановленные значения отсчетов из кодированного внешним кодированием блока.
На фиг. 13 это ограничение показано на допустимых значениях BV, когда разрешено ограниченное внутреннее предсказание. Использование векторов BV (1342, 1344) для областей внутреннего предсказания в кодированных (с применением внутреннего кодирования) блоках разрешено независимо от того, как они были кодированы (с использованием внутреннего пространственного предсказания или внутреннего предсказания с BC). Использование векторов BV (1346, 1348) для областей внутреннего предсказания, которые целиком или частично входят в кодированный внешним кодированием блок ) не разрешается. Например, если ограниченное внутреннее предсказание разрешено, то при определении BV для текущего блока кодер проверяет наличие какого-либо значения p[x][y] отсчета из возможной области внутреннего предсказания в кодированном (с применением внутреннего кодирования) блоке. То есть, для текущего блока m х n c верхним левым положением в (x0, y0) кодер проверяет это условие для всех p[x][y] с x=x0+BV[0]…x0+BV[0]+m-1 и y=y0+BV[1]…y0+BV[1]+n-1.
В другом подходе вместо восстановленных значений отсчетов из кодированного внешним кодированием блока используются заполненные значения отсчетов, если ограниченное внутреннее предсказание разрешено. Если ограниченное внутреннее предсказание разрешено, то внутреннее предсказание с BC включает в себя определение заполняемого значения отсчета или подставляемого значения отсчета (путем экстраполяции или интерполяции) вместо любого значения отсчета из области внутреннего предсказания, которое является восстановленным значением отсчета из кодированного внешним кодированием блока.
В еще одном подходе, если ограниченное внутреннее предсказание разрешено, то внутреннее предсказание с BC не разрешается в слайсах, не связанных с внутренним предсказанием. Внутреннее предсказание с BC разрешено для слайсов, относящихся к внутреннему предсказанию (которые имеют контент, кодированный с применением внутреннего предсказания) и для слайсов, не связанных с внутренним предсказанием, когда ограниченное внутреннее предсказание не разрешено. Этот подход показан на фиг. 14. На этой фигуре условие в синтаксической таблице (1400) указывает наличие или отсутствие синтаксических элементов intra_bc_flag, используемых для внутреннего предсказания с BC. Даже в том случае, если внутреннее предсказание с BC разрешено, (флаг intra_block_copy_enabled_flag равен 1) флаг внутреннего предсказания с BC передается в качестве сигнализации только, если текущий слайс является слайсом внутреннего предсказания (slice_type равен 1), или ограниченное внутреннее предсказание не разрешено (constrained_intra_pred_flag равен 0).
D. Закодирование и декодирование значений BV
В некоторых примерных реализациях двумерные значения BV эффективно кодируют путем использования вероятностей появления значений для первой компоненты при заданном значении для второй компоненты.
На фигурах 15а и 15b показаны примерные диапазоны значений BV со свойствами, которые могут быть использованы при закодировании. На фигурах 15а и 15b вектор BV найден для текущего блока m х n (1530). Этот вектор BV имеет горизонтальную компоненту BV[0] и вертикальную компоненту BV[1]. Внутреннее предсказание с BС ограничено только использованием действительных восстановленных значений отсчетов. (Альтернативные варианты, в которых разрешены другие значения BV, относящиеся к невосстановленным значениям отсчетов, рассмотрены в конце этого раздела)
Поскольку при внутреннем предсказании с BC используются действительные восстановленные значения отсчетов, значения BV в диапазоне, где BV[0]> -m и BV[1]> -n, не разрешаются. В этом диапазоне возможные области внутреннего предсказания будут содержать по меньшей мере некоторые невосстановленные значения отсчетов.
Как показано на фиг. 15а, когда BV[1]≤-n, BV[0] может иметь положительное или отрицательное значение. Однако, когда BV[1]> -n, разрешенные векторы BV имеют BV[0]≤-m (в предположении, что внутреннее предсказание с BC ограничено только использованием действительных восстановленных значений отсчетов). Горизонтальная компонента вектора BV может быть скорректирована с использованием значения сдвига. Это повышает эффективность кодирования в типовых схемах энтропийного кодирования, поскольку близкие к нулю значения кодируются с использованием меньшего количества бит. Например, вместо прямого кодирования BV[0] кодируется горизонтальная компонента в виде DV[0]=BV[0]+m. Значение DV[0] ближе к 0, чем BV[0], и, как правило, кодируется с использованием меньшего количества бит. При декодировании DV[0] из битового потока BV[0] может быть восстановлено в виде DV[0]-m. В частности, вектор BV восстанавливается следующим образом. Сначала декодируется BV[1]. Если BV[1]> -n, то тогда BV[0]=DV[0]-m. В противном случае (когда BV[1]≤-n), BV[0]=DV[0].
Подобным же образом, как показано на фиг. 15b, когда BV[0]≤-m, BV[1] может иметь положительное или отрицательное значение. Однако, когда BV[0]> -m, разрешенные векторы BV имеют BV[1]≤-n (в предположении, что внутреннее предсказание с BC ограничено только использованием действительных восстановленных значений отсчетов). Вертикальная компонента вектора BV может быть скорректирована с использованием значения сдвига, например, в виде DV[1]=BV[1]+n. При декодировании DV[1] из битового потока BV[1] может быть восстановлено в виде DV[1]-n.
В качестве альтернативы, вместо того, чтобы устанавливать значение сдвига на основе размера m и n текущего блока, это значение можно установить в битовом потоке (например, в наборе параметров последовательности, наборе параметров картинки или в заголовке слайса) или задать заранее определенное значение. Например, значение сдвига может быть установлено равным 8, 16 или некоторому другому значению. Скорректированные значения компонент BV станут ближе к нулю, чем они были бы в противном случае в большинстве случаев.
На фиг. 16 показан прием (1600) закодирования значений BV. Кодер, такой как кодер, описанный со ссылками на фиг. 3 или фигуры 5а-5b, может выполнить прием (1600).
Кодер определяет (1610) двумерный вектор BV для текущего блока картинки. Вектор BV имеет первую компоненту и вторую компоненту. Например, кодер выполняет поиск BV в диапазоне поиска, на который наложены одно или несколько ограничений, как было описано выше. Кодер выполняет (1620) внутреннее предсказание с BC для текущего блока, используя вектор BV. Например, кодер выполняет внутреннее предсказание с BC для всего текущего блока. Либо кодер выполняет внутреннее предсказание с BC для множества блоков, связанных с текущим блоком (например, для множества блоков TB на поблочной основе, где блоки TB связаны с текущим блоком PB, который имеет BV).
Кодер выполняет закодирование (1630) вектора BV. При закодировании вектора BV используются вероятности появления значений для первой компоненты при заданном значении для второй компоненты. В некоторых реализациях закодирования значения для первой компоненты вектора BV зависят от значения для второй компонента вектора BV. Кодер может сравнить значение для второй компоненты с первым значением сдвига, затем избирательно скорректировать значение для первой компоненты, используя второе значение сдвига. Например, первой компонентой является горизонтальная компонента BV[0], второй компонентой является вертикальная компонента BV[1], а текущий блок представляет собой блок размером m × n. Первое значение сдвига зависит от n, а второе значение сдвига зависит от m. Если значение для вертикальной компоненты BV[1] больше, чем –n, то значение для горизонтальной компоненты BV[0] увеличивают на m. После такой корректировки закодирование вектора BV может включать в себя двоичное арифметическое кодирование или энтропийное кодирование другого вида.
Кодер может повторить прием (1600) для другого блока режима внутреннего предсказания с BC.
На фиг. 17 показан прием (1700) для декодирования значений вектора BV. Прием (1700) может быть реализован декодером, таким как декодер, описанный со ссылками на фиг. 4 или фиг. 6.
Декодер выполняет декодирование (1710) двумерного вектора BV для текущего блока картинки. Вектор BV имеет первую компоненту и вторую компоненту. Декодер выполняет операции, обратные операциям закодирования BV, используя вероятности появления значений для первой компоненты при заданном значении для второй компоненты. Декодирование вектора BV может включать в себя двоичное арифметическое декодирование или энтропийное декодирование другого вида.
После двоичного арифметического декодирования или иного энтропийного декодирования корректируют значение для первой компоненты вектора BV. В некоторых реализациях декодирования значения для первой компоненты BV зависит от значения второй компоненты вектора BV. Декодер может сравнить значение для второй компоненты с первым значением сдвига, затем избирательно скорректировать значение для первой компоненты, используя второе значение сдвига. Например, первой компонентой является горизонтальная компонента BV[0], второй компонентной является вертикальная компонента BV[1], а текущий блок представляет собой блок m × n. Первое значение сдвига зависит от n, а второе значение сдвига зависит от m. Если значение для вертикальной компоненты BV[1] превышает –n, то значение для горизонтальной компоненты BV[0] уменьшают на m.
Декодер выполняет (1720) внутреннее предсказание с BC для текущего блока, используя вектор BV. Например, декодер выполняет внутреннее предсказание с BC для всего текущего блока. Либо декодер выполняет внутреннее предсказание с BC для множества блоков, связанных с этим текущим блоком (например, для множества блоков TB на блочной основе, где блоки TB связаны с текущим блоком PB, имеющим вектор BV). Декодер может повторить этот прием (1700) для другого блока режима внутреннего предсказания с BC.
В качестве альтернативы для приемов (1600, 1700), показанных на фигурах 16 и 17, первой компонентой является вертикальная компонента BV[1], второй компонентой является горизонтальная компонента BV[0], первое значение сдвига зависит от m, а второе значение сдвига зависит от n. Если значение горизонтальной компоненты BV[0] превышает –m, то значение для вертикальной компоненты BV[1] увеличивают на n (во время закодирования) или уменьшается на n (во время декодирования).
Либо, что касается приемов (1600, 1700), показанных на фигурах 16 и 17, то первая компонента и вторая компонента могут кодироваться вместе с учетом отсутствия кодов по меньшей мере для некоторых комбинаций первой компоненты и второй компоненты. Например, кодер и декодер могут использовать кодовую таблицу с переменной длиной слова с кодами, отсутствующими для комбинаций первой компоненты и второй компоненты, которые находятся в диапазоне, ограничивающем текущий блок.
Если значения BV, относящиеся к областям внутреннего предсказания с невосстановленными значениями отсчетов, разрешены, то кодировщик и декодер могут скорректировать значение компоненты BV. Например, кодер может скорректировать значение для одной из компонент BV, чтобы приблизить ее к нулю в среднем, учитывая значение другой компоненты BV. Скорректированное значение компоненты BV может быть положительным, но более вероятно, что оно будет ближе к нулю, и поэтому ее закодирование потребует меньшее количество бит.
В примерных реализациях при внутреннем предсказании с BC используются целочисленные значения для вектора BV. Дробные значения смещения (и дробная интерполяция между восстановленными значениями отсчетов) не используются. В качестве альтернативы, векторы BV могут иметь дробные значения смещения.
В качестве альтернативы, когда диапазон поиска ограничен, при закодировании и декодировании значений BV можно использовать операцию свертки по модулю. Если значение компоненты BV указывает положение вне диапазона поиска, то эта компонента «циклически переходит» на противоположную сторону диапазона поиска и обработка продолжается с этого места. Это способствует более эффективному закодированию экстремальных значений смещений. Например, если положительное смещение, превышающее x, приведет к значению BV[0], которое указывает на выход из диапазона поиска, то смещение x для BV[0] может быть использовано для индикации экстремального отрицательного значения на противоположной стороне диапазона поиска.
Помимо энтропийного кодирования/декодирования значений BV, которое включает в себя использование значений сдвига (как было описано выше), кодер и декодер могут использовать предсказание BV и/или режим объединения/состязательности BV при закодировании/декодировании значений BV.
Для базового предсказания BV во время закодирования и декодирования значение для текущего блока может быть предсказано на основе значений BV одного или нескольких предшествующих блоков. Значение BV соседнего блока (например, блока, находящегося слева от текущего блока) можно использовать для определения предиктора BV для значения BV текущего блока. Либо предиктор BV для значения BV текущего блока может представлять собой покомпонентную медиану или среднее из значений BV множества соседних блоков (например, блоков слева, над и слева выше текущего блока). Во время закодирования определяют отклонение BV, используя значение BV и предиктор BV, после чего выполняется закодирование отклонения BV. Во время декодирования восстановленное отклонение BV объединяется с предиктором BV.
Либо кодер и декодер определяют одно или несколько возможных значений BV для текущего блока из числа значений BV, использованных для восстановленных блоков, которые пространственно соседствуют с данным текущим блоком (например, блок слева от текущего блока, блок над текущим блоком и т.д.). Это возможное значение (значения) BV также может включать в себя одно или несколько значений BV, использованных для восстановленных блоков, которые временно соседствуют с текущим блоком, где временно соседствующий блок занимает соответствующее текущему блоку положение в другой картинке (например, в том же самом положении или с перекрытием). Список возможных значений (значения) BV определяется правилами во время закодирования и декодирования для исключения избыточных значений BV. Во время закодирования кодер может сообщить один или несколько синтаксических элементов, указывающих, какое из возможных значений BV следует использовать в качестве предиктора BV для текущего блока. В некоторых режимах этот предиктор BV можно использовать в качестве значения BV для текущего блока, что обеспечивает эффективное «слияние» значения BV текущего блока со значением BV соседнего блока, обеспечивая возможное значение BV. Либо кодер может определить и выполнить закодирование разности BV на основе значения BV и предиктора BV. Когда сообщается о разности BV, выбор предиктора BV может произойти автоматически (без передачи синтаксических элементов для выбора возможного значения BV). Во время декодирования декодер может получить один или несколько синтаксических элементов, указывающих, какое из возможных значений BV следует использовать в качестве предиктора BV для текущего блока. В некоторых режимах этот предиктор BV можно использовать в качестве значения BV для текущего блока, что обеспечивает эффективное «слияние» значения BV текущего блока со значением BV соседнего блока, обеспечивая возможное значение BV. Либо декодер может получить и декодировать отклонение BV, которое он объединяет с предиктором BV для восстановления значения BV. При передаче в качестве сигнализации значения отклонения BV, выбор предиктора BV может произойти автоматически (без передачи в качестве сигнализации синтаксических элементов для выбора возможного значения BV). Может быть обеспечен режим «пропуска» BV или «прямой» режим BV, в котором предиктор BV (выбранный согласно правилу) используют в качестве значения BV текущего блока, при отсутствии информации о значениях остатков, переданной в качестве сигнализации для текущего блока.
Е. Прямые и обратные преобразования для блоков режима внутреннего предсказания с BC
При использовании внутреннего предсказания с BC в некоторых примерных реализациях определенные размеры блоков остатков цветности кодируются, используя дискретное синусное преобразование (DST) или его целочисленную аппроксимацию, и декодируются, используя обратное DST или его целочисленную аппроксимацию. В частности, преобразование DST (или его целочисленная аппроксимация) и обратное преобразование DST (или его целочисленную аппроксимацию) используют для блоков яркости 4х4 значений остатков исходя из внутреннего предсказания с BC. В более общем случае при использовании внутреннего предсказания с BC кодер использует прямое преобразование первого типа («регулярное» преобразование) для некоторых размеров блоков яркости значений остатков на основе внутреннего предсказания с BC, и для блоков цветности, а декодер использует обратное преобразование первого типа («регулярное» обратное преобразование) для указанных блоков. Однако для других размеров блоков яркости значений остатков кодер использует прямое преобразование второго типа («альтернативное» преобразование) и использует обратное преобразование второго типа («альтернативное» обратное преобразование).
На фиг. 18 показана обобщенный технический прием (1800) для закодирования с использованием режима внутреннего предсказания с BC и альтернативных преобразований. Прием (1800) может быть выполнен кодером, таким как кодер, описанный со ссылками на фиг. 3 или фигуры 5а-5b.
Кодер выполняет предсказание (1810) значений отсчетов, используя режим внутреннего предсказания с BC, а затем определяет (1820) значения остатков на основе предсказанных значений отсчетов и исходных значений отсчетов.
Кодер проверяет (1825), выполняется ли закодирование специальных блоков (например, блоков яркости специального размера). Если да, то кодер применяет (1832) альтернативное прямое преобразование к значениям остатков для создания коэффициентов преобразования, которые подвергаются квантованию и энтропийному кодированию (1840). Например, кодер применяет преобразование DST, его целочисленную аппроксимацию или прямое преобразование другого типа к блокам 4×4 яркости значений остатков на основе внутреннего предсказания с BC. В противном случае, кодер применяет (1830) регулярное прямое преобразование к значениям остатков для создания коэффициентов преобразования, которые подвергаются квантованию и энтропийному кодированию 1840. Например, кодер применяет преобразование DСT, его целочисленную аппроксимацию или прямое преобразование другого типа к блокам других размеров значений остатков на основе внутреннего предсказания с BC и для блоков цветности. Кодер может повторить прием (1800) для другого блока режима внутреннего предсказания с BC.
На фиг. 19 показан обобщенный технический прием 1900 для декодирования с использованием режима внутреннего предсказания с BC и альтернативных обратных преобразований. Прием (1900) может быть выполнена декодером, таким как декодер, описанный со ссылками на фиг. 4 или фиг. 6.
Декодер выполняет энтропийное декодирование и обратное квантование (1910) коэффициентов преобразования. Декодер проверяет (1915), декодируются ли специальные блоки (например, блоки яркости специального размера). Если да, то декодер применяет (1922) альтернативное обратное преобразование к коэффициентам преобразования для создания значений остатков. Например, декодер применяет обратное преобразование DST, его целочисленную аппроксимацию или обратное преобразование другого типа для преобразования коэффициентов блоков 4х4 яркости значений остатков на основе внутреннего предсказания с BC. В противном случае, декодер применяет (1920) регулярное обратное преобразование к коэффициентам преобразования. Например, кодер применяет при обратном DCT, его целочисленной аппроксимации или обратном преобразовании иного типа к блокам других размеров на основе внутреннего предсказания с BC и блоков цветности. Декодер выполняет предсказание (1930) значений отсчетов, используя режим внутреннего предсказания с BC. Декодер объединяет (1940) значения остатков и предсказанные значения отсчетов для восстановления значений отсчетов. Декодер может повторить прием (1900) для другого блока режима внутреннего предсказания с BC.
F. Петлевая деблокинг-фильтрация для блоков режима внутреннего предсказания с BC
В некоторых примерных реализациях деблокинг-фильтрация через границу между блоками зависит от режима предсказания блоков (например, внутреннее пространственное предсказание, внутреннее предсказание с BC или внешнее предсказание). Также в некоторых примерных реализациях деблокинг-фильтрация через границу между блоками внутреннего предсказания с BC адаптируется в зависимости от значений BV.
Обычно деблокинг-фильтр избирательно применяется к значениям отсчетов, примыкающим к границе блока (например, PB, TB). Для блокирования или изменения фильтрации на границе кадра, границе слайса или границе плитки могут применяться специальные правила. Кодер или декодер устанавливает уровень для деблокинг-фильтрации, зависящий от различных факторов, в том числе, режима предсказания (внутреннее пространственное, внутреннее с BC, внешнее), значений опорного индекса и значений вектора движения (для кодированных внешним кодированием блоков), значений BV (для блоков, предсказанных с применением внутреннего предсказания с BC) и наличия/отсутствия ненулевых коэффициентов преобразования.
Положим, например, что блоки P и Q являются смежными блоками с общей границей, Если один или оба блока P и Q имеют режим внутреннего пространственного предсказания, то уровень фильтрации имеет первое значение (например, указывающее самую сильную фильтрацию). С другой стороны, если блоки P и Q кодированы оба с применением внешнего кодирования, оба предсказаны с применением внутреннего предсказания с BC, или один с применением внешнего кодирования, а другой с применением внутреннего предсказания с BC, то тогда уровень фильтрации имеет другое значение (например, указывающий умеренную фильтрацию или указывающий на ее отсутствие).
Если оба блока P и Q кодированы с применением внешнего кодирования, значение уровня фильтрации, которое указывает на умеренную фильтрацию, присваивается, если: (а) какой-либо блок имеет ненулевые коэффициенты преобразования; (b) значения опорного индекса для указанных двух блоков не одинаковы; (с) значения вектора движения для обоих блоков не одинаковы; или (d) разность между двумя компонентами вектора движения для другого блока превышает пороговое значение (например, один отсчет). В противном случае (условие не удовлетворяется) присваивается значение уровня фильтрации, которое указывает на отсутствие фильтрации.
Если оба блока P и Q предсказаны с применением внутреннего предсказания с BC, то значение уровня фильтрации, которое указывает на умеренную фильтрацию, присваивается, если: (а) какой-либо блок имеет ненулевые коэффициенты преобразования; (b) значения BV для указанных двух блоков не одинаковы; или (с) разность между компонентами BV для любого блока превышает пороговое значение (например, один отсчет). В противном случае (условие не удовлетворяется) присваивается значение уровня фильтрации, указывающее на отсутствие фильтрации.
Если один из блоков P и Q кодирован с применением внешнего кодирования, а другой предсказан с применением внутреннего предсказания с BC, то значение уровня фильтрации, которое указывает на умеренную фильтрацию, присваивается, если: (а) какой-либо блок имеет ненулевые коэффициенты преобразования. В противном случае присваивается значение уровня фильтрации, указывающее на отсутствие фильтрации. В качестве альтернативы, если один из блоков P и Q кодирован с применением внешнего кодирования, а другой предсказан с применением внутреннего предсказания с BC, то уровень фильтрации может иметь первое значение (например, указывающее на самую сильную фильтрацию).
Что касается сильной и умеренной фильтрации, то ее можно дополнительно отрегулировать в зависимости от значений параметров квантования или других соображений. В качестве альтернативы, уровень фильтрации присваивают и/или регулируют в соответствии с другими правилами.
На фиг. 20 показаны примерные правила (2000) для изменения подхода к петлевой деблокинг-фильтрации в зависимости от режимов предсказания блоков. Если любой из двух смежных блоков имеет режим внутреннего пространственного предсказания, для границы между блоками кодер или декодер применяет первый подход к деблокинг-фильтрации (например, сильная фильтрация). В противном случае, если режимом предсказания для одного из упомянутых двух блоков является внешнее предсказание и режимом предсказания для другого блока является внутреннее предсказание с BC, то кодер или декодер применяет второй подход к деблокинг-фильтрации (например, умеренная фильтрация или отсутствие фильтрации в зависимости от наличия/отсутствия ненулевых уровней коэффициентов преобразования). В противном случае, если для обоих блоков режимом предсказания является внутреннее предсказание с BC, то кодер или декодер применяет третий подход к деблокинг-фильтрации (например, умеренная фильтрация или отсутствие фильтрации в зависимости от наличия/отсутствия ненулевых уровней коэффициентов преобразования и в зависимости от значений BV). В противном случае (режимом предсказания для обоих блоков является внешнее предсказание, на фиг. 20 не показанное), кодер или декодер применяет четвертый подход к деблокинг-фильтрации (например, умеренная фильтрация или отсутствие фильтрации в зависимости от наличия/отсутствия ненулевых уровней коэффициентов преобразования, значений опорного индекса и значений вектора движения). Для всех этих подходов фильтрация может быть дополнительно отрегулирована в зависимости от значений параметров квантования или других соображений.
На фиг. 21 показан прием (2100) для петлевой деблокинг-фильтрации для блока, имеющего режим внутреннего предсказания с BC. Этот прием (2100) может быть реализован кодером, таким как кодер, описанный со ссылками на фиг. 3 или фигуры 5а-5b. Либо прием (2100) может быть выполнен декодером, таким как декодер, описанный со ссылками на фиг. 4 или фиг. 6.
Кодер или декодер восстанавливает (2110) первый и второй блоки кадра, который включает в себя по меньшей мере несколько блоков с режимом внутреннего предсказания с BC.
Кодер или декодер выполняет петлевую деблокинг-фильтрацию через границу между первым и вторым блоками. Как часть петлевой деблокинг-фильтрации кодер или декодер определяет (2120) режим предсказания как для первого, так и для второго блока и использует (2130) подход к деблокинг-фильтрации, который по меньшей мере частично зависит от режима предсказания. В частности, если режимом предсказания как для первого, так и для второго блоков является внутреннее предсказание с BC, то кодер или декодер настраивает петлевую деблокинг-фильтрацию по меньшей мере частично на основе значений BV для первого и второго блоков соответственно.
Кодер или декодер может повторить прием (2100) для других блочных границ в кадре.
Что касается временных характеристик деблокинг-фильтрации (и других петлевых операций, таких как фильтрация SAO), связанной с внутренним предсказанием с BC, то в некоторых реализациях операции внутреннего предсказания с BC предшествуют операциям деблокинг-фильтрации и фильтрации SAO, применяемым для предшествующих частей картинки. Например, операции внутреннего предсказания с BC могут использовать запомненные копии значений отсчетов перед применением процессов фильтрации. Это исключает необходимость синхронизации процессов фильтрации с процессами внутреннего предсказания с BC. Это также предотвращает косвенные зависимости от значений отсчетов вне слайса, плитки и т.д. (или в кодированном внешним кодированием блоке, когда разрешено ограниченное внутреннее предсказание), когда при фильтрации используются указанные значения отсчетов.
В качестве альтернативы, операции внутреннего предсказания с BC следуют за операциями деблокинг-фильтрации и фильтрации SAO, применяемыми для предыдущих частей кадра. Для этого может потребоваться синхронизация операций фильтрации и предсказания, и оценка их зависимости от значений отсчетов в другом слайсе, плитке и т.д. С другой стороны, использование отфильтрованных значений отсчетов для внутреннего предсказания с BC может обеспечить эффективное сжатие в контексте показателя искажения, в зависимости от скорости передачи.
G. Примерная реализация, объединяющая функциональные возможности внутреннего предсказания с BC
Как упоминалось выше, изложенные функциональные возможности внутреннего предсказания с BC можно использовать по отдельности и избирательно. Либо эти функциональные возможности внутреннего предсказания с BC можно использовать в комбинации.
Например, в одной комбинированной реализации, которая обычно следует синтаксису стандарта HEVC, значение BV передается в качестве сигнализации для PU (которая может представлять собой CU или часть CU). Единица РU может включать в себя одну или несколько единиц TU. Процессы внутреннего предсказания с BC проходят на уровне блоков TB на поблочной основе с использованием значения BV, переданного в качестве сигнализации для PU. (Все блоки TB используют одно и то же значение BV, и внутреннее предсказание с BC для текущего блока TB может использовать восстановленные значения отсчетов или другие, более ранние блоки TB в той же самой единице CU) Значение BV может быть предсказано с использованием значений BV одной или нескольких соседних PU. Независимо от того, используется ли предсказание BV, значение BV (или значение отклонения BV) может быть кодировано с учетом допустимых значений BV (например, с учетом разрешенных значений горизонтальной/вертикальной компоненты или путем использования свертки по модулю при закодировании значения BV). Выбор значений BV ограничен: (а) так что кодеру запрещено выбирать значения BV, инициирующие значения отсчетов, которые находятся в областях, где еще не было закодирования/восстановления (то есть, значения отсчетов области внутреннего предсказания для текущего TB должны находиться в областях, перекрытых другими блоками TB, предшествующими текущему TB при декодировании порядка битового потока; то есть, для данного блока TB значение BV ограничено обращением к области вне данного TB); (b) для сокращения необходимого объема памяти в декодере (например, путем ограничения опорных значений, соответствующих значениям BV, чтобы не выходить за границы текущего CTB и одного или двух CTB слева от текущего CTB); (с) чтобы запретить обращение к значениям BV вне текущего слайса, вне текущей плитки или вне кадра; и (d) когда ограниченное внутреннее предсказание разрешено, для запрета использования кодером значений BV, которые ссылаются на значения отсчетов, для которых использовалось внешнее предсказание.
В контексте многих возможных вариантов осуществления, для которых могут быть применимы принципы раскрытого изобретения, следует понимать, что показанные варианты осуществления являются лишь предпочтительными примерами изобретения, и их не следует рассматривать как ограничение объема изобретения. Скорее, объем изобретения определяется нижеследующей формулой изобретения. Таким образом, авторы изобретения считают, что изобретением является все, что не выходит за рамки объема и существа изобретения, сформулированных в формуле изобретения.

Claims (42)

1. Реализуемый в вычислительном устройстве способ выполнения петлевой деблокинг-фильтрации через границу между блоками, содержащий этапы, на которых:
восстанавливают первый и второй блоки картинки, где картинка включает в себя по меньшей мере некоторые блоки, закодированные с использованием внутреннего предсказания с блочным копированием; и
выполняют петлевую деблокинг-фильтрацию через границу между первым и вторым блоками, причем первый и второй блоки закодированы с использованием внутреннего предсказания с блочным копированием, при этом выполнение петлевой деблокинг-фильтрации включает в себя настройку петлевой деблокинг-фильтрации, по меньшей мере отчасти, на основе значений блочных векторов (BV), определенных для первого и второго блоков соответственно.
2. Способ по п. 1, дополнительно содержащий этап, на котором выполняют петлевую деблокинг-фильтрацию через границу между третьим и четвертым блоками картинки, при этом
если режимом предсказания для любого из третьего и четвертого блоков является внутреннее пространственное предсказание, то уровень фильтрации имеет первое значение;
в противном случае, уровень фильтрации имеет значение, отличное от первого значения и зависящее от одного или более из следующего: (а) наличие ненулевых коэффициентов преобразования для третьего или четвертого блока, (b) значения вектора движения и значения опорного индекса для третьего и четвертого блоков при кодировании с использованием внешнего кодирования и (с) значения блочных векторов для третьего и четвертого блоков при использовании внутреннего предсказания с блочным копированием.
3. Способ по п. 1, дополнительно содержащий этап, на котором выполняют петлевую деблокинг-фильтрацию через границу между третьим и четвертым блоками картинки, включая то, что если режимом предсказания для третьего и четвертого блоков является внешнее предсказание, настраивают петлевую деблокинг-фильтрацию, по меньшей мере отчасти, на основе значений опорных индексов и/или векторов движения для третьего и четвертого блоков.
4. Способ по п. 1, дополнительно содержащий этапы, на которых:
принимают картинку;
кодируют картинку для создания закодированных данных для картинки, где кодирование картинки включает в себя восстановление и выполнение петлевой деблокинг-фильтрации; и
выводят, в качестве части битового потока, закодированные данные для картинки.
5. Способ по п. 1, дополнительно содержащий этапы, на которых:
принимают, в качестве части битового потока, закодированные данные для картинки; и
декодируют закодированные данные для восстановления картинки, где декодирование включает в себя восстановление и выполнение петлевой деблокинг-фильтрации.
6. Способ по п. 1, в котором настройка петлевой деблокинг-фильтрации включает в себя определение того, имеет ли какой-либо из первого и второго блоков ненулевые коэффициенты преобразования, и, если да, то присвоение значения уровня фильтрации, которое указывает на умеренную фильтрацию.
7. Способ по п. 1, в котором настройка петлевой деблокинг-фильтрации включает в себя определение того, равны ли значения блочных векторов для первого и второго блоков, и, если значения блочных векторов для первого и второго блоков не равны, то присвоение значения уровня фильтрации, которое указывает на умеренную фильтрацию.
8. Способ по п. 1, в котором настройка петлевой деблокинг-фильтрации включает в себя определение того, превышает ли разность между компонентами блочных векторов для любого из первого и второго блоков пороговую величину, и, если да, то присвоение значения уровня фильтрации, которое указывает на умеренную фильтрацию.
9. Способ по п. 8, в котором пороговой величиной является один отсчет.
10. Способ по п. 1, в котором настройка петлевой деблокинг-фильтрации включает в себя присвоение значения уровня фильтрации, при этом
присвоенное значение уровня фильтрации указывает на умеренную фильтрацию, если:
первый или второй блок имеет ненулевые коэффициенты преобразования,
значения блочных векторов для первого и второго блоков не равны или
разность между компонентами блочных векторов для любого из первого и второго блоков превышает пороговую величину; и
в противном случае, присвоенное значение уровня фильтрации указывает на отсутствие фильтрации.
11. Вычислительное устройство, сконфигурированное для выполнения внутреннего предсказания с блочным копированием, содержащее:
буфер, сконфигурированный для запоминания картинки; и
видеокодер или кодер изображений, сконфигурированный для выполнения операций, содержащих:
определение блочного вектора (BV) для текущего блока картинки, где текущий блок имеет первый размер и где текущий блок связан с одним или более блоками второго размера, включая проверку ограничения, состоящего в том, что для конкретного одного из этих одного или более блоков второго размера блочный вектор обращается к области вне данного одного из упомянутых одного или более блоков второго размера;
выполнение внутреннего предсказания с блочным копированием для текущего блока с использованием блочного вектора, включая выполнение операций блочного копирования в упомянутой картинке на поблочной основе для упомянутых одного или более блоков, связанных с текущим блоком; и
кодирование блочного вектора.
12. Вычислительное устройство по п. 11, при этом текущий блок является блоком предсказания блока кодирования и при этом упомянутые один или более блоков, связанных с текущим блоком, являются блоками преобразования этого блока кодирования.
13. Вычислительное устройство по п. 12, в котором операции дополнительно содержат вывод, в качестве части битового потока, закодированных данных для упомянутой картинки, причем в этих закодированных данных для картинки передается блочный вектор для единицы предсказания, которая включает в себя упомянутый блок предсказания.
14. Вычислительное устройство по п. 11, при этом для по меньшей мере одного из упомянутых одного или более блоков, связанных с текущим блоком, в операциях внутреннего предсказания с блочным копированием используются восстановленные значения отсчетов другого блока из этих одного или более блоков, связанных с текущим блоком.
15. Машиночитаемый носитель, на котором сохранены машиноисполняемые команды для предписания вычислительному устройству, запрограммированному ими, выполнять операции, чтобы:
определять блочный вектор (BV) для текущего блока картинки, где текущий блок имеет первый размер;
на основе значения блочного вектора и первого размера разделять текущий блок на множество блоков, каждый из которых имеет второй размер, который меньше первого размера; и
выполнять операции внутреннего предсказания с блочным копированием, используя блочный вектор, на поблочной основе для данного множества блоков, имеющих второй размер.
16. Машиночитаемый носитель по п. 15, при этом операции дополнительно содержат вывод, в качестве части битового потока, закодированных данных для упомянутой картинки, причем в этих закодированных данных для картинки передается блочный вектор для единицы предсказания.
17. Машиночитаемый носитель по п. 15, при этом операции дополнительно содержат вывод, в качестве части битового потока, закодированных данных для упомянутой картинки, причем эти закодированные данные для картинки не содержат никакого флага, указывающего на разделение текущего блока на множество блоков, каждый из которых имеет второй размер.
18. Машиночитаемый носитель по п. 15, при этом операции дополнительно содержат прием, в качестве части битового потока, закодированных данных для упомянутой картинки, причем в этих закодированных данных для картинки передается блочный вектор для единицы предсказания.
19. Машиночитаемый носитель по п. 15, при этом операции дополнительно содержат прием, в качестве части битового потока, закодированных данных для упомянутой картинки, причем эти закодированные данные для картинки не содержат никакого флага, указывающего на разделение текущего блока на множество блоков, каждый из которых имеет второй размер.
20. Машиночитаемый носитель по п. 15, при этом текущим блоком является блок преобразования.
RU2016114182A 2013-10-14 2013-10-14 Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений RU2654129C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/085165 WO2015054811A1 (en) 2013-10-14 2013-10-14 Features of intra block copy prediction mode for video and image coding and decoding

Publications (2)

Publication Number Publication Date
RU2016114182A RU2016114182A (ru) 2017-10-18
RU2654129C2 true RU2654129C2 (ru) 2018-05-16

Family

ID=52827518

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016114182A RU2654129C2 (ru) 2013-10-14 2013-10-14 Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений

Country Status (11)

Country Link
US (3) US10582213B2 (ru)
EP (1) EP3058739B1 (ru)
JP (1) JP6359101B2 (ru)
KR (2) KR102257269B1 (ru)
CN (1) CN105765974B (ru)
AU (1) AU2013403224B2 (ru)
BR (1) BR112016007151A2 (ru)
CA (2) CA2924763A1 (ru)
MX (1) MX2016004705A (ru)
RU (1) RU2654129C2 (ru)
WO (1) WO2015054811A1 (ru)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2777278C1 (ru) * 2019-06-27 2022-08-02 Тенсент Америка Ллс Способ и устройство для видеокодирования
US11516504B2 (en) 2018-09-21 2022-11-29 Tencent America LLC Method and apparatus for video coding
US11570484B2 (en) 2018-09-21 2023-01-31 Tencent America LLC Method and apparatus for video coding
US11876958B2 (en) 2018-10-12 2024-01-16 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video picture component prediction method and apparatus, and computer storage medium
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
US11949886B2 (en) 2019-09-24 2024-04-02 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Methods for determining prediction value, encoder, and decoder
US11956461B2 (en) 2019-06-27 2024-04-09 Tencent America LLC Method and apparatus for video coding

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
RU2654129C2 (ru) 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
BR112016012009B1 (pt) * 2013-11-27 2023-11-07 Hfi Innovation Inc Método de sinalização de modo de codificação incluindo um modo intrabc para uma imagem
CN104683805B (zh) * 2013-11-30 2019-09-17 同济大学 图像编码、解码方法及装置
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
KR102319384B1 (ko) * 2014-03-31 2021-10-29 인텔렉추얼디스커버리 주식회사 템플릿 매칭 기반의 화면 내 픽쳐 부호화 및 복호화 방법 및 장치
AU2014202921B2 (en) * 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
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
JP6446070B2 (ja) * 2014-07-07 2018-12-26 寰發股▲ふん▼有限公司HFI Innovation Inc. イントラブロックコピー検索と補償範囲の方法
US10743034B2 (en) * 2014-09-15 2020-08-11 Hfi Innovation Inc. Method of deblocking for intra block copy in video coding
US10812817B2 (en) 2014-09-30 2020-10-20 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9955185B2 (en) * 2015-02-12 2018-04-24 Mediatek Inc. Method and apparatus of constrained intra block copy for coding video
EP3292691A4 (en) 2015-05-29 2019-01-23 HFI Innovation Inc. METHOD FOR MANAGING DECODED IMAGE PADS FOR THE INTRA-IMAGE BLOCKS COPYING METHOD
WO2016192678A1 (en) * 2015-06-03 2016-12-08 Mediatek Inc. Methods for palette coding of image and video data
JP6711353B2 (ja) * 2015-06-05 2020-06-17 ソニー株式会社 画像処理装置および画像処理方法
KR102216947B1 (ko) * 2015-06-08 2021-02-18 브이아이디 스케일, 인크. 화면 내용 코딩을위한 인트라 블록 복사 모드
GB2539211A (en) * 2015-06-08 2016-12-14 Canon Kk Enhanced coding and decoding using intra block copy mode
EP3308540B1 (en) 2015-06-09 2020-04-15 Microsoft Technology Licensing, LLC Robust encoding/decoding of escape-coded pixels in palette mode
US11616987B2 (en) * 2015-06-11 2023-03-28 Dolby Laboratories Licensing Corporation Method for encoding and decoding image using adaptive deblocking filtering, and apparatus therefor
US10091506B2 (en) * 2015-06-11 2018-10-02 Sony Corporation Data-charge phase data compression architecture
US10027968B2 (en) * 2015-06-12 2018-07-17 Sony Corporation Data-charge phase data compression tool
CN107925769B (zh) * 2015-09-08 2020-11-27 联发科技股份有限公司 管理已解码图像缓存器的方法及视频编码器或视频解码器
RU2710667C1 (ru) * 2016-05-28 2019-12-30 МедиаТек Инк. Способ и устройство привязки к текущему изображению для кодирования видео
KR101974261B1 (ko) 2016-06-24 2019-04-30 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
WO2017222140A1 (ko) * 2016-06-24 2017-12-28 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
CN109691100B (zh) * 2016-09-16 2021-08-13 索尼公司 图像处理设备和图像处理方法
WO2018123444A1 (ja) * 2016-12-28 2018-07-05 ソニー株式会社 画像処理装置及び画像処理方法
US10542275B2 (en) 2016-12-28 2020-01-21 Arris Enterprises Llc Video bitstream coding
WO2018134362A1 (en) * 2017-01-19 2018-07-26 Telefonaktiebolaget Lm Ericsson (Publ) Filter apparatus and methods
WO2019009129A1 (ja) * 2017-07-03 2019-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10674159B2 (en) 2017-07-28 2020-06-02 Microsoft Technology Licensing, Llc Effective intra encoding for screen data
EP3451665A1 (en) * 2017-09-01 2019-03-06 Thomson Licensing Refinement of internal sub-blocks of a coding unit
EP3487177A1 (en) * 2017-11-21 2019-05-22 Thomson Licensing Method and apparatus for low-complexity bi-directional intra prediction in video encoding and decoding
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10873765B2 (en) * 2018-03-29 2020-12-22 Apple Inc. Techniques for high efficiency entropy coding of video data
KR20200002011A (ko) * 2018-06-28 2020-01-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN110933411B (zh) 2018-09-19 2023-12-12 北京字节跳动网络技术有限公司 用于帧内编码的邻近的相邻块的选择
FR3086487A1 (fr) * 2018-09-21 2020-03-27 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
GB2577336A (en) 2018-09-24 2020-03-25 Sony Corp Image data encoding and decoding
CN113261293B (zh) 2018-11-13 2023-11-03 北京字节跳动网络技术有限公司 用于帧内块复制的基于历史的运动候选列表构建
US10848763B2 (en) * 2018-11-14 2020-11-24 Tencent America LLC Method and apparatus for improved context design for prediction mode and coded block flag (CBF)
CN117528076A (zh) 2018-11-22 2024-02-06 北京字节跳动网络技术有限公司 用于具有几何分割的帧间预测的构建方法
CN113170173B (zh) * 2018-11-28 2024-04-12 北京字节跳动网络技术有限公司 变换量化或量化旁路模式的改进方法
EP3871410A4 (en) 2018-11-29 2021-12-22 Beijing Bytedance Network Technology Co., Ltd. INTERACTION BETWEEN AN INTRABLOCK COPY MODE AND INTERPRETATION TOOLS
CN113424536B (zh) 2018-11-30 2024-01-30 腾讯美国有限责任公司 用于视频编解码的方法和装置
US11115652B2 (en) 2018-12-07 2021-09-07 Tencent America LLC Method and apparatus for further improved context design for prediction mode and coded block flag (CBF)
CN113228636A (zh) * 2018-12-12 2021-08-06 韦勒斯标准与技术协会公司 使用当前图片参考的视频信号处理方法和设备
JP7418152B2 (ja) * 2018-12-17 2024-01-19 キヤノン株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法
CN113170195A (zh) 2018-12-22 2021-07-23 北京字节跳动网络技术有限公司 具有双树分割的帧内块复制模式
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
US11019359B2 (en) * 2019-01-15 2021-05-25 Tencent America LLC Chroma deblock filters for intra picture block compensation
US10771799B2 (en) * 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
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
US11595662B2 (en) * 2019-02-06 2023-02-28 Tencent America LLC Method and apparatus for neighboring block availability in video coding
CN113647109A (zh) 2019-02-17 2021-11-12 北京字节跳动网络技术有限公司 帧内块复制(ibc)模式和非ibc帧间模式的运动候选列表构建
JP7399973B2 (ja) * 2019-02-19 2023-12-18 ヒューマックス・カンパニー・リミテッド イントラ予測ベースのビデオ信号処理方法及び装置
WO2020177663A1 (en) 2019-03-02 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Restrictions on partition structures
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
KR102603451B1 (ko) * 2019-03-09 2023-11-20 텐센트 아메리카 엘엘씨 비디오 코딩을 위한 방법 및 장치
WO2020185050A1 (ko) * 2019-03-14 2020-09-17 에스케이텔레콤 주식회사 인트라 블록 복사를 이용하는 영상 부호화 및 복호화
US11240516B2 (en) 2019-03-20 2022-02-01 Tencent America LLC Coding mode signaling for small blocks
WO2020207493A1 (en) * 2019-04-12 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Transform coding based on matrix-based intra prediction
WO2020211770A1 (en) 2019-04-15 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Temporal prediction of parameters in non-linear adaptive loop filter
KR20210145757A (ko) * 2019-04-16 2021-12-02 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 코딩 모드에서의 행렬 도출
WO2020211809A1 (en) 2019-04-16 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. On adaptive loop filtering for video coding
CN113826390B (zh) * 2019-05-16 2024-03-08 字节跳动有限公司 屏幕内容编解码的帧内块复制
CN115567707A (zh) 2019-05-30 2023-01-03 抖音视界有限公司 色度分量的自适应环路滤波
EP3959876A4 (en) 2019-05-31 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Restricted upsampling process in matrix-based intra prediction
WO2020244610A1 (en) 2019-06-05 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Context determination for matrix-based intra prediction
US11070816B2 (en) * 2019-06-18 2021-07-20 Tencent America LLC Conversion of decoded block vector for intra picture block compensation
CN113347434B (zh) * 2019-06-21 2022-03-29 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置
JP7354610B2 (ja) 2019-06-25 2023-10-03 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム
CN114026850A (zh) * 2019-06-28 2022-02-08 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的块矢量的有效性检查
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 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
AU2020316548A1 (en) 2019-07-25 2022-02-24 Beijing Bytedance Network Technology Co., Ltd. Mapping restriction for intra-block copy virtual buffer
WO2021013239A1 (en) 2019-07-25 2021-01-28 Beijing Bytedance Network Technology Co., Ltd. Size restriction for intra-block copy virtual buffer
US11553197B2 (en) * 2019-08-05 2023-01-10 Tencent America LLC Method and apparatus for intra picture block compensation
CN114303385A (zh) * 2019-08-15 2022-04-08 北京达佳互联信息技术有限公司 视频编解码中的小色度块大小限制
WO2021032112A1 (en) 2019-08-19 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Initialization for counter-based intra prediction mode
CN114868391A (zh) 2019-08-23 2022-08-05 北京字节跳动网络技术有限公司 编解码块或子块边界处的去方块滤波
CN114342410A (zh) 2019-09-05 2022-04-12 北京字节跳动网络技术有限公司 帧内块复制模式下块矢量的范围约束
CN114365495A (zh) 2019-09-09 2022-04-15 北京字节跳动网络技术有限公司 帧内块复制编码与解码
EP4018664A4 (en) 2019-09-23 2022-11-16 Beijing Bytedance Network Technology Co., Ltd. SETTING THE VIRTUAL BLOCK COPY BUFFER BASED ON A VIRTUAL PIPELINE DATA UNIT
WO2021072177A1 (en) 2019-10-09 2021-04-15 Bytedance Inc. Cross-component adaptive loop filtering in video coding
CN114586370B (zh) 2019-10-14 2024-01-23 字节跳动有限公司 在视频编解码中使用色度量化参数的方法、装置及介质
AU2020380731B2 (en) * 2019-11-05 2024-03-07 Lg Electronics Inc. High level syntax signaling method and device for image/video coding
KR20220106116A (ko) 2019-12-09 2022-07-28 바이트댄스 아이엔씨 비디오 코딩에서 양자화 그룹 사용
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding
CN113411584A (zh) * 2020-03-17 2021-09-17 北京三星通信技术研究有限公司 视频编解码的方法和装置
CN115362674A (zh) 2020-03-18 2022-11-18 抖音视界有限公司 帧内块复制缓冲区和调色板预测值更新
US11743507B2 (en) * 2020-12-16 2023-08-29 Tencent America LLC Method and apparatus for video filtering
US11849129B2 (en) * 2022-03-18 2023-12-19 Qualcomm Incorporated Intra-block copy decoding using dynamic re-mapping of on-chip memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050013365A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20060051068A1 (en) * 2003-01-10 2006-03-09 Thomson Licensing S.A. Decoder apparatus and method for smoothing artifacts created during error concealment
RU2367113C1 (ru) * 2005-01-04 2009-09-10 Самсунг Электроникс Ко., Лтд. Способ управления устранением блочности, учитывающий режим внутреннего bl, кодировщик-декодер многослойного видео, его использующий
US20120328209A1 (en) * 2011-06-27 2012-12-27 Hisao Sasai Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
US20130003827A1 (en) * 2011-06-30 2013-01-03 Kiran Misra Context initialization based on decoder picture buffer
US20130188867A1 (en) * 2012-01-19 2013-07-25 Sony Corporation Image processor and image processing method

Family Cites Families (246)

* 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
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
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
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
CN1843038B (zh) 2003-08-26 2010-09-22 汤姆森特许公司 用于解码混合内部-相互编码块的方法和装置
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
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
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 画像符号化装置
US7720154B2 (en) 2004-11-12 2010-05-18 Industrial Technology Research Institute System and method for fast variable-size motion estimation
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
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 에스케이텔레콤 주식회사 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
CN102577392A (zh) 2009-10-20 2012-07-11 夏普株式会社 运动图像编码装置、运动图像解码装置以及数据结构
TWI566586B (zh) 2009-10-20 2017-01-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
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
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
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 에스케이 텔레콤주식회사 코딩 유닛 단위 병렬 인트라예측을 이용한 부호화/복호화 방법 및 장치
KR20120080122A (ko) 2011-01-06 2012-07-16 삼성전자주식회사 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법
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
EP3703263A1 (en) 2011-01-14 2020-09-02 GE Video Compression, LLC Entropy encoding and decoding scheme
US9066104B2 (en) 2011-01-14 2015-06-23 Google Inc. Spatial block merge mode
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
AU2011362447B2 (en) 2011-03-14 2015-09-24 Hfi Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
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关键帧分类的分布式视频编码及解码方法
US20120294353A1 (en) 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
US20140085418A1 (en) 2011-05-16 2014-03-27 Sony Corporation Image processing device and image processing method
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
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
AU2011379313A1 (en) 2011-10-21 2014-05-22 Nokia Technologies Oy 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.
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
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
EP3739886A1 (en) 2011-11-18 2020-11-18 GE Video Compression, LLC Multi-view coding with efficient residual handling
CN108471532B (zh) 2011-11-25 2021-06-29 太阳专利托管公司 图像解码方法及图像解码装置
RU2493670C2 (ru) 2011-12-15 2013-09-20 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ блочной межкадровой компенсации движения для видеокодеков
KR20140120891A (ko) 2011-12-20 2014-10-14 모토로라 모빌리티 엘엘씨 효율적인 변환 유닛 인코딩을 위한 방법 및 장치
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US20130163664A1 (en) 2011-12-22 2013-06-27 Qualcomm Incorporated Unified partition mode table for intra-mode 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
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
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 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
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
US9621905B2 (en) 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
CN102752595B (zh) 2012-06-29 2014-07-09 香港应用科技研究院有限公司 用于深度图编码和解码的混合型跳过模式
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US9264713B2 (en) 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9549182B2 (en) 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
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
CN104378644B (zh) 2013-08-16 2020-12-04 上海天荷电子信息有限公司 定宽度变长度像素样值串匹配增强的图像压缩方法和装置
US9774879B2 (en) 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
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
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
RU2654129C2 (ru) 2013-10-14 2018-05-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений
CN105659602B (zh) 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
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 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
AU2014376061B8 (en) 2014-01-03 2019-05-30 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/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
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
US20150264348A1 (en) 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US20150312573A1 (en) 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US10477232B2 (en) 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for 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 ヴィド スケール インコーポレイテッド ブロックベクトル導出を用いるイントラブロックコピー符号化のための方法およびシステム
US9948949B2 (en) 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
US10477204B2 (en) 2014-06-20 2019-11-12 Sharp Kabushiki Kaisha Harmonized palette coding
KR101748620B1 (ko) 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060051068A1 (en) * 2003-01-10 2006-03-09 Thomson Licensing S.A. Decoder apparatus and method for smoothing artifacts created during error concealment
US20050013365A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Advanced bi-directional predictive coding of video frames
RU2367113C1 (ru) * 2005-01-04 2009-09-10 Самсунг Электроникс Ко., Лтд. Способ управления устранением блочности, учитывающий режим внутреннего bl, кодировщик-декодер многослойного видео, его использующий
US20120328209A1 (en) * 2011-06-27 2012-12-27 Hisao Sasai Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
US20130003827A1 (en) * 2011-06-30 2013-01-03 Kiran Misra Context initialization based on decoder picture buffer
US20130188867A1 (en) * 2012-01-19 2013-07-25 Sony Corporation Image processor and image processing method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAVID FLYNN et al., "High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 4", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP3 and ISO/IEC JTC1/SC29/WG11, 13th Meeting: Incheon, KR, 18-26 April, 2013, 322 c., Document: JCTVC-N1005_v1, опубл. 07.08.2013. *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516504B2 (en) 2018-09-21 2022-11-29 Tencent America LLC Method and apparatus for video coding
US11570484B2 (en) 2018-09-21 2023-01-31 Tencent America LLC Method and apparatus for video coding
US11876958B2 (en) 2018-10-12 2024-01-16 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video picture component prediction method and apparatus, and computer storage medium
RU2800683C2 (ru) * 2018-10-12 2023-07-26 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способ и устройство предсказывания компонента видеоизображения и компьютерный носитель данных
RU2811022C2 (ru) * 2019-02-02 2024-01-10 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Способ управления буфером для режима внутрикадрового копирования блоков при кодировании видео
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
RU2777377C1 (ru) * 2019-03-08 2022-08-02 Тенсент Америка Ллс Унифицированное предсказание вектора блока для компенсации блоков внутри изображения
RU2777394C1 (ru) * 2019-03-09 2022-08-03 Тенсент Америка Ллс Способ и устройство для видеокодирования
RU2781517C1 (ru) * 2019-06-25 2022-10-13 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования динамического изображения, способ кодирования динамического изображения, программа кодирования динамического изображения, устройство декодирования динамического изображения, способ декодирования динамического изображения и программа декодирования динамического изображения
RU2777278C1 (ru) * 2019-06-27 2022-08-02 Тенсент Америка Ллс Способ и устройство для видеокодирования
US11956461B2 (en) 2019-06-27 2024-04-09 Tencent America LLC Method and apparatus for video coding
RU2784813C1 (ru) * 2019-08-13 2022-11-29 Тенсент Америка Ллс Способ и устройство для кодирования видео
RU2794647C2 (ru) * 2019-09-24 2023-04-24 Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. Способы определения значения предсказания, кодер, декодер и компьютерный носитель данных
US11949886B2 (en) 2019-09-24 2024-04-02 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Methods for determining prediction value, encoder, and decoder

Also Published As

Publication number Publication date
RU2016114182A (ru) 2017-10-18
JP2016539542A (ja) 2016-12-15
KR20160072181A (ko) 2016-06-22
US20200177910A1 (en) 2020-06-04
US10582213B2 (en) 2020-03-03
KR20200123268A (ko) 2020-10-28
CA2928495A1 (en) 2015-04-23
CN105765974A (zh) 2016-07-13
JP6359101B2 (ja) 2018-07-18
WO2015054811A1 (en) 2015-04-23
CA2928495C (en) 2020-08-18
CA2924763A1 (en) 2015-04-23
AU2013403224B2 (en) 2018-10-18
BR112016007151A2 (pt) 2017-09-12
MX2016004705A (es) 2016-07-18
EP3058739A4 (en) 2017-08-16
AU2013403224A1 (en) 2016-03-31
US11317113B2 (en) 2022-04-26
US20160241868A1 (en) 2016-08-18
US20220201326A1 (en) 2022-06-23
EP3058739B1 (en) 2019-08-07
CN105765974B (zh) 2019-07-02
EP3058739A1 (en) 2016-08-24
KR102170169B1 (ko) 2020-10-26
KR102257269B1 (ko) 2021-05-26

Similar Documents

Publication Publication Date Title
RU2654129C2 (ru) Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений
US11252437B2 (en) Features of base color index map mode for video and image coding and decoding
US11770553B2 (en) Conditional signalling of reference picture list modification information
RU2683495C1 (ru) Нововведения в предсказание блочных векторов и оценку восстановленных значений отсчетов в области перекрытия
RU2683165C1 (ru) Внутреннее предсказание блочного копирования с асимметричными разделами и схемами поиска на стороне кодера, диапазоны поиска и подходы к разделению
CN105917650B (zh) 视频和图像编/解码的方法、计算设备及计算机可读介质
WO2015054816A1 (en) Encoder-side options for base color index map mode for video and image coding

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20191015