RU2602380C2 - Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования - Google Patents

Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования Download PDF

Info

Publication number
RU2602380C2
RU2602380C2 RU2014123373/08A RU2014123373A RU2602380C2 RU 2602380 C2 RU2602380 C2 RU 2602380C2 RU 2014123373/08 A RU2014123373/08 A RU 2014123373/08A RU 2014123373 A RU2014123373 A RU 2014123373A RU 2602380 C2 RU2602380 C2 RU 2602380C2
Authority
RU
Russia
Prior art keywords
video
encoded
contexts
flag
block
Prior art date
Application number
RU2014123373/08A
Other languages
English (en)
Other versions
RU2014123373A (ru
Inventor
Вэй-Цзюн ЧИЭНЬ
РОХАЛЬС Хоэль СОЛЕ
Марта КАРЧЕВИЧ
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=48223670&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2602380(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2014123373A publication Critical patent/RU2014123373A/ru
Application granted granted Critical
Publication of RU2602380C2 publication Critical patent/RU2602380C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Изобретение относится к технологиям контекстно-адаптивного бинарного арифметического кодирования (САВАС), которое используется для кодирования видео. Техническим результатом является устранение избыточности памяти за счет сокращения контекстов, используемых в CABAC. Предложен способ кодирования видеоданных. Способ содержит этап, на котором производят выбор контекста из одного или более контекстов на основе глубины преобразования единицы преобразования, ассоциированной с блоком кодируемых видеоданных, при этом глубина преобразования задает текущий уровень подразделения единицы кодирования на блоки с целью преобразующего кодирования. Далее, согласно способу, осуществляют кодирование флага кодированного блока цветности Cb для упомянутого блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (САВАС) и выбранного контекста, причем кодирование флага кодированного блока цветности Cb содержит использование набора контекстов, включающего в себя упомянутые один или более контекстов. 5 н. и 8 з.п. ф-лы, 10 ил., 22 табл.

Description

[0001] Настоящая заявка испрашивает приоритет предварительной заявки США 61/557, 325, поданной 8 ноября 2011, и предварительной заявки США 61/561, 911, поданной 20 ноября 2011, обе из которых включены в настоящий документ в качестве ссылки во всей их полноте.
Область техники
[0002] Настоящее изобретение относится к кодированию видео и, в частности, контекстно-адаптивному бинарному арифметическому кодированию (CABAC), используемому в кодировании видео.
Предшествующий уровень техники
[0003] Возможности цифрового видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, электронные книги, цифровые камеры, цифровые записывающие устройства, цифровые медиаплееры, игровые видеоустройства, игровые приставки, сотовые или спутниковые радиотелефоны, так называемые «смартфоны», устройства видео-телеконференций, устройства потокового видео и тому подобное. Цифровые видео устройства реализуют технологии сжатия видео, такие как те, что описаны в стандартах, определенных MPEG-2, MPEG-4, ITU-T H.263, ITU-Т H.264/MPEG-4, часть 10, Расширенное кодирование видео (AVC), стандарт Высокоэффективного кодирования видео (HEVC), находящийся в настоящее время в стадии разработки, и расширения таких стандартов. Видео устройства могут передавать, принимать, кодировать, декодировать и/или хранить цифровую видео информацию более эффективно путем реализации таких методов сжатия видео.
[0004] Методы сжатия видео выполняют пространственное (внутри изображения, интра-) предсказание и/или временное (между изображениями, интер-) предсказание для сокращения или устранения избыточности, присущей видеопоследовательностям. Для блочного кодирования, видео слайс (то есть видеоизображение или часть видеоизображения) может быть разделен на блоки видео, которые также могут упоминаться как блоки дерева, единицы кодирования (CU) и/или узлы кодирования. Блоки видео в интра-кодированном (I) слайсе (сегменте) изображения кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в том же изображении. Блоки видео в интер-кодированном (Р или В) сегменте изображения могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в том же изображении или временное предсказание относительно опорных выборок в других опорных изображениях. Изображения могут упоминаться как кадры, и опорные изображения могут упоминаться как опорные кадры.
[0005] Пространственное или временное предсказание приводит в результате к блоку предсказания для блока, подлежащего кодированию. Остаточные данные представляет пиксельные разницы между исходным блоком, подлежащим кодированию, и блоком предсказания. Интер-кодируемый блок кодируется в соответствии с вектором движения, который указывает на блок опорных выборок, образующих блок предсказания, и остаточными данными, указывающими разницу между кодированным блоком и блоком предсказания. Интра-кодируемый блок кодируется в соответствии с режимом интра-кодирования и остаточными данными. Для дальнейшего сжатия, остаточные данные могут быть преобразованы из пиксельной области в область преобразования, приводя в результате к остаточным коэффициентам преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, первоначально упорядоченные в двумерный массив, могут сканироваться, чтобы сформировать одномерный вектор коэффициентов преобразования, и энтропийное кодирование может быть применено для достижения еще большего сжатия.
Сущность изобретения
[0006] В общем, это раскрытие описывает методы для контекстно-адаптивного бинарного арифметического кодирования (CABAC) в процессе видео кодирования. В частности, это раскрытие предлагает сокращение числа контекстов CABAC, используемых для одного или нескольких синтаксических элементов, неограничительные примеры которых включают pred_typ, merge_idx, inert_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Модификации могут сократить до 56 контекстов с пренебрежимо малыми изменениями эффективности кодирования. Предлагаемые сокращения контекста для синтаксических элементов могут быть использованы отдельно или в любой комбинации.
[0007] В одном примере осуществления раскрытия, способ кодирования видео может включать в себя определение первого типа предсказания для блока видеоданных в Р слайсе (сегменте), представление первого типа предсказания как синтаксический элемент типа предсказания P сегмента, определение второго типа предсказания для блока видеоданных в B сегменте, представление второго типа предсказания как синтаксический элемент типа предсказания B сегмента, определение бинаризации Р сегмента для синтаксического элемента типа предсказания P сегмента, определение бинаризации В сегмента для синтаксического элемента типа предсказания В сегмента, при этом синтаксический элемент типа предсказания P сегмента и синтаксический элемент типа предсказания В сегмента определяются с использованием той же самой логики бинаризации, и кодирование видеоданных на основе бинаризации синтаксического элемента типа предсказания Р сегмента и синтаксического элемента типа предсказания В сегмента.
[0008] В другом примере настоящего раскрытия способ декодирования видео может включать в себя отображение бинаризованного синтаксического элемента типа предсказания P сегмента на тип предсказания, используя отображение бинаризации для блока видеоданных в Р сегменте, отображение бинаризованного синтаксического элемента типа предсказания В сегмента на тип предсказания, используя отображение бинаризации для блока видеоданных в В сегменте, и декодирование видеоданных, основываясь на отображенных типах предсказания.
[0009] В другом примере настоящего раскрытия, способ кодирования видеоданных включает в себя определение типа разделения для режима предсказания для блока видеоданных, кодирование структурного элемента типа разделения синтаксического элемента типа предсказания для блока видеоданных с использованием CABAC с одним контекстом, причем этот один контекст является тем же самым для любого типа разделения, и кодирование структурного элемента размера разделения синтаксического элемента типа предсказания для блока видеоданных с использованием CABAC в режиме обхода.
[0010] В другом примере настоящего раскрытия, способ декодирования видеоданных содержит прием синтаксического элемента типа предсказания для блока видеоданных, которые были кодированы с использованием CABAC, причем синтаксический элемент типа предсказания включает в себя структурный элемент типа разделения, представляющий тип разделения, и структурный элемент размера разделения, представляющий размер разделения, декодирование структурного элемента типа разделения синтаксического элемента типа предсказания с использованием контекстно-адаптивного бинарного арифметического кодирования с одним контекстом, причем этот один контекст является тем же самым для любого типа разделения, и декодирование структурного элемента типа разделения синтаксического элемента типа предсказания с использованием CABAC в режиме обхода.
[0011] В другом примере настоящего раскрытия, способ кодирования видеоданных включает в себя кодирование флага кодированного блока цветности Cb для блока видеоданных с использованием CABAC, причем кодирование флага кодированного блока цветности Cb включает в себя использование набора контекстов, включающего в себя один или более контекстов как часть CABAC, и кодирование флага кодированного блока цветности Cr с использованием CABAC, причем кодирование флага кодированного блока цветности Cr содержит использованием того же самого набора контекстов, что и для флага кодированного блока цветности Cb, как часть CABAC.
[0012] Настоящее раскрытие также описывает вышеуказанные способы в терминах устройств, сконфигурированных для выполнения этих способов, а также в терминах считываемого компьютером носителя для хранения инструкций, которые, при их выполнении, побуждают один или более процессоров выполнять эти способы.
[0013] Детали одного или нескольких примеров приведены на прилагаемых чертежах и описании ниже. Другие признаки, цели и преимущества будут очевидны из описания и чертежей и из формулы изобретения.
Краткое описание чертежей
[0014] На фиг. 1 представлена блок-схема, иллюстрирующая примерную систему кодирования и декодирования видео, которая может использовать методы, описанные в настоящем раскрытии.
[0015] На фиг. 2 представлена блок-схема, иллюстрирующая примерный видеокодер, который может реализовать способы, описанные в настоящем раскрытии.
[0016] На фиг. 3 представлена блок-схема, иллюстрирующая примерный видеодекодер, который может реализовать способы, описанные в настоящем раскрытии.
[0017] На фиг. 4 показан концептуальный чертеж, демонстрирующий как квадратные, так и неквадратные типы разделения.
[0018] На фиг. 5 показан концептуальный чертеж, демонстрирующий асимметричные типы разделения.
[0019] На фиг. 6 представлена блок-схема последовательности операций, иллюстрирующая пример способа кодирования видео согласно настоящему раскрытию.
[0020] На фиг. 7 представлена блок-схема последовательности операций, иллюстрирующая пример способа декодирования видео согласно настоящему раскрытию.
[0021] На фиг. 8 представлена блок-схема последовательности операций, иллюстрирующая пример способа кодирования видео согласно настоящему раскрытию.
[0022] На фиг. 9 представлена блок-схема последовательности операций, иллюстрирующая пример способа декодирования видео согласно настоящему раскрытию.
[0023] На фиг. 10 представлена блок-схема последовательности операций, иллюстрирующая пример способа кодирования видео согласно настоящему раскрытию.
Подробное описание
[0024] Настоящее раскрытие описывает способы кодирования данных, таких как видеоданные. В частности, в настоящем раскрытии описываются способы, которые могут способствовать эффективному кодированию видеоданных с использованием процессов контекстно-адаптивного энтропийного кодирования. В частности, в настоящем раскрытии предлагается сокращение количества контекстов CABAC, используемых для кодирования синтаксических элементов, таких как pred_typ, merge_idx, inert_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Модификации сокращают до 56 контекстов с пренебрежимо малыми изменениями эффективности кодирования. Настоящее раскрытие описывает кодирование видео для целей иллюстрации. Однако способы, описанные в данном описании, также могут быть применимы к кодированию других типов данных.
[0025] На фиг. 1 представлена блок-схема, иллюстрирующая пример системы 10 кодирования и декодирования видео, которая может быть сконфигурирована, чтобы использовать методы контекстно-адаптивного бинарного арифметического кодирования (CABAC) в соответствии с примерами настоящего раскрытия. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое передает кодированное видео к устройству-получателю 14 через канал 16 связи. Кодированные видеоданные могут также храниться на носителе 34 хранения данных или файловом сервере 36, и устройство-получатель 14 может обращаться к ним по желанию. При хранении на носителе хранения данных или файловом сервере, видеокодер 20 может предоставить кодированные видеоданные другому устройству, такому как сетевой интерфейс, компакт-диск (CD), программатор или устройство оборудования штамповки Blu-Ray или цифрового видеодиска (DVD) или другие устройства, для хранения кодированных видеоданных на носителе хранения данных. Кроме того, устройство, отдельное от видеодекодера 30, такое как сетевой интерфейс, CD или DVD считыватель или тому подобное, может извлекать кодированные видеоданные с носителя хранения данных и предоставлять извлеченные данные на видеодекодер 30.
[0026] Устройство-источник 12 и устройство-получатель 14 могут включать в себя любое из широкого спектра устройств, включая настольные компьютеры, ноутбуки (т.е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные аппараты, такие как так называемые смартфоны, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые консоли или тому подобное. Во многих случаях такие устройства могут быть оснащены для беспроводной связи. Таким образом, канал 16 связи может содержать беспроводной канал, проводной канал или комбинацию проводных и беспроводных каналов, пригодных для передачи кодированных видеоданных. Аналогично, файловый сервер 36 может быть доступен для устройства-получателя 14 через любое стандартное соединение передачи данных, в том числе Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.д.), или сочетание того и другого, которое подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере.
[0027] Методы САВАС, в соответствии с примерами настоящего раскрытия, могут быть применены к кодированию видео для поддержки любого из множества мультимедийных приложений, таких как эфирное телевизионное вещание, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео, например, через Интернет, кодирование цифрового видео для хранения на носителе данных, декодирование цифрового видео, сохраненного на носителе данных, или других приложений. В некоторых примерах, система 10 может быть сконфигурирована для поддержки односторонних или двусторонних передач видео для поддержки таких приложений, как потоковое видео, воспроизведение видео, видео вещание и/или видео-телефония.
[0028] В примере по фиг. 1, устройство-источник 12 включает в себя источник 18 видео, видеокодер 20, модулятор/демодулятор 22 и передатчик 24. В устройстве-источнике 12, источник 18 видео может включать в себя источник, такой как устройство захвата видео, например, видеокамеру, видеоархив, содержащий ранее захваченное видео, интерфейс видеоканала для приема видео от поставщика видеоконтента и/или систему компьютерной графики для генерации данных компьютерной графики в качестве исходного видео или комбинацию таких источников. В качестве одного примера, если источник 18 видео представляет собой видеокамеру, устройство-источник 12 и устройство-получатель 14 могут образовывать так называемые камеры-телефоны или видеотелефоны. Однако способы, описанные в настоящем раскрытии, могут применяться к кодированию видео в общем и могут быть применены к беспроводным и/или проводным приложениям или приложению, в котором кодированные видеоданные сохранены на локальном диске.
[0029] Захваченное, предварительно захваченное или генерируемое компьютером видео может кодироваться с помощью видеокодера 20. Кодированная информация видео может модулироваться с помощью модема 22 в соответствии со стандартом связи, например, протоколом беспроводной связи, и передаваться к устройству-получателю 14 посредством передатчика 24. Модем 22 может включать в себя различные смесители, фильтры, усилители и другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, в том числе усилители, фильтры и одну или более антенн.
[0030] Захваченное, предварительно захваченное или генерируемое компьютером видео, которое кодируется с помощью видеокодера 20, также может храниться на носителе 34 хранения данных или файловом сервере 36 для последующего потребления. Носитель 34 хранения данных может включать Blu-Ray диски, DVD-диски, CD-ROM, флэш-память или любой другой подходящий цифровой носитель хранения данных для хранения кодированного видео. Кодированное видео, сохраненное на носителе 34 хранения данных, может затем быть доступным для устройства-получателя 14 для декодирования и воспроизведения. Хотя это не показано на фиг. 1, в некоторых примерах носитель 34 хранения данных и/или файловый сервер 36 может хранить выходной сигнал передатчика 24.
[0031] Файловый сервер 36 может быть любым типом сервера, способным хранить кодированное видео и передавать это кодированное видео к устройству-получателю 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, устройства хранения, связанные с сетью (NAS), локальный диск или любой другой тип устройства, способного хранить кодированные видеоданные и передавать его к устройству-получателю. Передача кодированных видеоданных с файлового сервера 36 может быть потоковой передачей, передачей загрузки или сочетанием того и другого. Файловый сервер 36 может быть доступным для устройства-получателя 14 через любое стандартное соединение передачи данных, в том числе Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, Ethernet, USB и т.д.), или сочетание того и другого, которое подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере.
[0032] Устройство-получатель 14, в примере по фиг. 1, включает в себя приемник 26, модем 28, видеодекодер 30 и устройство 32 отображения. Приемник 26 устройства-получателя 14 принимает информацию по каналу 16, и модем 28 демодулирует информацию для получения демодулированного потока битов для видеодекодера 30. Информация, передаваемая через канал 16, может включать в себя различную синтаксическую информацию, генерируемую видеокодером 20, для использования видеодекодером 30 при декодировании видеоданных. Такой синтаксис также может быть включен в кодированные видеоданные, сохраненные на носителе 34 хранения данных или файловом сервере 36. Каждый из видеокодера 20 и видеодекодера 30 может являться частью соответствующего кодера-декодера (кодека), который способен кодировать или декодировать видеоданные.
[0033] Устройство 32 отображения может быть встроенным или внешним по отношению к устройству-получателю 14. В некоторых примерах устройство-получатель 14 может включать в себя встроенное устройство отображения, а также может быть сконфигурировано для взаимодействия с внешним устройством отображения. В других примерах устройство-получатель 14 может быть устройством отображения. В общем, устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения.
[0034] В примере на фиг. 1, канал 16 связи может содержать любую проводную или беспроводную среду связи, например, радиочастотный (РЧ) спектр или одну или нескольких физических линий передачи, или любую комбинацию беспроводных и проводных сред передачи. Канал 16 связи может являться частью пакетной сети, например, локальной сети, сети широкого охвата или глобальной сети, такой как Интернет. Канал 16 связи обычно представляет собой любую подходящую среду связи или набор различных сред связи для передачи видеоданных от устройства-источника 12 к устройству-получателю 14, включая любую подходящую комбинацию проводных или беспроводных сред передачи. Канал 16 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для обеспечения связи от устройства-источника 12 к устройству-получателю 14.
[0035] Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом сжатия видео, таким как стандарт Высокоэффективного кодирования видео (HEVC), находящийся в настоящее время на стадии разработки Объединенной совместной группы по кодированию видео (JCT-VC) ITU-Т Группы экспертов по кодированию видео (VCEG) и ISO/IEC Группы экспертов по движущемуся изображению (MPEG). Недавний проект стандарта HEVC, называемый "HEVC рабочий проект 6" или "WD6", описывается в документе JCTVC-H1003, Bross et al., "High efficiency video coding (HEVC) text specification draft 6", Объединенной совместной группы по кодированию видео (JCT-VC) ITU-T SGI 6 WP3 и ISO/IEC JTC1/SC29/WG11, 8-е заседание: Сан-Хосе, Калифорния, США, февраль 2012, который, по состоянию на 1 июня 2012 года можно скачать с http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-1003-v22.zip.
[0036] Кроме того, видеокодер 20 и видеодекодер 30 могут действовать в соответствии с другими проприетарными или промышленными стандартами, такими как стандарт ITU-T H.264, альтернативно называемый MPEG-4, часть 10, Расширенное кодирование видео (AVC), или расширения таких стандартов. Методы настоящего раскрытия, однако, не ограничивается каким-либо конкретным стандартом кодирования. Другие примеры включают MPEG-2 и ITU-T H.263.
[0037] Хотя это не показано на фиг. 1, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут, каждый, быть интегрирован с аудиокодером и декодером и могут включать в себя соответствующие блоки MUX-DEMUX или другие аппаратные средства и программное обеспечение для обработки кодирования аудио и видео в общем потоке данных или отдельных потоках данных. Если применимо, в некоторых примерах, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
[0038] Видеокодер 20 и видеодекодер 30, каждый, может быть реализован как любой из множества подходящих схем кодера, таких как один или более микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратные средства, программно-аппаратные средства или любые их комбинации. Когда технологии реализованы частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном считываемом компьютером носителе и выполнять инструкции в аппаратных средствах с использованием одного или более процессоров для выполнения методов настоящего раскрытия. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.
[0039] Видеокодер 20 может реализовывать любой или все методы настоящего раскрытия для CABAC в процессе кодирования видео. Кроме того, видеодекодер 30 может осуществлять некоторые или все из этих методов для CABAC в процессе кодирования видео. Устройство кодирования видео, как описано в данном раскрытии, может относиться к видеокодеру или видеодекодеру. Аналогичным образом, блок кодирования видео может относиться к видеокодеру или видеодекодеру. Кроме того, кодирование видео может относиться к кодированию видео или декодированию видео.
[0040] В одном примере настоящего раскрытия, видеокодер 20 может быть сконфигурирован, чтобы определять первый тип предсказания для блока видеоданных в Р сегменте, представлять первый тип предсказания как синтаксический элемент типа предсказания P сегмента, определять второй тип предсказания для блока видеоданных в B сегменте, представлять второй тип предсказания как синтаксический элемент типа предсказания B сегмента, определять бинаризацию Р сегмента для синтаксического элемента типа предсказания P сегмента, определять бинаризацию В сегмента для синтаксического элемента типа предсказания В сегмента, при этом синтаксический элемент типа предсказания P сегмента и синтаксический элемент типа предсказания В сегмента определяются с использованием той же самой логики бинаризации, и кодировать видеоданные на основе бинаризации синтаксического элемента типа предсказания Р сегмента и синтаксического элемента типа предсказания В сегмента.
[0041] В другом примере настоящего раскрытия видеодекодер 30 может быть сконфигурирован, чтобы отображать бинаризованный синтаксический элемент типа предсказания P сегмента на тип предсказания, используя отображение бинаризации для блока видеоданных в Р сегменте, отображать бинаризованный синтаксический элемент типа предсказания В сегмента на тип предсказания, используя то же самое отображение бинаризации для блока видеоданных в В сегменте, и декодировать видеоданные, основываясь на отображенных типах предсказания.
[0042] В другом примере настоящего раскрытия, видеокодер 20 может быть сконфигурирован, чтобы определять тип разделения для режима предсказания для блока видеоданных, кодировать структурный элемент типа разделения синтаксического элемента типа предсказания для блока видеоданных с использованием CABAC с одним контекстом, причем этот один контекст является тем же самым для любого типа разделения, и кодировать структурный элемент размера разделения синтаксического элемента типа предсказания для блока видеоданных с использованием CABAC в режиме обхода.
[0043] В другом примере настоящего раскрытия, видеодекодер 30 может быть сконфигурирован, чтобы принимать синтаксический элемент типа предсказания для блока видеоданных, которые были кодированы с использованием CABAC, причем синтаксический элемент типа предсказания включает в себя структурный элемент типа разделения, представляющий тип разделения, и структурный элемент размера разделения, представляющий размер разделения, декодировать структурный элемент типа разделения синтаксического элемента типа предсказания с использованием САВАС с одним контекстом, причем этот один контекст является тем же самым для любого типа разделения, и декодировать структурный элемент размера разделения синтаксического элемента типа предсказания с использованием CABAC в режиме обхода.
[0044] В другом примере настоящего раскрытия, как видеокодер 20, так и видеодекодер 30 могут быть сконфигурированы, чтобы кодировать флаг кодированного блока цветности Cb для блока видеоданных с использованием CABAC, причем кодирование флага кодированного блока цветности Cb включает в себя использование набора контекстов, включающего в себя один или более контекстов как часть CABAC, и кодировать флаг кодированного блока цветности Cr с использованием CABAC, причем кодирование флага кодированного блока цветности Cr содержит использование того же самого набора контекстов, что и для флага кодированного блока цветности Cb, как часть CABAC.
[0045] JCT-VC работает над развитием стандарта HEVC. Усилия HEVC стандартизации базируются на развивающейся модели устройства кодирования видео, называемой тестовой моделью HEVC (HM). HM предполагает несколько дополнительных возможностей устройств кодирования видео относительно существующих устройств в соответствии, например, с ITU-Т H.264/AVC. Например, в то время как H.264 обеспечивает девять режимов кодирования с интра-предсказанием, HM может обеспечить тридцать три режима кодирования с интра-предсказанием. В следующем разделе будут более подробно описаны некоторые аспекты HM.
[0046] В общем, рабочая модель HM описывает, что видео кадр или изображение может быть разделено на последовательность блоков дерева или наибольших единиц кодирования (LCU), которые включают в себя выборки как яркости, так и цветности. Блок дерева имеет цель, подобную таковой макроблока стандарта H.264. Сегмент (слайс) включает в себя ряд последовательных блоков дерева в порядке кодирования. Видеокадр или изображение может быть разделено на один или более сегментов. Каждый блок дерева может быть разделен на единицы кодирования (CU) в соответствии с квадродеревом. Например, блок дерева, в качестве корневого узла квадродерева, может быть разделен на четыре дочерних узла, а каждый дочерний узел, в свою очередь, может быть родительским узлом и может быть разделен на следующие четыре дочерних узлов. Окончательный, неразделимый дочерний узел, как узел листа квадродерева, включает в себя узел кодирования, то есть блок кодированного видео. Данные синтаксиса, связанные с кодированным битовым потоком, могут определять максимальное количество раз разбиения блока дерева, а также могут определять минимальный размер узлов кодирования.
[0047] CU включает в себя узел кодирования и единицы предсказания (PU) и единицы преобразования (TU), связанные с узлом кодирования. Размер CU обычно соответствует размеру узла кодирования и обычно должен быть квадратной формы. Размер CU может находиться в диапазоне от 8x8 пикселей до размера блока дерева максимально с 64х64 пикселей или более. Каждая CU может содержать одну или более PU и одну или более TU. Данные синтаксиса, ассоциированные с CU, могут описывать, например, разделение CU на одну или более PU. Режимы разделения могут отличаться в зависимости от того, пропускается ли CU, или кодирована в прямом режиме, кодирована в режиме интра-предсказания или кодирована в режиме интер-предсказания. PU могут быть разделены, чтобы быть в неквадратной форме. Данные синтаксиса, ассоциированные с CU, также могут описывать, например, разделение CU на одну или более TU в соответствии с квадродеревом. TU может быть квадратной или неквадратной формы.
[0048] Новый стандарт HEVC допускает преобразования в соответствии с TU, которые могут быть различными для различных CU. TU обычно имеют размер в зависимости от размера PU в пределах данной CU, определенной для разделенной LCU, хотя это может не всегда иметь место. TU, как правило, такого же размера, или меньше, чем PU. В некоторых примерах остаточные выборки, соответствующие CU, могут быть разделены на более мелкие единицы, используя структуру квадродерева, известную как "остаточное квадродерево" (RQT). Листовые узлы RQT могут упоминаться как единицы преобразования (TU). Пиксельные разностные значения, связанные с TU, могут быть преобразованы для получения коэффициентов преобразования, которые могут быть квантованы.
[0049] В общем, PU относится к данным, относящимся к процессу предсказания. Например, когда PU является кодированной в интра-режиме, PU может включать данные, описывающие режим интра-предсказания для PU. В качестве другого примера, когда PU кодирована в интер-режиме, PU может включать данные, определяющие вектор движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешение для вектора движения (например, точность в одну четверть пикселя или точность в одну восьмую пикселя), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список С) для вектора движения.
[0050] В общем, TU используется для процессов преобразования и квантования. Данная CU, имеющая одну или более PU, может также включать в себя одну или более единиц преобразования (TU). После предсказания, видеокодер 20 может вычислить остаточные значения из блока видео, идентифицированного узлом кодирования, в соответствии с PU. Узел кодирования затем обновляется для ссылки на остаточные значения вместо исходного блока видео. Остаточные значения содержат пиксельные разностные значения, которые могут преобразовываться в коэффициенты преобразования, квантоваться и сканироваться с использованием преобразований и другой информации преобразования, определенной в TU, чтобы создать преобразованные в последовательную форму коэффициенты преобразования для энтропийного кодирования. Узел кодирования может быть в очередной раз обновлен, чтобы ссылаться на эти преобразованные в последовательную форму коэффициенты преобразования. Настоящее раскрытие обычно использует термин "блок видео", чтобы ссылаться на узел кодирования CU. В некоторых конкретных случаях, настоящее раскрытие может также использовать термин "блок видео", чтобы ссылаться на блок дерева, т.е. LCU или CU, которая включает в себя узел кодирования и PU и TU.
[0051] Видеопоследовательность обычно включает в себя ряд видеокадров или изображений. Группа изображений (GOP) обычно включает в себя последовательность из одного или более видеоизображений. GOP может включать синтаксические данные в заголовке GOP, заголовке одного или более изображений или в другом месте, которое описывает ряд изображений, включенных в GOP. Каждый сегмент изображения может включать синтаксические данные сегмента, которые описывают режим кодирования для соответствующего сегмента. Видеокодер 20 обычно работает на блоках видео в отдельных сегментах видео для кодирования видеоданных. Блок видео может соответствовать узлу кодирования внутри CU. Блоки видео могут иметь фиксированные или переменные размеры и могут отличаться по размеру в соответствии с заданным стандартом кодирования.
[0052] В качестве примера, HM поддерживает предсказание в различных размерах PU. В предположении, что размер определенной CU равен 2Nx2N, HM поддерживает интра-предсказание в PU размеров 2Nx2N или NxN, и интер-предсказание в симметричных PU размеров 2Nx2N, 2NxN, Nx2N или NxN. HM также поддерживает асимметричное разделение для интер-предсказания в PU размеров 2NxnU, 2NxnD, nLx2N и nRx2N. В асимметричном разделении, одно направление CU не разделяется, а другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25% разделению, обозначается посредством "n" с последующим указанием "вверх", "вниз", "влево" или "вправо". Так, например, "2NxnU" относится к 2Nx2N CU, которая разделена горизонтально с 2Nx0.5N PU сверху и 2Nx1.5N PU снизу.
[0053] На фиг. 4 показана концептуальная диаграмма, демонстрирующая как квадратные, так и неквадратные типы разделения для интра-предсказания и интер-предсказания. Разделение 102 является разделением 2Nx2N и может быть использовано как для интра-предсказания, так и для интер-предсказания. Разделение 104 является разделением NxN и может быть использовано как для интра-предсказания, так для интер-предсказания. Разделение 106 является разделением 2NxN и в настоящее время используется в HEVC для интер-предсказания. Разделение 108 является разделением Nx2N и в настоящее время используется в HEVC для интер-предсказания.
[0054] На фиг. 5 представлена концептуальная диаграмма, показывающая асимметричные типы разделения. Разделение 110 является разделением 2NxnU и в настоящее время используется в HEVC для интер-предсказания. Разделение 112 является разделением 2NxnD и в настоящее время используется в HEVC для интер-предсказания. Разделение 114 является разделением nLx2N и в настоящее время используется в HEVC для интер-предсказания. Разделение 116 является разделением nRx2N и в настоящее время используется в HEVC для интер-предсказания.
[0055] В этом описании "NxN" и "N на N” могут использоваться взаимозаменяемым образом для обозначения размеров в пикселях блока видео по вертикали и горизонтали, например, 16x16 пикселей или 16 на 16 пикселей. В общем, 16х16 блок будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (х=16). Аналогично, блок NxN, в общем виде, имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет собой неотрицательное целое число. Пиксели в блоке могут быть упорядочены в строки и столбцы. Кроме того, блоки не обязательно должны иметь одинаковое число пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать NxM пикселей, где М не обязательно равно N.
[0056] После кодирования с интра-предсказанием или интер-предсказанием с использованием PU для CU, видеокодер 20 может вычислить остаточные данные, к которым применяются преобразования, указанные посредством TU в PU. Остаточные данные могут соответствовать разнице в пикселях между пикселями некодированного изображения и значениями предсказания, соответствующими CU. Видеокодер 20 может формировать остаточные данные для CU, а затем преобразовывать остаточные данные для получения коэффициентов преобразования.
[0057] После любых преобразований, чтобы сформировать коэффициенты преобразования, видеокодер 20 может выполнять квантование коэффициентов преобразования. Квантование, в общем, относится к процессу, в котором коэффициенты преобразования квантуются, чтобы по возможности уменьшить объем данных, используемых для представления коэффициентов, обеспечивая дальнейшее сжатие. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторых или всеми коэффициентами. Например, n-битное значение можно округлить вниз до m-битного значения во время квантования, где n больше, чем m.
[0058] В некоторых примерах, видеокодер 20 может использовать предопределенный порядок сканирования для сканирования квантованных коэффициентов преобразования для получения преобразованного в последовательную форму вектора, который может энтропийно кодироваться. В других примерах видеокодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования, чтобы сформировать одномерный вектор, видеокодер 20 может энтропийно кодировать одномерный вектор, например, в соответствии с контекстно-адаптивным кодированием переменной длины (CAVLC), контекстно-адаптивным бинарным арифметическим кодированием (CABAC), основанным на синтаксисе контекстно-адаптивным бинарным арифметическим кодированием (SBAC), энтропийным кодированием с разделением интервала вероятности (PIPE) или другим методом энтропийного кодирования. Видеокодер 20 может также энтропийно кодировать синтаксические элементы, ассоциированные с кодированными видеоданными для использования видеодекодером 30 в декодировании видеоданных.
[0059] Для выполнения CABAC, видеокодер 20 может назначить контекст в контекстной модели для символа, подлежащего передаче. Контекст может относиться, например, к тому, являются ли соседние значения символа ненулевыми, или нет. Для выполнения CAVLC, видеокодер 20 может выбрать код переменной длины для символа, подлежащего передаче. Кодовые слова в VLC могут быть сконструированы так, что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC может достигать экономии в битах по сравнению, например, с использованием кодовых слов одинаковой длины для каждого символа, подлежащего передаче. Определение вероятности может быть основано на контексте, назначенном символу.
[0060] Настоящее раскрытие относится к способам для энтропийных кодеров контекстно-адаптивного бинарного арифметического кодирования (CABAC) или другим энтропийным кодерам, таким как энтропийное кодирование с разделением интервала вероятности (PIPE) или связанным кодерам. Арифметическое кодирование является формой энтропийного кодирования, используемого во многих алгоритмах сжатия, которые имеют высокую эффективность кодирования, поскольку оно способно отображать символы на кодовые слова нецелочисленной длины. Примером алгоритма арифметического кодирования является основанное на контексте бинарное арифметическое кодирование (CABAC), используемое в H.264/AVC.
[0061] В общем, кодирование символов данных с помощью CABAC включает в себя один или более из следующих этапов:
(1) Бинаризация: Если символ, подлежащий кодированию, не является бинарным значением, он отображается на последовательности так называемых "структурных элементов". Каждый структурный элемент может иметь значение "0" или "1".
(2) Назначение контекста: Каждому структурному элементу (в обычном режиме) назначается контекст. Контекстная модель определяет, как рассчитывается контекст для данного структурного элемента на основе информации, доступной для структурного элемента, такой как значения ранее кодированных символов или число структурных элементов.
(3) Кодирование структурных элементов: Структурные элементы кодируются арифметическим кодером. Для кодирования структурного элемента, арифметический кодер требует в качестве входа вероятность значения структурного элемента, то есть вероятность того, что значение структурного элемента равно "0", и вероятность того, что значение структурного элемента равно "1". (Оцененная) вероятность каждого контекста представлена целым числом, называемым “состоянием контекста". Каждый контекст имеет состояние, и, таким образом, состояние (т.е. оцененная вероятность) является тем же самым для структурных элементов, назначенных одному контексту, и отличается между контекстами.
(4) Обновление состояния: Вероятность (состояние) для выбранного контекста обновляется на основе фактического кодированного значения структурного элемента (например, если значение структурного элемента было "1," вероятность "1" увеличивается).
[0062] Следует отметить, что энтропийное кодирование с разделением интервала вероятности (PIPE) использует принципы, аналогичные принципам арифметического кодирования, и, таким образом, может также использовать метод настоящего раскрытия.
[0063] CABAC в H.264/AVC и HEVC использует состояния, и каждое состояние неявно связано с вероятностью. Существуют варианты CABAC, в которых вероятность символа ("0" или "1") используется непосредственно, то есть вероятность (или ее целочисленная версия) является состоянием. Например, такие варианты САВАС описаны в "Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor", JCTVC-A114, 1st JCT-VC Meeting, Dresden, DE, апрель 2010 г., далее упоминается как "JCTVC-A114", и A. Alshin and E. Alshina, "Multi-parameter probability update for САВАС", JCTVC-F254, 6th JCT-VC Meeting, Torino, IT, июль 2011, далее упоминается как "JCTVC-F254".
[0064] В настоящем раскрытии предложено сокращение количества бинаризаций и/или контекстов, используемых в CABAC. В частности, настоящее раскрытие предлагает методы, которые могут снизить количество контекстов, используемых в CABAC, на величину до 56. С числом на 56 меньше контекстов, экспериментальные результаты показывают, 0,00%, 0,01% и -0,13% изменения частоты искажения битов (BD) в высокоэффективном интра-режиме только, произвольном доступе и тестовых условиях малой задержки, соответственно. Таким образом, сокращение в количестве требуемых контекстов, снижает потребности в хранении как в кодере, так и декодере без существенного влияния на эффективность кодирования.
[0065] В настоящем раскрытии предложено сокращение числа контекстов CABAC, используемых для синтаксических элементов pred_typ, merge_idx, inert_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Модификации сокращают до 56 контекстов с пренебрежимо малыми изменениями в эффективности кодирования. Предлагаемые сокращения контекста для синтаксических элементов, приведенных выше, могут быть использованы по отдельности или в любой комбинации.
[0066] Синтаксический элемент pred_type включает в себя режим предсказания (pred_mode_flag) и тип разделения (part_mode) для каждой единицы кодирования. Синтаксический элемент pred_mode_flag, равный 0, определяет, что текущая единица кодирования кодирована в режиме интер-предсказания. Синтаксический элемент pred_mode_flag, равный 1, указывает, что текущая единица кодирования кодирована в режиме интра-предсказания. Синтаксический элемент part_mode определяет режим разделения текущей единицы кодирования.
[0067] Синтаксический элемент merge_jdx[х0][y0] определяет индексы кандидатов слияния списка кандидатов слияния, где х0, у0 определяют местоположение (х0, у0) верхней левой выборки яркости рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения. Когда merge_jdx[х0][y0] отсутствует, то делается вывод, что он равен 0. Список кандидатов слияния является списком соседних единиц кодирования с текущими единицами, из которых информация о движении может быть скопирована.
[0068] Синтаксический элемент inter_pred_flag[х0][y0] определяет, используется ли моно-предсказание или би-предсказание для текущей единицы предсказания. Индексы массива х0, у0 определяют местоположение (х0, у0) верхней-левой выборки яркости рассматриваемого блока предсказания относительно верхней-левой выборки яркости изображения.
[0069] Синтаксический элемент ref_idx_lx относится к конкретному опорному изображению внутри списка опорных изображений.
[0070] Синтаксические элементы cbf_cb, cbf_cr указывают, содержат блоки преобразования цветности (Cb и Cr, соответственно) ненулевые коэффициенты преобразования. Синтаксический элемент cbf_cb[х0][y0][trafoDepth], равный 1, определяет, что блок преобразования Cb содержит один или более уровней коэффициентов преобразования, не равных 0. Индексы массива х0, у0 указывают местоположение (х0, у0) верхней-левой выборки яркости рассматриваемого блока преобразования относительно верхней-левой выборки яркости изображения. Индекс массива trafoDepth указывает текущий уровень подразделения единицы кодирования на блоки с целью кодирования преобразования. Индекс массива trafoDepth равен 0 для блоков, которые соответствуют единицам кодирования. Когда cbf_cb[х0][y0][trafoDepth] не присутствует, и режимом предсказания является не интра-предсказание, значение cbf_cb[х0][y0][trafoDepth] выводится как равное 0.
[0071] Синтаксический элемент cbf_cr[х0][y0][trafoDepth], равный 1, указывает, что блок преобразования Cr содержит один или более уровней коэффициентов преобразования, не равных 0. Индексы массива х0, у0 указывают местоположение (х0, у0) верхней-левой выборки яркости рассматриваемого блока преобразования относительно верхней-левой выборки яркости изображения. Индекс массива trafoDepth указывает текущий уровень подразделения единицы кодирования на блоки с целью кодирования преобразования. Индекс массива trafoDepth равен 0 для блоков, которые соответствуют единицам кодирования. Когда cbf_cr[х0][y0][trafoDepth] не присутствует, и режимом предсказания не является интра-предсказание, значение cbf_cr[х0][y0][trafoDepth] выводится равным 0.
[0072] Синтаксический элемент coeff_abs_level_greater1_flag[n] указывает для позиции n сканирования, имеются ли уровни коэффициентов преобразования больше, чем 1. Когда coeff_abs_level_greater1_flag[n] не присутствует, то делается вывод, что он равен 0.
[0073] Синтаксический элемент coeff_abs_level_greater2_flag [n] указывает для позиции n сканирования, имеются ли уровни коэффициентов преобразования больше, чем 2. Когда coeff_abs_level_greater2_flag[n] не присутствует, делается вывод, что он равен 0.
[0074] В одном предложении для HEVC, различные бинаризации по синтаксическому элементу pred_type используются в P и B сегментах, как показано в таблице 1. Настоящее раскрытие предлагает использовать те же самые бинаризации для P и B сегментов. Примеры приведены в таблицах 2-4. Таблица 5 показывает влияние эффективности кодирования на P сегмент в стандартных условиях тестирования (см., например, F. Bossen, "Common test conditions and software reference configurations”, JCTVC-F900).
Figure 00000001
[0075] Как видно из таблицы 1, I сегменты (например, сегменты, которые включают только блоки интра-предсказания), включают в себя два различных типа предсказания (pred_type). Одна строка структурного элемента (бинаризация) используется для блока интра-предсказания с типом разделения 2Nx2N, а другая строка структурного элемента используется для блока интра-предсказания с типом разделения NxN. Как показано в таблице 1, строка структурного элемента, используемая для I сегментов, не зависит от размера CU.
[0076] Для Р и В сегментов, в Таблице 1, различные строки структурного элемента используются для каждого значения pred_type. Вновь, значение pred_type зависит как от режима предсказания (интер-предсказания или интра-предсказания), так и используемого типа разделения. Для Р и В сегментов, фактическая используемая строка структурного элемента дополнительно зависит от размера кодируемой CU и от того, поддерживается ли интер-предсказание для размера 4х4 блока.
[0077] Первый столбец под строкой структурного элемента применяется для ситуации, когда логарифмическая функция размера CU кодируемой CU превышает логарифмическую функцию минимально допустимого размера CU. Согласно одному примеру в HEVC, первый столбец строк структурного элемента используется, если cLog2CUSize>Log2MinCUsize. Логарифмическая функция используется для создания меньшего числа, так что может быть использован меньший последовательный индекс.
[0078] Если логарифмическая функция от размера CU кодируемой CU эквивалентна логарифмической функции минимально допустимого размера CU (т.е. cLog2CUSize == Log2MinCUSize), то один из столбцов 2 и 3 под строкой структурного элемента в таблице 1 используется для выбора бинаризации. Столбец 2 используется, когда логарифмическая функция от размера CU кодируемой CU эквивалентна 3, и интер-предсказание для 4x4 CU не поддерживается (т.е. cLog2CUSize == 3 &&! inter_4x4_enabled_flag). Столбец 3 используется, когда логарифмическая функция от размера CU для кодируемой CU больше, чем 3, или когда интер-предсказание для 4x4 CU поддерживается (то есть, cLog2CUSize > 3|| inter_4x4_enabled_flag).
[0079] В таблице 2 ниже показаны примеры бинаризации, где P и B сегменты используют те же строки структурного элемента, в соответствии с одним или более примерами, описанными в настоящем раскрытии. Как показано в таблице 2, P сегменты используют те же бинаризации, используемые для B сегментов в таблице 1. Таким образом, нет необходимости хранить и использовать отдельный набор контекстов для Р и В сегментов. Таким образом, общее количество контекстов, необходимых для кодирования синтаксического элемента pred_type, снижается. Кроме того, только одно отображение (вместо двух) между логикой строки структурного элемента (показано в столбцах (1) - (3)) и фактической строкой структурного элемента должно быть сохранено.
Figure 00000002
[0080] В таблице 3 ниже показан другой пример бинаризации для pred_type. В этом примере B сегменты используют те же бинаризации, что и P сегменты из Таблицы 1. Таблица 4 ниже показывает дополнительный пример, где Р сегменты и В сегменты используют те же бинаризации. Таблицы 2-4 предназначены только для того, чтобы показать примеры общих бинаризаций между Р и В сегментами. Любые бинаризации или правила бинаризации могут быть использованы так, что синтаксические элементы pred_type для P и B сегментов совместно используют те же бинаризации.
[0081] Видеокодер 20 и видеодекодер 30 могут хранить те же правила отображения и таблицы отображения (например, как показано в таблицах 2-4) для использования с P и B сегментами. Кодирование и декодирование CABAC могут быть применены к синтаксическому элементу pred_type с использованием этих отображений.
[0082] Таким образом, видеокодер 20 может быть сконфигурирован, чтобы определять первый тип предсказания для блока видеоданных в Р сегменте, представлять первый тип предсказания как синтаксический элемент типа предсказания P сегмента, определять второй тип предсказания для блока видеоданных в B сегменте, представлять второй тип предсказания как синтаксический элемент типа предсказание B сегмента, определять бинаризацию Р сегмента для синтаксического элемента типа предсказания P сегмента, определять бинаризацию B сегмента для синтаксического элемента типа предсказания В сегмента, причем синтаксический элемент типа предсказания Р сегмента и синтаксический элемент типа предсказания В сегмента определяются с использованием той же логики бинаризации, и кодировать видеоданные на основе бинаризаций синтаксического элемента типа предсказания Р сегмента и синтаксического элемента типа предсказания В сегмента.
[0083] Видеокодер 20 может быть дополнительно сконфигурирован для бинаризации синтаксического элемента типа предсказания P сегмента с определенной бинаризацией Р сегмента, бинаризации синтаксического элемента типа предсказания В сегмента с определенной бинаризацией В сегмента, применения контекстно-адаптивного бинарного арифметического кодирования (CABAC) к бинаризованному синтаксическому элементу типа прогнозирования Р сегмента и применения контекстно-адаптивного бинарного арифметического кодирования (CABAC) к бинаризованному синтаксическому элементу типа прогнозирования В сегмента.
[0084] Аналогичным образом, видео декодер 30 может быть сконфигурирован для отображения бинаризованного синтаксического элемента типа предсказания Р сегмента на тип предсказания с использованием отображения бинаризации для блока видеоданных в Р сегменте, отображения бинаризованного синтаксического элемента типа предсказания В сегмента на тип предсказания с использованием того же самого отображения бинаризации для блока видеоданных в В сегменте и декодирования видеоданных на основе отображенных типов предсказания.
[0085] Видеодекодер 30 может быть дополнительно сконфигурирован, чтобы принимать подвергнутый контекстно-адаптивному бинарному арифметическому кодированию синтаксический элемент типа предсказания Р сегмента, который указывает тип предсказания для блока видеоданных в Р сегменте, принимать подвергнутый контекстно-адаптивному бинарному арифметическому кодированию синтаксический элемент типа предсказания В сегмента, который указывает тип предсказания для блока видеоданных в В сегменте, декодировать синтаксический элемент типа предсказания Р сегмента, чтобы сформировать бинаризованный синтаксический элемент типа предсказания Р сегмента, и декодировать синтаксический элемент типа предсказания В сегмента, чтобы сформировать бинаризованный синтаксический элемент типа предсказания В сегмента.
Figure 00000003
Figure 00000004
[0086] Таблица 5 ниже показывает производительность кодирования с использованием общей бинаризации для P и B сегментов, показанных в Таблице 2. Как можно видеть из Таблицы 5, незначительная эффективность кодирования теряется (или не теряется вообще) при использовании общих бинаризаций. HE (высокая эффективность) низкой задержки P является общим тестовым условием для бинаризаций однонаправленно предсказанных (Р) сегментов. Классы A-E представляют различные разрешения кадров. Класс А соответствует разрешению 2k х 4k. Класс B соответствует разрешению 1920 х 1080. Класс C соответствует разрешению WVGA. Класс D соответствует разрешению WQVGA. Класс E соответствует разрешению 720P. Изменение от 0,1 до 0,2 процента при тестовом условии НЕ низкой задержки Р, как правило, считается незначительным.
Figure 00000005
[0087] Опционально, те же бинаризации (не ограничиваясь таблицами 2-4) для типа предсказания (включает размер предсказания и/или режим предсказания) могут быть совместно использованы в двух и более различных типах сегментов интер- предсказания. Сегменты интер-предсказания могут включать в себя, без ограничения указанным:
а. P сегмент: сегмент поддерживает только однонаправленное предсказание движения
b. В сегмент: сегмент поддерживает однонаправленное и двунаправленное предсказание движения
с. В масштабируемом кодировании видео: улучшенный слой может совместно использовать те же самые бинаризации с базовым слоем.
d. В многовидовом кодировании: разные виды (представления) могут совместно использовать те же самые бинаризации.
[0088] Когда поддерживается асимметричное разделение, четыре контекста, поровну разделенные на два набора контекстов, используются для CABAC на последних двух структурных элементах для сигнализации синтаксического элемента pred_type для асимметричных разделений (т.е. PART_2NxnU, PART_2NxnD, PAPT_nLx2N, PART_nRx2N). В зависимости от того, выполнено ли разделение в горизонтальном направлении или вертикальном направлении, применяется один набор контекстов. Предпоследний структурный элемент (т.е., структурный элемент типа разделения; part_mode) определяет, имеет ли текущая CU симметричные разделения или асимметричные разделения. Последний структурный элемент (т.е. структурный элемент размера разделения; part_mode) определяет, является ли размером первого разделения одна четверть или три четверти от размера CU. Таблица 6 показывает пример контекстов предпоследнего (тип разделения) и последнего (размер разделения) для синтаксического элемента pred_type.
Таблица 6.
Контексты для последних двух структурных элементов синтаксического элемента pred_type
Структурный элемент Контекст
Тип разделения (симметричный или асимметричный) Набор 1 контекстов (2 контекста, один для вертикального разделения, 1 для горизонтального разделения)
Размер разделения (первое разделение равно ¼ CU или ¾ CU) Набор 2 контекстов (2 контекста, один для ¼ CU и один для ¾ CU)
[0089] Настоящее раскрытие предлагает использовать один контекст для предпоследнего структурного элемента (т.е., структурного элемента типа разделения) и использовать режим обхода на последнем структурном элементе (т.е. структурном элементе размера разделения). В результате, число контекстов уменьшается с 4 до 1. Таблица 7 показывает пример контекста, используемого согласно данному примеру настоящего раскрытия. Таблица 8 показывает производительность кодирования, связанную с предлагаемыми изменениями. Высокая эффективность (НЕ) произвольного доступа является тестовым условием с кадрами произвольного доступа. НЕ низкой задержки B является тестовым условием, которое допускает двунаправленное предсказание.
Таблица 7.
Контексты для последних двух структурных элементов синтаксического элемента pred_type в соответствии с примером настоящего раскрытия.
Структурный элемент Контекст
Тип разделения (симметричный или асимметричный) Набор 1 контекстов (1 контекст)
Размер разделения (первое разделение равно ¼ CU или ¾ CU) Режим обхода (ни одного контекста)
Figure 00000006
[0090] Таким образом, согласно этому примеру, видеокодер 20 может быть сконфигурирован, чтобы определять тип разделения для режима предсказания для блока видеоданных, кодировать структурный элемент типа разделения синтаксического элемента типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования с одним контекстом, причем один контекст является одинаковым для любого типа разделения, и кодировать структурный элемент размера разделения синтаксиса типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования в режиме обхода.
[0091] Кроме того, согласно этому примеру, видеодекодер 30 может быть сконфигурирован, чтобы принимать синтаксический элемента типа предсказания для блока видеоданных, который был кодирован с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем синтаксический элемент типа предсказания включает в себя структурный элемент типа разделения, представляющий тип разделения, и структурный элемент размера разделения, представляющий размер разделения, декодировать структурный элемент типа разделения синтаксического элемента типа предсказания с использованием контекстно-адаптивного бинарного арифметического кодирования с одним контекстом, причем один контекст является одинаковым для любого типа разделения, и декодировать структурный элемент размера разделения синтаксиса типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования в режиме обхода.
[0092] В другом примере, при кодировании прямоугольного типа разделения, режим обхода или один контекст может быть использован для структурного элемента, который указывает, является ли режимом разделения PART_nLx2N или PART_nRx2N, или же режимом является PART_2NxnU, PART_2NxnD. Использование режима обхода или одного контекста применимо, потому что вероятность любого используемого режима разделения близка к 50%. Также опционально режим обхода или один контекст может быть использован для структурного элемента, который указывает, является ли режим симметричным разделением или асимметричным разделением.
[0093] Следующий пример настоящего раскрытия относится к сигнализации в режиме «слияния» интер-предсказания. В режиме слияния, кодер инструктирует декодер, через сигнализацию битового потока синтаксиса предсказания, копировать вектор движения, опорный индекс (идентифицирующий опорное изображение, в данном списке опорных изображений, на которое указывает вектор движения) и направление предсказания движения (которое идентифицирует список опорных изображений (Список 0 или Список 1), т.е., с точки зрения того, предшествует ли во времени опорный кадр или следует за текущим кадром) от выбранного вектора движения-кандидата для текущей части изображения, которое должно кодироваться. Это выполняется посредством сигнализации в битовом потоке индекса в список векторов движения-кандидатов, идентифицирующего выбранный вектор движения-кандидат (то есть, конкретный кандидат пространственного предсказателя вектора движения (MVP) или кандидат временного MVP).
[0094] Таким образом, в режиме слияния, синтаксис предсказания может включать в себя флаг, идентифицирующий режим (в данном случае режим слияния) и индекс (merge_idx), идентифицирующий выбранный вектор движения-кандидат. В некоторых случаях, вектор движения-кандидат будет в причинной части по отношению к текущей части. То есть, вектор движения-кандидат будет уже декодирован декодером. Таким образом, декодер уже принял и/или определил вектор движения, опорный индекс и направление движения предсказания для причинной части. Таким образом, декодер может просто извлечь вектор движения, опорный индекс и направление предсказания движения, ассоциированные с причинной частью, из памяти и скопировать эти значения в качестве информации движения для текущей части. Для восстановления блока в режиме слияния, декодер получает блок предсказания, используя полученную информацию движения для текущей части, и добавляет остаточные данные к блоку предсказания для восстановления кодированного блока.
[0095] В HM4.0, один из пяти кандидатов слияния сигнализируется, когда текущая PU находится в режиме слияния. Усеченный унарный код используется для представления синтаксического элемента merge_idx. В одном предложении для HEVC, для CABAC, каждый структурный элемент использует один контекст. Настоящее раскрытие предлагает использовать один контекст повторно во всех четырех структурных элементах, как показано в таблице 9.
Таблица 9.
Контексты для последних двух структурных элементов синтаксического элемента pred_type.
Структурный элемент Контекст
Структурный элемент 0-3 для merge_idx Набор 1 контекста (тот же контекст для всех структурных элементов)
[0096] Таблица 10 показывает производительность кодирования, связанную с этим примером.
Figure 00000007
[0097] Опционально, более чем один контекст может быть использован в кодировании индекса слияния, при этом некоторые структурные элементы совместно используют тот же самый контекст, и некоторые структурные элементы используют различные контексты. В качестве одного примера, только последовательные структурные элементы (bin) совместно используют тот же контекст. Например, bin2 и bin3 могут совместно использовать один контекст; bin2 и bin4 не могут совместно использовать один и тот же контекст, если только bin3 также не использует этот контекст.
[0098] В качестве другого примера, предположим, что общее количество структурных элементов индекса слияния равно N (первый структурный элемент есть bin0, последний структурный элемент есть bin N-1). Y порогов, thresi, i=1, …, у, используются для определения контекста, совместно использующегося в кодировании индекса слияния. В этом примере, следующие правила указывают, как контексты совместно используются между структурными элементами:
1. 0<Y<N (имеется меньше порогов, чем структурных элементов)
2. thresi<thresi+1
3. 0<thres1
4. thresY=N
5. binj будет совместно использовать один контекст, где i={thresY, …, thresi+1-1}
[0099] На основании этих правил, предыдущий способ, в котором один контекст многократно использоваться во всех четырех структурных элементах, можно рассматривать как один случай, где N=4, Y=1, thres1=4. Поэтому структурные элементы от 0 до 3 совместно используют тот же контекст.
[0100] Другой пример включает в себя установку N=4, Y=2, thres1=2, thres2=4. В этом примере, bin0 и bin1 совместно используют одни и те же контексты, и bin2 и bin3 совместно используют одни и те же контексты.
[0101] Флаг интер-предсказания (inter_pred_flag) определяет, используется ли моно-предсказание или би-предсказание для текущей PU. В некоторых примерах индекс контекста для флага интер-предсказания равен текущей глубине CU. Так как имеется четыре возможных глубины CU (0-3), то существует четыре возможных контекста для кодирования inter_pred_flag.
[0102] Настоящее раскрытие предполагает, что индекс контекста, используемый для выбора контекста для кодирования inter_pred_flag, равен текущей глубине CU (например, уровень декомпозиции квадродерева для CU), но ограничен выбранным порогом (то есть меньшим из текущей глубины CU или порога). Порог может быть выбран равным 2 в одном примере. Альтернативно, индекс контекста может быть равным максимальной глубине CU минус текущую глубину CU и ограничен сверху выбранным порогом. Альтернативно, предопределенная таблица отображения может быть спроектирована для выбора индекса контекста по заданной глубине CU. Таблица отображения может быть реализована в виде набора логики. В результате три контекста используются для кодирования синтаксического элемента между inter_pred_flag.
[0103] Таблица 11 показывает производительность кодирования, когда таблица инициализации изменяется, но количество контекстов не изменяется. Таблица 12 показывает производительность кодирования предлагаемого способа, который уменьшает количество контекстов с 4 до 3.
Figure 00000008
Figure 00000009
[0104] Индекс опорного кадра (ref_idx_lx) сигнализируется с помощью усеченного унарного кода по отношению к активному опорному кадру в ассоциированном списке (например, Список0 или Список1). Три контекста используются для кодирования индекса опорного кадра. Один контекст - для структурного элемента 0, один контекст - для структурного элемента 1 и один контекст используется для остальной части структурных элементов. Таблица 13 показывает пример назначений контекста для структурных элементов унарного кода для ref_idx_lx.
Таблица 13.
Назначение контекста для структурных элементов ref_idx_lx
Структурные элементы унарного кода ref_idx_lx Контекст
Структурный элемент 0 Контекст 1
Структурный элемент 1 Контекст 2
Структурные элементы 2-N (N - общее число структурных элементов) Контекст 3
[0105] Настоящее раскрытие предлагает использование двух контекстов для кодирования унарного кода для ref_idx_lx; один контекст для структурного элемента 0 и другой контекст для остальных структурных элементов. Таблица 14 показывает пример назначения контекста для структурных элементов унарного кода для ref_idx_lx согласно этому примеру настоящего раскрытия. Таблица 15 показывает производительность кодирования, ассоциированную с предложенными модификациями.
Таблица 14.
Назначение контекста для структурных элементов ref_idx_lx
Структурные элементы унарного кода ref_idx_lx Контекст
Структурный элемент 0 Контекст 1
Структурные элементы 1-N (N - общее число структурных элементов) Контекст 2
Figure 00000010
[0106] Для синтаксических элементов флага кодированного блока цветности (cbf_cb и cbf_cr), два различных набора контекстов (5 контекстов в каждом наборе контекстов) используются для CABAC. Индекс фактического контекста, используемого в каждом наборе, равен текущей глубине преобразования, ассоциированной с флагом кодированного блока цветности, который кодируется. Таблица 16 показывает наборы контекстов для флагов кодированного блока цветности cbf_cb и cbf_cr.
Таблица 16.
Наборы контекстов для cbf_cb и cbf_cr.
Флаг кодированного блока цветности Набор контекстов
cbf_cb Набор контекстов 1 (5 контекстов)
cbf_cr Набор контекстов 2 (5 контекстов)
[0107] Настоящее раскрытие предлагает, что cbf_cb и cbf_cr совместно используют один набор контекстов. Индекс действительного контекста, используемого в каждом наборе, может все еще быть равным текущей глубине преобразования, ассоциированной с флагом кодированного блока цветности, который кодируется. Таблица 17 показывает наборы контекстов для флагов кодированного блока цветности cbf_cb и cbf_cr согласно примерам настоящего раскрытия. Таблица 18 показывает производительность кодирования, ассоциированную с предложенными модификациями.
Таблица 17.
Наборы контекстов для cbf_cb и cbf_cr согласно примерам настоящего раскрытия.
Флаг кодированного блока цветности Набор контекстов
cbf_cb Набор контекстов 1 (5 контекстов)
cbf_cr Набор контекстов 1 (5 контекстов)
Figure 00000011
[0108] Таким образом, согласно этому примеру, как видеокодер 20, так и видеодекодер 30 могут быть конфигурированы, чтобы кодировать флаг кодированного блока цветности Cb для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем CABAC использует набор контекстов, включающий в себя один или более контекстов, и кодировать флаг кодированного блока цветности Cr с использованием CABAC, причем CABAC использует тот же набор контекстов, как и для флага кодированного блока цветности Cb. Видеокодер 20 и видеодекодер 30 могут быть дополнительно сконфигурированы для выбора контекста из одного или более контекстов на основе глубины преобразования блока преобразования блока, ассоциированного с блоком видеоданных.
[0109] В одном предложении для HEVC, имеется двенадцать наборов контекстов как для coeff_abs_level_greater1_flag, так и coeff_abs_level_greater2_flag. coeff_abs_level_greater1_flag указывает, имеет ли коэффициент преобразования абсолютное значение, больше, чем 1. coeff_abs_level_greater2_flag указывает, имеет ли коэффициент преобразования абсолютное значение, больше, чем 2. Наборы контекстов одинаково назначаются для компонента яркости и цветности, т.е. 6 наборов контекстов для яркости и 6 контекстов для цветности. Каждый набор контекстов состоит из 5 контекстов. Индекс набора контекстов, ctxSet, выбран на основе предыдущего уровня coeff_abs_level_greater1_flag. Для coeff_abs_level_greater1_flag индекс контекста в наборе контекстов, greater1Ctx, определяется на основе концевых единиц до максимум 4. Индекс контекста может быть представлен в виде:
ctxIdx_level_greater1=(ctxSet * 5)+Min(4, greater 1Ctx) (1)
[0110] Для coeff_abs_level_greater2_flag, индекс контекста в наборе контекстов, greater2Ctx, основывается на числе coeff_abs_level_greater1_flag, составляющем от 1 до максимум 4. Индекс контекста может быть представлен в виде:
ctxIdx_level_greater2=(ctxSet * 5)+Min(4, greater2Ctx) (2)
greater1Ctx основан на числе для значимых коэффициентов и числе коэффициентов, которые больше 1. С другой стороны, greater2Ctx основан на числе коэффициентов, которые больше, чем 1.
[0111] В некоторых примерах различное число контекстов может быть использовано в различных наборах контекстов, в том числе, например:
1. Наборы контекстов для уровня большего, чем 1, или уровня большего, чем 2, могут иметь разное число контекстов. Например, наборы контекстов 0 и 3 могут иметь 5 контекстов, а остальные наборы контекстов могли бы иметь 2 контекста.
2. Наборы контекстов для коэффициента яркости могут иметь разное число контекстов по сравнению с наборами контекстов для компонента цветности. Например, набор контекстов 0 для яркости может иметь 5 контекстов, а набор контекстов 0 для цветности может иметь 4 контекста.
3. Набор контекстов для уровня большего, чем 1, может иметь отличающееся число контекстов, по сравнению с набором контекстов для уровня большего, чем 2. Например, набор контекстов 0 для уровня большего, чем 1, может иметь 5 контекстов, и набор контекстов 0 для уровня большего, чем 2, мог бы иметь только 3 контекста.
[0112] В других примерах может быть использовано другое число для наборов контекстов для кодирования больше 1 или больше 2, в том числе, например:
1. Наборы контекстов для коэффициента яркости могут иметь отличающееся число наборов контекстов по отношению к наборам контекстов, используемых для компонента цветности. Например, яркость могла бы использовать 6 контекстов, а цветность могла бы использовать 4 контекста.
2. Наборы контекстов для больше 1 могут иметь другое число контекстов по отношению к используемым наборам контекстов больше 2. Например, в случае больше 1 могло бы использоваться 6 контекстов, а в случае больше 2 могло бы использоваться 4 контекста.
[0113] Опционально, используется метрика для определения того, какой контекст используется в наборе контекстов, и диапазон значения метрики больше, чем число контекстов в наборе контекстов. В одном таком аспекте один контекст мог бы быть ассоциирован с одним или более значений метрики. Совместное использование контекста предпочтительно ограничено непрерывными значениями. Например, пусть значение метрики равно у. у=2 ассоциировано с контекстом 3, и у=1 и у=4 также могут быть ассоциированы с контекстом 3. Однако если у=3 ассоциировано с контекстом 4, у=4 не может быть ассоциировано с контекстом 3.
[0114] Например, для coeff_abs_level_greater1_flag, наборы контекстов 0 и 3 имеют 5 контекстов, а наборы контекстов 1, 2, 4 и 5 имеют 2 контекста. Для coeff_abs_level_greater2_flag, наборы контекстов 0, 1 и 2 имеют 5 контекстов, а наборы контекстов 3, 4 и 5 имеют 2 контекста. Это может быть представлено в виде:
ctxIdx_level_greater1=(ctxSet * 5)+Min(Thres_greater1, greater1Ctx)(3)
если ctxSet=0 или ctxSet=3, Thres_greater1=4;
в противном случае, Thres_greater1=1
ctxIdx_level_greater2=(ctxSet * 5)+Min(Thres_greater2, greater2Ctx)(4)
если ctxSet <3, Thres_greater2=4;
в противном случае, Thres_greater2=1
Thres_greater1 и Thres_greater2 можно выбрать различным образом в зависимости от следующих ситуаций:
1. Компонент яркости или цветности
2. Наборы контекстов
[0115] В качестве другого примера, для coeff_abs_level_greater1_flag, наборы контекстов 0 и 3 имеют 5 контекстов, и наборы контекстов 1, 2, 4 и 5 имеют 3 контекста. Для coeff_abs_level_greater2_flag, наборы контекстов 0, 1 и 2 имеют 5 контекстов, и наборы контекстов 3, 4 и 5 имеют 2 контекста. Это может быть представлено в виде:
ctxIdx_level_greater1=(ctxSet*5)+greater1Ctx_mapped(3) ctxIdx_level_greater2=(ctxSet*5)+greater2Ctx_mapped(4)
[0116] В таких примерах отображение может быть таким, как показано в Таблицах 19 и 20:
Figure 00000012
Figure 00000013
[0117] Таблицы инициализации CABAC для coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag также модифицированы для наборов контекстов для Thres_greater1 или Thres_greater2, равного 1. Модификации перемещают инициализацию пятого контекста вперед, чтобы стать инициализацией второго контекста. Этот предложенный способ уменьшает количество контекстов от 120 до 78.
Figure 00000014
[0118] Таблица 21 перечисляет число контекстов для всех синтаксических элементов, упомянутых в предыдущих разделах. Общее снижение составляет 56 контекстов.
Figure 00000015
[0119] На фиг. 2 представлена блок-схема, иллюстрирующая примерный видеокодер 20, который может реализовать способы, описанные в настоящем раскрытии. Видеокодер 20 может выполнять интра- и интер-кодирование блоков видео в сегментах видео. Интра-кодирование опирается на пространственное предсказание для уменьшения или устранения пространственной избыточности в видео в течение определенного видеокадра или изображения. Интер-кодирование основывается на временном предсказании для уменьшения или устранения временной избыточности в видео в смежных кадрах или изображениях видеопоследовательности. Интра-режим (режим I) может относиться к любому из нескольких режимов пространственного сжатия. Интер-режимы, такие как однонаправленное предсказание (режим P) или двунаправленное предсказание (режим B), могут относиться к любому из различных режимов временного сжатия.
[0120] В примере на фиг. 2, видеокодер 20 включает в себя модуль 35 разделения, модуль 41 предсказания, память 64 опорных изображений, сумматор 50, модуль 52 преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 41 предсказания включает в себя модуль 42 оценки движения, модуль 44 компенсации движения и модуль 46 интра-предсказания. Для восстановления блоков видео, видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Фильтр устранения блочности (не показан на фиг. 2) также может быть включен, чтобы фильтровать границы блоков для устранения артефактов блочности из восстановленного видео. При желании, фильтр устранения блочности, как правило, фильтрует выходной сигнал сумматора 62. Дополнительные фильтры контура (в контуре или после контура) также могут быть использованы в дополнение к фильтру устранения блочности.
[0121] Как показано на фиг. 2, видеокодер 20 принимает видеоданные, и модуль 35 разделения разделяет данные на блоки видео. Такое разделение может также включать разделение на сегменты (слайсы), мозаичные элементы (плитки) или другие крупные единицы, а также разделение блока видео, например, в соответствии со структурой квадродерева LCU и CU. Видеокодер 20 обычно иллюстрирует компоненты, которые кодируют блоки видео в сегменте видео, подлежащем кодированию. Сегмент может быть разделен на несколько блоков видео (и, возможно, в наборы блоков видео, называемых плитками). Модуль 41 предсказания может выбрать один из множества возможных режимов кодирования, таких как один из множества режимов интра-кодирования или один из множества режимов интер-кодирования для текущего блока видео на основе результатов по ошибкам (например, скорость кодирования и уровень искажений). Модуль 41 предсказания может предоставить в результате интра- или интер-кодированный блок на сумматор 50 для формирования остаточных данных блока и на сумматор 62 для восстановления кодированного блока для использования в качестве опорного изображения.
[0122] Модуль 46 интра-предсказания в модуле 41 предсказания может выполнять кодирование с интра-предсказанием текущего блока видео по отношению к одному или более соседних блоков в том же кадре или сегменте в качестве текущего блока, подлежащего кодированию, чтобы обеспечить пространственное сжатие. Модуль 42 оценки движения и модуль 44 компенсации движения в модуле 41 предсказания выполняют кодирование с интер-предсказанием текущего блока видео по отношению к одному или более блоков предсказания в одном или более опорных изображений, чтобы обеспечить временное сжатие.
[0123] Модуль 42 оценки движения может быть выполнен с возможностью определения режима интер-предсказания для сегмента видео в соответствии с предопределенным шаблоном для видеопоследовательности. Предопределенный шаблон может обозначить сегменты видео в последовательности как Р сегменты, B сегменты или GPB (обобщенные P/B) сегменты. Модуль 42 оценки движения и модуль 44 компенсации движения могут быть с высокой степенью интеграции, но проиллюстрированы отдельно для концептуальных целей. Оценка движения, осуществляемая модулем 42 оценки движения, является процессом генерации векторов движения, который оценивает движение для блоков видео. Вектор движения, например, может указывать смещение PU блока видео внутри текущего видеокадра или изображения по отношению к блоку прогнозирования в опорном изображении.
[0124] Блок предсказания представляет собой блок, который находится в точном соответствии с PU кодируемого блока видео в смысле пиксельной разности, который может быть определен суммой абсолютных разностей (SAD), суммой квадратичных разностей (SSD) или другими разностными метриками. В некоторых примерах, видеокодер 20 может вычислять значения для суб-целых пиксельных позиций опорных изображений, хранящихся в памяти 64 опорных изображений. Например, видеокодер 20 может интерполировать значения в одну четверть пиксельных позиций, одну восьмую пиксельных позиций или других дробных пиксельных позиций опорного изображения. Таким образом, модуль 42 оценки движения может выполнять поиск движения относительно полных пиксельных позиций и дробных пиксельных позиций и выводить вектор движения с дробной пиксельной точностью.
[0125] Модуль 42 оценки движения вычисляет вектор движения для PU блока видео в интер-кодированном сегменте путем сравнения положения PU с положением блока прогнозирования опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (список 0) или второго списка опорных изображений (Список 1), каждый из которых идентифицирует одно или более опорных изображений, сохраненных в памяти 64 опорных изображений. Модуль 42 оценки движения передает вычисленный вектор движения на модуль 56 энтропийного кодирования и модуль 44 компенсации движения.
[0126] Компенсация движения, осуществляемая модулем 44 компенсации движения, может включать в себя извлечение или генерацию блока предсказания на основе вектора движения, определяемого оценкой движения, возможно, выполняя интерполяцию с субпиксельной точностью. После приема вектора движения для PU текущего блока видео, модуль 44 компенсации движения может определить положение блока предсказания, на который указывает вектор движения в одном из списков опорных изображений. Видеокодер 20 формирует остаточный блок видео путем вычитания пиксельных значений блока предсказания из пиксельных значений текущего кодируемого блока видео, образуя пиксельные разностные значения. Пиксельные разностные значения образуют остаточные данные для блока и могут включать разностные компоненты как яркости, так и цветности. Сумматор 50 представляет собой компонент или компоненты, которые выполняют эту операцию вычитания. Модуль 44 компенсации движения также может генерировать синтаксические элементы, ассоциированные с блоками видео и сегментами видео, для использования видеодекодером 30 при декодировании блоков видео сегмента видео.
[0127] Модуль 46 интра-предсказания может интра-предсказывать текущий блок, в качестве альтернативы интер-предсказанию, выполняемому модулем 42 оценки движения и модулем 44 компенсации движения, как описано выше. В частности, модуль 46 интра-предсказания может определить режим интра- предсказания, используемый для кодирования текущего блока. В некоторых примерах модуль 46 интра-предсказания может кодировать текущий блок, используя различные режимы интра-предсказания, например, во время отдельных проходов кодирования, и модуль 46 интра-предсказания 46 (или модуль 40 выбора режима, в некоторых примерах) может выбрать соответствующий режим интра-предсказания для использования из протестированных режимов. Например, модуль 46 интра-предсказания может вычислять значения соотношения скорость-искажение путем анализа соотношения скорость-искажение для различных протестированных режимов интра-предсказания и выбрать режим интра-предсказания, имеющий лучшие характеристики соотношения скорость-искажение среди протестированных режимов. Анализ скорость-искажение обычно определяет величину искажения (или ошибку) между кодированным блоком и исходным, некодированным блоком, который был закодирован для получения кодированного блока, а также скорость передачи битов (то есть, число битов), используемую для генерации кодированного блока. Модуль 46 интра-предсказания может вычислять отношения искажений и скоростей для различных кодированных блоков, чтобы определять, какой режим интра-предсказания демонстрирует лучшее значение соотношения скорости-искажения для блока.
[0128] В любом случае, после выбора режима интра-предсказания для блока, модуль 46 интра-предсказания может предоставлять информацию, указывающую на выбранный режим интра-предсказания, на модуль 56 энтропийного кодирования. Модуль 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим интра-предсказания, в соответствии с методами настоящего изобретения. Видеокодер 20 может включать в передаваемый битовый поток данные конфигурации, которые могут включать в себя множество таблиц индексов режима интра- предсказания и множество таблиц индексов модифицированного режима интра-предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и указания наиболее вероятного режима интра-предсказания, таблицы индексов режима интра-предсказания и таблицы индексов модифицированного интра-предсказания, чтобы использовать для каждого из контекстов.
[0129] После того как модуль 41 предсказания генерирует блок предсказания для текущего блока видео посредством интер-предсказания или интра-предсказания, видеокодер 20 формирует остаточный блок видео путем вычитания блока предсказания из текущего блока видео. Остаточные видеоданные в остаточном блоке могут включаться в одну или более TU и подаваться на модуль 52 преобразования. Модуль 52 преобразования преобразует остаточные видеоданные в остаточные коэффициенты преобразования, используя преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально подобное преобразование. Модуль 52 преобразования может преобразовывать остаточные видеоданные из пиксельной области в область преобразования, например, частотную область.
[0130] Модуль 52 преобразования может отправить полученные в результате коэффициенты преобразования на модуль 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования для дальнейшего снижения битовой скорости. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована путем настройки параметра квантования. В некоторых примерах, модуль 54 квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы, модуль 56 энтропийного кодирования может выполнять сканирование. В качестве одного примера, методы кодирования, описанные в настоящем раскрытии, могут быть выполнены полностью или частично модулем 56 энтропийного кодирования. Однако аспекты настоящего описания не ограничены этим. Например, методы кодирования, описанные в настоящем раскрытии, могут быть выполнены компонентом видеокодера 20, не показанным на фиг. 2, таким как процессор или любой другой компонент. В некоторых примерах методы кодирования настоящего раскрытия могут быть выполнены одним из других блоков или модулей, показанных на фиг. 2. В некоторых других примерах методы кодирования настоящего раскрытия могут быть выполнены с помощью комбинации блоков и модулей видеокодера 20. Таким образом, видеокодер 20 может быть сконфигурирован для выполнения примерных методов, описанных в настоящем раскрытии.
[0131] После квантования, модуль 56 энтропийного кодирования кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно- адаптивное бинарное арифметическое кодирование (CABAC), основанное на синтаксисе контекстно-адаптивное бинарное арифметическое кодирование (SBAC), энтропийное кодирование с разделением интервала вероятности (PIPE) или другую технологию энтропийного кодирования или метод. После энтропийного кодирования модулем 56 энтропийного кодирования, кодированный битовый поток может передаваться на видеодекодер 30 или архивироваться для последующей передачи или извлечения видеодекодером 30. Блок 56 энтропийного кодирования также может энтропийно кодировать вектора движения и другие синтаксические элементы для текущего кодируемого сегмента видео.
[0132] В одном примере настоящего раскрытия, модуль 56 энтропийного кодирования может быть сконфигурирован, чтобы определять первый тип предсказания для блока видеоданных в Р сегменте, представлять первый тип предсказания как синтаксический элемент типа предсказания P сегмента, определять второй тип предсказания для блока видеоданных в B сегменте, представлять второй тип предсказания как синтаксический элемент типа предсказания B сегмента, определять бинаризацию Р сегмента для синтаксического элемента типа предсказания P сегмента, определять бинаризацию B сегмента для синтаксического элемента типа предсказания В сегмента, причем синтаксический элемент типа предсказания P сегмента и синтаксический элемент типа предсказания В сегмента определяются с использованием той же самой логики бинаризации, и кодировать видеоданные на основе бинаризации синтаксического элемента типа предсказания P сегмента и синтаксического элемента типа предсказания В сегмента.
[0133] В другом примере настоящего раскрытия, модуль 56 энтропийного кодирования может быть сконфигурирован, чтобы определять тип разделения для режима предсказания для блока видеоданных, кодировать структурный элемент типа разделения синтаксического элемента типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования с одним контекстом, причем один контекст является одинаковым для любого типа разделения, и кодировать структурный элемент типа разделения синтаксиса типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования в режиме обхода.
[0134] В другом примере настоящего раскрытия, модуль 56 энтропийного кодирования может быть сконфигурирован, чтобы кодировать флаг кодированного блока цветности Cb для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем CABAC использует набор контекстов, включающий в себя один или более контекстов, и кодировать флаг кодированного блока цветности Cr с использованием CABAC, причем СААВС использует тот же самый набор контекстов, что и для флага кодированного блока цветности Cb. Видеокодер 20 и видеодекодер 30 могут быть дополнительно сконфигурированы, чтобы выбирать контекст из одного или более контекстов на основе глубины преобразования модуля преобразования, ассоциированного с блоком видеоданных.
[0135] Модуль 58 обратного квантования и модуль 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в пиксельной области для последующего использования в качестве опорного блока опорного изображения. Модуль 44 компенсации движения может вычислять опорный блок, путем суммирования остаточного блока с блоком предсказания одного из опорных изображений в одном из списков опорных изображений. Модуль 44 компенсации движения может также применять один или более интерполяционных фильтров к восстановленному остаточному блоку для вычисления суб-целых пиксельных значений для использования в оценке движения. Сумматор 62 суммирует восстановленный остаточный блок со скомпенсированным по движению блоком предсказания, сформированным посредством модуля 44 компенсации движения, чтобы получить опорный блок для сохранения в памяти 64 опорных изображений. Опорный блок может быть использован модулем 42 оценки движения и модулем 44 компенсации движения в качестве опорного блока для интер-предсказания блока в последующем видео кадре или изображении.
[0136] На фиг. 3 представлена блок-схема, иллюстрирующая примерный видеодекодер 30, который может реализовать способы, описанные в настоящем раскрытии. В примере на фиг. 3, видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, модуль 81 предсказания, модуль 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90 и память 92 опорных изображений. Модуль 81 предсказания включает в себя модуль 82 компенсации движения и модуль 84 интра-предсказания 84. Видеодекодер 30 может в некоторых примерах выполнять проход декодирования, в общем, обратным образом к проходу кодирования, описанному со ссылкой на видеокодер 20 по фиг. 2.
[0137] Во время процесса декодирования, видеодекодер 30 принимает битовый поток кодированного видео, который представляет блоки видео сегмента кодированного видео и ассоциированные синтаксические элементы, из видеокодера 20. Модуль 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для генерации квантованных коэффициентов, векторов движения, а также других синтаксических элементов. Модуль 80 энтропийного декодирования направляет векторы движения и другие синтаксические элементы в модуль 81 предсказания. Видеодекодер 30 может получать синтаксические элементы на уровне сегмента видео и/или на уровне блока видео.
[0138] В качестве одного примера, методы кодирования, описанные в настоящем раскрытии, могут быть выполнены полностью или частично посредством модуля 80 энтропийного декодирования. Однако аспекты настоящего раскрытия не ограничены этим. Например, методы кодирования, описанные в настоящем раскрытии, могут быть выполнены компонентом видеодекодера 30, не показанным на фиг. 3, таким, как процессор или любой другой компонент. В некоторых примерах методы кодирования настоящего раскрытия могут быть выполнены одним из других блоков или модулей, показанных на фиг. 3. В еще некоторых других примерах методы кодирования настоящего раскрытия могут быть выполнены с помощью комбинации блоков и модулей видеодекодера 30. Таким образом, видеодекодер 30 может быть сконфигурирован для выполнения примерных методов, описанных в настоящем раскрытии.
[0139] В одном примере настоящего раскрытия модуль 80 энтропийного декодирования может быть сконфигурирован, чтобы отображать бинаризованный синтаксический элемент типа предсказания P сегмента на тип предсказания с использованием отображения бинаризации для блока видеоданных в Р сегменте, отображать бинаризованный синтаксический элемент типа предсказания В сегмента на тип предсказания с использованием того же отображения бинаризации для блока видеоданных в В сегменте, и декодировать видеоданные на основе отображенных типов предсказания.
[0140] В одном примере настоящего раскрытия модуль 80 энтропийного декодирования может быть сконфигурирован, чтобы принимать синтаксический элемент типа предсказания для блока видеоданных, который был закодирован с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем синтаксический элемент типа предсказания включает в себя структурный элемент типа разделения, представляющий тип разделения, и структурный элемент размера разделения, представляющий размер разделения, декодировать структурный элемент типа разделения синтаксического элемента типа предсказания с использованием контекстно-адаптивного бинарного арифметического кодирования с одним контекстом, причем один контекст является одинаковым для любого типа разделения, и декодировать структурный элемент размера разделения синтаксического элемента типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования в режиме обхода.
[0141] В другом примере настоящего раскрытия модуль 80 энтропийного декодирования может быть сконфигурирован, чтобы кодировать флаг кодированного блока цветности Cb для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем САВАС использует набор контекстов, включающий в себя один или более контекстов, и кодировать флаг кодированного блока цветности Cr с использованием CABAC, причем САВАС использует тот же самый набор контекстов, что и для флага кодированного блока цветности Cb. Видеокодер 20 и видеодекодер 30 могут быть дополнительно сконфигурированы, чтобы выбирать контекст из одного или более контекстов на основе глубины преобразования модуля преобразования, ассоциированного с блоком видеоданных.
[0142] Когда сегмент видео кодирован как интра-кодированный (I) сегмент, модуль 84 интра-предсказания модуля 81 предсказания может генерировать данные предсказания для блока видео текущего сегмента видео на основе сигнализированного режима интра-предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодирован как интер-кодированный (т.е., B, P или GPB) сегмент, модуль 82 компенсации движения модуля 81 предсказания формирует блоки предсказания для блока видео текущего сегмента видео на основе векторов движения и других синтаксических элементов, полученных из модуля 80 энтропийного декодирования. Блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видео декодер 30 может построить списки опорных кадров, список 0 и список 1, используя методы построения по умолчанию на основе опорных изображений, хранящихся в памяти 92 опорных изображений.
[0143] Модуль 82 компенсации движения определяет информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения и других синтаксических элементов и использует информацию предсказания для получения блоков предсказания для текущего декодируемого блока видео. Например, модуль 82 компенсации движения использует некоторые из полученных синтаксических элементов для определения режима предсказания (например, интра- или интер- предсказания), используемого для кодирования блоков видео сегмента видео, типа сегмента интер-предсказания (например, B сегмента, P сегмента или GPB сегмента), структурной информации для одного или более списков опорных изображений для сегмента, векторов движения для каждого интер-кодированного блока видео сегмента, состояния интер-предсказания для каждого интер-кодированного блока видео сегмента и другой информации для декодирования блоков видео в текущем сегменте видео.
[0144] Модуль 82 компенсации движения также может выполнять интерполяцию на основе интерполяционных фильтров. Модуль 82 компенсации движения может использовать интерполяционные фильтры, как используется видеокодером 20 во время кодирования блоков видео, для вычисления интерполированных значений для суб-целых пикселей опорных блоков. В этом случае модуль 82 компенсации движения может определить интерполяционные фильтры, использованные видеокодером 20, из принятых синтаксических элементов и использовать интерполяционные фильтры для получения блоков предсказания.
[0145] Модуль 86 обратного квантования обратно квантует, то есть де-квантует, квантованные коэффициенты преобразования, предоставленные в потоке битов и декодированные модулем 80 энтропийного декодирования. Процесс обратного квантования может включать использование параметра квантования, вычисленных видеокодером 20 для каждого блока видео в сегменте видео, чтобы определить степень квантования и, аналогично, степень обратного квантования, которые должны применяться. Модуль 88 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально подобный процесс обратного преобразования к коэффициентам преобразования для получения остаточных блоков в пиксельной области.
[0146] После того, как модуль 82 компенсации движения генерирует блок предсказания для текущего блока видео на основе векторов движения и других синтаксических элементов, видеодекодер 30 формирует декодированный блок видео путем суммирования остаточных блоков из модуля 88 обратного преобразования с соответствующими блоками предсказания, сгенерированными модулем 82 компенсации движения. Сумматор 90 представляет собой компонент или компоненты, которые выполняют эту операцию суммирования. При желании фильтр устранения блочности может также применяться для фильтрации декодированных блоков, чтобы удалить артефакты блочности. Другие фильтры контура (в контуре кодирования или после контура кодирования) также могут быть использованы для сглаживания пиксельных переходов или улучшения иным образом качества видео. Декодированные блоки видео в данном кадре или изображении затем сохраняются в памяти 92 опорных изображений, в которой хранятся опорные кадры, используемые для последующей компенсации движения. Память 92 опорных изображений также сохраняет декодированные видео для последующего представления на устройстве отображения, таком как устройство 32 отображения на фиг. 1.
[0147] На фиг. 6 представлена блок-схема, иллюстрирующая пример способа кодирования видео согласно настоящему раскрытию. Способ по фиг. 6 может быть реализован видеокодером 20. Видеокодер 20 может быть сконфигурирован, чтобы определять первый тип предсказания для блока видеоданных в Р сегменте (602) и представлять первый тип предсказания как синтаксический элемент типа предсказания P сегмента (604). Видеокодер 20 может быть дополнительно сконфигурирован, чтобы определять второй тип предсказания для блока видеоданных в B сегменте (606) и представлять второй тип предсказания в качестве синтаксического элемента типа предсказания В сегмента (608). Синтаксический элемент типа предсказания Р сегмента и синтаксический элемент типа предсказания B сегмента определяют режим предсказания и тип разделения. Режим предсказания может включать в себя одно из интер-предсказания и интра-предсказания. Тип разделения может включать в себя одно из симметричных разделений и асимметричных разделений.
[0148] Видеокодер 20 может быть дополнительно сконфигурирован, чтобы определять бинаризацию Р сегмента для синтаксического элемента типа предсказания Р сегмента (610) и определять бинаризацию B сегмента для синтаксического элемента типа предсказания В сегмента, причем синтаксический элемент типа предсказания Р сегмента и синтаксический элемент типа предсказания В сегмента определяются с использованием той же самой логики бинаризации (612). Видеокодер 20 может затем кодировать видеоданные на основе бинаризаций синтаксического элемента типа предсказания Р сегмента и синтаксического элемента типа предсказания В сегмента (614).
[0149] Кодирование видеоданных может содержать бинаризацию синтаксического элемента типа предсказания Р сегмента с определенными бинаризациями Р сегмента, бинаризацию синтаксического элемента типа предсказания В сегмента с определенными бинаризациями В сегмента, применение контекстно-адаптивного бинарного арифметического кодирования (CABAC) к бинаризованному синтаксическому элементу типа предсказания Р сегмента и применение контекстно-адаптивного бинарного арифметического кодирования (CABAC) к бинаризованному синтаксическому элементу типа предсказания B сегмента.
[0150] На фиг. 7 представлена блок-схема, иллюстрирующая пример способа декодирования видео согласно настоящему раскрытию. Способ по фиг. 7 может быть реализован с помощью видеодекодера 30. Видеодекодер 30 может быть сконфигурирован для приема подвергнутого контекстно-адаптивному бинарному арифметическому кодированию синтаксического элемента типа предсказания P сегмента, который указывает тип предсказания для блока видеоданных в Р сегменте (702), и приема подвергнутого контекстно-адаптивному бинарному арифметическому кодированию синтаксического элемента типа предсказания B сегмента, который указывает тип предсказания для блока видеоданных в B сегменте (704). Синтаксический элемент типа предсказания P сегмента и синтаксический элемент типа предсказания B сегмента определяют режим предсказания и тип разделения. Режим предсказания может включать в себя одно из интер-предсказания и интра- предсказания. Тип разделения может включать в себя одно из симметричных разделений и асимметричных разделений.
[0151] Видеодекодер 30 может быть дополнительно сконфигурирован, чтобы декодировать синтаксический элемент типа предсказания P сегмента для получения бинаризованного синтаксического элемента типа предсказания P сегмента (706) и декодировать синтаксический элемент типа предсказания В сегмента для получения бинаризованного синтаксического элемента типа предсказания В сегмента (708). Видеодекодер 30 может быть дополнительно сконфигурирован, чтобы отображать бинаризованный синтаксический элемент типа предсказания P сегмента на тип предсказания с использованием отображения бинаризации для блока видеоданных в Р сегменте (710), и чтобы отображать бинаризованный синтаксический элемент типа предсказания В сегмента на тип предсказания с использованием того же самого отображения бинаризации для блока видеоданных в B сегменте (712). Видеодекодер 30 может затем декодировать видеоданные на основе отображенных типов предсказания (714).
[0152] На фиг. 8 представлена блок-схема последовательности операций, иллюстрирующая пример способа кодирования видео согласно настоящему раскрытию. Способ по фиг. 8 может быть реализован видеокодером 20. Видеокодер 20 может быть сконфигурирован, чтобы определять тип разделения для режима предсказания для блока видеоданных (802) и кодировать структурный элемент типа разделения синтаксического элемента типа предсказания для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC) с одним контекстом (804). Один контекст является одинаковым для любого типа разделения. В одном примере, тип разделения является асимметричным разделением, и структурный элемент типа разделения указывает, является ли асимметричное разделение вертикально разделенным или горизонтально разделенным. Например, структурный элемент размера разделения указывает, является ли первое разделение равным одной четверти размера блока видеоданных или первое разделение равно трем четвертям размера блока видеоданных.
[0153] Видеокодер 20 может быть дополнительно сконфигурирован, чтобы кодировать структурный элемент размера разделения синтаксического элемента типа предсказания для блока видеоданных с использованием CABAC в режиме обхода (806).
[0154] На фиг. 9 представлена блок-схема последовательности операций, иллюстрирующая пример способа декодирования видео согласно настоящему раскрытию. Способ по фиг. 9 может быть реализован с помощью видеодекодера 30. Видеодекодер 30 может быть сконфигурирован, чтобы принимать синтаксический элемент типа предсказания для блока видеоданных, которые были закодированы с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем синтаксический элемент типа предсказания включает в себя структурный элемент типа разделения, представляющий тип разделения, и структурный элемент размера разделения, представляющий размер разделения (902). В одном примере, тип разделения является асимметричным разделением, и структурный элемент типа разделения указывает, является ли асимметричное разделение вертикально разделенным или горизонтально разделенным. Например, структурный элемент размера разделения указывает, является ли первое разделение равным одной четверти размера блока видеоданных или первое разделение равно трем четвертям размера блока видеоданных.
[0155] Видеодекодер 30 может быть дополнительно сконфигурирован, чтобы декодировать структурный элемент типа разделения синтаксического элемента типа предсказания с использованием CABAC с одним контекстом, причем один контекст является тем же самым для любого типа разделения (904), и декодировать структурный элемент размера разделения синтаксического элемента типа предсказания с использованием CABAC в режиме обхода (906).
[0156] На фиг. 10 представлена блок-схема последовательности операций, иллюстрирующая пример способа кодирования видео согласно настоящему раскрытию. Способ по фиг. 10 может быть реализован видеокодером 20 или видеодекодером. Для целей фиг. 10, видеокодер 20 и видеодекодер 30 будет упоминаться в совокупности как устройство кодирования видео. В соответствии с методами по фиг. 10, устройство кодирования видео может быть сконфигурировано, чтобы кодировать флаг кодированного блока цветности Cb для блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (CABAC), причем кодирование флага кодированного блока цветности Cb включает в себя использование набора контекстов, включающего в себя один или более контекстов как часть CABAC (1002), а также кодировать флаг кодированного блока цветности Cr с использованием CABAC, причем кодирование флага кодированного блока цветности Cr включает в себя использование того же набора контекстов, что и для флага кодированного блока цветности Cb, как часть CABAC (1004). В одном примере, набор контекстов включает в себя 5 контекстов.
[0157] В одном опциональном примере настоящего раскрытия устройство кодирования видео может быть дополнительно сконфигурировано, чтобы выбирать контекст из одного или более контекстов на основе глубины преобразования единицы преобразования, ассоциированной с блоком видеоданных (1006).
[0158] При работе в качестве видеокодера, устройство кодирования видео может быть дополнительно сконфигурировано, чтобы сигнализировать кодированный флаг кодированного блока цветности Cb в кодированном битовом потоке видео и сигнализировать кодированный флаг кодированного блока цветности Cr в кодированном битовом потоке видео. При работе в качестве видеодекодера, устройство кодирования видео может быть дополнительно сконфигурировано, чтобы принимать кодированный флаг кодированного блока цветности Cb в кодированном битовом потоке видео, а также принимать кодированный флаг кодированного блока цветности Cr в кодированном битовом потоке видео.
[0159] В одном или более примерах описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой их комбинации. При реализации в программном обеспечении, функции могут храниться или передаваться, как одна или более инструкций или код, на считываемом компьютером носителе и выполняться блоком обработки на основе аппаратных средств. Считываемые компьютером носители могут включать в себя считываемые компьютером носители информации, что соответствует материальному носителю, такому как носители хранения данных, или среды связи, включая любую среду, которая способствует передаче компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальному считываемому компьютером носителю хранения данных, который является не временным (нетранзитивным) или (2) коммуникационной среде, такой как сигнал или несущая волна. Носители хранения данных могут быть любыми доступными носителями, к которым могут получать доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации методов, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
[0160] В качестве примера, а не ограничения, такие считываемые компьютером носители хранения данных могут включать в себя RAM, ROM, EEPROM, CD-ROM или другой оптический диск, накопитель на магнитных дисках или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и к которому может обращаться компьютер. Кроме того, любое соединение корректно называть считываемым компьютером носителем. Например, если инструкции передаются от веб-сайта, сервера или другого удаленного источника с помощью коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио и микроволновая, то коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная, радиочастотная и микроволновая, включаются в определение носителя. Следует понимать, однако, что считываемые компьютером носители данных и средства хранения данных не включают соединения, несущие волны, сигналы или другие транзитивные среды хранения, а вместо этого направлены на нетранзитивные, материальные носители. Диски (disk и disc), как используется здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и Blu-Ray Disc, где магнитные диски (disk) обычно воспроизводят данные магнитным способом, в то время как оптические диски (disc) воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.
[0161] Инструкции могут выполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, специализированными интегральными схемами (ASIC), программируемыми логическими матрицами (FPGA) или другими эквивалентными интегрированными или дискретными логическими схемами. Соответственно, термин "процессор", как он использован здесь, может относиться к любой из указанных выше структур или любой другой структуре, пригодной для реализации описанных здесь методов. Кроме того, в некоторых аспектах, функциональность, описанная здесь, может быть представлена в специализированных аппаратных средствах и/или программных модулях, сконфигурированных для кодирования и декодирования, или включена в комбинированный кодек. Кроме того, эти методы могут быть полностью реализованы в одной или более схем или логических элементов.
[0162] Методы настоящего раскрытия могут быть реализованы в широком спектре устройств или аппаратов, включая беспроводной телефон, интегральной схемы (IC) или набор микросхем (например, чипсет). Различные компоненты, модули или блоки описаны в настоящем раскрытии, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых методов, но не обязательно требует реализации различными модулями аппаратных средств. Скорее, как описано выше, различные модули могут быть объединены в блоке аппаратных средств кодека или обеспечиваются совокупностью взаимодействующих модулей аппаратных средств, в том числе одного или более процессоров, как описано выше, в сочетании с соответствующим программным обеспечением и/или программно-аппаратными средствами.
[0163] Различные примеры были описаны. Эти и другие примеры входят в объем прилагаемой формулы изобретения.

