RU2654129C2 - Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений - Google Patents
Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/57—Motion estimation characterised by a search window with variable size or shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy 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, при этом текущим блоком является блок преобразования.
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)
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)
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)
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)
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 |
-
2013
- 2013-10-14 RU RU2016114182A patent/RU2654129C2/ru not_active IP Right Cessation
- 2013-10-14 KR KR1020207030004A patent/KR102257269B1/ko active IP Right Grant
- 2013-10-14 CA CA2924763A patent/CA2924763A1/en active Pending
- 2013-10-14 EP EP13895569.5A patent/EP3058739B1/en active Active
- 2013-10-14 JP JP2016522798A patent/JP6359101B2/ja active Active
- 2013-10-14 WO PCT/CN2013/085165 patent/WO2015054811A1/en active Application Filing
- 2013-10-14 MX MX2016004705A patent/MX2016004705A/es active IP Right Grant
- 2013-10-14 BR BR112016007151A patent/BR112016007151A2/pt not_active Application Discontinuation
- 2013-10-14 AU AU2013403224A patent/AU2013403224B2/en active Active
- 2013-10-14 KR KR1020167012733A patent/KR102170169B1/ko active IP Right Grant
- 2013-10-14 US US15/025,128 patent/US10582213B2/en active Active
- 2013-10-14 CN CN201380080240.0A patent/CN105765974B/zh active Active
- 2013-10-14 CA CA2928495A patent/CA2928495C/en active Active
-
2020
- 2020-02-06 US US16/783,852 patent/US11317113B2/en active Active
-
2022
- 2022-03-10 US US17/691,802 patent/US20220201326A1/en active Pending
Patent Citations (6)
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)
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)
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 |