Claims (13)

1. Способ кодирования видеоданных, содержащий:
выбор контекста из одного или более контекстов на основе глубины преобразования единицы преобразования, ассоциированной с блоком кодируемых видеоданных, при этом глубина преобразования задает текущий уровень подразделения единицы кодирования на блоки с целью преобразующего кодирования;
кодирование флага кодированного блока цветности Cb для упомянутого блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (САВАС) и выбранного контекста, причем кодирование флага кодированного блока цветности Cb содержит использование набора контекстов, включающего в себя упомянутые один или более контекстов; и
кодирование флага кодированного блока цветности Cr с использованием САВАС, причем кодирование флага кодированного блока цветности Cr содержит использование того же набора контекстов, что и для флага кодированного блока цветности Cb.
2. Способ по п. 1, в котором набор контекстов включает в себя 5 контекстов.
3. Способ по п. 1, дополнительно содержащий:
передачу кодированного флага кодированного блока цветности Cb в кодированном битовом потоке видео; и
передачу кодированного флага кодированного блока цветности Cr в кодированном битовом потоке видео.
4. Способ декодирования видеоданных, содержащий:
выбор контекста из одного или более контекстов на основе глубины преобразования единицы преобразования, ассоциированной с блоком декодируемых видеоданных, при этом глубина преобразования задает текущий уровень подразделения единицы кодирования на блоки с целью преобразующего кодирования;
декодирование флага кодированного блока цветности Cb для упомянутого блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (САВАС) и выбранного контекста, причем декодирование флага кодированного блока цветности Cb содержит использование набора контекстов, включающего в себя упомянутые один или более контекстов; и
декодирование флага кодированного блока цветности Cr с использованием САВАС, причем декодирование флага кодированного блока цветности Cr содержит использование того же набора контекстов, что и для флага кодированного блока цветности Cb.
5. Способ по п. 4, в котором набор контекстов включает в себя 5 контекстов.
6. Способ по п. 4, дополнительно содержащий:
прием кодированного флага кодированного блока цветности Cb в кодированном битовом потоке видео; и
прием кодированного флага кодированного блока цветности Cr в кодированном битовом потоке видео.
7. Устройство (20), сконфигурированное для кодирования видеоданных, содержащее:
средство (56)для выбора контекста из одного или более контекстов на основе глубины преобразования единицы преобразования, ассоциированной с блоком кодируемых видеоданных, при этом глубина преобразования задает текущий уровень подразделения единицы кодирования на блоки с целью преобразующего кодирования;
средство (56) для кодирования флага кодированного блока цветности Cb для упомянутого блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (САВАС) и выбранного контекста, причем кодирование флага кодированного блока цветности Cb содержит использование набора контекстов, включающего в себя упомянутые один или более контекстов; и
средство (56)для кодирования флага кодированного блока цветности Cr с использованием САВАС, причем кодирование флага кодированного блока цветности Cr содержит использование того же набора контекстов, что и для флага кодированного блока цветности Cb.
8. Устройство по п. 7, в котором набор контекстов включает в себя 5 контекстов.
9. Устройство по п. 7, дополнительно содержащее:
средство для передачи кодированного флага кодированного блока цветности Cb в кодированном битовом потоке видео; и
средство для передачи кодированного флага кодированного блока цветности Cr в кодированном битовом потоке видео.
10. Устройство (30), сконфигурированное для декодирования видеоданных, содержащее:
средство (80) для выбора контекста из одного или более контекстов на основе глубины преобразования единицы преобразования, ассоциированной с блоком декодируемых видеоданных, при этом глубина преобразования задает текущий уровень подразделения единицы кодирования на блоки с целью преобразующего кодирования;
средство (80) для декодирования флага кодированного блока цветности Cb для упомянутого блока видеоданных с использованием контекстно-адаптивного бинарного арифметического кодирования (САВАС) и выбранного контекста, причем декодирование флага кодированного блока цветности Cb содержит использование набора контекстов, включающего в себя упомянутые один или более контекстов; и
средство (80) для декодирования флага кодированного блока цветности Cr с использованием САВАС, причем декодирование флага кодированного блока цветности Cr содержит использование того же набора контекстов, что и для флага кодированного блока цветности Cb.
11. Устройство по п. 10, в котором набор контекстов включает в себя 5 контекстов.
12. Устройство по п. 10, дополнительно содержащее:
средство для приема кодированного флага кодированного блока цветности Cb в кодированном битовом потоке видео; и
средство для приема кодированного флага кодированного блока цветности Cr в кодированном битовом потоке видео.
13. Считываемый компьютером носитель данных, хранящий инструкции, которые при их исполнении предписывают одному или более процессорам, сконфигурированным кодировать или декодировать видеоданные, выполнять способ по любому из пп. 1-6.
RU2014123373/08A 2011-11-08 2012-10-05 Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования RU2602380C2 (ru)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161557325P 2011-11-08 2011-11-08
US61/557,325 2011-11-08
US201161561911P 2011-11-20 2011-11-20
US61/561,911 2011-11-20
US13/645,330 US9288508B2 (en) 2011-11-08 2012-10-04 Context reduction for context adaptive binary arithmetic coding
US13/645,330 2012-10-04
PCT/US2012/059100 WO2013070355A1 (en) 2011-11-08 2012-10-05 Number of context reduction for context adaptive binary arithmetic coding

Publications (2)

Publication Number Publication Date
RU2014123373A RU2014123373A (ru) 2015-12-20
RU2602380C2 true RU2602380C2 (ru) 2016-11-20

Family

ID=48223670

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014123373/08A RU2602380C2 (ru) 2011-11-08 2012-10-05 Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования

Country Status (21)

Country Link
US (5) US9288508B2 (ru)
EP (4) EP3442126A1 (ru)
JP (3) JP5847957B2 (ru)
KR (3) KR101633201B1 (ru)
CN (3) CN104040900B (ru)
AU (3) AU2012336323B2 (ru)
BR (3) BR112014011065B1 (ru)
CA (3) CA2854830C (ru)
DK (2) DK2777162T3 (ru)
ES (3) ES2549145T3 (ru)
HK (2) HK1198401A1 (ru)
HU (2) HUE027592T2 (ru)
IL (7) IL232286B (ru)
IN (3) IN2014CN03388A (ru)
MY (4) MY168697A (ru)
PL (2) PL2777160T3 (ru)
PT (2) PT2777162E (ru)
RU (1) RU2602380C2 (ru)
SG (3) SG11201401685UA (ru)
WO (3) WO2013070354A1 (ru)
ZA (2) ZA201404182B (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2780424C1 (ru) * 2019-10-09 2022-09-23 TEНСЕНТ АМЕРИКА ЭлЭлСи Способ и устройство для кодирования видео

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011146451A1 (en) * 2010-05-20 2011-11-24 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US10499063B2 (en) 2011-09-16 2019-12-03 Hfi Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in HEVC
CN103828364B (zh) 2011-09-29 2018-06-12 夏普株式会社 图像解码装置、图像解码方法及图像编码装置
IN2014CN02377A (ru) 2011-09-29 2015-06-19 Sharp Kk
US9288508B2 (en) 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
TWI613907B (zh) * 2011-11-08 2018-02-01 三星電子股份有限公司 用於解碼視訊的方法
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
MX340383B (es) * 2012-04-15 2016-07-07 Samsung Electronics Co Ltd Metodo y aparato para determinar imagenes de referencia para inter-prediccion.
PT2869563T (pt) * 2012-07-02 2018-06-25 Samsung Electronics Co Ltd Método e aparelho para codificar vídeo de entropia e método e aparelho para descodifcar vídeo de entropia
CN104604225B (zh) 2012-09-10 2018-01-26 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US10419776B2 (en) 2013-07-09 2019-09-17 Sony Corporation High level syntax improvement on inter-layer prediction for SHVC/MV-HEVC
US9571858B2 (en) 2013-07-19 2017-02-14 Futurewei Technologies, Inc. Method and apparatus of derivation for a binary partition pattern
CA2924501C (en) * 2013-11-27 2021-06-22 Mediatek Singapore Pte. Ltd. Method of video coding using prediction based on intra picture block copy
US9948934B2 (en) * 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
US20180091810A1 (en) * 2015-03-23 2018-03-29 Lg Electronics Inc. Method for processing video signal and device therefor
CN106375762B (zh) * 2015-07-22 2019-05-24 杭州海康威视数字技术股份有限公司 参考帧数据压缩方法及其装置
CN116962726A (zh) * 2016-09-20 2023-10-27 株式会社Kt 对视频进行解码和编码的方法和传输视频数据的方法
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
FR3064145A1 (fr) * 2017-03-16 2018-09-21 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
CN111316642B (zh) * 2017-10-27 2021-10-01 华为技术有限公司 信令图像编码和解码划分信息的方法和装置
US11516513B2 (en) * 2018-03-14 2022-11-29 Mediatek Inc. Method and apparatus of optimized splitting structure for video coding
CN111937404B (zh) * 2018-03-26 2023-12-15 寰发股份有限公司 一种用于视频编码器或解码器的视频编解码方法及装置
EP3777156A1 (en) 2018-03-29 2021-02-17 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Transform coefficient block coding
WO2019229146A1 (en) * 2018-05-30 2019-12-05 Huawei Technologies Co., Ltd. Method and apparatus for boundary partition
ES2945186T3 (es) 2018-06-15 2023-06-29 Lg Electronics Inc Método y aparato para la codificación de entropía basada en CABAC
CN117651149A (zh) 2018-09-10 2024-03-05 华为技术有限公司 视频解码方法及视频解码器
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
EP4231646A3 (en) * 2018-10-09 2023-11-01 Samsung Electronics Co., Ltd. Video decoding method and apparatus, and video encoding method and apparatus
WO2020084510A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Adaptive control point selection for affine coding
EP3857890A4 (en) 2018-11-06 2021-09-22 Beijing Bytedance Network Technology Co. Ltd. SIGNALING PAGE INFORMATION FOR INTERPREDICTION WITH GEOMETRIC PARTITIONING
GB2580084B (en) * 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
KR20210121021A (ko) * 2019-01-31 2021-10-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥
BR112021017154A2 (pt) * 2019-03-05 2021-11-09 Fraunhofer Ges Forschung Aparelho que compreende um codificador ou decodificador, método para codificar ou decodificar dados de imagem ou de vídeo e produto de programa de computador
CN113785588B (zh) 2019-04-12 2023-11-24 北京字节跳动网络技术有限公司 基于矩阵的帧内预测的色度编解码模式确定
WO2020221372A1 (en) * 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Context coding for matrix-based intra prediction
JP2022535726A (ja) 2019-05-31 2022-08-10 北京字節跳動網絡技術有限公司 行列ベースイントラ予測における制約されたアップサンプリングプロセス
WO2020242260A1 (ko) * 2019-05-31 2020-12-03 한국전자통신연구원 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
JP2022534320A (ja) 2019-06-05 2022-07-28 北京字節跳動網絡技術有限公司 マトリクスベースイントラ予測のためのコンテキスト決定
US11146823B2 (en) 2019-06-25 2021-10-12 Qualcomm Incorporated Signalling chroma quantization parameter (QP) mapping tables
CN113632471B (zh) * 2019-08-23 2024-02-27 腾讯美国有限责任公司 视频编解码的方法和装置
CN114556926B (zh) * 2019-10-10 2024-07-05 北京字节跳动网络技术有限公司 几何分割模式中的运动矢量处理
JP7479492B2 (ja) 2020-03-03 2024-05-08 バイトダンス インコーポレイテッド ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング
US20220353547A1 (en) * 2021-04-16 2022-11-03 Tencent America LLC Entropy coding of sign map for transform coefficients

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2369039C1 (ru) * 2007-01-12 2009-09-27 Мицубиси Электрик Корпорейшн Устройство для кодирования изображений, устройство для декодирования изображений, способ кодирования изображений и способ декодирования изображений

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0735775B1 (en) 1995-03-31 2003-05-14 Canon Kabushiki Kaisha Image processing apparatus and method
US7466843B2 (en) 2000-07-07 2008-12-16 Pryor Timothy R Multi-functional control and entertainment systems
US6961055B2 (en) * 2001-05-09 2005-11-01 Free Radical Design Limited Methods and apparatus for constructing virtual environments
CN1874509B (zh) * 2001-09-14 2014-01-15 诺基亚有限公司 基于上下文的自适应二进制算术编码的方法和***
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
CN100566420C (zh) 2002-07-15 2009-12-02 株式会社日立制作所 动态图像的编码方法
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
GB2401502B (en) 2003-05-07 2007-02-14 British Broadcasting Corp Data processing
WO2004104811A2 (en) 2003-05-20 2004-12-02 Lego A/S Method and system for manipulating a digital representation of a three-dimensional object
US7769088B2 (en) * 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7688895B2 (en) * 2003-07-22 2010-03-30 Lsi Corporation Method and/or circuit for binary arithmetic decoding decisions before termination
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
DE102004059993B4 (de) 2004-10-15 2006-08-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Bewegungsdaten-Prädiktion sowie Computerprogramm und computerlesbares Medium
KR100664936B1 (ko) 2005-04-13 2007-01-04 삼성전자주식회사 코딩 효율이 향상된 컨텍스트 기반 적응적 산술 코딩 및디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오 코딩및 디코딩 방법과 이를 위한 장치
WO2006124885A2 (en) 2005-05-12 2006-11-23 Kylintv, Inc. Codec for iptv
KR100878827B1 (ko) 2005-07-08 2009-01-14 엘지전자 주식회사 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는방법
RU2371881C1 (ru) 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
KR101158439B1 (ko) 2005-07-08 2012-07-13 엘지전자 주식회사 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는 방법
EP2228995A3 (en) 2005-09-20 2012-07-25 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
GB0524983D0 (en) 2005-12-07 2006-01-18 Imagination Tech Ltd Recompression and decompression of a data stream for rate smoothing
JP5277180B2 (ja) 2007-03-23 2013-08-28 トムソン ライセンシング 符号化ビットストリームの修正
JP5156088B2 (ja) 2007-03-23 2013-03-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号のデコーディング/エンコーディング方法及び装置
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8265144B2 (en) * 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
JP4513841B2 (ja) 2007-08-28 2010-07-28 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
CN101933331B (zh) 2007-09-06 2014-04-09 日本电气株式会社 视频编码装置、视频编码方法、视频解码方法
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
CN102187583B (zh) 2008-08-19 2013-09-11 汤姆森特许公司 基于上下文的自适应二进制算术编码(cabac)的视频流兼容性
US8831087B2 (en) 2008-10-06 2014-09-09 Qualcomm Incorporated Efficient prediction mode selection
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
JP2010278668A (ja) 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
US8294603B2 (en) 2009-06-30 2012-10-23 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
US7961122B1 (en) 2010-02-03 2011-06-14 Himax Media Solutions, Inc. Multi-bin CABAC bypass bin decoder
CN102148997A (zh) * 2010-02-04 2011-08-10 成都市世嘉电子实业有限公司 高性能cabac编码器设计方法
KR101750046B1 (ko) * 2010-04-05 2017-06-22 삼성전자주식회사 트리 구조에 따른 부호화 단위에 기반한 인루프 필터링을 수반하는 비디오 부호화 방법과 그 장치 및 복호화 방법과 그 장치
US20110280314A1 (en) 2010-05-12 2011-11-17 Texas Instruments Incorporated Slice encoding and decoding processors, circuits, devices, systems and processes
CN102231830B (zh) 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
CN107087185B (zh) * 2011-07-11 2020-01-10 太阳专利托管公司 编码方法及编码装置、解码方法及解码装置
US10499063B2 (en) * 2011-09-16 2019-12-03 Hfi Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in HEVC
US9288508B2 (en) 2011-11-08 2016-03-15 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2369039C1 (ru) * 2007-01-12 2009-09-27 Мицубиси Электрик Корпорейшн Устройство для кодирования изображений, устройство для декодирования изображений, способ кодирования изображений и способ декодирования изображений

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
статья T. NGUYEN et al. ";Modified binarization and coding of MVD for PIPE/CABAC";, опубликовано 14.07.2011, 5 стр. [он-лайн][найдено 2015-09-24], найдено в Интернет: http://wftp3.itu.int/av-arch/jctvc-site/2011_07_F_Torino/. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2780424C1 (ru) * 2019-10-09 2022-09-23 TEНСЕНТ АМЕРИКА ЭлЭлСи Способ и устройство для кодирования видео

Also Published As

Publication number Publication date
AU2012336323A1 (en) 2014-05-29
PL2777162T3 (pl) 2016-01-29
US20130114672A1 (en) 2013-05-09
CA2854814A1 (en) 2013-05-16
CA2854822C (en) 2017-06-13
ZA201404184B (en) 2022-11-30
BR112014011063A2 (pt) 2017-06-13
CA2854830C (en) 2017-02-21
IL264122B (en) 2019-10-31
BR112014011063B1 (pt) 2021-07-20
ES2550803T3 (es) 2015-11-12
KR20140098118A (ko) 2014-08-07
SG11201401682YA (en) 2014-06-27
CA2854822A1 (en) 2013-05-16
BR112014011065B1 (pt) 2021-10-05
CN104040900B (zh) 2017-05-24
JP2015502075A (ja) 2015-01-19
IL232287A0 (en) 2014-06-30
JP5847957B2 (ja) 2016-01-27
CN104040900A (zh) 2014-09-10
IL269614A (en) 2019-11-28
HK1198401A1 (en) 2015-04-17
CA2854830A1 (en) 2013-05-16
DK2777162T3 (en) 2015-11-30
ES2549145T3 (es) 2015-10-23
DK2777160T5 (da) 2019-05-20
SG11201401685UA (en) 2014-08-28
KR101633200B1 (ko) 2016-06-23
EP2777161A1 (en) 2014-09-17
IL232288A (en) 2017-05-29
EP2777160B1 (en) 2015-08-26
US20130114673A1 (en) 2013-05-09
MY168697A (en) 2018-11-29
IN2014CN03388A (ru) 2015-07-03
EP2777160A1 (en) 2014-09-17
CN103988437A (zh) 2014-08-13
JP2015502076A (ja) 2015-01-19
WO2013070353A1 (en) 2013-05-16
MY166487A (en) 2018-06-27
ES2698552T3 (es) 2019-02-05
IL255321A0 (en) 2017-12-31
RU2014122998A (ru) 2015-12-20
BR112014011060A8 (pt) 2017-06-20
EP2777161B1 (en) 2018-10-03
ES2550803T9 (es) 2019-05-17
JP5847958B2 (ja) 2016-01-27
EP3442126A1 (en) 2019-02-13
IL232287A (en) 2017-11-30
ZA201404182B (en) 2016-07-27
SG11201401687XA (en) 2014-06-27
IL232288A0 (en) 2014-06-30
IL258565A (en) 2018-05-31
KR101633199B1 (ko) 2016-06-23
IL258565B (en) 2019-01-31
US20140355669A1 (en) 2014-12-04
US9288508B2 (en) 2016-03-15
JP2014535243A (ja) 2014-12-25
IN2014CN03430A (ru) 2015-07-03
DK2777160T3 (en) 2015-12-07
PT2777160E (pt) 2015-12-07
BR112014011065A8 (pt) 2021-05-18
IL264122A (en) 2019-02-28
RU2014123373A (ru) 2015-12-20
CA2854814C (en) 2017-06-13
IL232286B (en) 2018-02-28
EP2777162B1 (en) 2015-08-19
IN2014CN03460A (ru) 2015-07-03
BR112014011065A2 (pt) 2017-06-13
AU2012336234B2 (en) 2015-12-10
MY189724A (en) 2022-02-28
AU2012336324B2 (en) 2016-03-31
EP2777160B9 (en) 2019-03-27
US9237358B2 (en) 2016-01-12
HK1199152A1 (en) 2015-06-19
AU2012336323B2 (en) 2015-12-10
AU2012336324A1 (en) 2014-05-29
BR112014011063A8 (pt) 2017-06-20
MY167205A (en) 2018-08-13
HUE026070T2 (en) 2016-05-30
IL269614B (en) 2020-10-29
WO2013070354A1 (en) 2013-05-16
US9277241B2 (en) 2016-03-01
IL232286A0 (en) 2014-06-30
BR112014011060B1 (pt) 2021-07-13
AU2012336234A1 (en) 2014-05-29
WO2013070355A1 (en) 2013-05-16
KR20140098117A (ko) 2014-08-07
CN103988437B (zh) 2017-03-01
BR112014011060A2 (pt) 2017-06-13
US9172976B2 (en) 2015-10-27
JP5964448B2 (ja) 2016-08-03
KR101633201B1 (ko) 2016-06-23
PL2777160T3 (pl) 2016-01-29
US20130114671A1 (en) 2013-05-09
US9451287B2 (en) 2016-09-20
IL255321B (en) 2018-04-30
HUE027592T2 (en) 2016-11-28
KR20140098116A (ko) 2014-08-07
CN103999367A (zh) 2014-08-20
EP2777162A1 (en) 2014-09-17
US20140355681A1 (en) 2014-12-04
RU2014123366A (ru) 2015-12-20
CN103999367B (zh) 2017-03-29
PT2777162E (pt) 2015-10-27

Similar Documents

Publication Publication Date Title
RU2602380C2 (ru) Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования
US9462275B2 (en) Residual quad tree (RQT) coding for video coding
RU2575398C2 (ru) Сокращение количества контекстов для контекстно-адаптивного бинарного арифметического кодирования
RU2575409C2 (ru) Сокращение контекста для контекстно-адаптивного бинарного арифметического кодирования

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20180302

PC41 Official registration of the transfer of exclusive right

Effective date: 20211203