RU2658883C1 - Энтропийное кодирование разностей векторов движения - Google Patents

Энтропийное кодирование разностей векторов движения Download PDF

Info

Publication number
RU2658883C1
RU2658883C1 RU2017109078A RU2017109078A RU2658883C1 RU 2658883 C1 RU2658883 C1 RU 2658883C1 RU 2017109078 A RU2017109078 A RU 2017109078A RU 2017109078 A RU2017109078 A RU 2017109078A RU 2658883 C1 RU2658883 C1 RU 2658883C1
Authority
RU
Russia
Prior art keywords
bin
motion vectors
code
differences
entropy
Prior art date
Application number
RU2017109078A
Other languages
English (en)
Inventor
Валери ГЕОРГЕ
Беньямин БРОСС
Хайнер КИРХХОФФЕР
Детлеф МАРПЕ
Тунг НГУЙЕН
Маттиас ПРАЙСС
Миша ЗИКМАНН
Ян ШТЕГЕМАНН
Томас ВИГАНД
Original Assignee
ДжиИ Видео Компрешн, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=46319135&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2658883(C1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ДжиИ Видео Компрешн, ЭлЭлСи filed Critical ДжиИ Видео Компрешн, ЭлЭлСи
Application granted granted Critical
Publication of RU2658883C1 publication Critical patent/RU2658883C1/ru

Links

Images

Classifications

    • 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/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • 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/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • 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/124Quantisation
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности энтропийного кодирования разностей векторов движения. Декодер для декодирования видео из потока данных, в который разности векторов движения кодированы с использованием бинаризаций разностей векторов движения, равных усеченному унарному коду в первом интервале области определения разностей векторов движения ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода для этого значения отсечки и суффикса в виде экспоненциального кода Голомба во втором интервале области определения разностей векторов движения включительно и выше значения отсечки, содержит энтропийный декодер для выведения усеченного унарного кода из потока данных, используя контекстно-адаптивное двоичное энтропийное декодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, и экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью для получения бинаризаций разностей векторов движения; десимволизатор для дебинаризации бинаризаций разностей векторов движения для получения целочисленных значений разностей векторов движения; восстановитель для восстановления видео, основываясь на целочисленных значениях разностей векторов движения. 7 н. и 30 з.п. ф-лы, 22 ил., 12 табл.

Description

Настоящее изобретение относится к принципу энтропийного кодирования для кодирования видеоданных.
В технике известны многие видеокодеки. Как правило, эти кодеки уменьшают необходимое количество данных, чтобы представлять видеоконтент, т.е. они сжимают данные. В контексте видеокодирования известно, что сжатие видеоданных выгодно достигается последовательным применением разных методов кодирования: используется предсказание с компенсацией движения, чтобы предсказывать содержимое изображения. Векторы движения, определенные при предсказании с компенсацией движения, а также остаток предсказания, подвергаются энтропийному кодированию без потерь. Чтобы дополнительно уменьшить количество данных сами векторы движения подвергаются предсказанию, так что только разности векторов движения, представляющие остаток предсказания вектора движения, должны энтропийно кодироваться. В H.264, например, применяется только что кратко изложенная процедура, чтобы передавать информацию о разностях векторов движения. В частности, разности векторов движения бинаризуются в строки бинов (контейнеров), соответствующие комбинации усеченного унарного кода и, от некоторого значения отсечки, экспоненциального кода Голомба. Тогда как бины экспоненциального кода Голомба легко кодируются с использованием режима равновероятного обхода с фиксированной вероятностью 0,5, для первых бинов обеспечиваются несколько контекстов. Значение отсечки выбирается равным девяти. Следовательно, обеспечивается большое количество контекстов для кодирования разностей векторов движения.
Обеспечение большого количества контекстов, однако, не только увеличивает сложность кодирования, но также может оказывать отрицательное влияние на эффективность кодирования: если контекст посещается очень редко, не выполняется эффективно вероятностная адаптация, т.е. адаптация оценки вероятности, ассоциированной с соответствующим контекстом во время причины энтропийного кодирования. Следовательно, примененные не надлежащим образом оценки вероятности оценивают фактическую статистику символов. Кроме того, если для некоторого бина бинаризации обеспечивается несколько контекстов, выбор между ними может потребовать инспектирование значений соседних бинов/синтаксических элементов, необходимость чего может препятствовать выполнению процесса декодирования. С другой стороны, если количество контекстов обеспечивается слишком малым, бины с сильно изменяющейся фактической статистикой символов группируются вместе в одном контексте и, следовательно, оценка вероятности, ассоциированная с этим контекстом, не кодирует эффективно бины, ассоциированные с ним.
Существует текущая потребность в дальнейшем повышении эффективности кодирования энтропийного кодирования разностей векторов движения.
Следовательно, задачей настоящего изобретения является обеспечение такого принципа кодирования.
Данная задача достигается объектом независимых пунктов формулы изобретения, приложенных к данному документу.
Основным решением настоящего изобретения является то, что эффективность кодирования энтропийного кодирования разностей векторов движения может быть дополнительно повышена посредством снижения значения отсечки, до которого используется усеченный унарный код, чтобы бинаризировать разности векторов движения, до двух, так что имеется только две позиции бинов усеченного унарного кода, и, если порядок единицы используется для экспоненциального кода Голомба для бинаризации разностей векторов движения от значения отсечки, и, если, дополнительно, точно один контекст обеспечивается для двух позиций бинов усеченного унарного кода, соответственно, так что не является необходимым выбор контекста, основанный на значениях бина или синтаксического элемента соседних блоков изображения, и исключается слишком мелкая классификация бинов в этих позициях бинов в контексты, так что вероятностная адаптация работает надлежащим образом, и, если одинаковые контексты используются для горизонтальных и вертикальных составляющих, тем самым дополнительно уменьшая отрицательные эффекты слишком мелкого подразделения контекста.
Кроме того, было обнаружено, что только что упомянутые установки в отношении энтропийного кодирования разностей векторов движения являются особенно ценными при объединении их с улучшенными способами предсказания векторов движения и уменьшения необходимого количества разностей векторов движения, подлежащих передаче. Например, могут обеспечиваться многочисленные предикторы вектора движения, чтобы получать упорядоченный список предикторов вектора движения, и индекс этого списка предикторов вектора движения может использоваться, чтобы определять фактический предиктор вектора движения, остаток предсказания которого представляется рассматриваемой разностью вектора движения. Хотя информация об используемом индексе списка должна выводиться из потока данных на декодирующей стороне, общее качество предсказания векторов движения повышается, и, следовательно, величина разностей векторов движения дополнительно уменьшается, так что в целом эффективность кодирования дополнительно повышается, и уменьшение значения отсечки и общее использование контекста для горизонтальных и вертикальных составляющих разностей векторов движения соответствуют такому улучшенному предсказанию вектора движения. С другой стороны, может использоваться слияние, чтобы уменьшить количество разностей векторов движения, подлежащих передаче в потоке данных: с этой целью, информация слияния может передаваться в потоке данных, сигнализируя блокам декодера о подразделении блоков, которые группируются в группу блоков. Разности векторов движения затем могут передаваться в потоке данных в единицах этих объединенных групп вместо индивидуальных блоков, таким образом уменьшая количество разностей векторов движения, которые необходимо передавать. Так как эта кластеризация блоков уменьшает взаимную корреляцию между соседними разностями векторов движения, только что упомянутое исключение обеспечения нескольких контекстов для одной позиции бина предотвращает очень мелкую классификацию схемы энтропийного кодирования в контексты в зависимости от соседних разностей векторов движения. Вместо этого, принцип слияния уже использует взаимную корреляцию между разностями векторов движения соседних блоков, и, следовательно, является достаточным один контекст для одной позиции бина - один и тот же для горизонтальной и вертикальной составляющих.
Предпочтительные варианты осуществления настоящей заявки описываются ниже в отношении фигур, среди которых:
фиг. 1 изображает блок-схему кодера согласно варианту осуществления;
фиг. 2a-2c схематически изображают разные подразделения массива элементов дискретизации, такого как изображение, на блоки;
фиг. 3 изображает блок-схему декодера согласно варианту осуществления;
фиг. 4 изображает более подробно блок-схему кодера согласно варианту осуществления;
фиг. 5 изображает более подробно блок-схему декодера согласно варианту осуществления;
фиг. 6 схематическим иллюстрирует преобразование блока из пространственной области в спектральную область, результирующий блок преобразования и его повторное преобразование;
фиг. 7 изображает блок-схему кодера согласно варианту осуществления;
фиг. 8 изображает блок-схему декодера, пригодного для декодирования битового потока, генерируемого кодером по фиг. 8, согласно варианту осуществления;
фиг. 9 изображает схематическую диаграмму, иллюстрирующую пакет данных с мультиплексированными частичными битовыми потоками согласно варианту осуществления;
фиг. 10 изображает схематическую диаграмму, иллюстрирующую пакет данных с альтернативным сегментированием, использующим сегменты фиксированного размера, согласно другому варианту осуществления;
фиг. 11 изображает декодер, поддерживающий переключение режимов, согласно варианту осуществления;
фиг. 12 изображает декодер, поддерживающий переключение режимов, согласно другому варианту осуществления;
фиг. 13 изображает кодер, соответствующий декодеру по фиг. 11, согласно варианту осуществления;
фиг. 14 изображает кодер, соответствующий декодеру по фиг. 12, согласно варианту осуществления;
фиг. 15 изображает отображение pStateCtx и fullCtxState/256**E**;
фиг. 16 изображает декодер согласно варианту осуществления настоящего изобретения; и
фиг. 17 изображает кодер согласно варианту осуществления настоящего изобретения.
Фиг. 18 схематически изображает бинаризацию разности векторов движения согласно варианту осуществления настоящего изобретения;
фиг. 19 схематически иллюстрирует принцип слияния согласно варианту осуществления; и
фиг. 20 схематически иллюстрирует схему предсказания вектора движения согласно варианту осуществления.
Отмечается, что при описании фигур, элементы, встречающиеся на нескольких из этих фигур, обозначаются одинаковой ссылочной позицией на каждой из этих фигур, и исключается повторное описание этих элементов, что касается функциональных возможностей, чтобы исключить необязательные повторения. Тем не менее, функциональные возможности и описания, обеспечиваемые в отношении одной фигуры, также применимы к другим фигурам, если только в явной форме не указано противоположное.
Ниже сначала описываются варианты осуществления общего принципа видеокодирования, в отношении фиг. 1-10. Фиг. 1-6 относятся к части видеокодека, работающей на уровне синтаксиса. Последующие фиг. 8-10 относятся к вариантам осуществления для части кода, относящегося к преобразованию потока синтаксических элементов в поток данных и наоборот. Затем описываются конкретные аспекты и варианты осуществления настоящего изобретения в виде возможных реализаций общего принципа, представительно кратко изложенного в отношении фиг. 1-10.
Фиг. 1 изображает пример кодера 10, в котором могут быть реализованы аспекты настоящей заявки.
Кодер кодирует массив элементов 20 дискретизации информации в поток данных. Массив элементов дискретизации информации может представлять элементы дискретизации информации, соответствующие, например, значениям освещенности, значениям цветности, значениям яркости, значениям насыщенности цвета или т.п. Однако элементы дискретизации информации также могут представлять собой значения глубины в случае массива 20 элементов дискретизации, представляющего собой карту глубины, сгенерированную, например, по времени датчика света или т.п.
Кодер 10 представляет собой кодер на основе блоков. Т.е. кодер 10 кодирует массив 20 элементов дискретизации в поток 30 данных в единицах блоков 40. Кодирование в единицах блоков 40 не обязательно означает, что кодер 10 кодирует эти блоки 40 совершенно независимо один от другого. Вместо этого кодер 10 может использовать восстановления ранее кодированных блоков, чтобы экстраполировать или внутренне предсказывать остальные блоки, и может использовать степень разбиения блоков для установки параметров кодирования, т.е. для установки метода, которым кодируется каждая область массива элементов дискретизации, соответствующая соответствующему блоку.
Кроме того, кодер 10 представляет собой кодер с преобразованием. Т.е. кодер 10 кодирует блоки 40 посредством использования преобразования, чтобы переносить элементы дискретизации информации в каждом блоке 40 из пространственной области в спектральную область. Может использоваться двумерное преобразование, такое как дискретное косинусное преобразование (DCT) быстрого преобразования Фурье (FFT) или т.п. Предпочтительно, что блоки 40 имеют квадратную форму или прямоугольную форму.
Подразделение массива 20 элементов дискретизации на блоки 40, показанное на фиг. 1, служит просто для целей иллюстрации. Фиг. 1 изображает массив 20 элементов дискретизации с подразделением на обычное двумерное расположение квадратных или прямоугольных блоков 40, которые примыкают друг к другу неперекрывающимся образом. Размер блоков 40 может определяться заранее. Т.е. кодер 10 может не переносить информацию о размере блока блоков 40 в потоке 30 данных на декодирующую сторону. Например, декодер может ожидать заданный размер блока.
Однако возможно несколько альтернатив. Например, блоки могут перекрывать друг друга. Перекрытие, однако, может ограничиваться до такой степени, что каждый блок имеет часть, не перекрываемую никаким соседним блоком, или так, что каждый элемент дискретизации блоков перекрывается по максимуму одним блоком из числа соседних блоков, расположенных рядом друг с другом с текущим блоком по заданному направлению. Последнее означает, что левый и правый соседние блоки могут перекрывать текущий блок, чтобы полностью покрывать текущий блок, но они могут не накладываться друг на друга, и это же применимо к соседям в вертикальном и диагональном направлении.
В качестве другой альтернативы, подразделение массива 20 элементов дискретизации на блоки 40 может адаптироваться к содержимому массива 20 элементов дискретизации кодером 10, причем информация подразделения об используемом подразделении пересылается на сторону декодера по битовому потоку 30.
Фиг. 2a-2c изображают разные примеры для подразделения массива 20 элементов дискретизации в блоки 40. Фиг. 2a изображает подразделение на основе квадродерева массива 20 элементов дискретизации в блоки 40 разных размеров, причем типовые блоки обозначаются позициями 40a, 40b, 40c и 40d с увеличивающимся размером. В соответствии с подразделением на фиг. 2a, массив 20 элементов дискретизации сначала делится на обычное двумерное расположение древовидных блоков 40d, которые, в свою очередь, имеют индивидуальную информацию подразделения, ассоциированную с ним, в соответствии с которой некоторый древовидный блок 40d может дополнительно подразделяться или нет в соответствии со структурой квадродерева. Древовидный блок слева от блока 40d, в качестве примера, подразделяется на меньшие блоки в соответствии со структурой квадродерева. Кодер 10 может выполнять одно двумерное преобразование для каждого из блоков, показанных сплошными и пунктирными линиями на фиг. 2a. Другими словами, кодер 10 может преобразовывать массив 20 в единицах подразделения блока.
Вместо подразделения на основе квадродерева может использоваться более общее подразделение на основе нескольких деревьев, и количество дочерних узлов на уровень иерархии может отличаться между разными уровнями иерархии.
Фиг. 2b изображает другой пример для подразделения. В соответствии с фиг. 2b массив 20 элементов дискретизации сначала делится на макроблоки 40b, расположенные в обычном двумерном расположении неперекрывающимся, взаимно примыкающим образом, причем каждый макроблок 40b имеет ассоциированную с ним информацию подразделения, в соответствии с которой макроблок не подразделяется, или, если подразделяется, подразделяется обычным двумерным образом на подблоки равного размера для достижения разных степеней разбиения подразделения для разных макроблоков. Результатом является подразделение массива 20 элементов дискретизации в блоках 40 с разным размером, причем представители разных размеров обозначаются позициями 40a, 40b и 40a’. Как на фиг. 2a, кодер 10 выполняет двумерное преобразование в отношении каждого из блоков, показанных на фиг.2b сплошными и пунктирными линиями. Фиг. 2c описывается ниже.
Фиг. 3 изображает декодер 50, способный декодировать поток 30 данных, сгенерированный кодером 10 для восстановления восстановленной версии 60 массива 20 элементов дискретизации. Декодер 50 извлекает из потока 30 данных блок коэффициентов преобразования для каждого из блоков 40 и восстанавливает восстановленную версию 60 посредством выполнения обратного преобразования в отношении каждого из блоков коэффициентов преобразования.
Кодер 10 и декодер 50 могут быть выполнены с возможностью выполнения энтропийного кодирования/декодирования, чтобы вставлять информацию о блоках коэффициентов преобразования в поток данных и извлекать эту информацию из него соответственно. Ниже описываются подробности в этом отношении в соответствии с разными вариантами осуществления. Необходимо отметить, что поток 30 данных необязательно содержит информацию о блоках коэффициентов преобразования для всех блоков 40 массива 20 элементов дискретизации. Вместо этого, так как подмножество блоков 40 может кодироваться в битовый поток 30 другим образом. Например, кодер 10, вместо этого, может принять решение воздержаться от вставки блока коэффициентов преобразования для некоторого блока из блоков 40 со вставкой в битовый поток 30 параметров альтернативного кодирования, которые позволяют декодеру 50 предсказывать или иным образом наполнять соответствующий блок в восстановленной версии 60. Например, кодер 10 может выполнять анализ текстуры, чтобы определять расположение блоков в массиве 20 элементов дискретизации, который может наполняться на стороне декодера декодером посредством синтеза текстуры, и указывать это в битовом потоке соответствующим образом.
Как описывается в отношении следующих фигур, блоки коэффициентов преобразования необязательно представляют представление спектральной области исходных элементов дискретизации информации соответствующего блока 40 массива 20 элементов дискретизации. Вместо этого, такой блок коэффициентов преобразования может представлять представление спектральной области остатка предсказания соответствующего блока 40. Фиг. 4 изображает вариант осуществления для такого кодера. Кодер по фиг. 4 содержит ступень (каскад) 100 преобразования, энтропийный кодер 102, ступень 104 обратного преобразования, предиктор (предсказатель) 106 и вычитатель 108, а также сумматор 110. Вычитатель 108, ступень 100 преобразования и энтропийный кодер 102 соединены последовательно в упомянутом порядке между входом 112 и выходом 114 кодера на фиг. 4. Ступень 104 обратного преобразования, сумматор 110 и предиктор 106 соединены в упомянутом порядке между выходом ступени 100 преобразования и инвертирующим входом вычитателя 108, причем выход предиктора 106 также соединен с другим входом сумматора 110.
Кодер по фиг. 4 представляет собой блочный кодер на основе преобразования с предсказанием. Т.е. блоки массива 20 элементов дискретизации, поступающие на вход 112, предсказываются из ранее кодированных и восстановленных частей этого же массива 20 элементов дискретизации или ранее кодированных и восстановленных других массивов элементов дискретизации, которые могут предшествовать или следовать за текущим массивом 20 элементов дискретизации во времени представления. Предсказание выполняется предиктором 106. Вычитатель 108 вычитает предсказание из такого исходного блока, и ступень 100 преобразования выполняет двумерное преобразование остатков предсказания. Само двумерное преобразование или последующая мера в ступени 100 преобразования могут приводить к квантованию коэффициентов преобразования в блоках коэффициентов преобразования. Квантованные блоки коэффициентов преобразования кодируются без потерь, например, посредством энтропийного кодирования в энтропийном кодере 102, причем результирующий поток данных выводится на выходе 114. Ступень 104 обратного преобразования восстанавливает квантованный остаток, и сумматор 110, в свою очередь, объединяет восстановленный остаток с соответствующим предсказанием для получения восстановленных элементов дискретизации информации, основываясь на которых предиктор 106 может предсказывать вышеупомянутые кодируемые в настоящий момент блоки предсказания. Предиктор 106 может использовать разные режимы предсказания, такие как режимы внутреннего предсказания и режимы внешнего предсказания, чтобы предсказывать блоки, и параметры предсказания направляются энтропийному кодеру 102 для вставки в поток данных. Для каждого блока предсказания с внешним предсказанием соответствующие данные движения вставляются в битовый поток при помощи энтропийного кодера 114, чтобы предоставить возможность декодирующей стороне повторно выполнить предсказание. Данные движения для блока предсказания изображения могут включать в себя часть синтаксиса, включающую в себя синтаксический элемент, представляющий разность вектора движения, дифференциально кодирующую вектор движения для текущего блока предсказания относительно предиктора вектора движения, полученного, например, посредством заданного способа из векторов движения соседних, уже кодированных блоков предсказания.
Т.е. согласно варианту осуществления по фиг. 4 блоки коэффициентов преобразования представляют спектральное представление остатка массива элементов дискретизации, а не его фактические элементы дискретизации информации. Т.е. согласно варианту осуществления по фиг. 4 последовательность синтаксических элементов может поступать в энтропийный кодер 102 для энтропийного кодирования в поток 114 данных. Последовательность синтаксических элементов может содержать синтаксические элементы разностей векторов движения для блоков внешнего предсказания и синтаксические элементы, касающиеся карты значимостей, указывающей позиции значимых уровней коэффициентов преобразования, а также синтаксические элементы, определяющие сами значимые уровни коэффициентов преобразования, для блоков преобразования.
Необходимо отметить, что несколько альтернатив существует для варианта осуществления по фиг. 4, причем некоторые из них были описаны в вводной части описания изобретения, описание которых включено в описание фиг. 4 настоящего документа.
Фиг. 5 изображает декодер, способный декодировать поток данных, генерируемый кодером по фиг. 4. Декодер по фиг. 5 содержит энтропийный декодер 150, ступень 152 обратного преобразования, сумматор 154 и предиктор 156. Энтропийный декодер 150, ступень 152 обратного преобразования и сумматор 154 последовательно соединены между входом 158 и выходом 160 декодера по фиг. 5 в упомянутом порядке. Другой выход энтропийного декодера 150 соединен с предиктором 156, который, в свою очередь, подсоединен между выходом сумматора 154 и другим его входом. Энтропийный декодер 150 извлекает из потока данных, поступающего в декодер по фиг. 5 на входе 158, блоки коэффициентов преобразования, причем обратное преобразование применяется к блокам коэффициентов преобразования в ступени 152 для получения сигнала остатка. Сигнал остатка объединяется с предсказанием от предиктора 156 в сумматоре 154 для получения восстановленного блока восстановленной версии массива элементов дискретизации на выходе 160. Основываясь на восстановленных версиях, предиктор 156 генерирует предсказания, таким образом восстанавливая предсказания, выполняемые предиктором 106 на стороне кодера. Для получения таких же предсказаний, что и те, которые используются на стороне кодера, предиктор 156 использует параметры предсказания, которые энтропийный декодер 150 также получает из потока данных на входе 158.
Необходимо отметить, что в вышеописанных вариантах осуществления пространственная степень разбиения, с которой выполняется предсказание и преобразование остатка, не должна быть равной друг другу. Это показано на фиг. 2C. Эта фигура изображает подразделение для блоков предсказания степени разбиения предсказания сплошными линиями и степень разбиения остатка - пунктирными линиями. Как можно видеть, подразделения могут выбираться кодером независимо друг от друга. Более точно, синтаксис потока данных может учитывать определение подразделения остатка независимо от подразделения предсказания. Альтернативно, подразделение остатка может представлять собой расширение подразделения предсказания, так что каждый блок остатка или равен блоку предсказания или представляет собой надлежащее подмножество его. Это показано на фиг. 2a и фиг. 2b, например, где снова степень разбиения предсказания показана сплошными линиями и степень разбиения остатка - пунктирными линиями. Т.е. на фиг. 2a-2c все блоки, имеющие ссылочную позицию, ассоциированную с ними, будут блоками остатка, для которых будет выполняться одно двумерное преобразование, тогда как блоки со сплошными линиями большего размера, охватывающие блоки 40a с пунктирными линиями, например, будут блоками предсказания, для которых установка параметров предсказания выполняется индивидуально.
Вышеупомянутые варианты осуществления имеют в общем то, что блок (элементов дискретизации остатка или исходных элементов дискретизации) должен преобразовываться на стороне кодера в блок коэффициентов преобразования, который, в свою очередь, должен обратно преобразовываться в восстановленный блок элементов дискретизации на стороне декодера. Это изображено на фиг. 6. Фиг. 6 изображает блок 200 элементов дискретизации. В случае фиг. 6, этот блок 200 в качестве примера является квадратным и имеет 4×4 элементов 202 дискретизации в размере. Элементы 202 дискретизации регулярно располагаются по горизонтальному направлению x и по вертикальному направлению y. Посредством вышеупомянутого двумерного преобразования T, блок 200 преобразуется в спектральную область, а именно, в блок 204 коэффициентов 206 преобразования, причем блок 204 преобразования имеет такой же размер, что и блок 200. Т.е. блок 204 преобразования имеет столько коэффициентов 206 преобразования, сколько блок 200 имеет элементов дискретизации как в горизонтальном направлении, так и вертикальном направлении. Однако так как преобразование T представляет собой спектральное преобразование, позиции коэффициентов 206 преобразования в блоке 204 преобразования не соответствуют пространственным позициям, но скорее спектральным составляющим содержимого блока 200. В частности, горизонтальная ось блока 204 преобразования соответствует оси, вдоль которой спектральная частота в горизонтальном направлении монотонно увеличивается, в то время как вертикальная ось соответствует оси, вдоль которой пространственная частота в вертикальном направлении монотонно увеличивается, причем коэффициент преобразования составляющей постоянного тока (DC) располагается в углу - здесь, в качестве примера, верхний левый угол - блока 204, так что в нижнем правом углу располагается коэффициент 206 преобразования, соответствующий наибольшей частоте как в горизонтальном, так и в вертикальном направлении. Пренебрегая пространственным направлением, пространственная частота, к которой принадлежит некоторый коэффициент 206 преобразования, как правило увеличивается от верхнего левого угла к нижнему правому углу. Посредством обратного преобразования T-1, блок 204 преобразования переносится из спектральной области в пространственную область, чтобы повторно получить копию 208 блока 200. В случае отсутствия введения потерь квантования при преобразовании, восстановление будет совершенным.
Как уже отмечено выше, можно видеть на фиг. 6, что большие размеры блока у блока 200 увеличивают спектральное разрешение результирующего спектрального представления 204. С другой стороны, шум квантования стремится распространиться по всему блоку 208, и, таким образом, резкие и очень локализованные объекты в блоках 200 стремятся привести к отклонениям повторно преобразованного блока относительно исходного блока 200 из-за шума квантования. Главным преимуществом использования больших блоков является, однако, то, что отношение между количеством значимых, т.е. ненулевых (квантованных) коэффициентов преобразования, т.е. уровней, с одной стороны, и количеством незначимых коэффициентов преобразования, с другой стороны, может уменьшаться в больших блоках по сравнению с меньшими блоками, тем самым позволяя получить лучшую эффективность кодирования. Другими словами, часто значимые уровни коэффициентов преобразования, т.е. коэффициенты преобразования, не квантованные в нуль, редко распределяются по блоку 204 преобразования. Вследствие этого, согласно вариантам осуществления, описанным более подробно ниже, позиции значимых уровней коэффициентов преобразования сигнализируются в потоке данных посредством карты значимостей. Отдельно от нее, значения значимого коэффициента преобразования, т.е. уровней коэффициентов преобразования в случае, когда коэффициенты преобразования квантуются, передаются в потоке данных.
Все кодеры и декодеры, описанные выше, таким образом, выполнены с возможностью работы с некоторым синтаксисом синтаксических элементов. Т.е. вышеупомянутые синтаксические элементы, такие как уровни коэффициентов преобразования, синтаксические элементы, касающиеся карты значимостей блоков преобразования, синтаксические элементы данных движения, касающиеся блоков внешнего предсказания, и т.п., как предполагается, располагаются последовательно в потоке данных заданным образом. Такой заданный образ может представляться в виде псевдокода, как, например, сделано в стандарте H.264 или других видеокодеках.
Другими словами, вышеупомянутое описание, имеющее дело главным образом с преобразованием мультимедийных данных, здесь, в качестве примера, видеоданные, в последовательность синтаксических элементов в соответствии с предварительно определенной синтаксической структурой, задающей некоторые типы синтаксических элементов, его семантикой и порядком среди них. Энтропийный кодер и энтропийный декодер по фиг. 4 и 5 может быть выполнен с возможностью работы, и может быть структурирован, как кратко изложено ниже. Они отвечают за выполнение преобразования между последовательностью синтаксических элементов и потоком данных, т.е. потоком символов или битов.
Энтропийный кодер согласно варианту осуществления изображен на фиг. 7. Кодер без потерь преобразует поток синтаксических элементов 301 в множество из двух или более частичных битовых потоков 312.
В предпочтительном варианте осуществления изобретения каждый синтаксический элемент 301 ассоциируется с категорией множества из одной или нескольких категорий, т.е. типом синтаксического элемента. В качестве примера, категории могут задавать тип синтаксического элемента. В контексте гибридного видеокодирования отдельная категория может ассоциироваться с режимами кодирования макроблоков, режимами кодирования блоков, индексами опорного изображения, разностями векторов движения, флагами подразделения, флагами кодированного блока, параметрами квантования, уровнями коэффициентов преобразования и т.д. В других областях применения, таких как аудио, речь, текст, документ или обычное кодирование данных, возможны разные категоризации синтаксических элементов.
Обычно, каждый синтаксический элемент может принимать значение конечного или счетно-бесконечного множества значений, где множество возможных значений синтаксического элемента может различаться для разных категорий синтаксических элементов. Например, имеются двоичные синтаксические элементы, а также целочисленные.
Для уменьшения сложности алгоритма кодирования и декодирования и для предоставления возможности общей разработки кодирования и декодирования для разных синтаксических элементов и категорий синтаксических элементов, синтаксические элементы 301 преобразуются в упорядоченные множества двоичных решений, и эти двоичные решения затем обрабатываются простыми алгоритмами двоичного кодирования. Поэтому, бинаризатор 302 биективно (взаимно-однозначно) отображает значение каждого синтаксического элемента 301 на последовательность (или строку или слово) бинов 303. Последовательность бинов 303 представляет множество упорядоченных двоичных решений. Каждый бин 303 или двоичное решение может принимать одно значение из множества из двух значений, например, одно из значений 0 и 1. Схема бинаризации может быть разной для разных категорий синтаксических элементов. Схема бинаризации для конкретной категории синтаксических элементов может зависеть от множества возможных значений синтаксических элемента и/или других свойств синтаксического элемента для конкретной категории.
Таблица 1 иллюстрирует три примерные схемы бинаризации для счетно-бесконечных множеств. Схемы бинаризации для счетно-бесконечных множеств также могут применимы для конечных множеств значений синтаксических элементов. В частности для больших конечных множеств значений синтаксических элементов может быть незначительной неэффективность (являющаяся результатом неиспользованных последовательностей бинов), но универсальность таких схем бинаризации обеспечивает преимущество в смысле сложности и требований к памяти. Для малых конечных множеств значений синтаксических элементов часто бывает предпочтительным (в смысле эффективности кодирования) адаптировать схему бинаризации к количеству возможных значений символов.
Таблица 2 иллюстрирует три примерные схемы бинаризации для конечных множеств из 8 значений. Схемы бинаризации для конечных множеств могут быть выведены из универсальных схем бинаризации для счетно-бесконечных множеств посредством модифицирования некоторых последовательностей бинов таким образом, что конечные множества последовательностей бинов представляют код без избыточности (и потенциально переупорядочение последовательностей бинов). В качестве примера, схема усеченной унарной бинаризации в таблице 2 была создана посредством модифицирования последовательности бинов для синтаксического элемента 7 универсальной унарной бинаризации (см. таблицу 1). Усеченная и переупорядоченная экспоненциальная бинаризация Голомба порядка 0 в таблице 2 была создана посредством модифицирования последовательности бинов для синтаксического элемента 7 универсальной экспоненциальной бинаризации Голомба порядка 0 (см. таблица 1) и посредством переупорядочения последовательностей бинов (усеченная последовательность бинов для символа 7 была назначена символу 1). Для конечных множеств синтаксических элементов также возможно использование несистематических/неуниверсальных схем бинаризации, как приведено в качестве примера в последнем столбце таблицы 2.
Figure 00000001
Figure 00000002
Figure 00000003
Каждый бин 303 последовательности бинов, создаваемых бинаризатором 302, подается в средство 304 назначения параметра в последовательном порядке. Средство назначения параметра назначает множество из одного или нескольких параметров каждому бину 303 и выводит бин с ассоциированным множеством параметров 305. Множество параметров определяется точно одинаковым образом в кодере и декодере. Множество параметров может состоять из одного или нескольких из следующих параметров:
В частности, средство 304 назначения параметра может быть выполнено с возможностью назначения текущему бину 303 контекстной модели. Например, средство 304 назначения параметра может выбирать один из доступных индексов контекста для текущего бина 303. Доступное множество контекстов для текущего бина 303 может зависеть от типа бина, который, в свою очередь, может определяться типом/категорией синтаксического элемента 301, бинаризация какого текущего бина 303 является частью и позицией текущего бина 303 в последней бинаризации. Выбор контекста из числа доступного множества контекстов может зависеть от предыдущих бинов и синтаксических элементов, ассоциированных с последним. Каждый из этих контекстов имеет вероятностную модель, ассоциированную с ним, т.е. меру для оценки вероятности для одного из двух возможных значений бина для текущего бина. Вероятностная модель, в частности, может представлять собой меру для оценки вероятности для менее вероятного или более вероятного значения бина для текущего бина, причем вероятностная модель дополнительно определяется идентификатором, задающим оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина для текущего бина 303. В случае, когда доступен только один контекст для текущего бина, может быть исключен выбор контекста. Как более подробно изложено ниже, средство 304 назначения параметра также может выполнять адаптацию вероятностной модели, чтобы адаптировать вероятностные модели, ассоциированные с различными контекстами, с фактической статистикой бинов соответствующих бинов, принадлежащих соответствующим контекстам.
Как также более подробно описано ниже, средство 304 назначения параметра может работать по-разному в зависимости от активизированного режима высокой эффективности (HE) или режима низкой сложности (LC). В обоих режимах вероятностная модель ассоциирует текущий бин 303 с любым из кодеров 310 бина, как изложено ниже, но режим работы средства 304 назначения параметра стремится быть менее сложным в режиме LC, причем, однако, эффективность кодирования повышается в режиме высокой эффективности из-за того, что средство 304 назначения параметра вызывает более точную адаптацию ассоциирования индивидуальных бинов 310 с индивидуальными кодерами 310 со статистикой бинов, тем самым оптимизируя энтропию относительно режима LC.
Каждый бин с ассоциированным множеством параметров 305, который представляет собой выходной результат средства 304 назначения параметра, подается в селектор 306 буфера бинов. Селектор 306 буфера бинов потенциально модифицирует значение введенного бина 305, основываясь на значении введенного бина и ассоциированных параметрах 305, и подает выводимый бин 307 - с потенциально модифицированным значением - в один из двух или более буферов 308 бинов. Буфер 308 бинов, на который посылается выводимый бин 307, определяется на основе значения вводимого бина 305 и/или значения ассоциированных параметров 305.
В предпочтительном варианте осуществления изобретения селектор 306 буфера бинов не модифицирует значение бина, т.е. выводимый бин 307 всегда имеет одно и тоже значение, что и вводимый бин 305. В другом предпочтительном варианте осуществления изобретения селектор 306 буфера бинов определяет значение 307 выводимого бина, основываясь на значении 305 вводимого бина и ассоциированной мере для оценки вероятности для одного из двух возможных значений бина для текущего бина. В предпочтительном варианте осуществления изобретения значение 307 выводимого бина устанавливается равным значению 305 вводимого бина, если мера для вероятности для одного из двух возможных значений бина для текущего бина меньше (или меньше или равна) конкретному порогу; если мера для вероятности для одного из двух возможных значений бина для текущего бина больше или равна (или больше) конкретного порога, значение 307 выводимого бина модифицируется (т.е. устанавливается на противоположное значение значению вводимого бина). В другом предпочтительном варианте осуществления изобретения значение 307 выводимого бина устанавливается равным значению 305 вводимого бина, если мера для вероятности для одного из двух возможных значений бина для текущего бина больше (или больше или равна) конкретному порогу; если мера для вероятности для одного из двух возможных значений бина для текущего бина меньше или равна (или меньше) конкретному порогу, значение 307 выводимого бина модифицируется (т.е. устанавливается на противоположное значение значению вводимого бина). В предпочтительном варианте осуществления изобретения значение порога соответствует значению 0,5 для оцененной вероятности для обоих возможных значений бина.
В другом предпочтительном варианте осуществления изобретения селектор 306 буфера бинов определяет значение 307 выводимого бина, основываясь на значении 305 вводимого бина и ассоциированном идентификаторе, задающим оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина для текущего бина. В предпочтительном варианте осуществления изобретения значение 307 выводимого бина устанавливается равным значению 305 вводимого бина, если идентификатор задает, что первое из двух возможных значений бина представляет менее вероятное (или более вероятное) значение бина для текущего бина, и значение 307 выводимого бина модифицируется (т.е. устанавливается на противоположное значение значению вводимого бина), если идентификатор задает, что второе из двух возможных значений бина представляет менее вероятное (или более вероятное) значение бина для текущего бина.
В предпочтительном варианте осуществления изобретения селектор 306 буфера бинов определяет буфер 308 бинов, на который посылается выводимый бин 307, основываясь на ассоциированной мере для оценки вероятности для одного из двух возможных значений бина для текущего бина. В предпочтительном варианте осуществления изобретения множество возможных значений для меры для оценки вероятности для одного из двух возможных значений бина является конечным, и селектор 306 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 308 бинов с каждым возможным значением для оценки вероятности для одного из двух возможных значений бина, где разные значения для меры для оценки вероятности для одного из двух возможных значений бина могут ассоциироваться с одним и тем же буфером 308 бинов. В другом предпочтительном варианте осуществления изобретения диапазон возможных значений для меры для оценки вероятности для одного из двух возможных значений бина разделяется на несколько интервалов, селектор 306 буфера бинов определяет индекс интервала для текущей меры для оценки вероятности для одного из двух возможных значений бина, и селектор 306 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 308 бинов с каждым возможным значением для индекса интервала, где разные значения для индекса интервала могут ассоциироваться с одним и тем же буфером 308 бинов. В предпочтительном варианте осуществления изобретения вводимые бины 305 с противоположными мерами для оценки вероятности для одного из двух возможных значений бина (противоположной мерой являются те, которые представляют оценки P и 1-P вероятности) подаются в один и тот же буфер 308 бинов. В другом предпочтительном варианте осуществления изобретения ассоциирование меры для оценки вероятности для одного из двух возможных значений бина для текущего бина с конкретным буфером бинов адаптируется во времени, например, чтобы гарантировать, что созданные частичные битовые потоки имеют подобные скорости передачи битов. Кроме того, индекс интервала также называется индексом pipe (энтропия разделения интервала вероятности), тогда как индекс pipe вместе с индексом уточнения, и флаг, указывающий более вероятное значение бина, индексирует фактическую вероятностную модель, т.е. оценку вероятности.
В другом предпочтительном варианте осуществления изобретения селектор 306 буфера бинов определяет буфер 308 бинов, на который посылается выводимый бин 307, основываясь на ассоциированной мере для оценки вероятности для менее вероятного или более вероятного значения бина для текущего бина. В предпочтительном варианте осуществления изобретения множество возможных значений для меры для оценки вероятности для менее вероятного или более вероятного значения бина является конечным, и селектор 306 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 308 бинов с каждым возможным значением оценки вероятности для менее вероятного или более вероятного значения бина, где разные значения для меры для оценки вероятности для менее вероятного или более вероятного значения бина могут ассоциироваться с одним и тем же буфером 308 бинов. В другом предпочтительном варианте осуществления изобретения диапазон возможных значений для меры для оценки вероятности для менее вероятного или более вероятного значения бина разделяется на несколько интервалов, селектор 306 буфера бинов определяет индекс интервала для текущей меры для оценки вероятности для менее вероятного или более вероятного значения бина, и селектор 306 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 308 бинов с каждым возможным значением для индекса интервала, где разные значения для индекса интервала могут ассоциироваться с одним и тем же буфером 308 бинов. В другом предпочтительном варианте осуществления ассоциирование меры для оценки вероятности для менее вероятного или более вероятного значения бина для текущего бина с конкретным буфером бинов адаптируется во времени, например, чтобы гарантировать, что создаваемые частичные битовые потоки имеют подобные скорости передачи битов.
Каждый из двух или более буферов 308 бинов соединен с точно одним кодером 310 бинов, и каждый кодер бинов соединен только с одним буфером 308 бинов. Каждый кодер 310 бинов считывает бины из ассоциированного буфера 308 бинов и преобразует последовательность бинов 309 в кодовое слово 311, которое представляет последовательность битов. Буферы 308 бинов представляют буферы «первым пришел - первым обслужен»; бины, которые подаются позже (в последовательном порядке) в буфер 308 бинов, не кодируются перед бинами, которые подаются ранее (в последовательном порядке) в буфер бинов. Кодовые слова 311, которые представляют собой выходной результат конкретного кодера 310 бинов, записываются в конкретный частичный битовый поток 312. Общий алгоритм кодирования преобразует синтаксические элементы 301 в два или более частичных битовых потока 312, где количество частичных битовых потоков равно количеству буферов бинов и кодеров бинов. В предпочтительном варианте осуществления изобретения кодер 310 бинов преобразует изменяемое количество бинов 309 в кодовое слово 311 с изменяемым количеством битов. Одним преимуществом вышеупомянутых и ниже кратко изложенных вариантов осуществления изобретения является то, что кодирование бинов может выполняться параллельно (например, для разных групп мер вероятности), что уменьшает время обработки для нескольких реализаций.
Другим преимуществом вариантов осуществления изобретения является то, что кодирование бинов, которое выполняется кодерами 310 бинов, может быть конкретно разработано для разных множеств параметров 305. В частности, кодирование бинов и кодирование могут быть оптимизированы (в смысле эффективности и/или сложности кодирования) для разных групп оцененных вероятностей. С одной стороны, это предоставляет возможность уменьшить сложность кодирования/декодирования, и, с другой стороны, это позволяет получить повышение эффективности кодирования. В предпочтительном варианте осуществления изобретения кодеры 310 бинов реализуют разные алгоритмы кодирования (т.е. отображение последовательностей бинов в кодовые слова) для разных групп мер для оценки вероятности для одного из двух возможных значений 305 бина для текущего бина. В другом предпочтительном варианте осуществления изобретения кодеры 310 бинов реализуют разные алгоритмы кодирования для разных групп мер для оценки вероятности для менее вероятного или более вероятного значения бина для текущего бина.
В предпочтительном варианте осуществления изобретения кодеры 310 бинов - или один или несколько из кодеров бинов - представляют энтропийные кодеры, которые прямо отображают последовательности вводимых бинов 309 в кодовые слова 310. Такое отображение может быть эффективно реализовано и не требует сложного механизма арифметического кодирования. Обратное отображение кодовых слов в последовательности бинов (что выполняется в декодере) должно быть уникальным, чтобы гарантировать совершенное декодирование вводимой последовательности, но отображение последовательностей 309 бинов в кодовые слова 310 необязательно должно быть уникальным, т.е. возможно, что конкретная последовательность бинов может отображаться на более чем одну последовательность кодовых слов. В предпочтительном варианте осуществления изобретения отображение последовательностей вводимых бинов 309 в кодовые слова 310 является биективным. В другом предпочтительном варианте осуществления изобретения кодеры 310 бинов - или один или несколько из кодеров бинов - представляют энтропийные кодеры, которые прямо отображают последовательности переменной длины вводимых бинов 309 в кодовые слова 310 переменной длины. В предпочтительном варианте осуществления изобретения выводимые кодовые слова представляют коды без избыточности, такие как общие коды Хаффмана или канонические коды Хаффмана.
В таблице 3 изображены два примера для биективного отображения последовательностей бинов в коды без избыточности. В другом предпочтительном варианте осуществления изобретения выводимые кодовые слова представляют избыточные коды, пригодные для обнаружения ошибок и восстановления при ошибках. В другом предпочтительном варианте осуществления изобретения выводимые кодовые слова представляют коды шифрования, пригодные для шифрования синтаксических элементов.
Figure 00000004
Figure 00000005
В другом предпочтительном варианте осуществления изобретения кодеры 310 бинов - или один или несколько из кодеров бинов - представляют энтропийные кодеры, которые прямо отображают последовательности переменной длины вводимых бинов 309 в кодовые слова 310 фиксированной длины. В другом предпочтительном варианте осуществления изобретения кодеры 310 бинов - или один или несколько из кодеров бинов - представляют энтропийные кодеры, которые прямо отображают последовательности фиксированной длины вводимых бинов 309 в кодовые слова 310 переменной длины.
Декодер согласно варианту осуществления изобретения изображен на фиг. 8. Декодер выполняет, в основном, операции, обратные кодеру, так что (ранее кодированная) последовательность синтаксических элементов 327 декодируется из множества из двух или нескольких частичных битовых потоков 324. Декодер включает в себя два разных потока обработки: поток для запроса данных, который повторяет поток данных кодера, и поток данных, который представляет обратное потока данных кодера. На иллюстрации на фиг. 8 пунктирные стрелки представляют поток запросов данных, тогда как сплошные стрелки представляют поток данных. Стандартные блоки декодера, в основном, повторяют стандартные блоки кодера, но реализуют обратные операции.
Декодирование синтаксического элемента запускается запросом нового декодируемого синтаксического элемента 313, который посылается на бинаризатор 314. В предпочтительном варианте осуществления изобретения каждый запрос нового декодируемого синтаксического элемента 313 ассоциируется с категорией множества из одной или нескольких категорий. Категория, которая ассоциируется с запросом синтаксического элемента, является той же, что и категория, которая была ассоциирована с соответствующим синтаксическим элементом во время кодирования.
Бинаризатор 314 отображает запрос синтаксического элемента 313 на один или несколько запросов бина, которые посылаются на средство 316 назначения параметра. В качестве окончательного ответа на запрос бина, который посылается средству 316 назначения параметра бинаризатором 314, бинаризатор 314 принимает декодируемый бин 326 от селектора 318 буфера бинов. Бинаризатор 314 сравнивает принятую последовательность декодируемых бинов 326 с последовательностями бинов конкретной схемы бинаризации для запрашиваемого синтаксического элемента, и, если принятая последовательность декодируемых бинов 26 совпадает с бинаризацией синтаксического элемента, бинаризатор освобождает свой буфер бинов и выводит декодируемый синтаксический элемент в качестве окончательного ответа на запрос нового декодируемого символа. Если уже принятая последовательность декодируемых бинов не совпадает ни с какой из последовательностей бинов для схемы бинаризации для запрашиваемого синтаксического элемента, бинаризатор посылает другой запрос бина средству назначения параметра до тех пор, пока последовательность декодируемых бинов не будет совпадать с одной из последовательностей бинов схемы бинаризации для запрашиваемого синтаксического элемента. Для каждого запроса синтаксического элемента декодер использует одну и туже схему бинаризации, которая использовалась для кодирования соответствующего синтаксического элемента. Схема бинаризации может быть разной для разных категорий синтаксических элементов. Схема бинаризации для конкретной категории синтаксических элементов может зависеть от множества возможных значений синтаксического элемента и/или других свойств синтаксических элементов для конкретной категории.
Средство 316 назначения параметра назначает множество из одного или нескольких параметров каждому запросу бина и посылает запрос бина с ассоциированным множеством параметров селектору буфера бинов. Множество параметров, которое назначается запрашиваемому бину средством назначения параметра, является тем же, которое было назначено соответствующему бину во время кодирования. Множество параметров может состоять из одного или нескольких параметров, которые упомянуты при описании кодера на фиг. 7.
В предпочтительном варианте осуществления изобретения средство 316 назначения параметра ассоциирует каждый запрос бина с теми же параметрами, что и делало средство 304 назначения, т.е. контекст и его ассоциированная мера для оценки вероятности для одного из двух возможных значений бина для текущего запрашиваемого бина, такую как мера для оценки вероятности для менее вероятного или более вероятного значения бина для текущего запрашиваемого бина и идентификатор, задающий оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина для текущего запрашиваемого бина.
Средство 316 назначения параметра может определять одну или несколько из вышеупомянутых мер вероятности (мера для оценки вероятности для одного из двух возможных значений бина для текущего запрашиваемого бина, мера для оценки вероятности для менее вероятного или более вероятного значения бина для текущего запрашиваемого бина, идентификатор, задающий оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина для текущего запрашиваемого бина), основываясь на множестве из одного или нескольких уже декодированных символов. Определение мер вероятности для конкретного запроса бина повторяет процесс в кодере для соответствующего бина. Декодированные символы, которые используются для определения мер вероятности, могут включать в себя один или несколько уже декодированных символов этой же категории символов, один или несколько уже декодированных символов этой же категории символов, которая соответствует множествам данных (таким как блоки или группы элементов дискретизации) соседних пространственных и/или временных расположений (в отношении множества данных, ассоциированного с текущим запросом синтаксического элемента), или один или несколько уже декодированных символов разных категорий символов, которые соответствуют множествам данных этого же и/или соседних пространственных и/или временных расположений (в отношении к множеству данных, ассоциированному с текущим запросом синтаксического элемента).
Каждый запрос бина с ассоциированным множеством параметров 317, который представляет собой выходной результат средство 316 назначения параметра, подается на селектор 318 буфера бинов. Основываясь на ассоциированном множестве параметров 317, селектор 318 буфера бинов посылает запрос бина 319 одному из двух или более буферов 320 бинов и принимает декодированный бин 325 от выбранного буфера 320 бинов. Декодированный вводимый бин 325 потенциально модифицируется, и декодированный выводимый бин 326 - с потенциально модифицированным значением - посылается на бинаризатор 314 в качестве окончательного ответа на запрос бина с ассоциированным множеством параметров 317.
Буфер 320 бинов, на который направляется запрос бина, выбирается таким же образом, что и буфер бинов, на который был послан выводимый бин селектора буфера бинов на стороне кодера.
В предпочтительном варианте осуществления изобретения селектор 318 буфера бинов определяет буфер 320 бинов, на который посылается запрос бина 319, основываясь на ассоциированной мере для оценки вероятности для одного из двух возможных значений бина для текущего запрашиваемого бина. В предпочтительном варианте осуществления изобретения множество возможных значений для меры для оценки вероятности для одного из двух возможных значений бина является конечным, и селектор 318 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 320 бинов с каждым возможным значением оценки вероятности для одного из двух возможных значений бина, где разные значения для меры для оценки вероятности для одного из двух возможных значений бина могут ассоциироваться с одним и тем же буфером 320 бинов. В другом предпочтительном варианте осуществления изобретения диапазон возможных значений для меры для оценки вероятности для одного из двух возможных значений бина разделяется на несколько интервалов, селектор 318 буфера бинов определяет индекс интервала для текущей меры для оценки вероятности для одного из двух возможных значений бина, и селектор 318 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 320 бинов с каждым возможным значением для индекса интервала, где разные значения для индекса интервала могут ассоциироваться с одним и тем же буфером 320 бинов. В предпочтительном варианте осуществления изобретения запросы бинов 317 с противоположными мерами для оценки вероятности для одного из двух возможных значений бина (противоположной мерой являются те, которые представляют оценки P и 1-P вероятности) направляются одному и тому же буферу 320 бинов. В другом предпочтительном варианте осуществления изобретения ассоциирование меры для оценки вероятности для одного из двух возможных значений бина для текущего запроса бина с конкретным буфером бинов адаптируется во времени.
В другом предпочтительном варианте осуществления изобретения селектор 318 буфера бинов определяет буфер 320 бинов, на который посылается запрос бина 319, основываясь на ассоциированной мере для оценки вероятности для менее вероятного или более вероятного значения бина для текущего запрашиваемого бина. В предпочтительном варианте осуществления изобретения множество возможных значений для меры для оценки вероятности для менее вероятного или более вероятного значения бина является конечным, и селектор 318 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 320 бинов с каждым возможным значением оценки вероятности для менее вероятного или более вероятного значения бина, где разные значения для меры для оценки вероятности для менее вероятного или более вероятного значения бина могут ассоциироваться с одним и тем же буфером 320 бинов. В другом предпочтительном варианте осуществления изобретения диапазон возможных значений для меры для оценки вероятности для менее вероятного или более вероятного значения бина разделяется на несколько интервалов, селектор 318 буфера бинов определяет индекс интервала для текущей меры для оценки вероятности для менее вероятного или более вероятного значения бина, и селектор 318 буфера бинов содержит таблицу, которая ассоциирует точно один буфер 320 бинов с каждым возможным значением для индекса интервала, где разные значения для индекса интервала могут ассоциироваться с одним и тем же буфером 320 бинов. В другом предпочтительном варианте осуществления изобретения ассоциирование меры для оценки вероятности для менее вероятного или более вероятного значения бина для текущего запроса бина с конкретным буфером бинов адаптируется во времени.
После приема декодированного бина 325 от выбранного буфера 320 бинов селектор 318 буфера бинов потенциально модифицирует вводимый бин 325 и посылает выводимый бин 326 - с потенциально модифицированным значением - бинаризатору 314. Отображение вводимого/выводимого бина селектора 318 буфера бинов представляет собой обратное отображению вводимого/выводимого бина селектора буфера бинов на стороне кодера.
В предпочтительном варианте осуществления изобретения селектор 318 буфера бинов не модифицирует значение бина, т.е. выводимый бин 326 всегда имеет одно и тоже значение, что и вводимый бин 325. В другом предпочтительном варианте осуществления изобретения селектор 318 буфера бинов определяет значение 326 выводимого бина, основываясь на значении 325 вводимого бина и мере для оценки вероятности для одного из двух возможных значений бина для текущего запрашиваемого бина, который ассоциируется с запросом бина 317. В предпочтительном варианте осуществления изобретения значение 326 выводимого бина устанавливается равным значению 325 вводимого бина, если мера для вероятности для одного из двух возможных значений бина для текущего запроса бина меньше (или меньше или равна) конкретному порогу; если мера для вероятности для одного из двух возможных значений бина для текущего запроса бина больше или равна (или больше) конкретного порога, значение 326 выводимого бина модифицируется (т.е. устанавливается на значение, противоположное значению вводимого бина). В другом предпочтительном варианте осуществления изобретения значение 326 выводимого бина устанавливается равным значению 325 вводимого бина, если мера для вероятности для одного из двух возможных значений бина для текущего запроса бина больше (или больше или равна) конкретному порогу; если мера для вероятности для одного из двух возможных значений бина для текущего запроса бина меньше или равна (или меньше) конкретного порога, значение 326 выводимого бина модифицируется (т.е. устанавливается на значение, противоположное значению вводимого бина). В предпочтительном варианте осуществления изобретения значение порога соответствует значению 0,5 для оцененной вероятности для обоих возможных значений бина.
В другом предпочтительном варианте осуществления изобретения селектор 318 буфера бинов определяет значение 326 выводимого бина, основываясь на значении 325 вводимого бина и идентификатора, задающего оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина для текущего запроса бина, который ассоциируется с запросом бина 317. В предпочтительном варианте осуществления изобретения значение 326 выводимого бина устанавливается равным значению 325 вводимого бина, если идентификатор задает, что первое из двух возможных значений бина представляет менее вероятное (или более вероятное) значение бина для текущего запроса бина, и значение 326 выводимого бина модифицируется (т.е устанавливается на значение, противоположное значению вводимого бина), если идентификатор задает, что второе из двух возможных значений бина представляет менее вероятное (или более вероятное) значение бина для текущего запроса бина.
Как описано выше, селектор буфера бинов посылает запрос бина 319 одному из двух или более буферов 320 бинов. Буферы 20 бинов представляют буфер «первый пришел - первым обслужен», на которые подаются последовательности декодированных бинов 321 от подсоединенных декодеров 322 бинов. В качестве ответа на запрос бина 319, который посылается буферу 320 бинов от селектора 318 буфера бинов, буфер 320 бинов удаляет бин из своего содержимого, который был первым подан в буфер 320 бинов, и посылает его на селектор 318 буфера бинов. Бины, которые ранее были посланы буферу 320 бинов, раньше удаляются и посылаются селектору 318 буфера бинов.
Каждый из двух или более буферов 320 бинов соединен с точно одним декодером 322 бинов, и каждый декодер бинов соединен только с одним буфером 320 бинов. Каждый декодер 322 бинов считывает кодовые слова 323, которые представляют последовательности битов, из отдельного частичного битового потока 324. Декодер бинов преобразует кодовое слово 323 в последовательность бинов 321, которая посылается на подсоединенный буфер 320 бинов. Общий алгоритм декодирования преобразует два или более частичных битовых потока 324 в несколько декодированных синтаксических элементов, где количество частичных битовых потоков равно количеству буферов бинов и декодеров бинов, и декодирование синтаксических элементов запускается запросами новых синтаксических элементов. В предпочтительном варианте осуществления изобретения декодер 322 бинов преобразует кодовые слова 323 с переменным количеством битов в последовательность переменного количества бинов 321. Одним преимуществом вариантов осуществления изобретения является то, что декодирование бинов из двух или более частичных битовых потоков может выполняться параллельно (например, для разных групп мер вероятности), что уменьшает время обработки для нескольких реализаций.
Другим преимуществом вариантов осуществления изобретения является то, что декодирование бинов, которое выполняется декодерами 322 бинов, может быть специально разработано для разных множеств параметров 317. В частности, кодирование и декодирование бинов может оптимизироваться (в смысле эффективности и/или сложности кодирования) для разных групп оцениваемых вероятностей. С одной стороны, это позволяет уменьшить сложность кодирования/декодирования относительно современных алгоритмов энтропийного кодирования с подобной эффективностью кодирования. С другой стороны, это позволяет улучшить эффективность кодирования относительно современных алгоритмов энтропийного кодирования с подобной сложностью кодирования/декодирования. В предпочтительном варианте осуществления изобретения декодеры 322 бинов реализуют разные алгоритмы декодирования (т.е. отображение последовательностей бинов в кодовые слова) для разных групп мер для оценки вероятности для одного из двух возможных значений 317 бина для текущего запроса бина. В другом предпочтительном варианте осуществления изобретения декодеры 322 бинов реализуют разные алгоритмы декодирования для разных групп мер для оценки вероятности для менее вероятного или более вероятного значения бина для текущего запрашиваемого бина.
Декодеры 322 бинов выполняют отображение, обратное соответствующим кодерам бинов на стороне кодера.
В предпочтительном варианте осуществления изобретения декодеры 322 бинов - или один или несколько из декодеров бинов - представляют энтропийные декодеры, которые прямо отображают кодовые слова 323 в последовательности бинов 321. Такое отображение может быть эффективно реализовано и не требует сложного механизма арифметического кодирования. Отображение кодовых слов в последовательности бинов должно быть уникальным. В предпочтительном варианте осуществления изобретения отображение кодовых слов 323 в последовательности бинов 321 является биективным. В другом предпочтительном варианте осуществления изобретения декодеры 310 бинов - или один или несколько из декодеров бинов - представляют энтропийные декодеры, которые прямо отображают кодовые слова 323 переменной длины в последовательности переменной длины бинов 321. В предпочтительном варианте осуществления изобретения вводимые кодовые слова представляют коды без избыточности, такие как общие коды Хаффмана или канонические коды Хаффмана. Два примера для биективного отображения кодов без избыточности в последовательности бинов приведены в таблице 3.
В другом предпочтительном варианте осуществления изобретения декодеры 322 бинов - или один или несколько из декодеров бинов - представляют энтропийные декодеры, которые прямо отображают кодовые слова 323 фиксированной длины на последовательности переменной длины бинов 321. В другом предпочтительном варианте осуществления изобретения декодеры 322 бинов - или один или несколько из декодеров бинов - представляют энтропийные декодеры, которые прямо отображают кодовые слова 323 переменной длины на последовательности фиксированной длины бинов 321.
Таким образом, фиг. 7 и 8 изображают вариант осуществления для кодера для кодирования последовательности символов 3 и декодера для восстановления их. Кодер содержит средство 304 назначения, выполненное с возможностью назначения нескольких параметров 305 каждому символу последовательности символов. Назначение основывается на информации, содержащейся в предыдущих символах последовательности символов, такой как категория синтаксического элемента 1 для представления - такого как бинаризация - к которой принадлежит текущий символ, и который, в соответствии со структурой синтаксиса синтаксических элементов 1, как ожидается в настоящий момент, которое ожидание, в свою очередь, является выводимым из предыстории предыдущих синтаксических элементов 1 и символов 3. Кроме того, кодер содержит множество энтропийных кодеров 10, каждый из которых выполнен с возможностью преобразования символов 3, направляемых в соответствующий энтропийный кодер, в соответствующий битовый поток 312, и селектор 306, выполненный с возможностью направления каждого символа 3 к выбранному одному из множества энтропийных кодеров 10, причем выбор зависит от количества параметров 305, назначенных соответствующему символу 3. Средство 304 назначения может рассматриваться как интегрируемое в селектор 206, чтобы получить соответствующий селектор 502.
Декодер для восстановления последовательности символов содержит множество энтропийных декодеров 322, каждый из которых выполнен с возможностью преобразования соответствующего битового потока 323 в символы 321; средство 316 назначения, выполненное с возможностью назначения нескольких параметров 317 каждому символу 315 последовательности символов, подлежащей восстановлению, основываясь на информации, содержащейся в ранее восстановленных символах последовательности символов (см. позиции 326 и 327 на фиг. 8); и селектор 318, выполненный для извлечения каждого символа из последовательности символов, подлежащей восстановлению, от выбранного одного из множества энтропийных декодеров 322, причем выбор зависит от количества параметров, определенных для соответствующего символа. Средство 316 назначения может быть выполнено так, что количество параметров, назначаемых каждому символу, содержит или представляет собой, меру для оценки вероятности распределения среди возможных значений символа, которые соответствующий символ может принимать. Снова, средство 316 назначения и селектор 318 могут рассматриваться как интегрируемые в один блок, селектор 402. Последовательность символов, подлежащих восстановлению, может представлять собой двоичный алфавит, и средство 316 назначения может быть выполнено так, что оценка распределения вероятности состоит из меры для оценки вероятности менее вероятного или более вероятного значения бина из двух возможных значений бина двоичного алфавита и идентификатора, задающего оценку, какое из двух возможных значений бина представляет менее вероятное или более вероятное значение бина. Средство 316 назначения может быть дополнительно выполнено с возможностью внутреннего назначения контекста каждому символу последовательности символов 315, подлежащих восстановлении, основываясь на информации, содержащейся в ранее восстановленных символах последовательности символов, подлежащих восстановлению, причем каждый контекст имеет соответствующую оценку распределения вероятности, ассоциированную с ним, и адаптации оценки распределения вероятности для каждого контекста фактической статистике символов, основываясь на значениях символа ранее восстановленных символов, которым назначен соответствующий контекст. Контекст может принимать во внимание пространственную зависимость или соседство позиций, к которым принадлежат синтаксические элементы, такие как при кодировании видео или изображений, или даже в таблицах, в случае финансовых применений. Затем мера для оценки распределения вероятности для каждого символа может определяться на основе оценки распределения вероятности, ассоциированной с контекстом, назначенным соответствующему символу, например, посредством квантования, или использования в качестве индекса в соответствующей таблице, оценки распределения вероятности, ассоциированной с контекстом, назначенным с соответствующим символом (в последующих вариантах осуществления, индексируемых индексом pipe вместе с индексом уточнения), одному из множества представителей оценки распределения вероятности (вырезая индекс уточнения), чтобы получить меру для оценки распределения вероятности (индекс pipe индексирует частичный битовый поток 312). Селектор может быть выполнен так, что определяется биективная ассоциация между множеством энтропийных кодеров и множеством представителей оценки распределения вероятности. Селектор 18 может быть выполнен с возможностью изменения во времени отображения квантования из диапазона оценок распределения вероятности в множество представителей оценки распределения вероятности заданным детерминированным образом в зависимости от ранее восстановленных символов последовательности символов. Т.е. селектор 318 может изменять размеры шага квантования, т.е. интервалы распределений вероятности, отображаемых на индивидуальные индексы вероятности, биективно ассоциированные с индивидуальными энтропийными декодерами. Множество энтропийных декодеров 322, в свою очередь, может быть выполнено с возможностью адаптации их способа преобразования символов в битовые потоки, реагируя на изменение в отображении квантования. Например, каждый энтропийный декодер 322 может быть оптимизирован, т.е. может иметь оптимальный коэффициент сжатия, для некоторой оценки распределения вероятности в пределах соответствующего интервала квантования оценки распределения вероятности, и может изменять отображение своих кодовых слов/последовательности символов, чтобы адаптировать позицию этой некоторой оценки распределения вероятности в пределах соответствующего интервала квантования оценки распределения вероятности при изменении последнего, чтобы она была оптимизирована. Селектор может быть выполнен с возможностью изменения отображения квантования, так что скорости, с которыми символы извлекаются из множества энтропийных декодеров, делаются менее рассредоточенными. Что касается бинаризатора 314, отмечается, что он может быть исключен, если синтаксические элементы уже являются двоичными. Кроме того, в зависимости от типа декодера 322 существование буферов 320 не является необходимым. Кроме того, буферы могут интегрироваться в декодеры.
Завершение конечных последовательностей синтаксических элементов
В предпочтительном варианте осуществления изобретения кодирование и декодирование выполняется для конечного множества синтаксических элементов. Часто кодируется некоторое количество данных, такое как неподвижное изображение, кадр или поле видеопоследовательности, слайс изображения, слайс кадра или поля видеопоследовательности или множество последовательных элементов дискретизации аудио и т.д. Для конечных множеств синтаксических элементов, как правило, частичные битовые потоки, которые создаются на стороне кодера, должны завершаться, т.е. необходимо гарантировать, что все синтаксические элементы могут декодироваться из передаваемых или хранимых частичных битовых потоков. После того как последний бин будет вставлен в соответствующий буфер 308 бинов, кодер 310 бинов должен гарантировать, что полное кодовое слово записывается в частичный битовый поток 312. Если кодер 310 бинов представляет энтропийный кодер, который реализует прямое отображение последовательностей бинов в кодовые слова, последовательность бинов, которая сохраняется в буфере бинов после записи последнего бина в буфер бинов, может не представлять последовательность бинов, которая ассоциируется с кодовым словом (т.е. она может представлять префикс двух или более последовательностей бинов, которые ассоциируются с кодовыми словами). В таком случае, любое из кодовых слов, ассоциированное с последовательностью бинов, которая содержит последовательность бинов в буфере бинов в качестве префикса, должна записываться в частичный битовый поток (буфер бинов должен быть очищен). Это может выполняться посредством вставки бинов с конкретным или произвольным значением в буфер бинов до тех пор, пока не будет записано кодовое слово. В предпочтительном варианте осуществления изобретения кодер бинов выбирает одно из кодовых слов с минимальной длиной (в дополнение к свойству, что ассоциированная последовательность бинов должна содержать последовательность бинов в буфере бинов в качестве префикса). На стороне декодера декодер 322 бинов может декодировать больше бинов, чем требуется для последнего кодового слова в частичном битовом потоке; эти бины не запрашиваются селектором 318 буфера бинов и отбрасываются и игнорируются. Декодирование конечного множества символов управляется запросами декодируемых синтаксических элементов; если не запрашивается дальнейший синтаксический элемент для количества данных, декодирование завершается.
Передача и мультиплексирование частичных битовых потоков
Частичные битовые потоки 312, которые создаются кодером, могут передаваться отдельно, или они могут мультиплексироваться в единственный битовый поток, или кодовые слова частичных битовых потоков могут перемежаться в единственном битовом потоке.
В варианте осуществления изобретения каждый частичный битовый поток для некоторого количества данных записывается в один пакет данных. Количество данных может представлять собой произвольное множество синтаксических элементов, такое как неподвижное изображение, поле или кадр видеопоследовательности, слайс неподвижного изображения, слайс поля или кадра видеопоследовательности, или кадр элементов дискретизации аудио, и т.д.
В другом предпочтительном варианте осуществления изобретения два или более частичных битовых потоков для некоторого количества данных или все частичные битовые потоки для некоторого количества данных мультиплексируются в один пакет данных. Структура пакета данных, который содержит мультиплексированные частичные битовые потоки, изображена на фиг. 9.
Пакет 400 данных состоит из заголовка и одного раздела для данных каждого частичного битового потока (для рассматриваемого количества данных). Заголовок 400 пакета данных содержит указания для разделения (остальной части) пакета данных на сегменты данных 402 битового потока. Кроме указаний для разделения заголовок может содержать дополнительную информацию. В предпочтительном варианте осуществления изобретения указания для разделения пакета данных представляют собой расположения начала сегментов данных в единицах битов или байтов или кратных битам или кратным байтам. В предпочтительном варианте осуществления изобретения расположения начала сегментов данных кодируются в виде абсолютных значений в заголовке пакета данных, или относительно начала пакета данных, или относительно конца заголовка, или относительно начала предыдущего пакета данных. В другом предпочтительном варианте осуществления изобретения расположения начала сегментов данных кодируются дифференцированно, т.е. кодируется только разность между фактическим началом сегмента данных и предсказанием для начала сегмента данных. Предсказание может выводиться на основе уже известной или переданной информации, такой как общий размер пакета данных, размер заголовка, количество сегментов данных в пакете данных, расположение начала предшествующих сегментов данных. В предпочтительном варианте осуществления изобретения расположение начала первого пакета данных не кодируется, но выводится на основе размера заголовка пакета данных. На стороне декодера переданные указания о разделах используются для выведения начала сегментов данных. Сегменты данных затем используются в качестве частичных битовых потоков, и данные, содержащиеся в сегментах данных, подаются в соответствующие декодеры бинов в последовательном порядке.
Существует несколько альтернатив для мультиплексирования частичных битовых потоков в пакет данных. Одна альтернатива, которая может уменьшать требуемую дополнительную информацию, в частности для случаев, в которых размеры частичных потоков являются очень похожими, изображена на фиг. 10. Полезная нагрузка пакета данных, т.е. пакет 410 данных без заголовка 411, разделяется на сегменты 412 заданным образом. В качестве примера, полезная нагрузка пакета данных может разделяться на сегменты одинакового размера. Затем каждый сегмент ассоциируется с частичным битовым потоком или с первой частью частичного битового потока 413. Если частичный битовый поток больше ассоциированного сегмента данных, его оставшаяся часть 414 размещается в неиспользуемое пространство в конце других сегментов данных. Это может выполняться таким образом, что оставшаяся часть битового потока вставляется в обратном порядке (начиная с конца сегмента данных), что уменьшает дополнительную информацию. Ассоциирование остальных частей частичных битовых потоков с сегментами данных, и, когда более одной остальной части добавляется к сегменту данных, начальная точка для одной или нескольких остальных частей должна сигнализироваться внутри битового потока, например, в заголовке пакета данных.
Перемежение кодовых слов переменной длины
Для некоторых применений вышеописанное мультиплексирование частичных битовых потоков (для некоторого количества синтаксических элементов) в одном пакете данных может иметь следующие недостатки: С одной стороны, для малых пакетов данных количество битов для дополнительной информации, которая требуется для сигнализации разделения, может стать существенным относительно фактических данных в частичных битовых потоках, что, в конце концов, уменьшает эффективность кодирования. С другой стороны, мультиплексирование может не быть подходящим для применений, которые требуют низкой задержки (например, для приложений видеоконференции). С описанным мультиплексированием кодер не может начать передачу пакета данных, перед тем как не будут полностью созданы частичные битовые потоки, так как прежде неизвестны расположения начала разделов. Кроме того, как правило, декодеру приходится ожидать до тех пор, пока он не примет начало последнего сегмента данных, перед тем как он сможет начать декодирование пакета данных. Для применений в качестве систем видеоконференции эти задержки могут добавлять к дополнительной общей задержке системы нескольких изображений (в частности, для скоростей передачи битов, которые близки к скорости передачи битов и для кодеров/декодеров, которые требуют чуть ли не временной интервал между двумя изображениями для кодирования/декодирования изображения), что является критичным для таких приложений. Чтобы преодолеть недостатки для некоторых применений, кодер предпочтительного варианта осуществления изобретения может быть выполнен таким образом, что кодовые слова, которые генерируются двумя или более кодерами бинов, перемежаются в единственный битовый поток. Битовый поток с перемежаемыми кодовыми словами может непосредственно посылаться декодеру (при игнорировании малой задержки буфера, см. ниже). На стороне декодера два или более декодеров бинов считывают кодовые слова непосредственно из битового потока в порядке декодирования; декодирование может начинаться с первым принятым битом. Кроме того, не требуется никакая дополнительная информация для сигнализации мультиплексирования (или перемежения) частичных битовых потоков. Другой путь уменьшения сложности декодера может достигаться тогда, когда декодеры 322 бинов не считывают кодовые слова переменной длины из глобального буфера битов, но, вместо этого, они всегда считывают последовательности фиксированной длины битов из глобального буфера битов и добавляют эти последовательности фиксированной длины битов в локальный буфер битов, где каждый декодер 322 бинов соединен с отдельным локальным буфером битов. Кодовые слова переменной длины затем считываются из локального буфера битов. Следовательно, синтаксический анализ кодовых слов переменной длины может выполняться параллельно, только доступ к последовательностям фиксированной длины битов должен выполняться синхронизированным образом, но такой доступ к последовательностям фиксированной длины битов обычно является очень быстрым, так что общая сложность декодирования может быть уменьшена для некоторых архитектур. Фиксированное количество бинов, которые посылаются в конкретный локальный буфер битов, может быть разным для разных локальных буферов битов, и оно также может изменяться во времени в зависимости от некоторых параметров, таких как события в декодере бинов, буфере бинов или буфере битов. Однако количество битов, которые считываются посредством конкретного доступа, не зависит от фактических битов, которые считываются во время конкретного доступа, что представляет собой важное отличие от считывания кодовых слов переменной длины. Считывание последовательностей фиксированной длины битов запускается некоторыми событиями в буферах бинов, декодерах бинов или локальных буферах битов. В качестве примера, возможно выполнять запрос считывания новой последовательности фиксированной длины битов, когда количество битов, которые присутствуют в подсоединенном буфере битов, падает ниже заданного порога, когда разные пороговые значения могут использоваться для разных буферов битов. В кодере необходимо гарантировать, что последовательности фиксированной длины бинов вставляются в том же порядке в битовый поток, в котором они считываются из битового потока на стороне декодера. Также является возможным объединение этого перемежения последовательностей фиксированной длины с управлением с малой задержкой, подобно тем, которые описаны выше. Ниже описывается предпочтительный вариант осуществления для перемежения последовательностей фиксированной длины битов. В отношении дополнительных подробностей, касающихся последних схем перемежения, ссылка делается на WO2011/128268A1.
После описания вариантов осуществления, согласно которым даже ранее кодирование используется для сжатия видеоданных, описывается в качестве еще другого варианта осуществления для реализации вариантов осуществления настоящего изобретения, которое изображает реализацию, особенно эффективную в смысле хорошего компромисса между коэффициентом сжатия, с одной стороны, и таблицей поиска и издержками вычисления, с другой стороны. В частности, нижеследующие варианты осуществления позволяют использовать менее сложные в смысле вычисления коды переменной длины для энтропийного кодирования индивидуальных битовых потоков, и эффективно закрывают части оценки вероятности. В вариантах осуществления, описанных ниже, символы являются двоичной природы, и коды VLC (коды переменной длины), представленные ниже, эффективно закрывают оценку вероятности, представленную, например, посредством RLPS (наименее вероятный символ), проходящего в пределах [0; 0,5].
В частности, варианты осуществления, кратко описанные ниже, описывают возможные реализации для индивидуальных энтропийных кодеров 310 и декодеров 322 на фиг. 7-17 соответственно. Они подходят для кодирования бинов, т.е. двоичных символов, так как они имеют место в приложениях сжатия изображения или видео. Следовательно, эти варианты осуществления также применимы к кодированию изображения или видео, где такие двоичные символы разделяются на один или несколько потоков бинов 307, подлежащих кодированию, и битовые потоки 324, подлежащие декодированию соответственно, где каждый такой поток бинов может рассматриваться как реализация процесса Бернулли. Варианты осуществления, описанные ниже, используют один или несколько из объясняемых ниже различных так называемых переменный-в-переменный кодов (v2v-коды) для кодирования потоков бинов. v2v-код может рассматриваться как два беспрефиксных кода с одинаковым количеством кодовых слов. Первичный и вторичный беспрефиксный код. Каждое кодовое слово первичного беспрефиксного кода ассоциируется с одним кодовым словом вторичного беспрефиксного кода. В соответствии с ниже описанными кратко вариантами осуществления по меньшей мере некоторые из кодеров 310 и декодеров 322 работают следующим образом: Для кодирования конкретной последовательности бинов 307, всякий раз когда кодовое слово первичного беспрефиксного кода считывается из буфера 308, соответствующее кодовое слово вторичного беспрефиксного кода записывается в битовый поток 312. Эта же процедура используется для декодирования такого битового потока 324, но первичный и вторичный беспрефиксный код меняются местами. Т.е. для декодирования битового потока 324, всякий раз когда кодовое слово вторичного беспрефиксного кода считывается из соответствующего битового потока 324, соответствующее кодовое слово первичного беспрефиксного кода записывается в буфер 320.
Полезно, что коды, описанные ниже, не требуют таблиц поиска. Коды являются реализуемыми в виде конечных автоматов. v2v-коды, представленные здесь, могут генерироваться простыми правилами построения, такими как, что нет необходимости сохранять большие таблицы для кодовых слов. Вместо этого, простой алгоритм может использоваться для выполнения кодирования или декодирования. Ниже описываются три правила построения, где два из них могут параметризоваться. Они закрывают разные или даже непересекающиеся части вышеупомянутого интервала вероятностей и, следовательно, являются особенно полезными, если используются вместе, например, все три кода параллельно (каждый для разных кодеров/декодеров 11 и 22) или два из них. С описанными ниже правилами построения является возможным разрабатывать набор v2v-кодов, так что для процессов Бернулли с произвольной вероятностью p, один из кодов хорошо работает в отношении избыточной длины кода.
Как изложено выше, кодирование и декодирование потоков 312 и 324 соответственно может выполняться или независимо для каждого потока, или перемежаемым образом. Это, однако, не является характерным для представленных классов v2v-кодов, и, поэтому, только кодирование и декодирование конкретного кодового слова описывается для каждого из трех правил построения в нижеследующем. Однако подчеркивается, что все вышеупомянутые варианты осуществления, касающиеся решений с перемежением, также являются пригодными для объединения с описанными в настоящее время кодами или кодерами и декодерами 310 и 322 соответственно.
Правило построения 1: Коды «pipe (энтропия разделения интервала вероятностей) унарных бинов» или кодеры/декодеры 310 и 322
Коды энтропии разделения интервала вероятностей (pipe) унарных бинов представляют собой особую версию так называемых кодов «pipe бинов», т.е. кодов, пригодных для кодирования любого из индивидуальных битовых потоков 12 и 24, причем каждый переносит данные о статистике двоичных символов, принадлежащей некоторому вероятностному подынтервалу вышеупомянутого диапазона вероятности [0; 0,5]. Сначала описывается построение кодов pipe бинов. Код pipe бинов может быть построен из любого беспрефиксного кода с по меньшей мере тремя кодовыми словами. Для образования v2v-кода он использует беспрефиксный код в качестве первичного и вторичного кода, но меняются местами два кодовых слова вторичного беспрефиксного кода. Это означает, что за исключением двух кодовых слов бины записываются в битовый поток неизменными. С этим методом необходимо сохранять только один беспрефиксный код вместе с информацией, какие два кодовых слова меняются местами, и, таким образом, уменьшается потребление памяти. Отметьте, что это имеет смысл только для перестановки кодовых слов разной длины, так как, в противном случае, битовый поток будет иметь такую же длину, что и поток бинов (не учитывая эффекты, которые могут иметь место в конце потока бинов).
Вследствие этого правила построения известным свойством кодов pipe бинов является, что, если первичный и вторичный беспрефиксный код переставляется (тогда как отображение кодовых слов сохраняется), результирующий v2v-код является идентичным исходному v2v-коду. Поэтому, алгоритм кодирования и алгоритм декодирования идентичны для кодов pipe бинов.
Код pipe унарных бинов составляется из специального беспрефиксного кода. Этот специальный беспрефиксный код составляется следующим образом. Сначала беспрефиксный код, состоящий из n унарных кодовых слов генерируется, начиная с «01», «001», «0001», …, пока не будет получено n кодовых слов. n представляет собой параметр для кода pipe унарных бинов. Из самого длинного кодового слова удаляется конечная 1. Это соответствует усеченному унарному коду (но без кодового слова «0»). Затем n-1 унарных кодовых слов генерируется, начиная с «10», «110», «1110», …, пока не будет получено n-1 кодовых слов. Из самого длинного из этих кодовых слов удаляется конечный 0. Множество объединения из этих двух беспрефиксных кодов используется в качестве ввода для генерирования кода pipe унарных бинов. Два кодовых слова, которые переставляются, представляют собой один, состоящий только из 0, и один, состоящий только из 1.
Пример для n=4:
№ Первичный Вторичный
1 0000 111
2 001 0001
3 001 001
4 01 01
5 10 10
6 110 110
7 111 0000
Правило 2 построения: «Унарный-в-Райс»-коды и унарные-в-Райс-кодеры/декодеры 10 и 22:
Унарный-в-Райс-коды используют усеченный унарный код в качестве первичного кода. Т.е. унарные кодовые слова генерируются, начиная с «1», «01», «001», …, пока не будут сгенерированы 2n+1 кодовых слов и из самого длинного кодового слова удаляется конечная 1. n представляет собой параметр унарного-в-Райс-кода. Вторичный беспрефиксный код составляется из кодовых слов первичного беспрефиксного кода следующим образом. Первичному кодовому слову, состоящему только из 0, назначается кодовое слово «1». Все другие кодовые слова состоят из конкатенации кодового слова «0» с n-битовым двоичным представлением количества 0 соответствующего кодового слова первичного беспрефиксного кода.
Пример для n=3:
№ Первичный Вторичный
1 1 0000
2 01 0001
3 001 0010
4 0001 0011
5 00001 0100
6 000001 0101
7 0000001 0110
8 00000001 0111
9 00000000 1
Отметьте, что это идентично отображению бесконечного унарного кода на код Райса с параметром Райса 2n.
Правило построения 3: «Трехбиновый» код
Трехбиновый код определяется как:
№ Первичный Вторичный
1 000 0
2 001 100
3 010 101
4 100 110
5 110 11100
6 101 11101
7 011 11110
8 111 11111
Он имеет свойство, что первичный код (последовательность символов) имеет фиксированную длину (всегда три бина), и кодовые слова сортируются по возрастающим числам 1.
Ниже описывается эффективная реализация трехбинового кода. Кодер и декодер для трехбинового кода могут быть реализованы без хранения таблиц следующим образом.
В кодере (любой из 10) три бина считываются из потока бинов (т.е. 7). Если эти три бина содержат точно одну 1, кодовое слово «1» записывается в битовый поток, за которыми следует два бина, состоящие из двоичного представления позиции 1 (начиная справа с 00). Если три бина содержат точно один 0, кодовое слово «111» записывается в битовый поток, за которым следует два бина, состоящие из двоичного представления позиции 0 (начиная справа с 00). Остальные кодовые слова «000» и «111» отображаются на «0» и «11111» соответственно.
В декодере (любом из 22) один бин или бит считывается из соответствующего битового потока 24. Если он равен «0», кодовое слово «000» декодируется в поток 21 бинов. Если он равен «1», еще два бина считываются из битового потока 24. Если эти два бита не равны «11», они интерпретируются как двоичное представление числа, и два 0 и одна 1 декодируются в битовый поток, так что позиция 1 определяется числом. Если два бита равны «11», еще два бита считываются и интерпретируются как двоичное представление числа. Если это число меньше 3, две 1 и один 0 декодируются, и число определяет позицию 0. Если оно равно 3, «111» декодируется в поток бинов.
Ниже описывается эффективная реализация кодов pipe унарных бинов. Кодер и декодер для кодов pipe унарных бинов могут эффективно реализоваться посредством использования счетчика. Вследствие структуры кодов pipe бинов, кодирование и декодирование кодов pipe бинов легко реализовать:
В кодере (любом из 10), если первый бин кодового слова равен «0», бины обрабатываются до тех пор, пока не встретится «1», или пока не будут считаны n 0 (включая первый «0» кодового слова). Если встретилась «1», считанные бины записываются в битовый поток неизменными. В противном случае, (т.е. были считаны n 0), n-1 1 записываются в битовый поток. Если первый бин кодового слова равен «1», бины обрабатываются до тех пор, пока не встретится «0», или пока не будут считаны n-1 1 (включая первую «1» кодового слова). Если встречается «0», считанные бины записываются в битовый поток неизменными. В противном случае, (т.е. были считаны n-1 1), n 0 записывается в битовый поток.
В декодере (любом из 322) используется этот же алгоритм, что и для кодера, так как он является одинаковым для кодов pipe бинов, как описано выше.
Ниже описывается эффективная реализация унарных-в-Райс-кодов. Кодер и декодер для унарных-в-Райс-кодов могут быть эффективно реализованы посредством использования счетчика, как описывается ниже.
В кодере (любом из 310) бины считываются из потока бинов (т.е. 7) до тех пор, пока не встретится 1, или пока не будут считаны 2n 0. Количество 0 подсчитывается. Если подсчитанное количество равно 2n, кодовое слово «1» записывается в битовый поток. В противном случае, записывается «0», за которым следует двоичное представление подсчитанного количества, записанное с n битами.
В декодере (любом из 322) считывается один бит. Если он равен «1», 2n 0 декодируется в строку бинов. Если он равен «0», еще n битов считывается и интерпретируется как двоичное представление количества. Это количество 0 декодируется в поток бинов, за которым следует «1».
Другими словами, только что описанные варианты осуществления описывают кодер для кодирования последовательности символов 303, содержащий средство 316 назначения, выполненное с возможностью назначения нескольких параметров 305 каждому символу последовательности символов, основываясь на информации, содержащейся в предыдущих символах последовательности символов; множество энтропийных кодеров 310, каждый из которых выполнен с возможностью преобразования символов 307, направляемых соответствующему энтропийному кодеру 310, в соответствующий битовый поток 312; и селектор 6, выполненный с возможностью направлять каждый символ 303 выбранному одному из множества энтропийных кодеров 10, причем выбор зависит от количества параметров 305, назначенных соответствующему символу 303. Согласно только что описанным вариантам осуществления по меньшей мере первое подмножество энтропийных кодеров может представлять собой кодер переменной длины, выполненный с возможностью отображения последовательностей символов переменной длины в потоке символов 307 на кодовые слова переменной длины, подлежащие вставлению в битовый поток 312 соответственно, причем каждый из энтропийных кодеров 310 первого подмножества использует правило биективного отображения, согласно которому кодовые слова первичного беспрефиксного кода с (2n-1)≥3 кодовыми словами отображаются на кодовые слова вторичного беспрефиксного кода, который идентичен первичному префиксному коду, так что все кроме двух из кодовых слов первичного беспрефиксного кода отображаются на идентичные кодовые слова вторичного беспрефиксного кода, тогда как два кодовых слова первичного и вторичного беспрефиксных кодов имеют разные длины и отображаются друг на друга попеременно, причем энтропийные кодеры могут использовать разные n, чтобы закрывать разные части интервала вышеупомянутого интервала вероятностей. Первый беспрефиксный код может составляться так, что кодовыми словами первого беспрефиксного кода являются (a,b)2, (a,a,b)3, …, (a, …, a,b)n, (a, …, a)n, (b,a)2, (b,b,a)3, …, (b, …, b,a)n-1, (b, …, b)n-1, и двумя кодовыми словами, отображаемыми друг на друга попеременно, являются (a, …, a)n и (b, …, b)n-1 с b≠a и a,b
Figure 00000006
{0,1}. Однако возможны альтернативы.
Другими словами, каждый из первого подмножества энтропийных кодеров может быть выполнен, при преобразовании символов, направляемых соответствующему энтропийному кодеру, в соответствующий битовый поток, с возможностью исследования первого символа, направляемого соответствующему энтропийному кодеру, для определения, (1) равен ли первый символ a
Figure 00000006
{0,1}, в этом случае соответствующий энтропийный кодер выполняется с возможностью исследования следующих символов, направляемых соответствующему энтропийному кодеру, для определения, (1.1) встречается ли b с b≠a и b
Figure 00000007
{0,1} в следующих n-1 символах, следующих за первым символом, в этом случае соответствующий энтропийный кодер выполняется с возможностью записи кодового слова в соответствующий битовый поток, который равен первому символу, за которым следуют последующие символы, направляемые соответствующему энтропийному кодеру, до символа b; (1.2) не встречается ли b в следующих n-1 символах, следующих за первым символом, в этом случае соответствующий энтропийный кодер выполняется с возможностью записи кодового слова в соответствующий битовый поток, который равен (b, …, b)n-1; или (2) равен ли первый символ b, в этом случае соответствующий энтропийный кодер выполняется с возможностью исследования последующих символов, направляемых соответствующему энтропийному кодеру, для определения, (2.1) встречается ли a в следующих n-2 символах, следующих за первым символом, в этом случае соответствующий энтропийный кодер выполняется с возможностью записи кодового слова в соответствующий битовый поток, которое равно первому символу, за которым следуют последующие символы, направляемые соответствующему энтропийному кодеру, до символа a; или (2.2) не встречается ли a в следующих n-2 символах, следующих за первым символом, в этом случае соответствующий энтропийный кодер выполняется с возможностью записи кодового слова в соответствующий битовый поток, которое равно (a, …, a)n.
Дополнительно или альтернативно, второе подмножество энтропийных кодеров 10 может представлять собой кодер переменной длины, выполненный с возможностью отображения последовательностей символов переменной длины на кодовые слова фиксированной длины соответственно, причем каждый из энтропийных кодеров второго подмножества использует правило биективного отображения, согласно которому кодовые слова первичного усеченного унарного кода с 2n+1 кодовыми словами типа {(a), (ba), (bba), …, (b…ba), (bb…b)} с b≠a и a,b
Figure 00000007
{0,1} отображаются на кодовые слова вторичного беспрефиксного кода, так что кодовое слово (bb…b) первичного усеченного унарного кода отображается на кодовое слово (c) вторичного беспрефиксного кода, и все другие кодовые слова {(a), (ba), (bba), …, (b…ba)} первичного усеченного унарного кода отображаются на кодовые слова, имеющие (d) с c≠d и c,d
Figure 00000007
{0,1} в качестве префикса и n-битовое слово в качестве суффикса, причем энтропийные кодеры используют разные n. Каждый из второго подмножества энтропийных кодеров может быть выполнен так, что n-битовое слово представляет собой n-битовое представление количества b в соответствующем кодовом слове первичного усеченного унарного кода. Однако возможны альтернативы.
Снова, с точки зрения режима работы соответствующего кодера 10, каждый из второго подмножества энтропийных кодеров может быть выполнен, при преобразовании символов, направляемых соответствующему энтропийному кодеру, в соответствующий битовый поток, с возможностью подсчета количества b в последовательности символов, направляемых соответствующему энтропийному кодеру до тех пор, пока не встретится, или пока количество последовательности символов, направляемых соответствующему энтропийному кодеру, не достигнет 2n, причем все 2n символов в последовательности равны b, и (1) если количество b равно 2n, записи c с c
Figure 00000007
{0,1} в качестве кодового слова вторичного беспрефиксного кода в соответствующий битовый поток, и (2) если количество b меньше 2n, записи кодового слова вторичного беспрефиксного кода в соответствующий битовый поток, которое имеет (d) с c≠d и d
Figure 00000007
{0,1} в качестве префикса и n-битовое слово, определенное в зависимости от количества b, в качестве суффикса.
Также дополнительно или альтернативно, предварительно определенным одним из энтропийных кодеров 10 может быть кодер переменной длины, выполненный с возможностью отображения последовательностей символов фиксированной длины на кодовые слова переменной длины соответственно, причем предварительно определенный энтропийный кодер использует правило биективного отображения, согласно которому 23 кодовых слов длиной 3 первичного кода отображаются на кодовые слова вторичного беспрефиксного кода, так что кодовое слово (aaa)3 первичного кода с a
Figure 00000007
{0,1}, отображается на кодовое слово (с) с c
Figure 00000007
{0,1}, все три кодовых слова первичного кода, имеющие точно одну b с b≠a и b
Figure 00000007
{0,1}, отображаются на кодовые слова, имеющие (d) с c≠d и d
Figure 00000007
{0,1}, в качестве префикса и соответствующее первое 2-битовое слово из первого множества 2-битовых слов в качестве суффикса, все три кодовых слова первичного кода, имеющие точно одну a, отображаются на кодовые слова, имеющие (d) в качестве префикса и конкатенацию первого 2-битового слова, не являющегося элементом первого множества, и второго 2-битового слова из второго множества 2-битовых слов, в качестве суффикса, и в котором кодовое слово (bbb)3 отображается на кодовое слово, имеющее (d) в качестве префикса и конкатенацию первого 2-битового слова, не являющегося элементом первого множества, и второго 2-битового слова, не являющегося элементом второго множества, в качестве суффикса. Первым 2-битовым словом кодовых слов первичного кода, имеющим точно одну b, может быть 2-битовое представление позиции b в соответствующем кодовом слове первичного кода, и вторым 2-битовым словом из кодовых слов первичного кода, имеющим точно одно a, может быть 2-битовое представление позиции a в соответствующем кодовом слове первичного кода. Однако возможны альтернативы.
Снова предварительно определенный один из энтропийных кодеров может быть выполнен, при преобразовании символов, направляемых предварительно определенному энтропийному кодеру, в соответствующий битовый поток, с возможностью исследования символов на предварительно определенный энтропийный кодер в тройках, (1) состоит ли тройка из a, в этом случае предварительно определенный энтропийный кодер выполняется с возможностью записи кодового слова (c) в соответствующий битовый поток, (2) содержит ли тройка точно одну b, в этом случае предварительно определенный энтропийный кодер выполняется с возможностью записи кодового слова, имеющего (d) в качестве префикса и 2-битовое представление позиции b в тройке в качестве суффикса, в соответствующий битовый поток; (3) содержит ли тройка точно одно a, в этом случае предварительно определенный энтропийный кодер выполняется с возможностью записи кодового слова, имеющего (d) в качестве префикса и конкатенацию первого 2-битового слова, не являющегося элементом первого множества, и 2-битового представления позиции a в тройке в качестве суффикса, в соответствующий битовый поток; или (4) состоит ли тройка из b, в этом случае предварительно определенный энтропийный кодер выполняется с возможностью записи кодового слова, имеющего (d) в качестве префикса и конкатенацию первого 2-битового слова, не являющегося элементом первого множества, и первого 2-битового слова, не являющегося элементом второго множества, в качестве суффикса, в соответствующий битовый поток.
Что касается декодирующей стороны, только что описанные варианты осуществления описывают декодер для восстановления последовательности символов 326, содержащий множество энтропийных декодеров 322, каждый из которых выполнен с возможностью преобразования соответствующего битового потока 324 в символы 321; средство 316 назначения, выполненное с возможностью назначения нескольких параметров каждому символу 326 последовательности символов, подлежащих восстановлению, основываясь на информации, содержащейся в ранее восстановленных символах последовательности символов; и селектор 318, выполненный с возможностью извлечения каждого символа 325 последовательности символов, подлежащих восстановлению, из выбранного одного из множества энтропийных декодеров, причем выбор зависит от количества параметров, определенных соответствующему символу. Согласно только что описанным вариантам осуществления по меньшей мере первое подмножество энтропийных декодеров 322 представляет собой декодеры переменной длины, выполненные с возможностью отображения кодовых слов переменной длины на последовательности символов переменной длины соответственно, причем каждый из энтропийных декодеров 22 первого подмножества использует правило биективного отображения, в соответствии с которыми кодовые слова первичного беспрефиксного кода с (2n-1)≥3 кодовыми словами отображаются на кодовые слова вторичного беспрефиксного кода, который идентичен первичному префиксному коду, так что все кроме двух из кодовых слов первичного беспрефиксного кода отображаются на идентичные кодовые слова вторичного беспрефиксного кода, тогда как два кодовых слова первичного и вторичного беспрефиксных кодов имеют разные длины и отображаются друг на друга попеременно, причем энтропийные кодеры используют разные n. Первый беспрефиксный код может быть построен так, что кодовыми словами первого беспрефиксного кода являются (a,b)2, (a,a,b)3, …, (a, …, a,b)n, (a, …, a)n, (b,a)2, (b,b,a)3, …, (b, …, b,a)n-1, (b, …, b)n-1, и двумя кодовыми словами, отображаемыми друг на друга попеременно, могут быть (a, …, a)n и (b, …, b)n-1 с b≠a и a,b
Figure 00000007
{0,1}. Однако возможны альтернативы.
Каждый из первого подмножества энтропийных кодеров может быть выполнен, при преобразовании соответствующего битового потока в символы, с возможностью исследования первого бита соответствующего битового потока, для определения, (1) равен ли первый бит a 0 {0,1}, в этом случае соответствующий энтропийный кодер выполняется с возможностью исследования следующих битов соответствующего битового потока для определения, (1.1) встречается ли b с b≠a и b 0 {0,1} в следующих n-1 битах, следующих за первым битом, в этом случае соответствующий энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна первому биту, за которым следуют последующие биты соответствующего битового потока, до бита b; или (1.2) не встречается ли b в следующих n-1 битах, следующих за первым битом, в этом случае соответствующий энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна (b, …, b)n-1; или (2) равен ли первый бит b, в этом случае соответствующий энтропийный декодер выполняется с возможностью исследования последующих битов соответствующего битового потока для определения, (2.1) встречается ли a в следующих n-2 битах, следующих за первым битом, в этом случае соответствующий энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна первому биту, за которым следуют последующие биты соответствующего битового потока до символа a; или (2.2) не встречается ли a в следующих n-2 битах, следующих за первым битом, в этом случае соответствующий энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна (a, …, a)n.
Дополнительно или альтернативно, по меньшей мере второе подмножество энтропийных декодеров 322 может представлять собой декодер переменной длины, выполненный с возможностью отображения кодовых слов фиксированной длины на последовательности символов переменной длины соответственно, причем каждый из энтропийных декодеров второго подмножества использует правило биективного отображения, согласно которому кодовые слова вторичного беспрефиксного кода отображаются на кодовые слова первичного усеченного унарного кода с 2n+1 кодовыми словами типа {(a), (ba), (bba), …, (b…ba), (bb…b)} с b≠a и a,b
Figure 00000007
{0,1}, так что кодовое слово (c) вторичного беспрефиксного кода отображается на кодовое слово (bb…b) первичного усеченного унарного кода, и кодовые слова, имеющие (d) с c≠d и c,d
Figure 00000007
{0,1} в качестве префикса и n-битовое слово в качестве суффикса, отображаются на соответствующее одно из других кодовых слов {(a), (ba), (bba), …, (b…ba))} первичного усеченного унарного кода, причем энтропийные декодеры используют разные n. Каждый из второго подмножества энтропийных декодеров может быть выполнен так, что n-битовое слово представляет собой n-битовое представление количества b в соответствующем кодовом слове первичного усеченного унарного кода. Однако возможны альтернативы.
Каждый из второго подмножества энтропийных декодеров может представлять собой декодер переменной длины, выполненный с возможностью отображения кодовых слов фиксированной длины на последовательности символов переменной длины соответственно, и выполненный, при преобразовании битового потока соответствующего энтропийного декодера в символы, с возможностью исследования первого бита соответствующего битового потока для определения, (1) равен ли он c с c
Figure 00000007
{0,1}, в этом случае соответствующий энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна (bb…b)2 n с b
Figure 00000007
{0,1}; или (2) равен ли он d с c≠d и c,d
Figure 00000007
{0,1}, в этом случае соответствующий энтропийный декодер выполняется с возможностью определения n-битового слова из n дополнительных битов соответствующего битового потока, следующих за первым битом, и восстановления из них последовательности символов, которая является типа {(a), (ba), (bba), …, (b…ba), (bb…b)} с b≠a и b
Figure 00000007
{0,1}, причем количество b зависит от n-битового слова.
Дополнительно или альтернативно, предварительно определенный один из энтропийных декодеров 322 может быть декодером переменной длины, выполненным с возможностью отображения кодовых слов переменной длины на последовательности символов фиксированной длины соответственно, причем предварительно определенный энтропийный декодер использует правило биективного отображения, согласно которому кодовые слова вторичного беспрефиксного кода отображаются на 23 кодовые слова длины 3 первичного кода, так что кодовое слово (c) с c
Figure 00000007
{0,1} отображается на кодовое слово (aaa)3 первичного кода с a
Figure 00000007
{0,1}, кодовые слова, имеющие (d) с c≠d и d
Figure 00000007
{0,1} в качестве префикса и соответствующее первое 2-битовое слово из первого множества из трех 2-битовых слов в качестве суффикса, отображаются на все три кодовые слова первичного кода, имеющих точно одну b с b≠a и b
Figure 00000007
{0,1}, кодовые слова, имеющие (d) в качестве префикса и конкатенацию первого 2-битового слова, не являющегося элементом первого множества, и второго 2-битового слова из второго множества из трех 2-битовых слов, в качестве суффикса, отображаются на все три кодовых слова первичного кода, имеющих точно одно a, и кодовое слово, имеющее (d) в качестве префикса и конкатенацию первого 2-битового слова, не являющегося элементом первого множества, и второго 2-битового слова, не являющегося элементом второго множества, в качестве суффикса, отображается на кодовое слово (bbb)3. Первое 2-битовое слово из кодовых слов первичного кода, имеющее точно одну b, может представлять собой 2-битовое представление позиции b в соответствующем кодовом слове первичного кода, и второе 2-битовое слово из кодовых слов первичного кода, имеющее точно одну a, может представлять собой 2-битовое представление позиции a в соответствующем кодовом слове первичного кода. Однако возможны альтернативы.
Предварительно определенный один из энтропийных декодеров может представлять собой декодер переменной длины, выполненный с возможностью отображения кодовых слов переменной длины на последовательности символов из трех символов каждая соответственно, и выполненный, при преобразовании битового потока соответствующего энтропийного декодера в символы, с возможностью исследования первого бита соответствующего битового потока для определения, (1) равен ли первый бит соответствующего битового потока c с c
Figure 00000007
{0,1}, в этом случае заданный энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна (aaa)3 с a 0 {0,1}; или (2) равен ли первый бит соответствующего битового потока d с c≠d и d
Figure 00000007
{0,1}, в этом случае предварительно определенный энтропийный декодер выполняется с возможностью определения первого 2-битового слова из 2 дополнительных битов соответствующего битового потока, который следует за первым битом, и с возможностью исследования первого 2-битового слова для определения, (2.1) не является ли первое 2-битовое слово элементом первого множества из трех 2-битовых слов, в этом случае предварительно определенный энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая имеет точно одну b с b≠a и b 0 {0,1}, причем позиция b в соответствующей последовательности символов зависит от первого 2-битового слова, или (2.2) является ли первое 2-битовое слово элементом первого множества, в этом случае предварительно определенный энтропийный декодер выполняется с возможностью определения второго 2-битового слова из 2 дополнительных битов соответствующего битового потока, следующих за двумя битами, из которых было определено первое 2-битовое слово, и с возможностью исследования второго 2-битового слова для определения, (3.1) не является ли второе 2-битовое слово элементом второго множества из трех 2-битовых слов, в этом случае предварительно определенный энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая имеет точно одну a, причем позиция a в соответствующей последовательности символов зависит от второго 2-битового слова, или (3.2) является ли второе 2-битовое слово элементом второго множества из трех 2-битовых слов, в этом случае предварительно определенный энтропийный декодер выполняется с возможностью восстановления последовательности символов, которая равна (bbb)3.
Теперь после описания общего принципа схемы видеокодирования описываются варианты осуществления настоящего изобретения в отношении вышеупомянутых вариантов осуществления. Другими словами, варианты осуществления, кратко описанные ниже, могут быть реализованы посредством использования вышеупомянутых схем, и наоборот, вышеупомянутые схемы кодирования могут быть реализованы с использованием и применением вариантов осуществления, кратко описанных ниже.
В вышеупомянутых вариантах осуществления, описанных в отношении фиг. 7-9, энтропийный кодер и декодеры по фиг. 1-6, были реализованы в соответствии с принципом PIPE. Один особый вариант осуществления использовал кодеры/декодеры 310 и 322 с арифметическим одновероятностным состоянием. Как описано ниже, согласно альтернативному варианту осуществления объекты 306-310 и соответствующие объекты 318-322 могут быть заменены обычным механизмом энтропийного кодирования. В качестве примера, представим механизм арифметического кодирования, который управляет только одним общим состоянием R и L и кодирует все символы в один общий битовый поток, таким образом отказываясь от полезных аспектов настоящего принципа PIPE, касающегося параллельной обработки, но исключая необходимость перемежения частичных битовых потоков, как дополнительно описано ниже. Делая так, количество вероятностных состояний, посредством которых вероятности контекста оцениваются посредством обновления (такого как табличный поиск), может быть выше, чем количество вероятностных состояний, посредством которых выполняется подразделение интервала вероятностей. Т.е. аналогично квантованию значения ширины интервала вероятностей перед индексированием в таблицу Rtab, также может квантоваться индекс состояния вероятности. Вышеупомянутое описание для возможной реализации для единственных кодеров/декодеров 310 и 322, таким образом, может быть расширено для примера реализации энтропийных кодеров/декодеров 318-322/306-310 в качестве механизмов контекстно-адаптивного двоичного арифметического кодирования/декодирования.
Более точно, согласно варианту осуществления энтропийный кодер, подсоединенный к выходу средства назначения параметра (который служит здесь в качестве средства назначения контекста), может работать следующим образом:
0. Средство 304 назначения направляет значение бина вместе с параметром вероятности. Вероятность равна pState_current[bin].
1. Таким образом, механизм энтропийного кодирования принимает: 1) valLPS, 2) бин и 3) оценку pState_current[bin] распределения вероятности. pState_current[bin] может иметь больше состояний, чем количество индексов различимых вероятностных состояний Rtab. Если это так, pState_current[bin] может квантоваться, так что, например, посредством игнорирования m младших значащих битов (LSB), при этом m больше или равно 1 или предпочтительно 2 или 3 для получения p_state, т.е. индекс, который затем используется для доступа к таблице Rtab. Квантование, однако, может быть исключено, т.е. p_state может быть pState_current[bin].
2. Затем выполняется квантование R (Как упомянуто выше: или один R (и соответствующий L с одним общим битовым потоком) используется/управляется для всех различимых значений p_state, или одно R (и соответствующий L с ассоциированным частичным битовым потоком на пару R/L) на различимое значение p_state, этот последний случай будет соответствовать тому, что имеется один кодер 310 бинов на такое значение)
q_index=Qtab[R>>q] (или некоторый другой вид квантования)
3. Затем выполняется определение RLPS и R:
RLPS=Rtab[p_state][q_index]; Rtab сохранил в нем предварительно вычисленные значения для p[p_state]⋅Q[q_index]
R=R-RLPS [т.е. R предварительно предобновляется, как если бы «бином» был MPS (наиболее вероятный символ)]
4. Вычисление нового предварительного интервала:
if (bin=1-valMPS) then
L ¬ L+R
R ¬ RLPS
5. Ренормализация L и R, запись битов,
Аналогично, энтропийный декодер, присоединенный к выходу средства назначения параметра (который служит здесь в качестве средства назначения контекста) может работать следующим образом:
0. Средство 304 назначения направляет значение бина вместе с параметром вероятности. Вероятностью является pState_current[bin].
1. Таким образом, механизм энтропийного декодирования принимает запрос бина вместе с: 1) valLPS, и 2) оценкой распределения вероятности pState_current[bin]. pState_current[bin] может иметь больше состояний, чем количество индексов различимых вероятностных состояний Rtab. Если это так, pState_current[bin] может квантоваться так, например, пренебрегая m LSB, причем m больше или равен 1 и предпочтительно 2 или 3 для получения p_state, т.е. индекса, который затем используется для доступа к таблице Rtab. Квантование, однако, может исключаться, т.е. p_state может быть pState_current[bin].
2. Затем выполняется квантование R (Как упомянуто выше: или один R (и соответствующий V с одним общим битовым потоком) используется/управляется для всех различимых значений p_state, или один R (и соответствующий V с ассоциированным частичным битовым потоком на пару R/L) на различимое значение p_state, этот последний случай соответствует тому, что имеется один кодер 310 бинов на такое значение)
q_index=Qtab[R>>q] (или некоторый другой вид квантования)
3. Затем выполняется определение RLPS и R:
RLPS=Rtab[p_state][q_index]; Rtab сохранила в себе предварительно вычисленные значения для p[p_state]⋅Q[q_index]
R=R-RLPS [т.е. R предварительно предобновляется, как если бы «бином» был MPS]
4. Определение бина в зависимости от позиции частичного интервала:
if(V3R) then
bin ¬ 1 - valMPS (бин декодируется как LPS; селектор 18 буфера бинов получает фактическое значение бина посредством использования этой информации о бине и valMPS)
V ¬ V-R
R ¬ RLPS
else
bin ¬ valMPS (бин декодируется как MPS; фактическое значение бина получается посредством использования этой информации о бине и valMPS)
5. Ренормализация R, считывание одного бита и обновление V,
Как описано выше, средство 4 назначения назначает pState_current[bin] каждому бину. Ассоциирование может выполняться на основе выбора контекста. Т.е. средство 4 назначения может выбирать контекст, используя индекс ctxIdx контекста, который, в свою очередь, имеет соответствующий pState_current, ассоциированный с ним. Обновление вероятности может выполняться каждый раз, когда вероятность pState_current[bin] была применена к текущему бину. Обновление состояния вероятности pState_current[bin] выполняется в зависимости от значения кодированного бита:
Figure 00000008
Если обеспечивается более одного контекста, адаптация выполняется по контексту, т.е. pState_current[ctxIdx] используется для кодирования и затем обновления, используя текущее значение бина (кодированное или декодированное соответственно).
Как более подробно изложено ниже, согласно вариантам осуществления, описываемым теперь, кодер и декодер могут необязательно быть реализованы для работы в разных режимах, а именно, режиме низкой сложности (LC) и высокой эффективности (HE). Это изображается, главным образом, касательно кодирования PIPE в нижеследующем (упоминая тогда режимы LC и HE PIPE), но описание подробностей масштабируемости сложности легко переносится на другие реализации механизмов энтропийного кодирования/декодирования, такие как вариант осуществления использования одного общего контекстно-адаптивного арифметического кодера/декодера.
Согласно вариантам осуществления, кратко изложенным ниже, оба режима энтропийного кодирования могут совместно использовать
один и тот же синтаксис и семантику (для последовательности 301 и 327 синтаксических элементов соответственно)
одинаковые схемы бинаризации для всех синтаксических элементов (определенные в настоящее время для CABAC (контекстно-адаптивное двоичное арифметическое кодирование)) (т.е. бинаризаторы могут работать независимо от активизированного режима)
применение одинаковых кодов PIPE (т.е. кодеры/декодеры бинов могут работать независимо от активизированного режима)
применение 8-битовых значений инициализации вероятностной модели (вместо 16-битовых значений инициализации, определенных в настоящее время для CABAC)
Вообще говоря, LC-PIPE отличается от HE-PIPE сложностью обработки, такой как сложность выбора тракта 312 PIPE для каждого бина.
Например, режим LC может работать при следующих ограничениях: Для каждого бина (binIdx) может быть точно одна вероятностная модель, т.е. один ctxIdx. Т.е. в LC PIPE не может обеспечиваться выбор/адаптация контекста. Конкретные синтаксические элементы, такие как те, которые используются для кодирования остатка, могут, однако, кодироваться с использованием контекстов, как дополнительно изложено ниже. Кроме того, все вероятностные модели могут быть неадаптивными, т.е. все модели могут инициализироваться в начале каждого слайса с соответствующими вероятностями модели (в зависимости от выбора типа слайса и QP (параметр квантования) слайса) и могут поддерживаться фиксированными во время обработки слайса. Например, может поддерживаться только 8 разных вероятностей модели, соответствующих 8 разным кодам 310/322 PIPE, как для моделирования, так и кодирования контекста. Конкретные синтаксические элементы для кодирования остатка, т.е. significance_coeff_flag и coeff_abs_level_greaterX (с X=1,2), семантика которых более подробно изложена ниже, могут назначаться вероятностным моделям, таким как (по меньшей мере) группы, например, из 4 синтаксических элементов, кодируются/декодируются с одинаковой вероятностью модели. По сравнению с CAVLC (контекстно-адаптивный код переменной длины) режим LC-PIPE достигает грубо таких же рабочих характеристик R-D и такую же производительность.
HE-PIPE может быть выполнен концептуально подобно CABAC в стандарте H.264 со следующими отличиями: Двоичное арифметическое кодирование (BAC) заменяется кодированием PIPE (таким же, что и в случае LC-PIPE). Каждая вероятностная модель, т.е. каждый ctxIdx, может быть представлена посредством pipeIdx и refineIdx, где pipeIdx со значениями в диапазоне 0-7 представляет вероятность модели 8 разных кодов PIPE. Это изменение оказывает влияние только на внутреннее представление состояний, а не на поведение самого конечного автомата (т.е. оценку вероятности). Как более подробно изложено ниже, инициализация вероятностных моделей может использовать 8-битовые значения инициализации, как изложено выше. Обратное сканирование синтаксических элементов coeff_abs_level_greaterX (с X=1,2), coeff_abs_level_minus3 и coeff_sign_flag (семантика которых станет ясной из нижеследующего описания) может выполняться по этому же пути сканирования, что и сканирование вперед (используемое, например, при кодировании карты значимостей). Вывод контекста для кодирования coeff_abs_level_greaterX (с X=1,2) также может быть упрощен. По сравнению с CABAC предложенный HE-PIPE достигает грубо таких рабочих характеристик R-D при лучшей производительности.
Легко видеть, что только что упомянутые режимы легко генерируются посредством рендеринга, например, вышеупомянутого механизма контекстно-адаптивного двоичного арифметического кодирования/декодирования, так как он работает в разных режимах.
Таким образом, согласно варианту осуществления в соответствии с первым аспектом настоящего изобретения декодер для декодирования потока данных может быть выполнен так, как показано на фиг. 11. Декодер предназначен для декодирования потока 401 данных, такого как битовый поток 340 с перемежением, в какие медиаданные, такие как данные видео, кодируется. Декодер содержит переключатель 400 режима, выполненный с возможностью активизирования режима низкой сложности или режима высокой эффективности в зависимости от потока 401 данных. С этой целью, поток 401 данных может содержать синтаксический элемент, такой как двоичный синтаксический элемент, имеющий двоичное значение 1 в случае режима низкой сложности, являющегося тем, который необходимо активизировать, и имеющий двоичное значение 0 в случае режима высокой эффективности, являющегося тем, который необходимо активизировать. Очевидно, что ассоциирование между двоичным значением и режимом кодирования может переключаться, и также может использоваться недвоичный синтаксический элемент, имеющий более двух возможных значений. Так как фактический выбор между двумя режимами еще не ясен перед приемом соответствующего синтаксического элемента, этот синтаксический элемент может содержаться в некотором переднем заголовке потока 401 данных, кодированного, например, с фиксированной оценкой вероятности или вероятностной моделью или записываемого в поток 401 данных как есть, т.е. используя режим обхода.
Кроме того, декодер по фиг. 11 содержит множество энтропийных декодеров 322, каждый из которых выполнен с возможностью преобразования кодовых слов в потоке 401 данных в частичные последовательности 321 символов. Как описано выше, деперемежитель 404 может быть подсоединен между входами энтропийных декодеров 322, с одной стороны, и входом декодера по фиг. 11, где подается поток 401 данных, с другой стороны. Кроме того, как уже описано выше, каждый из энтропийных декодеров 322 может ассоциироваться с соответствующим вероятностным интервалом, причем вероятностные интервалы различных энтропийных декодеров вместе покрывают весь интервал вероятностей от 0 до 1 - или 0-0,5 в случае энтропийных декодеров 322, имеющих дело с MPS и LPS, а не абсолютными значениями символов. Подробности, касающиеся этого вопроса, были описаны выше. Позже предполагается, что количество декодеров 322 равно 8, причем индекс PIPE назначается каждому декодеру, но также возможно любое другое количество. Кроме того, один из этих кодеров, ниже им является, в качестве примера, тот, который имеет pipe_id равный 0, оптимизируется для бинов, имеющих равновероятную статистику, т.е. их значение бина принимают 1 и 0 равновероятно. Этот декодер может просто пропускать бины. Соответствующий кодер 310 работает аналогичным образом. Могут быть исключены даже любые манипулирования бинами в зависимости от значения наиболее вероятного значения бина valMPS селекторами 402 и 502 соответственно. Другими словами, энтропия соответствующего частичного потока уже является оптимальной.
Кроме того, декодер на фиг. 11 содержит селектор 402, выполненный с возможностью извлечения каждого символа последовательности 326 символов из выбранного одного из множества энтропийных декодеров 322. Как упомянуто выше, селектор 402 может быть разделен на средство 316 назначения параметра и селектор 318. Десимволизатор 314 выполнен с возможностью десимволизирования последовательности 326 символов для получения последовательности 327 синтаксических элементов. Восстановитель 404 выполнен с возможностью восстановления медиаданных 405, основываясь на последовательности синтаксических элементов 327. Селектор 402 выполнен с возможностью выполнения выбора в зависимости от активизированного одного из режима низкой сложности и режима высокой эффективности, как указывается стрелкой 406.
Как уже упомянуто выше, восстановитель 404 может быть частью видеодекодера на основе блоков предсказания, работающего с фиксированным синтаксисом и семантикой синтаксических элементов, т.е. фиксированными относительно выбора режима переключателем 400 режима. Т.е. конструкция восстановителя 404 не допускает переключаемости режимов. Более точно, восстановитель 404 не увеличивает издержки реализации из-за переключаемости режимов, предлагаемой переключателем 400 режима, и по меньшей мере функциональная возможность в отношении данных остатка и данных предсказания остается такой же независимо от режима, выбранного переключателем 400. Это также применимо, однако, в отношении энтропийных декодеров 322. Все эти декодеры 322 повторно используются в обоих режимах, и, следовательно, нет дополнительных издержек реализации, хотя декодер по фиг. 11 является совместимым с обоими режимами, режимами низкой сложности и высокой эффективности.
В качестве дополнительного аспекта необходимо отметить, что декодер по фиг. 11 не только способен работать с автономными потоками данных или в одном режиме, или в другом режиме. Вместо этого, декодер по фиг. 11, а также поток 401 данных могут быть выполнены так, что переключение между обоими режимами даже будет возможным в течение одной порции медиаданных, например, во время видео или некоторой порции аудио, чтобы, например, управлять сложностью кодирования на декодирующей стороне в зависимости от внешних или окружающих условий, таких как состояние батареи или т.п. с использованием канала обратной связи от декодера к кодеру, чтобы соответствующим образом управлять с замкнутой петлей выбором режима.
Таким образом, декодер по фиг. 11 работает аналогично в обоих случаях, в случае, когда выбирается режим LC или когда выбирается режим HE. Восстановитель 404 выполняет восстановление с использованием синтаксических элементов и запрашивает текущий синтаксический элемент заданного типа синтаксического элемента посредством обработки или подчинения некоторому предписанию структуры синтаксиса. Десимволизатор 314 запрашивает несколько бинов, чтобы выдать достоверную бинаризацию для синтаксического элемента, запрашиваемого восстановителем 404. Очевидно, что в случае двоичного алфавита бинаризация, выполняемая десимволизатором 314 понижает до простого пропускания соответствующего бина/символа 326 на восстановитель 404 в качестве запрашиваемого в настоящий момент двоичного синтаксического элемента.
Селектор 402, однако, действует независимо от режима, выбранного переключателем 400 режима. Режим работы селектора 402 имеет тенденцию быть более сложным в случае режима высокой эффективности и менее сложным в случае режима низкой сложности. Кроме того, нижеследующее описание показывает, что режим работы селектора 402 в режиме низкой сложности также имеет тенденцию уменьшать частоту, с которой селектор 402 изменяет выбор среди энтропийных декодеров 322 при извлечении последовательных символов из энтропийных декодеров 322. Другими словами, в режиме низкой сложности существует повышенная вероятность, что непосредственно последующие символы извлекаются из одного и того же энтропийного декодера из числа множества энтропийных декодеров 322. Это, в свою очередь, позволяет получить более быстрое извлечение символов из энтропийных декодеров 322. В режиме высокой эффективности, в свою очередь, режим работы селектора 402 стремится привести к выбору из числа энтропийных декодеров 322, где интервал вероятностей, ассоциированный с соответствующим выбранным энтропийным декодером 322, более точно соответствует фактической статистике символов символа, извлекаемого в настоящий момент селектором 402, таким образом получая лучший коэффициент сжатия на кодирующей стороне при генерировании соответствующего потока данных в соответствии с режимом высокой эффективности.
Например, разное поведение селектора 402 в обоих режимах может быть реализовано следующим образом. Например, селектор 402 может быть выполнен с возможностью выполнения для заданного символа выбора из числа множества энтропийных декодеров 322 в зависимости от ранее извлеченных символов последовательности 326 символов в случае активизированного режима высокой эффективности и независимо от любых ранее извлеченных символов последовательности символов в случае активизированного режима низкой сложности. Зависимость от ранее извлеченных символов последовательности 326 символов может происходить из контекстной адаптивности и/или вероятностной адаптивности. Обе адаптивности могут отключаться во время режима низкой сложности в селекторе 402.
Согласно другому варианту осуществления поток 401 данных может быть структурирован в последовательные части, такие как слайсы, кадры, группы изображений, последовательности кадров или т.п., и каждый символ последовательности символов может ассоциироваться с соответствующим одним из множества типов символа. В данном случае, селектор 402 может быть выполнен с возможностью изменения, для символов заданного типа символа в текущей части, выбора в зависимости от ранее извлеченных символов последовательности символов заданного типа символа в текущей части в случае активизированного режима высокой эффективности и оставления выбора постоянным в текущей части в случае активизированного режима низкой сложности. Т.е. селектору 402 может быть предоставлена возможность изменять выбор среди энтропийных декодеров 322 для заданного типа символа, но эти изменения ограничены тем, что происходят между переходами между последовательными частями. Посредством этой меры оценки фактической статистики символов ограничиваются редко встречающимися временными случаями, тогда как сложность кодирования уменьшается в большей части времени.
Кроме того, каждый символ последовательности 326 символов может ассоциироваться с соответствующим одним из множества типов символа, и селектор 402 может быть выполнен, для заданного символа заданного типа символа, с возможностью выбора одного из множества контекстов в зависимости от ранее извлеченных символов последовательности 326 символов и выполнения выбора среди энтропийных декодеров 322 в зависимости от вероятностной модели, ассоциированной с выбранным контекстом вместе с обновлением вероятностной модели, ассоциированной с выбранным контекстом в зависимости от заданного символа в случае активизированного режима высокой эффективности, и выполнения выбора одного из множества контекстов в зависимости от ранее извлеченных символов последовательности 326 символов и выполнения выбора среди энтропийных декодеров 322 в зависимости от вероятностной модели, ассоциированной с выбранным контекстом вместе с оставлением вероятностной модели, ассоциированной с выбранным контекстом, постоянной в случае активизированного режима низкой сложности. Т.е. селектор 402 может использовать контекстную адаптивность в отношении некоторого типа синтаксического элемента в обоих режимах, в тоже время подавляя вероятностную адаптацию в случае режима LC.
Альтернативно, вместо полного подавления вероятностной адаптации селектор 402 может просто уменьшить частоту обновления вероятностной адаптации режима LC относительно режима HE.
Кроме того, другими словами, возможные аспекты, характерные для LC-PIPE, т.е. аспекты режима LC, могут быть описаны следующим образом. В частности, неадаптивные вероятностные модели могут использоваться в режиме LC. Неадаптивная вероятностная модель может или иметь жестко закодированную, т.е. полную постоянную вероятность, или ее вероятность поддерживается фиксированной только во время обработки слайса и, таким образом, может устанавливаться в зависимости от типа слайса и QP, т.е. параметра квантования, который, например, сигнализируется в потоке 401 данных для каждого слайса. Предполагая, что последовательные бины, назначенные одному и тому же контексту, придерживаются фиксированной вероятностной модели, возможно декодирование нескольких из этих бинов на одном шаге, когда они кодируются с использованием одного и того же кода pipe, т.е. используя один и тот же энтропийный декодер, и опускается обновление вероятности после каждого декодированного бина. Опускание обновлений вероятности экономит операции во время процесса кодирования и декодирования и, таким образом, также приводит к уменьшению сложности и существенному упрощению аппаратной конструкции.
Неадаптивное ограничение может быть ослаблено для всех или некоторых выбранных вероятностных моделей таким образом, что обновления вероятности разрешаются после того, как некоторое количество бинов будет кодировано/декодировано с использованием этой модели. Соответствующий интервал обновления допускает вероятностную адаптацию, в тоже время имея возможность одновременного декодирования нескольких бинов.
Ниже представлено более подробное описание возможных общих и с масштабируемой сложностью аспектов LC-pipe и HE-pipe. В частности, ниже описываются аспекты, которые могут использоваться для режима LC-pipe и режима HE-pipe одинаковым образом или с масштабируемой сложностью. Масштабируемая сложность означает, что случай LC выводится из случая HE посредством удаления конкретных частей или посредством замены их несколько менее сложными. Однако перед продолжением с ними необходимо упомянуть, что вариант осуществления на фиг.11 является легко переносимым на вышеупомянутый вариант осуществления контекстно-адаптивного двоичного арифметического кодирования/декодирования: селектор 402 и энтропийные декодеры 322 сосредотачиваются в контекстно-адаптивный двоичный арифметический декодер, который непосредственно принимает поток 401 данных и выбирает контекст для бина, подлежащего извлечению в настоящий момент из потока данных. Это особенно верно для контекстной адаптивности и/или вероятностной адаптивности. Обе функциональные возможности/адаптивности могут быть отключены, или разработаны более ослабленными, во время режима низкой сложности.
Например, при реализации варианта осуществления по фиг.11 ступень энтропийного кодирования pipe, включающая в себя энтропийные декодеры 322, может использовать восемь систематических переменный-в-переменный-кодов, т.е. каждый энтропийный декодер 322 может быть типа v2v, который был описан выше. Принцип PIPE-кодирования, использующий систематические v2v-коды, упрощается посредством ограничения количества v2v-кодов. В случае контекстно-адаптивного двоичного арифметического декодера он может управлять его вероятностными состояниями для разных контекстов и использовать его - или его квантованную версию - для подразделения вероятности. Отображение состояний CABAC или вероятностной модели, т.е. состояний, используемых для обновления вероятности, в PIPE id или индексы вероятности для поиска в Rtab, может быть таким, какое изображено в таблице A.
Таблица A: Отображение состояний CABAC в индексы PIPE
Figure 00000009
Эта модифицированная схема кодирования может использоваться в качестве основы для подхода видеокодирования с масштабируемой сложностью. При выполнении вероятностной адаптации режима селектор 402 или контекстно-адаптивный двоичный арифметический декодер соответственно выбирают декодер 322 PIPE, т.е. выводят индекс pipe, подлежащий использованию, и индекс вероятности в Rtab, соответственно, основываясь на индексе состояния вероятности - здесь в качестве примера диапазон составляет от 0 до 62 - ассоциированный с подлежащим декодированию текущим символом - например, при помощи контекста - используя отображение, показанное в таблице A, и обновляет этот индекс состояния вероятности в зависимости от декодируемого в настоящий момент символа, используя, например, конкретные значения перехода обхода таблицы, указывающие на следующий индекс состояния вероятности, подлежащий посещению в случае MPS и LPS соответственно. В случае режима LC обновление последнего может быть исключено. Даже отображение может быть исключено в случае глобально фиксированных вероятностных моделей.
Однако может использоваться произвольное установление энтропийного кодирования, и методы в данном документе также могут использоваться с незначительной адаптацией.
Вышеупомянутое описание фиг. 11 скорее в общих чертах ссылалось на синтаксические элементы и типы синтаксических элементов. Ниже описывается кодирование с конфигурируемой сложностью уровней коэффициентов преобразования.
Например, восстановитель 404 может быть выполнен с возможностью восстановления блока 200 преобразования уровней 202 коэффициентов преобразования, основываясь на части последовательности синтаксических элементов независимо от активизированного режима высокой эффективности или режима низкой сложности, причем часть последовательности 327 синтаксических элементов содержит, без перемежения, синтаксические элементы карты значимостей, определяющие карту значимостей, указывающую позиции ненулевых уровней коэффициентов преобразования в блоке 200 преобразования, и затем (за которым следует) определение синтаксических элементов уровня, определяющих ненулевых уровни коэффициентов преобразования. В частности, следующие элементы могут быть включены: синтаксические элементы конечной позиции (last_significant_pos_x, last_significant_pos_y), указывающие позицию последнего ненулевого уровня коэффициентов преобразования в блоке преобразования; первые синтаксические элементы (coeff_significant_flag), определяющие вместе карту значимостей и указывающие, для каждой позиции по одномерному пути (274), ведущему от позиции DC (постоянного тока) в позицию последнего ненулевого уровня коэффициентов преобразования в блоке (200) преобразования, в отношении того, является ли ненулевым или нет уровень коэффициентов преобразования в соответствующей позиции; вторые синтаксические элементы (coeff_abs_greater1), указывающие, для каждой позиции одномерного пути (274), где, согласно первым двоичным синтаксическим элементам, располагается ненулевой уровень коэффициентов преобразования, в отношении того, является ли больше единицы уровень коэффициентов преобразования в соответствующей позиции; и третьи синтаксические элементы (coeff_abs_greater2, coeff_abs_minus3), показывающие, для каждой позиции одномерного пути, где, согласно первым двоичным синтаксическим элементам, располагается уровень коэффициентов преобразования больше единицы, величину, на которую соответствующий уровень коэффициентов преобразования в соответствующей позиции превышает единицу.
Порядок среди синтаксических элементов конечной позиции, первых, вторых и третьих синтаксических элементов может быть одинаковым для режима высокой эффективности и режима низкой сложности, и селектор 402 может быть выполнен с возможностью выполнения выбора из числа энтропийных декодеров 322 для символов, от которого десимволизатор 314 получает синтаксические элементы конечной позиции, первые синтаксические элементы, вторые синтаксические элементы и/или третьи синтаксические элементы, в разной зависимости от активизированного режима низкой сложности или режима высокой эффективности.
В частности, селектор 402 может быть выполнен, для символов заданного типа символа из числа последовательности символов, из которой десимволизатор 314 получает первые синтаксические элементы и вторые синтаксические элементы, с возможностью выбора для каждого символа заданного типа символа одного из множества контекстов в зависимости от ранее извлеченных символов заданного типа символа из числа последовательности символов и выполнения выбора в зависимости от вероятностной модели, ассоциированной с выбранным контекстом в случае активизированного режима высокой эффективности, и выполнения выбора кусочно-постоянным образом, так что выбор является постоянным по последовательным непрерывным подчастям последовательности в случае активизированного режима низкой сложности. Как описано выше, подчасти могут измеряться количеством позиций, по которым простирается соответствующая подчасть при измерении по одномерному пути 274, или количеством синтаксических элементов соответствующего типа, уже кодированных с текущим контекстом. Т.е. двоичные синтаксические элементы coeff_significant_flag, coeff_abs_greater1 и coeff_abs_greater2, например, кодируются адаптивно к контексту с выбором декодера 322, основываясь на вероятностной модели выбранного контекста в режиме HE. Также используется вероятностная адаптация. В режиме LC также существуют разные контексты, которые используются для каждого из двоичных синтаксических элементов coeff_significant_flag, coeff_abs_greater1 и coeff_abs_greater2. Однако для каждого из этих синтаксических элементов контекст сохраняется статичным для первой части по пути 274 с изменением контекста только при переходе в следующую, непосредственно последующую часть по пути 274. Например, каждая часть может определяться длиной равной 4, 8, 16 позициям блока 200, независимо от того, присутствует ли или нет для соответствующей позиции соответствующий синтаксический элемент. Например, coeff_abs_greater1 и coeff_abs_greater2 просто присутствуют для значимых позиций, т.е. позиций, где - или для которых - coeff_significant_flag равен 1. Альтернативно, каждая часть может определяться длиной, равной 4, 8, 16 синтаксических элементов, независимо от того, простирается ли результирующая таким образом соответствующая часть по большему количеству позиций блока. Например, coeff_abs_greater1 и coeff_abs_greater2 просто присутствуют для значимых позиций, и, таким образом, части каждых из четырех синтаксических элементов могут проходить по более чем 4 позициям блока вследствие позиций между ними по пути 274, для которых не передается такой синтаксический элемент, такой как ни coeff_abs_greater1, ни coeff_abs_greater2, так как соответствующий уровень в этой позиции равен нулю.
Селектор 402 может быть выполнен, для символов заданного типа символа в последовательности символов, из которой десимволизатор получает первые синтаксические элементы и вторые синтаксические элементы, с возможностью выбора для каждого символа заданного типа символа одного из множества контекстов в зависимости от количества ранее извлеченных символов заданного типа символа в последовательности символов, которые имеют заданное значение символа и принадлежит к этой же подчасти, или количества ранее извлеченных символов заданного типа символа в последовательности символов, которые принадлежат этой же подчасти. Первая альтернатива была верной для coeff_abs_greater1, и вторая альтернатива была верной для coeff_abs_greater2 в соответствии с вышеупомянутыми конкретными вариантами осуществления.
Кроме того, третьи синтаксические элементы, показывающие, для каждой позиции одномерного пути, где, согласно первым двоичным синтаксическим элементам, располагается уровень коэффициентов преобразования больший единицы, величину, на которую соответствующий уровень коэффициентов преобразования в соответствующей позиции превышает единицу, могут содержать целочисленные синтаксические элементы, т.е. coeff_abs_minus3, и десимволизатор 314 может быть выполнен с возможностью использования функции отображения, управляемой параметром управления для отображения области определения слов последовательности символов на область значений целочисленных синтаксических элементов, и установления параметра управления на целочисленный синтаксический элемент в зависимости от целочисленных синтаксических элементов предыдущих третьих синтаксических элементов, если активизирован режим высокой эффективности, и выполнения установления кусочно-постоянным образом, так что установление является постоянным по последовательным непрерывным подчастям последовательности в случае активизированного режима низкой сложности, причем селектор 402 может быть выполнен с возможностью выбора заданного одного из энтропийных декодеров (322) для символов слов последовательности символов, отображаемых на целочисленные синтаксические элементы, которая ассоциируется с равно-вероятным распределением как в режиме высокой эффективности, так и в режиме низкой сложности. Т.е. даже если десимволизатор может работать в зависимости от режима, выбранного переключателем 400, как изображено пунктирной линией 407. Вместо кусочно-постоянного установления параметра управления десимволизатор 314 может поддерживать параметр управления постоянным во время текущего слайса, например, или постоянным глобально во времени.
Ниже описывается моделирование контекста с масштабируемой сложностью.
Оценка одного и того же синтаксического элемента верхнего и левого соседа для выведения индекса контекстной модели представляет собой общий подход и часто используется в случае HE, например, для синтаксического элемента разностей векторов движения. Однако эта оценка требует большего буферного накопителя и не позволяет выполнять прямое кодирование синтаксического элемента. Также, для достижения более высоких рабочих характеристик кодирования могут оцениваться более доступные соседи.
В предпочтительном варианте осуществления все синтаксические элементы оценки ступени контекстного моделирования соседних квадратных или прямоугольных блоков или единиц предсказания являются фиксированными для одной контекстной модели. Это равнозначно запрещению адаптивности на ступени выбора контекстной модели. Для этого предпочтительного варианта осуществления выбор контекстной модели в зависимости от индекса бина строки бинов после бинаризации не модифицируется по сравнению с текущей разработкой для CABAC. В другом предпочтительном варианте осуществления дополнительно к фиксированной контекстной модели для синтаксических элементов применяют оценку соседей, также является фиксированной контекстная модель для другого индекса бина. Отметьте, что описание не включает бинаризацию и выбор контекстной модели для разностей векторов движения и синтаксических элементов, относящихся к кодированию уровней коэффициентов преобразования.
В предпочтительном варианте осуществления разрешается только оценка левого соседа. Это приводит к уменьшенному буферу в цепочке обработки, так как последний блок или строка единиц кодирования больше не должна сохраняться. В другом предпочтительном варианте осуществления оцениваются только соседи, лежащие в одной и той же единице кодирования.
В предпочтительном варианте осуществления оцениваются все доступные соседи. Например, в дополнение к верхнему и левому соседу верхний левый, верхний правый и нижний левый соседи оцениваются в случае доступности.
Т.е. селектор 402 по фиг. 11 может быть выполнен с возможностью использования, для заданного символа, относящегося к заданному блоку медиаданных, ранее извлеченных символов последовательности символов, относящихся к большему количеству разных соседних блоков медиаданных в случае активизированного режима высокой эффективности, чтобы выбирать один из множества контекстов и выполнять выбор между энтропийными декодерами 322 в зависимости от вероятностной модели, ассоциированной с выбранным контекстом. Т.е. соседние блоки могут быть соседями во временной и/или пространственной области. Пространственно соседние блоки являются видимыми, например, на фиг. 1-3. Тогда селектор 402 может реагировать на выбор режима переключателем 400 режима и выполнять адаптацию контакта, основываясь на ранее извлеченных символах или синтаксических элементах, относящихся к большему количеству соседних блоков в случае режима HE по сравнению с режимом LC, таким образом уменьшая издержки хранения как только что описано.
Ниже описывается кодирование с уменьшенной сложностью разностей векторов движения согласно варианту осуществления.
В стандарте видеокодека H.264/AVC вектор движения, ассоциированный с макроблоком, передается посредством сигнализации разности (разность вектора движения - mvd) между вектором движения текущего макроблока и предсказателем среднего вектора движения. Когда используется CABAC в качестве энтропийного кодера, mvd кодируется следующим образом. Целочисленная mvd разделяется на абсолютную и знаковую часть. Абсолютная часть бинаризуется с использованием комбинации усеченного унарного кода и экспоненциального кода Голомба 3-го порядка, упоминаемых как префикс и суффикс результирующей строки бинов. Бины, относящиеся к усеченной унарной бинаризации кодируются с использованием контекстных моделей, тогда как бины, относящиеся к экспоненциальной бинаризации Голомба, кодируются в режиме обхода, т.е. с фиксированной вероятностью 0,5 с CABAC. Унарная бинаризация работает следующим образом. Пусть абсолютным целочисленным значением mvd является n, тогда результирующая строка бинов состоит из n «1» и одного завершающего «0». В качестве примера, пусть n=4, тогда строкой бинов является «11110». В случае усеченного унарного существует предел, и, если значение превышает этот предел, строка бинов состоит из n+1 «1». Для случая mvd предел равен 9. Это означает, если кодируется абсолютная mvd, равная или больше 9, приводя к 9 «1», строка бинов состоит из префикса и суффикса с экспоненциальной бинаризацией Голомба. Контекстное моделирование для усеченной унарной части выполняется следующим образом. Для первого бина строки бинов берутся абсолютные значения mvd от верхних и левых соседних макроблоков, если доступны (если недоступны, значение подразумевается равным 0). Если сумма для конкретной составляющей (горизонтального или вертикального направления) больше 2, выбирается вторая контекстная модель, если абсолютная сумма больше 32, выбирается третья контекстная модель, в противном случае, (абсолютная сумма меньше 3) выбирается первая контекстная модель. Кроме того, контекстные модели являются разными для каждой составляющей. Для второго бина из строки бинов используется четвертая контекстная модель, и пятая контекстная модель применяется для остальных бинов унарной части. Когда абсолютная mvd равна или больше 9, например, все бины усеченной унарной части равны «1», разность между абсолютным значением mvd и 9 кодируется в режиме обхода при помощи экспоненциальной бинаризации Голомба 3 порядка. На последнем этапе кодируется знак mvd в режиме обхода.
Самым последним методом кодирования для mvd при использовании CABAC в качестве энтропийного кодера задается в текущей тестовой модели (HM) проекта высокоэффективного видеокодирования (HEVC). В HEVC размеры блока являются переменными, и форма, задаваемая вектором движения, упоминается как единица предсказания (PU). Размер PU верхнего и левого соседа может иметь другие формы и размеры, чем текущий PU. Поэтому, где это уместно, определение верхнего и левого соседа упоминается теперь как верхний и левый сосед верхнего-левого угла текущего PU. Для самого кодирования процесс выведения для первого бина может меняться согласно варианту осуществления. Вместо оценки абсолютной суммы MV из соседей, каждый сосед может оцениваться отдельно. Если абсолютный MV соседа является доступным и больше 16, индекс контекстной модели может быть увеличен, приводя к такому же количеству контекстных моделей для первого бина, тогда как кодирование оставшегося абсолютного уровня MVD и знака являются точно таким же, что и в H.264/AVC.
В вышеописанном кратко методе кодирования mvd до 9 бинов должны кодироваться с контекстной моделью, тогда как остальное значение mvd может кодироваться в режиме обхода низкой сложности вместе с информацией о знаке. Данный настоящий вариант осуществления описывает метод уменьшения количества бинов, кодируемых с контекстными моделями, приводя к увеличенному количеству обходов и уменьшает количество контекстных моделей, требуемых для кодирования mvd. Для этого, значение отсечки уменьшается с 9 до 1 или 2. Это означает, что только первый бин, задающий, является ли абсолютный mvd больше нуля, кодируется с использованием контекстной модели, или первый и второй бин, задающие, является ли абсолютный mvd больше нуля и единицы, кодируется с использованием контекстной модели, тогда как оставшееся значение кодируется в режиме обхода и/или используя код VLC (код переменной длины). Все бины, являющиеся результатом бинаризации с использованием кода VLC - не используя унарный или усеченный унарный код - кодируются с использованием режима обхода низкой сложности. В случае PIPE возможно непосредственное вставление в битовый поток и из него. Кроме того, если есть, может использоваться другое определение верхнего и левого соседа для выведения лучшего выбора контекстной модели для первого бина.
В предпочтительном варианте осуществления экспоненциальные коды Голомба используются для бинаризации остальной части абсолютных составляющих MVD. Для этого, порядок экспоненциального кода Голомба является переменным. Порядок экспоненциального кода Голомба выводится следующим образом. После того как будет выведена и кодирована контекстная модель для первого бина, и, поэтому, индекс этой контекстной модели, индекс используется в качестве порядка для части экспоненциальной бинаризации Голомба. В этом предпочтительном варианте осуществления контекстная модель для первого бина находится в диапазоне 1-3, приводя к индексу 0-2, которые используются в качестве порядка экспоненциального кода Голомба. Этот предпочтительный вариант осуществления может использоваться для случая HE.
В альтернативе вышеописанному кратко методу использования двух, умноженных на пять, контекстов при кодировании абсолютной MVD, чтобы кодировать 9 бинов бинаризации унарным кодом, также может использоваться 14 контекстных моделей (7 для каждой составляющей). Например, в то время как первый и второй бины унарной части могут кодироваться при помощи четырех разных контекстов, как описано ранее, пятый контекст может использоваться для третьего бина, и шестой контекст может использоваться в отношении четвертого бина, тогда как пятый-девятый бины кодируются с использованием седьмого контекста. Таким образом, в данном случае, будет требоваться даже 14 контекстов, и просто оставшееся значение может кодироваться в режиме обхода низкой сложности. Метод для уменьшения количества бинов, кодируемых при помощи контекстных моделей, приводя к увеличенному количеству обходов и уменьшению количества контекстных моделей, требуемых для кодирования MVD, должен уменьшать значение отсечки, например, с 9 до 1 или 2. Это означает, то только первый бин, задающий, является ли абсолютная MVD больше нуля, будет кодироваться с использованием контекстной модели, или первый и второй бины, задающие, является ли абсолютная MVD больше нуля и единицы, будет кодироваться с использованием соответствующей контекстной модели, тогда как оставшееся значение кодируется при помощи кода VLC. Все бины, являющиеся результатом бинаризации с использованием кода VLC, кодируются с использованием режима обхода низкой сложности. В случае PIPE, возможно непосредственное вставление в битовый поток и из него. Кроме того, представленный вариант осуществления использует другое определение верхнего и левого соседа для выведения выбора лучшей контекстной модели для первого бина. В дополнение к этому, контекстное моделирование модифицируется таким образом, что количество контекстных моделей, требуемых для первого или первого и второго бинов уменьшается, приводя к дальнейшему снижению объема памяти. Также, оценка соседей, таких как вышеприведенный сосед, может запрещаться, приводя к экономии объема памяти/буфера строк, требуемого для хранения значений mvd соседей. Наконец, порядок кодирования составляющих может быть разделен таким образом, который позволяет выполнять кодирование бинов префикса для обоих составляющих (т.е. бинов, кодированных контекстными моделями), за которым следует кодирование бинов обхода.
В предпочтительном варианте осуществления экспоненциальные коды Голомба используются для бинаризации остальной части абсолютных составляющих mvd. Для этого, порядок экспоненциального кода Голомба является переменным. Порядок экспоненциального кода Голомба может выводиться следующим образом. После того как будет получена контекстная модель для первого бина, и, поэтому, индекс этой контекстной модели, индекс используется в качестве порядка для экспоненциальной бинаризации Голомба. В данном предпочтительном варианте осуществления контекстная модель для первого бина находится в диапазоне 1-3, приводя к индексу 0-2, который используется в качестве порядка экспоненциального кода Голомба. Данный предпочтительный вариант осуществления может использоваться для случая HE, и количество контекстных моделей уменьшается до 6. Чтобы еще уменьшить количество контекстных моделей и, поэтому, сэкономить память, горизонтальные и вертикальные составляющие могут совместно использовать одни и те же контекстные модели в другом предпочтительном варианте осуществления. В этом случае, требуется только 3 контекстных модели. Кроме того, может учитываться только левый сосед для оценки в другом предпочтительном варианте осуществления изобретения. В данном предпочтительном варианте осуществления порог может не модифицироваться (например, только единственный порог 16, приводя к параметру экспоненциального кода Голомба 0 или 1, или единственный порог 32, приводя к параметру экспоненциального кода Голомба 0 или 2). Этот предпочтительный вариант осуществления экономит буфер строк, требуемый для хранения mvd. В другом предпочтительном варианте осуществления порог модифицируется и равен 2 и 16. Для этого предпочтительного варианта осуществления в сумме требуется 3 контекстных модели для кодирования mvd, и возможный параметр экспоненциального кода Голомба находится в диапазоне 0-2. В другом предпочтительном варианте осуществления порог равен 16 и 32. Снова, описанный вариант осуществления пригоден для случая HE.
В другом предпочтительном варианте осуществления изобретения значение отсечки уменьшается с 9 до 2. В данном предпочтительном варианте осуществления первый бин и второй бин могут кодироваться с использованием контекстных моделей. Выбор контекстной модели для первого бина может выполняться как в современном состоянии техники или в модифицированном виде таким образом, который описан в предпочтительном варианте осуществления выше. Для второго бина выбирается отдельная контекстная модель как в современном состоянии техники. В другом предпочтительном варианте осуществления контекстная модель для второго бина выбирается посредством оценки mvd левого соседа. Для этого случая, индекс контекстной модели является тем же, что и для первого бина, тогда как доступные контекстные модели являются другими, чем для первого бина. В итоге, требуется 6 контекстных моделей (отметьте, что составляющие совместно используют контекстные модели). Снова, параметр экспоненциального кода Голомба может зависеть от индекса выбранной контекстной модели первого бина. В другом предпочтительном варианте осуществления изобретения параметр экспоненциального кода Голомба зависит от индекса контекстной модели второго бина. Описанные варианты осуществления изобретения могут использоваться для случая HE.
В другом предпочтительном варианте осуществления изобретения контекстные модели для обоих бинов являются фиксированными и не выводятся посредством оценки или левого, или верхнего соседей. Для этого предпочтительного варианта осуществления общее количество контекстных моделей равно 2. В другом предпочтительном варианте осуществления изобретения первый бин и второй бин совместно используют одну и ту же контекстную модель. В результате, только одна контекстная модель требуется для кодирования mvd. В обоих предпочтительных вариантах осуществления изобретения параметр экспоненциального кода Голомба может быть фиксированным и равным 1. Описанный предпочтительный вариант осуществления изобретения пригоден для обоих конфигураций HE и LC.
В другом предпочтительном варианте осуществления порядок экспоненциальной части кода Голомба выводится независимо из индекса контекстной модели первого бина. В данном случае, абсолютная сумма выбора обычной контекстной модели H.264/AVC используется для выведения порядка для экспоненциальной части кода Голомба. Этот предпочтительный вариант осуществления может использоваться для случая HE.
В другом предпочтительном варианте осуществления порядок экспоненциальных кодов Голомба является фиксированным и устанавливается на 0. В другом предпочтительном варианте осуществления порядок экспоненциальных кодов Голомба является фиксированным и устанавливается на 1. В предпочтительном варианте осуществления порядок экспоненциальных кодов Голомба фиксируется на 2. В другом варианте осуществления порядок экспоненциальных кодов Голомба фиксируется на 3. В другом варианте осуществления порядок экспоненциальных кодов Голомба фиксируется в соответствии с формой и размером текущего PU. Представленные предпочтительные варианты осуществления могут использоваться для случая LC. Отметьте, что фиксированный порядок части экспоненциального кода Голомба рассматривается с уменьшенным количеством бинов, кодированных с контекстными моделями.
В предпочтительном варианте осуществления соседи определяются следующим образом. Для вышеупомянутого PU все PU, которые закрывают текущий PU, принимаются во внимание, и используется PU с наибольшим MV. Это также выполняется для левого соседа. Все PU, которые закрывают текущий PU, оцениваются, и используется PU с наибольшим MV. В другом предпочтительном варианте осуществления среднее абсолютное значение вектора движения от всех PU, которые закрывают верхнюю и левую границу текущего PU, используется для выведения первого бина.
Для представленных выше предпочтительных вариантов осуществления является возможным изменять порядок кодирования следующим образом. mvd должен быть задан для горизонтального и вертикального направления один за другим (или наоборот). Таким образом, две строки бинов должны кодироваться. Чтобы минимизировать количество переключений режима для механизма энтропийного кодирования (т.е. переключение между режимом обхода и обычным режимом), является возможным кодировать бины, кодированные с контекстными моделями для обоих составляющих на первом этапе, за которым следует бины, кодированные в режиме обхода на втором этапе. Отметьте, что это представляет собой только переупорядочивание.
Необходимо отметить, что бины, являющиеся результатом унарной или усеченной унарной бинаризации, также могут представляться эквивалентной бинаризацией фиксированной длины одного флага на индекс бина, задающего, является ли значение больше индекса текущего бина. В качестве примера, значение отсечки для усеченной унарной бинаризации mvd устанавливается на 2, приводя к кодовым словам 0, 10, 11 для значений 0, 1, 2. При соответствующей бинаризации фиксированной длины с одним флагом на индекс бина, один флаг для индекса 0 бина (т.е. первого бина) задает, является ли абсолютное значение mvd больше 0 или нет, и один флаг для второго бина с индексом 1 бина задает, является ли абсолютное значение mvd больше 1 или нет. Когда второй флаг только кодируется, когда первый флаг равен 1, это приводит к таким же кодовым словам 0, 10, 11.
Ниже описывается представление с масштабируемой сложностью внутреннего состояния вероятностных моделей согласно варианту осуществления.
При установке HE-PIPE, внутреннее состояние вероятностной модели обновляется после кодирования бина с ним. Обновленное состояние выводится посредством табличного поиска перехода состояния, используя старое состояние и значение кодированного бина. В случае CABAC вероятностная модель может принимать 63 разных состояний, когда каждое состояние соответствует вероятности модели в интервале (0,0, 0,5). Каждое из этих состояний используется для реализации двух вероятностей модели. В дополнение к вероятности, назначенной состоянию, 1,0 минус вероятность также используется, и флаг, названный valMps, хранит информацию, используется ли вероятность или 1,0 минус вероятность. Это приводит к сумме в 126 состояний. Чтобы использовать такую вероятностную модель с принципом кодирования PIPE, каждое из 126 состояний необходимо отображать на один из доступных кодеров PIPE. В текущих реализациях кодеров PIPE это выполняется посредством использования таблицы поиска. Пример такого отображения описывается в таблице A.
Ниже описывается вариант осуществления, как внутреннее состояние вероятностной модели может быть представлено для исключения использования таблицы поиска для преобразования внутреннего состояния в индекс PIPE. Необходимы исключительно некоторые простые операции маскирования битов для извлечения индекса PIPE из переменной внутреннего состояния вероятностной модели. Это новое представление с масштабируемой сложностью внутреннего состояния вероятностной модели разработано двухуровневым образом. Для применений, где операция низкой сложности является обязательной, используется только первый уровень. Он описывает только индекс pipe и флаг valMps, который используется для кодирования или декодирования ассоциированных бинов. В случае описанной схемы энтропийного кодирования PIPE, первый уровень может использоваться для различения между 8 разными вероятностями моделей. Таким образом, первому уровню потребуется 3 бита для pipeIdx, и один дополнительный бит для флага valMps. Со вторым уровнем каждый из диапазонов грубой вероятности первого уровня уточняется в несколько меньшие интервалы, которые поддерживают представление вероятностей при более высоких разрешениях. Это более подробное представление позволяет получить более точную работу устройств оценки вероятности. В общем, оно подходит для применений кодирования, которые стремятся к высоким характеристикам RD. В качестве примера, это представление с масштабируемой сложностью внутреннего состояния вероятностных моделей с использованием PIPE изображается следующим образом:
Figure 00000010
Первый и второй уровни сохраняются в единственной 8-битовой памяти. 4 бита требуются для хранения первого уровня - индекс, который определяет индекс PIPE со значением MPS на самом старшем бите - и другие 4 бита используются для хранения второго уровня. Для реализации поведения устройства оценки вероятности CABAC, каждый индекс PIPE имеет конкретное количество разрешенных индексов уточнения в зависимости от того, сколько состояний CABAC было отображено на индекс PIPE. Например, для отображения в таблице A количество состояний CABAC на индекс PIPE изображается в таблице B.
Таблица B: Количество состояний CABAC на индекс PIPE для примера таблицы A.
Figure 00000011
Во время процесса кодирования или декодирования бина к индексу PIPE и valMps можно обращаться непосредственно посредством применения простой битовой маски или операций сдвига бита. Процессы кодирования низкой сложности требуют 4 бита первого уровня, и процессы кодирования высокой эффективности могут дополнительно использовать 4 бита второго уровня для выполнения обновления вероятностной модели устройства оценки вероятности CABAC. Для выполнения этого обновления может быть разработана таблица поиска переходов состояния, которая делает такие же переходы состояния, что и исходная таблица, но используя двухуровневое представление с масштабируемой сложностью состояний. Исходная таблица переходов состояний состоит из двух, умноженных на 63 элементов. Для каждого состояния ввода она содержит два состояния вывода. При использовании представления с масштабируемой сложностью размер таблицы переходов состояний не превышает 2, умноженных на 128 элементов, что представляет собой допустимое увеличение размера таблицы. Это увеличение зависит от того, сколько битов используется для представления индекса уточнения и точного имитирования поведения устройства оценки вероятности CABAC, необходимо четыре бита. Однако могут использоваться другие устройства оценки вероятности, которые могут работать на уменьшенном наборе состояний CABAC, так что для каждого индекса pipe разрешается не более 8 состояний. Поэтому, потребление памяти может сопоставляться с данным уровнем сложности процесса кодирования посредством адаптации количества битов, используемых для представления индекса уточнения. По сравнению с внутренним состоянием вероятностей модели с CABAC - где существует 64 индекса состояния вероятности - исключается использование табличных поисков для отображения вероятностей модели на конкретный код PIPE, и не требуется дополнительного преобразования.
Ниже описывается обновление контекстной модели с масштабируемой сложностью согласно варианту осуществления.
Для обновления контекстной модели ее индекс состояния вероятности может обновляться на основе одного или нескольких ранее кодированных бинов. В установке HE-PIPE это обновление выполняется после кодирования или декодирования каждого бина. И наоборот, в установке LC-PIPE это обновление может никогда не выполняться.
Однако является возможным выполнять обновление контекстных моделей с масштабируемой сложностью. Т.е. решение, обновлять ли контекстную модель или нет может основываться на различных аспектах. Например, установка кодера может не выполнять обновление только для конкретных контекстных моделей, подобно, например, контекстным моделям синтаксического элемента coeff_significant_flag и выполнять всегда обновления для всех других контекстных моделей.
Другими словами, селектор 402 может быть выполнен, для символов каждого из нескольких заданных типов символа, с возможностью выполнения выбора среди энтропийных декодеров 322 в зависимости от соответствующей вероятностной модели, ассоциированной с соответствующим заданным символом, так что количество заданных типов символа меньше в режиме низкой сложности по сравнению с режимом высокой эффективности.
Кроме того, критериями для управления, обновлять ли контекстную модель или нет, могут быть, например, размер пакета битового потока, количество бинов, декодированных до сих пор, или обновление выполняется только после кодирования конкретного фиксированного или переменного количества бинов для контекстной модели.
С данной схемой для принятия решения, обновлять ли контекстные модели или нет, может быть реализовано обновление контекстной модели с масштабируемой сложностью. Это позволяет увеличивать или уменьшать долю бинов в битовом потоке, для которого выполняется обновления контекстной модели. Чем больше количество обновлений контекстной модели, тем лучше эффективность кодирования и выше вычислительная сложность. Таким образом, обновление контекстной модели с масштабируемой сложностью может достигаться с описанной схемой.
В предпочтительном варианте осуществления обновление контекстной модели выполняется для бинов всех синтаксических элементов за исключением синтаксических элементов coeff_significant_flag, coeff_abs_greater1 и coeff_abs_greater2.
В другом предпочтительном варианте осуществления обновление контекстной модели выполняется только для бинов синтаксических элементов coeff_significant_flag, coeff_abs_greater1 и coeff_abs_greater2.
В другом предпочтительном варианте осуществления обновление контекстной модели выполняется для всех контекстных моделей, когда начинается кодирование или декодирование слайса. После того как будет обработано конкретное заданное количество блоков преобразования, обновление контекстной модели запрещается для всех контекстных моделей до тех пор, пока не будет достигнут конец слайса.
Например, селектор 402 может быть выполнен, для символов заданного типа символа, с возможностью выполнения выбора из числа энтропийных декодеров 322 в зависимости от вероятностной модели, ассоциированной с заданным типом символа, вместе или без обновления ассоциированной вероятностной модели, так что длительность фазы обучения последовательности символов, по которой выполняется выбор символов заданного типа символа вместе с обновлением, является более короткой в режиме низкой сложности по сравнению с режимом высокой эффективности.
Другой предпочтительный вариант осуществления идентичен ранее описанному предпочтительному варианту осуществления, но он использует представление с масштабируемой сложностью внутреннего состояния контекстных моделей таким образом, что одна таблица хранит «первую часть» (valMps и pipeIdx) всех контекстных моделей, и вторая таблица хранит «вторую часть» (refineIdx) всех контекстных моделей. Тогда, когда обновление контекстной модели запрещается для всех контекстных моделей (как описано в предыдущем предпочтительном варианте осуществления), больше не требуется таблица, хранящая «вторую часть», и она может быть отброшена.
Ниже описывается обновление контекстной модели для последовательности бинов согласно варианту осуществления.
В конфигурации LC-PIPE бины синтаксических элементов типа coeff_significant_flag, coeff_abs_greater1 и coeff_abs_greater2 группируются в подмножества. Для каждого подмножества используется единственная контекстная модель для кодирования ее бинов. В данном случае, обновление контекстной модели может выполняться после кодирования фиксированного количества бинов данной последовательности. Это обозначается многобиновым обновлением в нижеследующем. Однако это обновление может отличаться от обновления, использующего только последний кодированный бин и внутреннее состояние контекстной модели. Например, для каждого бина, который был кодирован, выполняется один этап обновления контекстной модели.
Ниже приведены примеры для кодирования примерного подмножества, состоящего из 8 бинов. Буква «b» обозначает декодирование бина, и буква «u» обозначает обновление контекстной модели. В случае LC-PIPE выполняется только декодирование бинов без выполнения обновлений контекстной модели:
b b b b b b b b
В случае HE-PIPE после декодирования каждого бина выполняется обновление контекстной модели:
b u b u b u b u b u b u b u b u
Чтобы в некоторой степени уменьшить сложность, обновление контекстной модели может выполняться после последовательности бинов (в данном примере после каждых 4 бинов выполняются обновления этих 4 бинов):
b b b b u u u u b b b b u u u u
Т.е. селектор 402 может быть выполнен, для символов заданного типа символа, с возможностью выполнения выбора из числа энтропийных декодеров 322 в зависимости от вероятностной модели, ассоциированной с заданным типом символа вместе с или без обновления ассоциированной вероятностной модели, так что частота, с которой выполняется выбор символов заданного типа символа вместе с обновлением, меньше в режиме низкой сложности по сравнению с режимом высокой эффективности.
В данном случае, после декодирования 4 бинов следует 4 этапа обновления, основанные на только что декодированных 4 бинах. Отметьте, что эти четыре этапа обновления могут выполняться одним единственным этапом посредством использования специальной таблицы поиска для поиска. Эта таблица поиска хранит для каждой возможной комбинации из 4 бинов и каждого возможного внутреннего состояния контекстной модели результирующее новое состояние после четырех обычных этапов обновления.
В некотором режиме многобиновое обновление используется для синтаксического элемента coeff_significant_flag. Для бинов всех других синтаксических элементов не используется обновление контекстной модели. Количество бинов, которые кодируются перед этапом многобинового обновления, устанавливается на n. Когда количество бинов множества не является кратным n, 1-n-1 бинов остается в конце подмножества после последнего многобинового обновления. Для каждого из этих бинов выполняется обычное однобиновое обновление после кодирования всех этих бинов. Количество n может представлять собой любое положительное число больше 1. Другой режим может быть идентичным предыдущему режиму за исключением того, что многобиновое обновление выполняется для произвольных комбинаций coeff_significant_flag, coeff_abs_greater1 и coeff_abs_greater2 (только вместо coeff_significant_flag). Таким образом, этот режим будет более сложным, чем другой. Все другие синтаксические элементы (где не используется многобиновое обновление) могут быть разделены на два непересекающихся подмножеств, где для одного из подмножеств используется однобиновое обновление, и для другого подмножества не используется обновление контекстной модели. Любые возможные непересекающиеся подмножества являются действительными (включая пустое подмножество).
В альтернативном варианте осуществления многобиновое обновление может основываться только на последних m бинах, которые кодируются непосредственно перед этапом многобинового обновления. m может представлять собой любое натуральное число меньше n. Таким образом, декодирование может выполняться подобно следующему:
b b b b u u b b b b u u b b b b u u b b b b …
при n=4 и m=2.
Т.е. селектор 402 может быть выполнен, для символов заданного типа символа, с возможностью выполнения выбора из числа энтропийных декодеров 322 в зависимости от вероятностной модели, ассоциированной с заданным типом символа, вместе с обновлением ассоциированной вероятностной модели каждого n-го символа заданного типа, основываясь на m самых последних символах заданного типа символа, так что отношение n/m является более высоким в режиме низкой сложности по сравнению с режимом высокой эффективности.
В другом предпочтительном варианте осуществления для синтаксического элемента coeff_significant_flag может использоваться схема контекстного моделирования, использующая местный шаблон, как описано выше для конфигурации HE-PIPE, для назначения контекстных моделей бинам синтаксического элемента. Однако для этих бинов не используется обновление контекстной модели.
Кроме того, селектор 402 может быть выполнен, для символов заданного типа символа, с возможностью выбора одного из нескольких контекстов в зависимости от количества ранее извлеченных символов последовательности символов и выполнения выбора из числа энтропийных декодеров 322 в зависимости от вероятностной модели, ассоциированной с выбранным контекстом, так что количество контекстов, и/или количество ранее извлеченных символов, меньше в режиме низкой сложности по сравнению с режимом высокой эффективности.
ИНИЦИАЛИЗАЦИЯ ВЕРОЯТНОСТНОЙ МОДЕЛИ, ИСПОЛЬЗУЮЩАЯ 8-БИТОВЫЕ ЗНАЧЕНИЯ ИНИЦИАЛИЗАЦИИ
Этот раздел описывает процесс инициализации внутреннего состояния с масштабируемой сложностью вероятностных моделей, используя так называемое 8-битовое значение инициализации вместо двух 8-битовых значений, как в случае современного стандарта H.264/AVC видеокодирования. Оно состоит из двух частей, которые являются сравнимыми с парами значений инициализации, используемыми для вероятностных моделей в CABAC в H.264/AVC. Две части представляют два параметра линейного уравнения для вычисления исходного состояния вероятностной модели, представляющей конкретную вероятность (например, в виде индекса PIPE) из QP:
Первая часть описывает наклон, и он использует зависимость внутреннего состояния касательно параметра квантования (QP), который используется во время кодирования или декодирования.
Вторая часть описывает индекс PIPE при данном QP, а также valMps.
Два разных режима являются доступными для инициализации вероятностной модели, используя данное значение инициализации. Первый режим обозначается как независимая от QP инициализация. Он использует только индекс PIPE и valMps, определенные во второй части значения инициализации для всех QP. Это идентично случаю, когда наклон равен 0. Второй режим обозначается как зависимая от QP инициализация, и он дополнительно использует наклон первой части значения инициализации для изменения индекса PIPE и определения индекса уточнения. Две части 8-битового значения инициализации изображаются следующим образом:
Figure 00000012
Оно состоит из двух 4-битовых частей. Первая часть содержит индекс, который указывает на 1 из 16 разных заданных наклонов, которые хранятся в массиве. Заданные наклоны состоят из 7 отрицательных наклонов (индекс наклона 0-6), одного наклона, который равен нулю (индекс 7 наклона) и 8 положительных наклонов (индекс 8-15 наклона). Наклоны изображены в таблице C.
Таблица C
Figure 00000013
Все значения масштабируются коэффициентом 256, чтобы избежать использования операций с плавающей запятой. Вторая часть представляет собой индекс PIPE, который изображает восходящую вероятность valMps=1 между интервалом вероятности p=0 и p=1. Другими словами, кодер n PIPE должен работать при более высокой вероятности модели, чем кодер n-1 PIPE. Для каждой вероятностной модели доступен один индекс вероятности PIPE, и он идентифицирует кодер PIPE, интервал вероятностей которого содержит вероятность pvalMPs=1 для QP=26.
Таблица D: Отображение второй части значения инициализации на кодеры PIPE и valMps: UR - унарный-в-Райс-код; TB - трехбиновый код, BP - бин-pipe-код, EP - равновероятность (не кодируется)
Figure 00000014
QP и 8-битовое значение инициализации требуются для вычисления инициализации внутреннего состояния вероятностных моделей посредством вычисления простого линейного уравнения в виде y=m*(QP-QPref)+256*b. Отметьте, что m определяет наклон, который берется из таблицы C посредством использования индекса наклона (первая часть 8-битового значения инициализации), и b обозначает кодер PIPE при QPref=26 (вторая часть 8-битового значения инициализации: «Индекс вероятности PIPE»). Тогда valMPS равен 1, и pipeIdx равен (y-2048)>>8, если y больше 2047. В противном случае, valMPS равен 0, и pipeIdx равен (2047-y)>>8. Индекс уточнения равен (((y-2048)&255)*numStates)>>8, если valMPS равен 1. В противном случае, индекс уточнения равен (((2047-y)&255)*numStates)>>8. В обоих случаях, numStates равен количеству состояний CABAC в pipeIdx, как изображено в таблице B.
Вышеупомянутая схема не только может использоваться в комбинации с кодерами PIPE, но также в связи с вышеупомянутыми схемами CABAC. При отсутствии PIPE количество состояний CABAC, т.е. вероятностных состояний, между которыми выполняется переход состояния при обновлении вероятности (pState_current[bin]) на PIPE Idx (т.е. соответствующие самые старшие биты pState_current[bin]) представляют собой тогда только множество параметров, которые реализуют, фактически, кусочно-линейную интерполяцию состояния CABAC в зависимости от QP. Кроме того, эта кусочно-линейная интерполяция также может быть виртуально запрещена в случае, когда параметр numStates использует одинаковое значение для всех PIPE Idx. Например, установка numStates в 8 для всех случаев дает в сумме 16*8 состояний, и вычисление индекса уточнения упрощается до ((y-2048)&255)>>5 для valMPS равного 1 или ((2047-y)&255)>>5 для valMPS равного 0. Для этого случая является очень простым отображение представления, использующего valMPS, PIPE Idx и idx уточнения обратно к представлению, используемому исходным CABAC в H.264/AVC. Состояние CABAC определяется как (PIPE Idx<<3)+Idx уточнения. Этот аспект дополнительно описывается ниже в отношении фиг. 16.
Если наклон 8-битового значения инициализации не равен нулю, или если QP не равно 26, то необходимо вычислять внутреннее состояние применением линейного уравнения с QP процесса кодирования или декодирования. В случае наклона, равного нулю, или что QP текущего процесса кодирования равно 26, вторая часть 8-битового значения инициализации может использоваться непосредственно для инициализации внутреннего состояния вероятностной модели. В противном случае, десятичная часть результирующего внутреннего состояния может быть дополнительно использоваться для определения индекса уточнения в применениях высокоэффективного кодирования посредством линейной интерполяции между пределами конкретного кодера PIPE. В данном предпочтительном варианте осуществления линейная интерполяция выполняется простым умножением десятичной части на общее количество индексов уточнения, доступных для текущего кодера PIPE и отображением результата на ближайший целочисленный индекс уточнения.
Процесс инициализации внутреннего состояния вероятностных моделей может изменяться относительно количества состояний индекса вероятности PIPE. В частности, двойное присутствие равновероятного режима, использующего кодер E1 PIPE, т.е. использование двух разных индексов PIPE для различения между MPS, равным 1 или 0, можно избежать следующим образом. Снова, процесс может вызываться во время начала синтаксического разбора данных слайса, и вводом данного процесса может быть 8-битовое значение инициализации, как показано в таблице E, которое, например, передается в битовом потоке для каждой контекстной модели, подлежащей инициализации.
Таблица E: Установка 8 битов initValue для вероятностной модели
Figure 00000015
Первые 4 бита определяют индекс наклона и извлекаются посредством маскирования битов b4-b7. Для каждого индекса наклона slope(m) задается и отображается в таблице F.
Таблица F: Значения переменной m для slopeIdx
Figure 00000016
Биты b0-b3, последние 4 бита 8-битового значения инициализации, идентифицируют probIdx и описывают вероятность при заданном QP. probIdx 0 указывает наибольшую вероятность для символов со значением 0 и, соответственно, probIdx 14 указывает наибольшую вероятность для символов со значением 1. Таблица G изображает для каждого probIdx соответствующий pipeCoder и его valMps.
Таблица G: Отображение последней 4-битовой части значения инициализации на кодеры PIPE и valMps: UR - унарный-в-Райс-код, TB - трехбиновый код, BP - бин-pipe-код, EP - равновероятность (не кодируется)
Figure 00000017
С обоими значениями вычисление внутреннего состояния может выполняться посредством использования линейного уравнения, подобного y=m*x+256*b, где m обозначает наклон, x обозначает QP текущего слайса, и b выводится из probIdx, как показано в последующем описании. Все значения в данном процессе масштабируются коэффициентом 256, чтобы избежать использование операций с плавающей запятой. Выходной результат (y) данного процесса представляет внутреннее состояние вероятностной модели при текущем QP и сохраняется в 8-битовой памяти. Как показано в G, внутреннее состояние состоит из valMPs, pipeIdx и refineIdx.
Таблица H: Установка внутреннего состояния вероятностной модели
Figure 00000018
Figure 00000019
Назначение refineIdx и pipeIdx подобно внутреннему состоянию вероятностных моделей CABAC (pStateCtx) и представлено в H.
Таблица I: Назначение pipeIdx, refineIdx и pStateCtx
Figure 00000020
В предпочтительном варианте осуществления probIdx определяется при QP26. Основываясь на 8-битовом значении инициализации, внутреннее состояние (valMps, pipeIdx и refineIdx) вероятностной модели обрабатывается так, как описано в следующем псевдокоде:
Figure 00000021
Figure 00000022
Как показано в псевдокоде, refineIdx вычисляется посредством линейной интерполяции между интервалом pipeIdx и квантованием результата в соответствующий refineIdx. Смещение задает общее количество refineIdx для каждого pipeIdx. Интервал [7, 8) fullCtxState/256 делится пополам. Интервал [7, 7,5) отображается на pipeIdx=0 и valMps=0, и интервал [7,5, 8) отображается на pipeIdx=0 и valMps=1. Фиг. 16 изображает процесс выведения внутреннего состояния и отображает отображение fullCtxState/256 на pStateCtx.
Отметьте, что наклон указывает зависимость probIdx и QP. Если slopeIdx 8-битового значения инициализации равно 7, результирующее внутреннее состояние вероятностной модели является одинаковым для всех QP слайса - следовательно процесс инициализации внутреннего состояния является независимым от текущего QP слайса.
Т.е., селектор 402 может инициализировать индексы pipe, подлежащие использованию при декодировании следующей части потока данных, такой как полный поток или следующий слайс, используя синтаксический элемент, указывающий размер QP шага квантования, используемый для квантования данных этой части, таких как уровни коэффициентов преобразования, содержащиеся в нем, используя данный синтаксический элемент в качестве индекса в таблицу, которая может быть общей для обоих режимов, LC и HE. Таблица, такая как таблица D, может содержать индексы pipe для каждого типа символа, для соответствующего опорного значения QPref или других данных для каждого типа символа. В зависимости от фактического QP текущей части селектор может вычислять значение индекса pipe, используя соответствующий элемент a таблицы, индексированный фактическим QP или самим QP, например, умножением a на (QP-QPref). Единственное отличие в режиме LC и HE: Селектор вычисляет результат только при меньшей точности в случае LC по сравнению с режимом HE. Селектор, например, может просто использовать целочисленную часть результата вычисления. В режиме HE используется остаток более высокой точности, такой как дробная часть, для выбора одного из доступных индексов уточнения для соответствующего индекса pipe, как указывается частью с меньшей точностью или целочисленной частью. Индекс уточнения используется в режиме HE (потенциально менее редко также в режиме LC) для выполнения вероятностной адаптации, например, посредством использования вышеупомянутого обхода таблицы. Если оставлять доступные индексы для текущего индекса pipe на более верхней границе, тогда более высокий индекс pipe выбирается следующим с минимизированием индекса уточнения. Если оставлять доступные индексы для текущего индекса pipe при более низкой границе, тогда следующий более низкий индекс pipe выбирается следующим с максимизированием индекса уточнения до максимума, доступного для нового индекса pipe. Индекс pipe вместе с индексом уточнения определяют состояние вероятности, но для выбора из числа частичных потоков, селектор просто использует индекс pipe. Индекс уточнения служит просто для более точного отслеживания вероятности, или для более высокой точности.
Вышеупомянутое описание также показало, однако, что масштабируемость сложности может достигаться независимо от принципа кодирования PIPE по фиг. 7-10 или CABAC, используя декодер, показанный на фиг. 12. Декодер по фиг.12 предназначен для декодирования потока 601 данных, в который кодируются медиаданные, и содержит переключатель 600 режима, выполненный с возможностью активизирования режима низкой сложности или режима высокой эффективности в зависимости от потока 601 данных, а также десимволизатор 602, выполненный с возможностью десимволизирования последовательности 603 символов, полученных - или прямо или посредством энтропийного декодирования, например - из потока 601 данных для получения целочисленных синтаксических элементов 604, используя функцию отображения, управляемую параметром управления, для отображения области определения слов последовательности символов в область значений целочисленных синтаксических элементов. Восстановитель 605 выполнен с возможностью восстановления медиаданных 606, основываясь на целочисленных синтаксических элементах. Десимволизатор 602 выполнен с возможностью выполнения десимволизирования, так что параметр управления изменяется в соответствии с потоком данных с первой скоростью в случае активизированного режима высокой эффективности, и параметр управления является постоянным независимо от потока данных или изменяется в зависимости от потока данных, но со второй скоростью, которая меньше первой скорости, в случае активизированного режима низкой сложности, как показано стрелкой 607. Например, параметр управления может изменяться в соответствии с ранее десимволизированными символами.
Некоторые из вышеупомянутых вариантов осуществления использовали аспект фиг. 12. Синтаксические элементы coeff_abs_minus3 и MVD в последовательности 327, например, бинаризировались в десимволизаторе 314 в зависимости от выбранного режима, как указано позицией 407, и восстановитель 605 использовал эти синтаксические элементы для восстановления. Очевидно, оба аспекта по фиг. 11 и 19 являются легко объединяемыми, но аспект фиг. 12 также может объединяться с другими средами кодирования.
См., например, отмеченное выше кодирование разностей векторов движения. Десимволизатор 602 может быть выполнен так, что функция отображения использует усеченный унарный код для выполнения отображения в первом интервале области определения целочисленных синтаксических элементов ниже значения отсечки и комбинацию префикса в виде усеченного унарного кода для значения отсечки и суффикса в виде кодового слова VLC во втором интервале области определения целочисленных синтаксических элементов, включая и выше значения отсечки, причем декодер может содержать энтропийный декодер 608, выполненный с возможностью выведения количества первых бинов усеченного унарного кода из потока 601 данных, используя энтропийное декодирование с оценкой изменяющейся вероятности, и количества вторых бинов кодового слова VLC, используя режим обхода с постоянной равновероятностью. В режиме HE энтропийное кодирование может быть более сложным, чем при кодировании LC, как показано стрелкой 609. Т.е. контекстная адаптивность и/или вероятностная адаптация могут применяться в режиме HE и подавляться в режиме LC, или сложность может масштабироваться в других показателях, как изложено выше в отношении различных вариантов осуществления.
Кодер, соответствующий декодеру по фиг. 11, для кодирования медиаданных в поток данных показан на фиг. 13. Он может содержать устройство 500 вставки, выполненное с возможностью сигнализации в потоке 501 данных активизирования режима низкой сложности или режима высокой эффективности, конструктор 504, выполненный с возможностью предкодирования медиаданных 505 в последовательность 506 синтаксических элементов, символизатор 507, выполненный с возможностью символизирования последовательности 506 синтаксических элементов в последовательность 508 символов, множество энтропийных кодеров 310, каждый из которых выполнен с возможностью преобразования частичных последовательностей символов в кодовые слова потока данных, и селектор 502, выполненный с возможностью направления каждого символа последовательности 508 символов на выбранный один из множества энтропийных кодеров 310, причем селектор 502 выполнен с возможностью выполнения выбора в зависимости от активизированного одного из режима низкой сложности и режима высокой эффективности, как показано стрелкой 511. Перемежитель 510 может необязательно обеспечиваться для перемежения кодовых слов кодеров 310.
Кодер, соответствующий декодеру по фиг. 12, для кодирования медиаданных в поток данных показан на фиг. 14, содержащий устройство 700 вставки, выполненное с возможностью сигнализации в потоке 701 данных активизирования режима низкой сложности или режима высокой эффективности, конструктор 704, выполненный с возможностью предкодирования медиаданных 705 в последовательность 706 синтаксических элементов, содержащую целочисленный синтаксический элемент, и символизатор 707, выполненный с возможностью символизирования целочисленного синтаксического элемента, используя функцию отображения, управляемую параметром управления, для отображения области определения целочисленных синтаксических элементов в область значений слов последовательности символов, причем символизатор 707 выполнен с возможностью выполнения символизирования, так что параметр управления изменяется в соответствии с потоком данных с первой скоростью в случае активизированного режима высокой эффективности, и параметр управления является постоянным независимо от потока данных или изменяется в зависимости от потока данных, но со второй скоростью, которая меньше первой скорости, в случае активизированного режима низкой сложности, как показано стрелкой 708. Результат символизирования кодируется в поток 701 данных.
Снова, необходимо упомянуть, что вариант осуществления по фиг. 14 легко переносится на вышеупомянутый вариант осуществления контекстно-адаптивного двоичного арифметического кодирования/декодирования: селектор 509 и энтропийные кодеры 310 сводятся вместе в контекстно-адаптивный двоичный арифметический кодер, который будет выводить поток 401 данных непосредственно и выбирать контекст для бина, подлежащего выведению в настоящий момент из потока данных. Это особенно верно для контекстной адаптивности и/или вероятностной адаптивности. Обе функциональные возможности/адаптивности могут отключаться, или могут быть разработаны более ослабленными, во время режима низкой сложности.
Выше было кратко отмечено, что возможность переключения режима, описанная в отношении некоторых вышеупомянутых вариантов осуществления, согласно альтернативным вариантам осуществления, может быть исключена. Чтобы сделать это ясным, ссылка делается на фиг. 16, которая суммирует вышеупомянутое описание в той мере, в какой только исключение возможности переключения режима отличает вариант осуществления по фиг. 16 от вышеупомянутых вариантов осуществления. Кроме того, последующее описание показывает преимущества, являющиеся результатом инициализации оценок вероятности контекстов, используя менее точные параметры для наклона и смещения по сравнению, например, с H.264.
В частности, фиг. 16 изображает декодер для декодирования видео 405 из потока 401 данных, для которого кодируются горизонтальные и вертикальные составляющие разностей векторов движения, используя бинаризации горизонтальных и вертикальных составляющих, причем бинаризации равны усеченному унарному коду горизонтальных и вертикальных составляющих соответственно в первом интервале области определения горизонтальных и вертикальных составляющих ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода. Значение отсечки и суффикс в виде экспоненциального кода Голомба горизонтальных и вертикальных составляющих соответственно во втором интервале области определения горизонтальных и вертикальных составляющих включительно и выше значения отсечки, причем значение отсечки равно 2, и экспоненциальный код Голомба имеет порядок 1. Декодер содержит энтропийный декодер 409, выполненный, для горизонтальных и вертикальных составляющих разностей векторов движения, с возможностью выведения усеченного унарного кода из потока данных, используя контекстно-адаптивное двоичное энтропийное декодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, который является общим для горизонтальных и вертикальных составляющих разностей векторов движения, и экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью для получения бинаризаций разностей векторов движения. Более точно, как описано выше, энтропийный декодер 409 может быть выполнен с возможностью выведения количества бинов 326 бинаризаций из потока 401 данных, используя бинарное энтропийное декодирование, такое как вышеупомянутая схема CABAC, или бинарное декодирование PIPE, т.е. использование конструкции, включающей в себя несколько параллельно работающих энтропийных декодеров 322 вместе с соответствующим селектором/средством назначения. Десимволизатор 314 дебинаризирует бинаризации синтаксических элементов разностей векторов движения для получения целочисленных значений горизонтальных и вертикальных составляющих разностей векторов движения, и восстановитель 404 восстанавливает видео, основываясь на целочисленных значениях горизонтальных и вертикальных составляющих разностей векторов движения.
Чтобы объяснить это более подробно, ссылка кратко делается на фиг. 18. Позиция 800 представительно изображает одну разность вектора движения, т.е. вектор, представляющий остаток предсказания между предсказанным вектором движения и фактическим/восстановленным вектором движения. Также показаны горизонтальные и вертикальные составляющие 802x и 802y. Они могут передаваться в единицах позиций пикселя, т.е. шага пикселя, или позиций субпикселя, таких как половина шага пикселя или его четвертая часть или т.п. Горизонтальные и вертикальные составляющие 802x,y являются целочисленными. Их область простирается от нуля до бесконечности. Значение знака может обрабатываться отдельно и здесь больше не рассматривается. Другими словами, описание, кратко изложенное в данном документе, сосредоточено на величине разностей 802x,y вектора движения. Область определения изображена позицией 804. На правой стороне оси 804 области определения фиг. 19 изображает, ассоциированные с положительными значениями составляющей 802x,y, вертикально расположенными друг на друге, бинаризации, в которую отображается (бинаризируется) соответствующее возможное значение. Как можно видеть, ниже значения отсечки, равное 2, имеет место только усеченный унарный код 806, тогда как бинаризация имеют, в качестве суффикса, также экспоненциальный код Голомба порядка 808 из возможных значений, равных или больше значения отсечки 2, чтобы продолжать бинаризацию для остатка целочисленного значения выше значения отсечки минус 1. Для всех бинов обеспечивается только два контекста: один для позиции первого бина бинаризаций горизонтальных и вертикальных составляющих 802x,y, и другой один для позиции второго бина усеченного унарного кода 806 как горизонтальной, так и вертикальной составляющих 802x,y. Для позиции бина экспоненциального кода 808 Голомба режим обхода с равновероятностью используется энтропийным декодером 409. Т.е. оба значения бина, как предполагается, происходят равновероятно. Оценка вероятности для этих бинов является фиксированной. В сравнении с ней, оценка вероятности, ассоциированная с только что упомянутыми двумя контекстами бинов усеченного унарного кода 806, адаптируется непрерывно при декодировании.
Перед описанием более подробно, в отношении того, как может быть реализован энтропийный декодер 409, в соответствии с вышеупомянутым описанием, чтобы выполнять только что упомянутые задачи, описание теперь сосредотачивается на возможной реализации восстановителя 404, который использует разности 800 вектора движения и его целочисленные значения, полученные десимволизатором 314 посредством ребинаризации бинов кодов 106 и 108, причем ребинаризация изображается на фиг. 18, используя стрелки 810. В частности, восстановитель 404, как описано выше, может извлекать из потока 401 данных информацию, касающуюся подразделения восстановленного в настоящий момент изображения в блоки, среди которых по меньшей мере некоторые подвергаются предсказанию с компенсацией движения. Фиг. 19 изображает изображение, подлежащий восстановлению, представительно в позиции 820 и блоки только что упомянутого подразделения изображения 120, для которого предсказание с компенсацией движения используется для предсказания в нем содержимого изображения в позиции 822. Как описано в отношение фиг. 2A-2C, имеются разные возможности для подразделения и размеров блоков 122. Чтобы избежать передачи разности 800 вектора движения для каждого из этих блоков 122, восстановитель 404 может использовать принцип слияния, согласно которому поток данных дополнительно передает информацию о слиянии в дополнение к информации о подразделении или, при отсутствии информации о подразделении, в дополнение к тому факту, что подразделение является фиксированным. Информация слияния сигнализирует восстановителю 404, в отношении какого из блоков 822 сформировать группы слияния. Посредством этой меры, является возможным для восстановителя 404 применить некоторую разность 800 вектора движения ко всей группе слияния блоков 822. Конечно, на кодирующей стороне передача информации о слиянии подвержена компромиссу между издержками передачи подразделения (если присутствует), издержками передачи информации о слиянии и издержками передачи разности векторов движения, которые уменьшаются с увеличением размера групп слияния. С другой стороны, увеличение количества блоков на группу слияния уменьшает адаптацию разности векторов движения для этой группы слияния к фактическим потребностям индивидуальных блоков соответствующей группы слияния, тем самым получая менее точные предсказания с компенсацией движения разностей векторов движения этих блоков и делая необходимым более высокие издержки передачи для передачи остатка предсказания в виде, например, уровня коэффициентов преобразования. Следовательно, находится компромисс на кодирующей стороне соответствующим образом. В любом случае, однако, принцип слияния приводит к разностям вектора движения для групп слияния, изображая меньшую пространственную взаимную корреляцию. См., например, фиг. 19, которая изображает штриховкой членство в некоторой группе слияния. Очевидно, что фактическое движение содержимого изображения в этих блоках было настолько подобным, что кодирующая сторона решила выполнить слияние соответствующих блоков. Однако является малой корреляция с движением содержимого изображения в других группах слияния. Следовательно, ограничение на использование просто одного контекста на бин усеченного унарного кода 806 не оказывает отрицательного влияния на эффективность энтропийного кодирования, так как принцип слияния уже в достаточной степени обеспечивает пространственную взаимную корреляцию между движением содержимого соседних изображений. Контекст может просто выбираться на основе того факта, что бин является частью бинаризации составляющей 802x,y разности векторов движения и позиции бина, которой является или 1 или 2 вследствие того, что значением отсечки является два. Следовательно, другие уже декодированные бины/синтаксические элементы/составляющие 802x,y mvd не оказывают влияние на выбор контекста.
Аналогично, восстановитель 404 может быть выполнен с возможностью дополнительного уменьшения информационного содержимого, подлежащего пересылке, посредством разностей векторов движения (кроме пространственного и/или временного предсказания векторов движения) посредством использования принципа многогипотезного предсказания, согласно которому, сначала, генерируется список предикторов вектора движения для каждого блока или группы слияния, затем явной или неявной передачи в потоке данных информации об индексе предиктора, подлежащего фактическому использованию для предсказания разностей векторов движения. См., например, незаштрихованный блок 122 на фиг. 20. Восстановитель 404 может обеспечивать разные предикторы для вектора движения данного блока, например, посредством предсказания вектора движения пространственно, например, из левого, из верхнего, комбинации обоих и т.п., и временного предсказания вектора движения из вектора движения совместно размещенной части ранее декодированного изображения видео и дополнительных комбинаций вышеупомянутых предикторов. Эти предикторы сортируются восстановителем 404 предсказуемым образом, который является прогнозируемым на кодирующей стороне. Некоторая информация передается с этой целью в потоке данных и используется восстановителем. Т.е. некоторая рекомендация содержится в потоке данных, в отношении того, какой предиктор из данного упорядоченного списка предикторов будет фактически использоваться в качестве предиктора для вектора движения данного блока. Этот индекс может явно передаваться в потоке данных для этого блока. Однако также является возможным, что индекс сначала предсказывается и затем передается только его предсказание. Также существуют другие возможности. В любом случае, только что упомянутая схема предсказания позволяет получить очень точное предсказание вектора движения текущего блока и, следовательно, уменьшается требование к информационному содержимому, накладываемое на разность вектора движения. Следовательно, ограничение контекстно-адаптивного энтропийного кодирования на только два бина усеченного унарного кода и уменьшение значения отсечки до 2, как описано в отношении фиг. 18, а также выбор порядка экспоненциального кода Голомба равным 1, не оказывает отрицательного эффекта на эффективность кодирования, так как разности векторов движения показывают, вследствие высокой эффективности предсказания, частотную гистограмму, согласно которой более высокие значения составляющих 802x,y разности векторов движения посещаются менее часто. Даже пропуск любого отличия между горизонтальной и вертикальной составляющими подходит для эффективного предсказания, так как являются высокими тенденции предсказания работы с одинаковым успехом по обеим направлениям точности предсказания.
Необходимо отметить, что в вышеупомянутом описании все подробности, обеспечиваемые с фиг. 1-15, также являются переносимыми на объекты, показанные на фиг. 16, такие как, например, которые касаются функциональности десимволизатора 314, восстановителя 404 и энтропийного декодера 409. Тем не менее, для полноты, некоторые из этих подробностей снова кратко описываются ниже.
Для лучшего понимания только что кратко изложенной схемы предсказания, см. фиг. 20. Как только что описано, конструктор 404 может получать разные предикторы для текущего блока 822 или текущей группы слияния блоков, причем эти предикторы показаны векторами 824 со сплошными линиями. Предикторы могут быть получены посредством пространственного и/или временного предсказания, причем, кроме того, могут использоваться операции арифметического среднего или т.п., так что индивидуальные предикторы могут быть получены восстановителем 404 таким образом, что они коррелируют друг с другом. Независимо от способа, которым были получены векторы 826, восстановитель 404 представляет последовательно или сортирует эти предикторы 126 в упорядоченный список. Это изображается числами 1-4 на фиг. 21. Предпочтительно, если процесс сортировки является уникально определяемым, так что кодер и декодер могут работать синхронно. Тогда только что упомянутый индекс может быть получен восстановителем 404 для текущего блока, или группы слияния, из потока данных, явно или неявно. Например, второй предиктор «2» может быть выбран, и восстановитель 404 добавляет разность 800 вектора движения к этому выбранному предсказателю 126, таким образом получая окончательно восстановленный вектор 128 движения, который затем используется для предсказания, посредством предсказания с компенсацией движения, содержимого текущего блока/группы слияния. В случае группы слияния будет возможным, что восстановитель 404 содержит дополнительные разности векторов движения, обеспечиваемые для блоков группы слияния, чтобы дополнительно уточнять вектор 128 движения в отношении индивидуальных блоков группы слияния.
Таким образом, продолжая далее с описанием реализаций объектов, показанных на фиг. 16, может быть, что энтропийный декодер 409 выполняется с возможностью выведения усеченного унарного кода 806 из потока 401 данных, используя бинарное арифметическое декодирование или бинарное кодирование PIPE. Оба принципа были описаны выше. Кроме того, энтропийный декодер 409 может быть выполнен с возможностью использования разных контекстов для двух позиций бина усеченного унарного кода 806 или, альтернативно, даже одного и того же контекста для обоих бинов. Энтропийный декодер 409 может быть выполнен с возможностью выполнения обновления состояния вероятности. Энтропийный декодер 409 может это делать, для бина, выведенного на данный момент из усеченного унарного кода 806, посредством перехода из текущего состояния вероятности, ассоциированного с контекстом, выбранным для выведенного в данный момент бина, в новое состояние вероятности в зависимости от бина, выведенного в данный момент. См. вышеприведенные таблицы Next_State_LPS и Next_State_MPS, табличный поиск в отношении которого выполняется энтропийным декодером в дополнение к другим этапам 0-5, перечисленным выше. В вышеприведенном описании текущее состояние вероятности было упомянуто посредством pState_current. Оно определяется для соответствующего контекста, представляющего интерес. Энтропийный декодер 409 может быть выполнен с возможностью двоичного арифметического декодирования бина, подлежащего в данный момент выведению из усеченного унарного кода 806 посредством квантования значения ширины текущего интервала вероятностей, т.е. R, представляющего текущий интервал вероятностей для получения индекса интервала вероятностей, q_index, и выполнения подразделения интервала посредством индексирования элемента таблицы среди элементов таблицы, используя индекс интервала вероятностей и индекс состояния вероятности, т.е. p_state, который, в свою очередь, зависит от текущего состояния вероятности, ассоциированного с контекстом, выбранным для бина, подвергаемого выведению в данный момент, для получения подразделения текущего интервала вероятностей на два частичных интервала. В вышеупомянутых кратко описанных вариантах осуществления эти частичные интервалы ассоциировались с наиболее вероятным и наименее вероятным символом. Как описано выше, энтропийный декодер 409 может быть выполнен с возможностью использования восьмибитового представления для значения R ширины текущего интервала вероятностей с захватыванием, например, двух или трех самых старших битов восьмибитового представления и квантованием значения ширины текущего интервала вероятностей. Энтропийный декодер 409 дополнительно может быть выполнен с возможностью выбора из числа двух частичных интервалов, основываясь на значении состояния смещения из внутренней части текущего интервала вероятностей, а именно V, обновления значения R ширины интервала вероятностей и значения состояния смещения и предположения значения бина, подлежащего выводу в данный момент, используя выбранный частичный интервал, и выполнения ренормализации обновленного значения R ширины интервала вероятностей и значения V состояния смещения, включая продолжение считывания битов из потока 401 данных. Энтропийный декодер 409, например, может быть выполнен с возможностью двоичного арифметического декодирования бина из экспоненциального кода Голомба посредством деления пополам значения ширины текущего интервала вероятностей для получения подразделения текущего интервала вероятностей на два частичных интервала. Деление пополам соответствует оценке вероятности, которая является фиксированной и равной 0,5. Оно может быть реализовано простым сдвигом битов. Энтропийный декодер дополнительно может быть выполнен, для каждой разности вектора движения, с возможностью выведения усеченного унарного кода горизонтальной и вертикальной составляющих соответствующей разности векторов движения из потока 401 данных, перед экспоненциальным кодом Голомба горизонтальной и вертикальной составляющих соответствующей разности векторов движения. Посредством этой меры энтропийный декодер 409 может использовать, что большее количество бинов вместе формируют серию бинов, для которых оценка вероятности является фиксированной, а именно 0,5. Это может ускорить процедуру энтропийного декодирования. С другой стороны, энтропийный декодер 409 может предпочитать поддерживать порядок среди разностей векторов движения посредством сначала выведением горизонтальной и вертикальной составляющих одной разности вектора движения, переходя затем просто к выведению горизонтальной и вертикальной составляющих следующей разности вектора векторов движения. Посредством этой меры, снижаются требования к памяти, налагаемые на декодирующий объект, т.е. декодер по фиг. 16, так как десимволизатор 314 может продолжать дебинаризацию разностей векторов движения непосредственно без необходимости ожидания сканирования других разностей векторов движения. Это делается возможным посредством выбора контекста: так как только точно один контекст является доступным на каждую позицию бина кода 806, не нужно инспектировать пространственную взаимосвязь.
Восстановитель 404, как описано выше, может пространственно и/или временно предсказывать горизонтальные и вертикальные составляющие векторов движения, чтобы получать предикторы 126 для горизонтальной и вертикальной составляющих вектора движения и восстанавливать горизонтальные и вертикальные составляющие векторов движения посредством уточнения предикторов 826, используя горизонтальные и вертикальные составляющие разностей векторов движения, например, просто добавлением разности векторов движения к соответствующему предсказателю.
Кроме того, восстановитель 404 может быть выполнен с возможностью предсказания горизонтальных и вертикальных составляющих векторов движения разным образом, чтобы получать упорядоченный список предикторов для горизонтальной и вертикальной составляющей векторов движения, получать индекс списка из потока данных и восстанавливать горизонтальные и вертикальные составляющие векторов движения посредством уточнения предиктора, тем предиктором списка, на который указывает индекс списка, используя горизонтальные и вертикальные составляющие разностей векторов движения.
Кроме того, как уже было описано выше, восстановитель 404 может быть выполнен с возможностью восстановления видео, используя предсказание с компенсацией движения посредством применения горизонтальных и вертикальных составляющих 802x,y векторов движения при пространственной степени разбиения, определяемой подразделением изображений видео в блоки, причем восстановитель 404 может использовать синтаксические элементы слияния, присутствующие в потоке 401 данных, чтобы группировать блоки в группы слияния и применять целочисленные значения горизонтальных и вертикальных составляющих 802x,y разностей векторов движения, полученных бинаризатором 314 в единицах групп слияния.
Восстановитель 404 может выводить подразделение изображений видео в блоки из части потока 401 данных, который исключает синтаксические элементы слияния. Восстановитель 404 также может адаптировать горизонтальную и вертикальную составляющие предопределенного вектора движения для всех блоков ассоциированной группы слияния, или уточнять их посредством горизонтальных и вертикальных составляющих разностей векторов движения, ассоциированных с блоками группы слияния.
Только для полноты, фиг. 17 изображает кодер, соответствующий декодеру по фиг. 16. Кодер по фиг. 17 содержит конструктор 504, символизатор 507 и энтропийный кодер 513. Кодер содержит конструктор 504, выполненный с возможностью кодирования с предсказанием видео 505 посредством предсказания с компенсацией движения, используя векторы движения, и кодирования с предсказанием векторов движения посредством предсказания векторов движения и установки целочисленных значений 506 горизонтальных и вертикальных составляющих разностей векторов движения для представления ошибки предсказания предсказываемых векторов движения; символизатор 507, выполненный с возможностью бинаризации целочисленных значений для получения бинаризаций 508 горизонтальных и вертикальных составляющих разностей векторов движения, причем бинаризации равны усеченному унарному коду горизонтальных и вертикальных составляющих соответственно в первом интервале области определения горизонтальных и вертикальных составляющих ниже значения отсечки и комбинации префикса в виде усеченного унарного кода для значения отсечки и суффикса в виде экспоненциального кода Голомба горизонтальных и вертикальных составляющих соответственно во втором интервале области определения горизонтальных и вертикальных составляющих включительно и выше значения отсечки, причем значение отсечки равно двум, и экспоненциальный код Голомба имеет порядок, равный единице; и энтропийный кодер 513, выполненный, для горизонтальных и вертикальных составляющих разностей векторов движения, с возможностью кодирования усеченного унарного кода в поток данных, используя контекстно-адаптивное двоичное энтропийное кодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, который является общим для горизонтальных и вертикальных составляющих разностей векторов движения, и экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью. Другие возможные подробности реализации являются непосредственно переносимыми из описания, касающегося декодера по фиг. 16, в кодер по фиг. 17.
Хотя некоторые аспекты были описаны в контексте устройства, ясно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствует этапу способа или признаку этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или признака соответствующего устройства. Некоторые или все из этапов способа могут выполняться аппаратным устройством (или использовать их), подобных, например, микропроцессору, программируемому компьютеру или электронной схеме. В некоторых вариантах осуществления некоторый один или несколько из наиболее важных этапов способа могут выполняться таким устройством.
Обладающий признаками изобретения кодированный сигнал может сохраняться на цифровой запоминающей среде или может передаваться по среде передачи, такой как беспроводная среда передачи или проводная среда передачи, такая как Интернет.
В зависимости от некоторый требований к реализации варианты осуществления изобретения могут быть реализованы аппаратными средствами или программными средствами. Реализация может выполняться с использованием цифровой запоминающей среды, например, гибкого диска, цифрового многофункционального диска (DVD), диска Blue-Ray, компакт-диска, постоянного запоминающего устройства (ROM), программируемого ROM (PROM), стираемого программируемого ROM (EPROM), электрически стираемого программируемого ROM (EEPROM) или флэш-памяти, имеющих электронно-считываемые сигналы управления, хранимые на них, которые взаимодействуют (или способны взаимодействовать) с программируемой компьютерной системой, так что выполняется соответствующий способ. Поэтому, цифровая запоминающая среда может быть считываемая компьютером.
Некоторые варианты осуществления согласно изобретению содержат носитель данных, имеющий электронно-считываемые сигналы управления, которые способны взаимодействовать с программируемой компьютерной системой, так что выполняется один из способов, описанных в данном документе.
В общем, варианты осуществления настоящего изобретения могут быть реализованы в виде продукта компьютерной программы с программным кодом, причем программный код действует для выполнения одного из способов, когда продукт компьютерной программы выполняется на компьютере. Программный код, например, может сохраняться на машиносчитываемом носителе.
Другие варианты осуществления содержат компьютерную программу для выполнения одного из способов, описанных в данном документе, хранимых на машиносчитываемом носителе.
Другими словами, вариантом осуществления обладающего признаками изобретения способа, поэтому, является компьютерная программа, имеющая программный код для выполнения одного из способов, описанных в данном документе, когда компьютерная программа выполняется на компьютере.
Другим вариантом осуществления обладающих признаками изобретения способов, поэтому, является носитель данных (или цифровая запоминающая среда или считываемая компьютером среда), содержащий записанную на нем компьютерную программу для выполнения одного из способов, описанных в данном документе. Носитель данных, цифровая запоминающая среда или записанная среда являются обычно материальными и/или непереходными.
Другим вариантом осуществления обладающего признаками изобретения способа, поэтому, является поток данных или последовательность сигналов, представляющих компьютерную программу для выполнения одного из способов, описанных в данном документе. Поток данных или последовательность сигналов, например, могут быть выполнены с возможностью пересылки по соединению передачи данных, например, по Интернету.
Дополнительный вариант осуществления содержит средство обработки, например, компьютер, или программируемое логическое устройство, выполненное с возможностью или адаптируемое к выполнению одного из способов, описанных в данном документе.
Дополнительный вариант осуществления содержит компьютер, имеющий установленную на нем компьютерную программу для выполнения одного из способов, описанных в данном документе.
Дополнительный вариант осуществления согласно изобретению содержит устройство или систему, выполненную с возможностью пересылки (например, электронным или оптическим образом) на приемник компьютерной программы для выполнения одного из способов, описанных в данном документе. Приемником, например, может быть компьютер, мобильное устройство, устройство памяти или т.п. Устройство или система, например, может содержать файловый сервер для пересылки компьютерной программы на приемник.
В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая вентильная матрица) может использоваться для выполнения некоторых или всех функциональных возможностей способов, описанных в данном документе. В некоторых вариантах осуществления программируемая вентильная матрица может взаимодействовать с микропроцессором для выполнения одного из способов, описанных в данном документе. В общем, способы, предпочтительно, выполняются любым аппаратным устройством.
Вышеописанные варианты осуществления являются просто иллюстративными для принципов настоящего изобретения. Понятно, что модификации и изменения устройств и деталей, описанных в данном документе, очевидны для специалиста в данной области техники. Предполагается, что они, поэтому, ограничиваются только объемом находящейся на рассмотрении формулы изобретения и не конкретными деталями, представленными посредством описания и объяснения вариантов осуществления в данном документе.

Claims (65)

1. Декодер для декодирования видео из потока данных, в который разности векторов движения кодированы с использованием бинаризаций разностей векторов движения, равных усеченному унарному коду в первом интервале области определения разностей векторов движения ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода для этого значения отсечки и суффикса в виде экспоненциального кода Голомба во втором интервале области определения разностей векторов движения включительно и выше значения отсечки, причем значение отсечки равно двум, и экспоненциальный код Голомба имеет порядок единицы, содержащий:
энтропийный декодер, выполненный с возможностью выведения
усеченного унарного кода из потока данных, используя контекстно-адаптивное двоичное энтропийное декодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, и
экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью
для получения бинаризаций разностей векторов движения;
десимволизатор, выполненный с возможностью дебинаризации бинаризаций разностей векторов движения для получения целочисленных значений разностей векторов движения;
восстановитель, выполненный с возможностью восстановления видео, основываясь на целочисленных значениях разностей векторов движения.
2. Декодер по п. 1, в котором энтропийный декодер (409) выполнен с возможностью выведения усеченного унарного кода (806) из потока (401) данных, используя двоичное арифметическое декодирование или двоичное энтропийное декодирование с разделением на интервалы вероятности.
3. Декодер по п. 1, в котором энтропийный декодер (409) выполнен с возможностью использования разных контекстов для двух позиций бина усеченного унарного кода.
4. Декодер по п. 1, в котором энтропийный декодер (409) выполнен с возможностью выполнения обновления состояния вероятности для бина, выводимого в данный момент из усеченного унарного кода (806), посредством перехода из текущего состояния вероятности, ассоциированного с контекстом, выбранным для бина, выводимого в данный момент, в новое состояние вероятности в зависимости от бина, выводимого в данный момент.
5. Декодер по п. 1, в котором энтропийный декодер (409) выполнен с возможностью двоичного арифметического декодирования бина, подлежащего выведению в данный момент из усеченного унарного кода (806), посредством квантования значения ширины текущего интервала вероятности, представляющего текущий интервал вероятности, для получения индекса интервала вероятности и выполнения подразделения интервала посредством индексирования элемента таблицы из числа элементов таблицы, используя индекс интервала вероятности и индекс состояния вероятности в зависимости от текущего состояния вероятности, ассоциированного с контекстом, выбранным для бина, подлежащего выведению в данный момент, для получения подразделения текущего интервала вероятности на два частичных интервала.
6. Декодер по п. 5, в котором энтропийный декодер (409) выполнен с возможностью использования 8-битового представления для значения ширины текущего интервала вероятности и захватывания 2 или 3 самых старших битов 8-битового представления при квантовании значения ширины текущего интервала вероятности.
7. Декодер по п. 5, в котором энтропийный декодер (409) выполнен с возможностью выбора из числа упомянутых двух частичных интервалов, основываясь на значении состояния смещения из внутренней части текущего интервала вероятности, обновления значения ширины интервала вероятности и значения состояния смещения и предположения значения бина, подлежащего выведению в данный момент, используя выбранный частичный интервал, и выполнения ренормализации обновленного значения ширины интервала вероятности и значения состояния смещения, включая продолжение считывания битов из потока (401) данных.
8. Декодер по п. 5, в котором энтропийный декодер (409) выполнен, в режиме обхода с постоянной равновероятностью, с возможностью двоичного арифметического декодирования бина из экспоненциального кода Голомба посредством деления пополам значения ширины текущего интервала вероятности для получения подразделения текущего интервала вероятности на два частичных интервала.
9. Декодер по п. 1, в котором энтропийный декодер (409) выполнен, для каждой разности векторов движения, с возможностью выведения усеченного унарного кода соответствующей разности векторов движения из потока данных перед экспоненциальным кодом Голомба этой соответствующей разности векторов движения.
10. Декодер по п. 1, в котором восстановитель выполнен с возможностью пространственного и/или временного предсказания векторов движения, чтобы получать предикторы для векторов движения и восстанавливать векторы движения посредством уточнения предикторов, используя разности векторов движения.
11. Декодер по п. 1, в котором восстановитель выполнен с возможностью предсказания векторов движения различными способами, чтобы получать упорядоченный список предикторов для векторов движения, получать индекс списка из потока данных и восстанавливать векторы движения посредством уточнения предиктора из списка предикторов, на который указывает индекс списка, используя разности векторов движения.
12. Декодер по п. 10, в котором восстановитель выполнен с возможностью восстановления видео, используя предсказание с компенсацией движения посредством использования векторов движения.
13. Декодер по п. 12, в котором восстановитель выполнен с возможностью восстановления видео, используя предсказание с компенсацией движения посредством применения векторов движения с пространственной степенью разбиения, определяемой подразделением изображений видео на блоки, причем восстановитель использует синтаксические элементы слияния, присутствующие в потоке данных, чтобы группировать блоки в группы слияния и применять целочисленные значения разностей векторов движения, полученные десимволизатором, в единицах групп слияния.
14. Декодер по п. 13, в котором восстановитель выполнен с возможностью выведения подразделения изображений видео в блоках из части потока данных, исключая синтаксические элементы слияния.
15. Декодер по п. 13, в котором восстановитель выполнен с возможностью принятия некоторого предопределенного вектора движения для всех блоков ассоциированной группы слияния, или его уточнения посредством разностей векторов движения, ассоциированных с блоками группы слияния.
16. Декодер по п. 1, в котором в поток данных закодирована карта глубины.
17. Кодер для кодирования видео в поток данных, содержащий
конструктор, выполненный с возможностью кодирования с предсказанием видео посредством предсказания с компенсацией движения, используя векторы движения и кодируя с предсказанием векторы движения посредством предсказания векторов движения и установки целочисленных значений разностей векторов движения для представления ошибки предсказания предсказанных векторов движения;
символизатор, выполненный с возможностью бинаризации целочисленных значений для получения бинаризаций разностей векторов движения, причем бинаризации равны усеченному унарному коду разностей векторов движения в первом интервале области определения разностей векторов движения ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода для этого значения отсечки и суффикса в виде экспоненциального кода Голомба разностей векторов движения во втором интервале области определения разностей векторов движения включительно и выше значения отсечки, причем значение отсечки равно двум, и экспоненциальный код Голомба имеет порядок единицы; и
энтропийный кодер, выполненный с возможностью кодирования
усеченного унарного кода в поток данных, используя контекстно-адаптивное двоичное энтропийное кодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, и
экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью.
18. Кодер по п. 17, в котором энтропийный кодер выполнен с возможностью кодирования усеченного унарного кода в поток данных, используя двоичное арифметическое кодирование или двоичное энтропийное кодирование с разделением на интервалы вероятности.
19. Кодер по п. 17, в котором энтропийный кодер выполнен с возможностью использования разных контекстов для двух позиций бина усеченного унарного кода.
20. Кодер по п. 17, в котором энтропийный кодер выполнен с возможностью выполнения обновления состояния вероятности для бина, подлежащего кодированию в данный момент, из усеченного унарного кода, посредством перехода из текущего состояния вероятности, ассоциированного с контекстом, выбранным для бина, подлежащего кодированию в данный момент, в новое состояние вероятности в зависимости от бина, подлежащего кодированию в данный момент.
21. Кодер по п. 17, в котором энтропийный кодер выполнен с возможностью двоичного арифметического кодирования бина, подлежащего кодированию в данный момент, из усеченного унарного кода, посредством квантования значения ширины текущего интервала вероятности, представляющего текущий интервал вероятности, для получения индекса интервала вероятности и выполнения подразделения интервала посредством индексирования элемента таблицы из числа элементов таблиц, используя индекс интервала вероятности и индекс состояния вероятности в зависимости от текущего состояния вероятности, ассоциированного с контекстом, выбранным для бина, подлежащего кодированию в данный момент, для получения подразделения текущего интервала вероятности на два частичных интервала.
22. Кодер по п. 21, в котором энтропийный кодер выполнен с возможностью использования 8-битового представления для значения ширины текущего интервала вероятности и захватывания 2 или 3 самых старших битов 8-битового представления при квантовании значения ширины текущего интервала вероятности.
23. Кодер по п. 21, в котором энтропийный кодер выполнен с возможностью выбора из числа двух частичных интервалов, основываясь на целочисленном значении бина, подлежащего кодированию в данный момент, обновления значения ширины интервала вероятности и смещения интервала вероятности, используя выбранный частичный интервал, и выполнения ренормализации значения ширины интервала вероятности и смещения интервала вероятности, включая продолжение записи битов в поток данных.
24. Кодер по п. 21, в котором энтропийный кодер выполнен с возможностью двоичного арифметического кодирования бина из экспоненциального кода Голомба посредством деления пополам значения ширины текущего интервала вероятности для получения подразделения текущего интервала вероятности на два частичных интервала.
25. Кодер по п. 17, в котором энтропийный кодер выполнен, для каждой разности векторов движения, с возможностью кодирования усеченного унарного кода соответствующей разности векторов движения в поток данных перед экспоненциальным кодом Голомба этой соответствующей разности векторов движения.
26. Кодер по п. 17, в котором конструктор выполнен с возможностью пространственного и/или временного предсказания векторов движения, чтобы получать предикторы для векторов движения и определять разности векторов движения, чтобы уточнять предикторы к векторам движения.
27. Кодер по п. 17, в котором конструктор выполнен с возможностью предсказания векторов движения разными способами, чтобы получать упорядоченный список предикторов для векторов движения, определения индекса списка и вставки информации, раскрывающей его, в поток данных и определения разностей векторов движения, чтобы уточнять предиктор, на который указывает индекс списка, к векторам движения.
28. Кодер по п. 17, в котором конструктор выполнен с возможностью кодирования видео, используя предсказание с компенсацией движения посредством применения векторов движения с пространственной степенью разбиения, определяемой подразделением изображений видео на блоки, причем конструктор определяет и вставляет в поток данных синтаксические элементы слияния, чтобы группировать блоки в группы слияния и применять целочисленные значения разностей векторов движения, подвергаемые бинаризации символизатором, по единицам групп слияния.
29. Кодер по п. 28, в котором конструктор выполнен с возможностью кодирования подразделения изображений видео в блоках в часть потока данных, исключая синтаксические элементы слияния.
30. Кодер по п. 29, в котором конструктор выполнен с возможностью принятия некоторого предопределенного вектора движения для всех блоков ассоциированной группы слияния, или его уточнения посредством разностей векторов движения, ассоциированных с блоками группы слияния.
31. Кодер по п. 17, в котором в поток данных кодируется карта глубины.
32. Способ для декодирования видео из потока данных, в который разности векторов движения кодированы с использованием бинаризаций разностей векторов движения, причем бинаризации равны усеченному унарному коду разностей векторов движения в первом интервале области определения разностей векторов движения ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода для этого значения отсечки и суффикса в виде экспоненциального кода Голомба разностей векторов движения во втором интервале области определения разностей векторов движения включительно и выше значения отсечки, причем значение отсечки равно двум, и экспоненциальный код Голомба имеет порядок единицы, содержащий:
выведение
усеченного унарного кода из потока данных, используя контекстно-адаптивное двоичное энтропийное декодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, и
экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью
для получения бинаризаций разностей векторов движения;
дебинаризацию бинаризаций разностей векторов движения для получения целочисленных значений разностей векторов движения;
восстановление видео, основываясь на целочисленных значениях разностей векторов движения.
33. Способ для кодирования видео в поток данных, содержащий
кодирование с предсказанием видео посредством предсказания с компенсацией движения, используя векторы движения и кодируя с предсказанием векторы движения посредством предсказания векторов движения и установки целочисленных значений разностей векторов движения для представления ошибки предсказания предсказанных векторов движения;
бинаризацию целочисленных значений для получения бинаризаций разностей векторов движения, причем бинаризации равны усеченному унарному коду разностей векторов движения в первом интервале области определения разностей векторов движения ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода для этого значения отсечки и суффикса в виде экспоненциального кода Голомба разностей векторов движения во втором интервале области определения разностей векторов движения включительно и выше значения отсечки, причем значение отсечки равно двум, и экспоненциальный код Голомба имеет порядок единицы; и
кодирование
усеченного унарного кода в поток данных, используя контекстно-адаптивное двоичное энтропийное кодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, и
экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью.
34. Считываемый компьютером носитель данных, хранящий компьютерную программу, имеющую программный код для выполнения, при выполнении на компьютере, способа по п. 32.
35. Считываемый компьютером носитель данных, хранящий компьютерную программу, имеющую программный код для выполнения, при выполнении на компьютере, способа по п. 33.
36. Цифровой носитель данных, хранящий поток данных, в который видео кодируется
посредством операций, содержащих
кодирование с предсказанием видео посредством предсказания с компенсацией движения, используя векторы движения и кодируя с предсказанием векторы движения посредством предсказания векторов движения и установки целочисленных значений разностей векторов движения для представления ошибки предсказания предсказанных векторов движения;
бинаризацию целочисленных значений для получения бинаризаций разностей векторов движения, причем бинаризации равны усеченному унарному коду разностей векторов движения в первом интервале области определения разностей векторов движения ниже значения отсечки, и комбинации префикса в виде усеченного унарного кода для этого значения отсечки и суффикса в виде экспоненциального кода Голомба разностей векторов движения во втором интервале области определения разностей векторов движения включительно и выше значения отсечки, причем значение отсечки равно двум, и экспоненциальный код Голомба имеет порядок единицы; и
кодирование
усеченного унарного кода в поток данных, используя контекстно-адаптивное двоичное энтропийное кодирование с точно одним контекстом на каждую позицию бина усеченного унарного кода, и
экспоненциального кода Голомба, используя режим обхода с постоянной равновероятностью.
37. Цифровой носитель данных по п. 36, в котором в поток данных кодируется карта глубины.
RU2017109078A 2011-06-16 2012-06-18 Энтропийное кодирование разностей векторов движения RU2658883C1 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161497794P 2011-06-16 2011-06-16
US61/497,794 2011-06-16
US201161508506P 2011-07-15 2011-07-15
US61/508,506 2011-07-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2014101166A Division RU2615681C2 (ru) 2011-06-16 2012-06-18 Энтропийное кодирование разностей векторов движения

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2018120845A Division RU2758981C2 (ru) 2011-06-16 2018-06-06 Энтропийное кодирование разностей векторов движения

Publications (1)

Publication Number Publication Date
RU2658883C1 true RU2658883C1 (ru) 2018-06-25

Family

ID=46319135

Family Applications (7)

Application Number Title Priority Date Filing Date
RU2014101164/08A RU2595934C2 (ru) 2011-06-16 2012-06-18 Инициализация контекста при энтропийном кодировании
RU2016129117A RU2642373C1 (ru) 2011-06-16 2012-06-18 Инициализация контекста при энтропийном кодировании
RU2017109078A RU2658883C1 (ru) 2011-06-16 2012-06-18 Энтропийное кодирование разностей векторов движения
RU2014101166A RU2615681C2 (ru) 2011-06-16 2012-06-18 Энтропийное кодирование разностей векторов движения
RU2018100106A RU2699677C2 (ru) 2011-06-16 2018-01-09 Инициализация контекста при энтропийном кодировании
RU2018120845A RU2758981C2 (ru) 2011-06-16 2018-06-06 Энтропийное кодирование разностей векторов движения
RU2019127048A RU2755020C2 (ru) 2011-06-16 2019-08-28 Инициализация контекста при энтропийном кодировании

Family Applications Before (2)

Application Number Title Priority Date Filing Date
RU2014101164/08A RU2595934C2 (ru) 2011-06-16 2012-06-18 Инициализация контекста при энтропийном кодировании
RU2016129117A RU2642373C1 (ru) 2011-06-16 2012-06-18 Инициализация контекста при энтропийном кодировании

Family Applications After (4)

Application Number Title Priority Date Filing Date
RU2014101166A RU2615681C2 (ru) 2011-06-16 2012-06-18 Энтропийное кодирование разностей векторов движения
RU2018100106A RU2699677C2 (ru) 2011-06-16 2018-01-09 Инициализация контекста при энтропийном кодировании
RU2018120845A RU2758981C2 (ru) 2011-06-16 2018-06-06 Энтропийное кодирование разностей векторов движения
RU2019127048A RU2755020C2 (ru) 2011-06-16 2019-08-28 Инициализация контекста при энтропийном кодировании

Country Status (31)

Country Link
US (36) US9455744B2 (ru)
EP (9) EP3930330B1 (ru)
JP (11) JP5925884B2 (ru)
KR (13) KR102631388B1 (ru)
CN (26) CN107333142B (ru)
AP (3) AP3686A (ru)
AU (11) AU2012268951B2 (ru)
BR (4) BR122020024986B1 (ru)
CA (2) CA2839569C (ru)
CL (2) CL2013003603A1 (ru)
CO (2) CO6852030A2 (ru)
CY (1) CY1124687T1 (ru)
DK (5) DK3343781T3 (ru)
ES (5) ES2906869T3 (ru)
FI (2) FI3930330T3 (ru)
HK (17) HK1197128A1 (ru)
HR (1) HRP20220272T1 (ru)
HU (5) HUE062605T2 (ru)
IL (15) IL309379A (ru)
LT (4) LT2721819T (ru)
MX (7) MX364201B (ru)
MY (2) MY184473A (ru)
PH (15) PH12018500330A1 (ru)
PL (5) PL3343781T3 (ru)
PT (5) PT3343781T (ru)
RS (4) RS62714B1 (ru)
RU (7) RU2595934C2 (ru)
SI (4) SI3343781T1 (ru)
UA (2) UA123987C2 (ru)
WO (3) WO2012172114A1 (ru)
ZA (2) ZA201400030B (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2771925C1 (ru) * 2018-12-29 2022-05-13 Хуавей Текнолоджиз Ко., Лтд. Кодер, декодер и соответствующие способы с использованием компактного mv хранилища
US11818357B2 (en) 2018-12-29 2023-11-14 Huawei Technologies Co., Ltd. Encoder, a decoder and corresponding methods using compact MV storage

Families Citing this family (214)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202402058A (zh) 2010-04-13 2024-01-01 美商Ge影像壓縮有限公司 樣本區域合併技術
JP5856143B2 (ja) 2010-04-13 2016-02-09 ジーイー ビデオ コンプレッション エルエルシー 細分割を使用した2次元情報信号の空間的なサンプリングの符号化
KR101874272B1 (ko) 2010-04-13 2018-07-03 지이 비디오 컴프레션, 엘엘씨 평면 간 예측
CN106210733B (zh) 2010-04-13 2020-03-24 Ge视频压缩有限责任公司 解码器、重建数组的方法、编码器、编码及解码方法
US9288089B2 (en) 2010-04-30 2016-03-15 Ecole Polytechnique Federale De Lausanne (Epfl) Orthogonal differential vector signaling
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US8593305B1 (en) 2011-07-05 2013-11-26 Kandou Labs, S.A. Efficient processing and detection of balanced codes
US9246713B2 (en) 2010-05-20 2016-01-26 Kandou Labs, S.A. Vector signaling with reduced receiver complexity
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9667379B2 (en) 2010-06-04 2017-05-30 Ecole Polytechnique Federale De Lausanne (Epfl) Error control coding for orthogonal differential vector signaling
US20120182388A1 (en) * 2011-01-18 2012-07-19 Samsung Electronics Co., Ltd. Apparatus and method for processing depth image
MX364201B (es) 2011-06-16 2019-04-16 Fraunhofer Ges Forschung Codificacion de entropia para diferencias de vector de movimiento.
CN107396107B (zh) 2011-06-24 2021-02-02 威勒斯媒体国际有限公司 图像编码方法、图像编码装置以及编码方法
CN107835421B (zh) * 2011-06-28 2020-08-11 三星电子株式会社 对视频编码的方法和设备以及对视频解码的方法和设备
US11647197B2 (en) * 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
CN107948645B (zh) 2011-07-15 2021-12-24 Ge视频压缩有限责任公司 解码器和方法、编码器和方法及存储介质
US9509989B2 (en) * 2011-08-04 2016-11-29 Hfi Innovation Inc. Method and apparatus for reordered binarization of syntax elements in CABAC
EP2740263B1 (en) * 2011-09-16 2019-02-27 HFI Innovation Inc. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
CN104081772B (zh) * 2011-10-06 2018-04-10 弗劳恩霍夫应用研究促进协会 熵编码缓冲器配置
US20130101047A1 (en) * 2011-10-19 2013-04-25 Sony Corporation Context reduction of significance map coding of 4x4 and 8x8 transform coefficient in hm4.0
US9871537B2 (en) 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
US9484952B2 (en) * 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
CN103907349B (zh) * 2011-11-04 2018-08-28 夏普株式会社 算术解码装置、图像解码装置、算术编码装置以及算术解码方法
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US9503717B2 (en) 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
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
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US11039138B1 (en) * 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US10158855B2 (en) * 2012-03-08 2018-12-18 Sun Patent Trust Image decoding method, and image decoding apparatus using a selected context related to neighboring coefficients
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US9124872B2 (en) 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
KR102212821B1 (ko) 2012-05-25 2021-02-08 벨로스 미디어 인터내셔널 리미티드 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 화상 복호 장치 및 화상 부호화 복호 장치
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
CN103650511B (zh) 2012-05-25 2017-12-15 太阳专利托管公司 运动图像解码方法及运动图像解码装置
EP4020990A1 (en) 2012-06-04 2022-06-29 Sun Patent Trust Video image encoding device, video image decoding device
DE102012224060A1 (de) * 2012-12-20 2014-06-26 Robert Bosch Gmbh Verfahren zur Datenübertragung für ein Batteriemanagementsystem
CN104995612B (zh) 2013-01-17 2020-01-03 康杜实验室公司 低同步开关噪声芯片间通信方法和系统
WO2014124450A1 (en) 2013-02-11 2014-08-14 Kandou Labs, S.A. Methods and systems for high bandwidth chip-to-chip communications interface
CN104053007B (zh) * 2013-03-15 2019-05-07 乐金电子(中国)研究开发中心有限公司 深度图像帧内编码模式索引值配置方法及装置
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
KR102241045B1 (ko) 2013-04-16 2021-04-19 칸도우 랩스 에스에이 고 대역폭 통신 인터페이스를 위한 방법 및 시스템
AU2014300624A1 (en) 2013-06-25 2015-12-10 Numeri Ltd. Multi-level spatial-temporal resolution increase of video
WO2014210074A1 (en) 2013-06-25 2014-12-31 Kandou Labs SA Vector signaling with reduced receiver complexity
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
US20150098504A1 (en) * 2013-10-09 2015-04-09 Qualcomm Incorporated Block vector coding for intra block copying
US10270590B2 (en) 2013-12-16 2019-04-23 Mcafee, Llc Process efficient preprocessing for any encryption standard
GB2521828A (en) 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
WO2015100522A1 (en) * 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
JP6317474B2 (ja) 2014-02-02 2018-04-25 カンドウ ラボズ ソシエテ アノニム 制約isi比を用いる低電力チップ間通信の方法および装置
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US10885104B2 (en) * 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
EP3672176B1 (en) * 2014-02-28 2022-05-11 Kandou Labs, S.A. Clock-embedded vector signaling codes
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US20150334425A1 (en) * 2014-05-14 2015-11-19 Blackberry Limited Adaptive context initialization
US9148087B1 (en) 2014-05-16 2015-09-29 Kandou Labs, S.A. Symmetric is linear equalization circuit with increased gain
CA2950180C (en) 2014-05-28 2020-04-21 Arris Enterprises Llc Acceleration of context adaptive binary arithmetic coding (cabac) in video codecs
US9337862B2 (en) 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9852806B2 (en) 2014-06-20 2017-12-26 Kandou Labs, S.A. System for generating a test pattern to detect and isolate stuck faults for an interface using transition coding
US9930341B2 (en) * 2014-06-20 2018-03-27 Qualcomm Incorporated Block vector coding for intra block copying
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
KR102288337B1 (ko) 2014-07-10 2021-08-11 칸도우 랩스 에스에이 증가한 신호대잡음 특징을 갖는 벡터 시그널링 코드
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
US9444654B2 (en) 2014-07-21 2016-09-13 Kandou Labs, S.A. Multidrop data transfer
US9461862B2 (en) 2014-08-01 2016-10-04 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN105578180B (zh) * 2014-10-16 2019-01-15 联想(北京)有限公司 一种编码方法及装置
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
CN104392725A (zh) * 2014-12-02 2015-03-04 中科开元信息技术(北京)有限公司 多声道无损音频混合编解码方法及装置
US10097833B2 (en) 2014-12-26 2018-10-09 Intel Corporation Method and system of entropy coding using look-up table based probability updating for video coding
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding
CN107211136B (zh) * 2015-01-30 2019-10-29 联发科技股份有限公司 具有大字母表的源样本的熵编码与熵解码的方法
CN107439015B (zh) * 2015-02-05 2020-08-14 弗劳恩霍夫应用研究促进协会 支持残差预测的多视图视频编解码器
US9930378B2 (en) * 2015-02-11 2018-03-27 Qualcomm Incorporated Signaling of operation points for carriage of HEVC extensions
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
EP3275189B1 (en) * 2015-04-08 2021-09-08 HFI Innovation Inc. Methods of palette mode coding in video coding
WO2016178880A1 (en) * 2015-05-06 2016-11-10 NGCodec Inc. Intra prediction processor with reduced cost block partitioning and refined intra mode selection
WO2016184399A1 (en) * 2015-05-19 2016-11-24 Mediatek Inc. Method and apparatus for multi-table based context adaptive binary arithmetic coding
CN108353053B (zh) 2015-06-26 2021-04-16 康杜实验室公司 高速通信系统
KR20240000649A (ko) 2015-08-24 2024-01-02 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
ES2710234B1 (es) * 2015-09-11 2020-03-09 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US10440399B2 (en) * 2015-11-13 2019-10-08 Qualcomm Incorporated Coding sign information of video data
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
EP3408935B1 (en) 2016-01-25 2023-09-27 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
FR3047379A1 (fr) * 2016-01-29 2017-08-04 Orange Procede de codage et decodage de donnees, dispositif de codage et decodage de donnees et programmes d'ordinateur correspondants
US10791097B2 (en) 2016-04-14 2020-09-29 Sophos Limited Portable encryption format
US10573324B2 (en) 2016-02-24 2020-02-25 Dolby International Ab Method and system for bit reservoir control in case of varying metadata
CN115051705A (zh) 2016-04-22 2022-09-13 康杜实验室公司 高性能锁相环
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
CN109417521B (zh) 2016-04-28 2022-03-18 康杜实验室公司 低功率多电平驱动器
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
WO2017189931A1 (en) 2016-04-28 2017-11-02 Kandou Labs, S.A. Vector signaling codes for densely-routed wire groups
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
US10142652B2 (en) * 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
FR3054764B1 (fr) * 2016-07-28 2018-07-27 B<>Com Procede de decodage d'une image, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes
WO2018030293A1 (ja) * 2016-08-10 2018-02-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10419781B2 (en) * 2016-09-20 2019-09-17 Qualcomm Incorporated Storing and retrieving high bit depth image data
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
US11356693B2 (en) 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
US10462462B2 (en) * 2016-09-29 2019-10-29 Qualcomm Incorporated Motion vector difference coding technique for video coding
CN106231318B (zh) * 2016-09-30 2020-04-28 浙江宇视科技有限公司 一种基于量化变换系数的视频加扰方法及装置
PE20191058A1 (es) * 2016-10-11 2019-08-06 Genomsys Sa Metodo y sistema para el acceso selectivo de datos bioinformaticos almacenados o transmitidos
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
MX2019007219A (es) * 2016-12-22 2019-09-05 Kt Corp Metodo y aparato para procesar señales de video.
WO2018124855A1 (ko) * 2017-01-02 2018-07-05 한양대학교 산학협력단 화면 간 예측을 이용한 영상 복호화 방법 및 장치
US10757412B2 (en) 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
WO2018128222A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
KR20180087771A (ko) * 2017-01-25 2018-08-02 삼성전자주식회사 엔트로피 인코더 및 이를 포함하는 비디오 인코더
US10595033B2 (en) 2017-02-15 2020-03-17 Sony Corporation Variable length coding of header data for image compression
KR102450863B1 (ko) * 2017-03-22 2022-10-05 에스케이텔레콤 주식회사 움직임벡터를 부호화 또는 복호화하기 위한 장치 및 방법
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
US11240536B2 (en) * 2017-04-13 2022-02-01 Lg Electronics Inc. Method and device for entropy encoding, decoding video signal
CN115567164A (zh) 2017-04-14 2023-01-03 康杜实验室公司 向量信令码信道的流水线式前向纠错方法和装置
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10693587B2 (en) 2017-07-10 2020-06-23 Kandou Labs, S.A. Multi-wire permuted forward error correction
US11477492B2 (en) * 2017-08-04 2022-10-18 Google Inc. Adaptation for entropy coding of blocks of image data
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10791341B2 (en) * 2017-10-10 2020-09-29 Qualcomm Incorporated Binary arithmetic coding with progressive modification of adaptation parameters
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US11039143B2 (en) * 2017-11-20 2021-06-15 Qualcomm Incorporated Memory reduction for context initialization with temporal prediction
CN111699696B (zh) * 2017-12-06 2023-11-28 V-诺瓦国际有限公司 用于对字节流进行编码和解码的方法和设备
US10609421B2 (en) * 2018-07-12 2020-03-31 Google Llc Context derivation for coefficient coding
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10602178B1 (en) * 2017-12-21 2020-03-24 Mozilla Corporation Systems and methods for frame context selection
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
EP3747192A1 (en) * 2018-01-29 2020-12-09 InterDigital VC Holdings, Inc. Encoding and decoding with refinement of the reconstructed picture
TWI721396B (zh) * 2018-03-29 2021-03-11 弗勞恩霍夫爾協會 視訊解碼器、視訊編碼器、用以解碼視訊內容之方法、用以編碼視訊內容之方法、電腦程式及視訊位元串流
CN112189343B (zh) * 2018-03-29 2023-10-20 弗劳恩霍夫应用研究促进协会 用于增强并行编码能力的构思
US10986354B2 (en) * 2018-04-16 2021-04-20 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US10630990B1 (en) * 2018-05-01 2020-04-21 Amazon Technologies, Inc. Encoder output responsive to quality metric information
CN108810553B (zh) * 2018-05-02 2021-01-12 上海大学 一种基于稀疏化处理的移动节点监测数据序列压缩方法
TWI675441B (zh) * 2018-05-14 2019-10-21 欣興電子股份有限公司 封裝載板結構及其製造方法
CN112219404A (zh) * 2018-05-25 2021-01-12 连普乐士株式会社 利用多个通道来发送及播放动态比特率的视频的方法及系统
US10986340B2 (en) * 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
US10939115B2 (en) * 2018-06-19 2021-03-02 Qualcomm Incorporated Efficient weighted probability estimation for binary arithmetic coding
CN108848380B (zh) * 2018-06-20 2021-11-30 腾讯科技(深圳)有限公司 视频编码和解码方法、装置、计算机设备及存储介质
WO2020008329A1 (en) 2018-07-01 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Spatial motion compression
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
CN108989825B (zh) * 2018-07-18 2021-05-07 北京奇艺世纪科技有限公司 一种算术编码方法、装置及电子设备
US11218737B2 (en) 2018-07-23 2022-01-04 Google Llc Asymmetric probability model update and entropy coding precision
US10743029B2 (en) * 2018-07-30 2020-08-11 Tencent America LLC Constraints on coding unit partition
TWI752341B (zh) 2018-08-04 2022-01-11 大陸商北京字節跳動網絡技術有限公司 不同解碼器側運動矢量推導模式之間的交互
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN110891180B (zh) 2018-09-10 2023-11-17 华为技术有限公司 视频解码方法及视频解码器
CN114125467A (zh) * 2018-09-13 2022-03-01 华为技术有限公司 一种预测运动信息的解码方法及装置
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
WO2020071879A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
US20200143226A1 (en) * 2018-11-05 2020-05-07 Samsung Electronics Co., Ltd. Lossy compression of neural network activation maps
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
US10904548B2 (en) * 2018-12-06 2021-01-26 Qualcomm Incorporated Coefficient processing for video encoding and decoding
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
CN111355958B (zh) * 2018-12-21 2022-07-29 华为技术有限公司 视频解码方法及装置
CN113302935A (zh) 2019-01-02 2021-08-24 瑞典爱立信有限公司 视频编码/解码系统中的端运动细化
US11032560B2 (en) * 2019-01-17 2021-06-08 Tencent America LLC Method and apparatus for video coding without updating the HMVP table
CN111475424B (zh) * 2019-01-23 2023-07-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读存储介质
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
CN109946229A (zh) * 2019-02-25 2019-06-28 南京文易特电子科技有限公司 一种香烟条包智能数字双拉线检测系统及检测方法
US10652581B1 (en) * 2019-02-27 2020-05-12 Google Llc Entropy coding in image and video compression using machine learning
US10939107B2 (en) * 2019-03-01 2021-03-02 Sony Corporation Embedded codec circuitry for sub-block based allocation of refinement bits
WO2020180153A1 (ko) * 2019-03-06 2020-09-10 엘지전자 주식회사 인터 예측을 위한 비디오 신호의 처리 방법 및 장치
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
US11178399B2 (en) * 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
WO2020189978A1 (ko) * 2019-03-15 2020-09-24 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
CN109947398B (zh) * 2019-03-25 2020-12-25 武汉轻工大学 三重积分求解方法、装置、终端设备及可读存储介质
KR102647470B1 (ko) 2019-04-15 2024-03-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비선형 적응형 루프 필터링에서 파라미터의 시간적 예측
WO2020231140A1 (ko) 2019-05-14 2020-11-19 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
CN112135149B (zh) * 2019-06-24 2023-07-18 华为技术有限公司 语法元素的熵编码/解码方法、装置以及编解码器
US11184642B2 (en) * 2019-08-02 2021-11-23 Mediatek Inc. Methods and apparatus for simplification of coding residual blocks
WO2021040492A1 (ko) * 2019-08-31 2021-03-04 엘지전자 주식회사 비디오/영상 코딩 시스템에서 변환 계수 코딩 방법 및 장치
CN114731446A (zh) * 2019-09-24 2022-07-08 弗劳恩霍夫应用研究促进协会 用于信息值序列的编码概念
CN114731445A (zh) * 2019-10-01 2022-07-08 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
CN112866181B (zh) * 2019-11-28 2023-05-26 上海商汤智能科技有限公司 数据解码装置、加速器、以及片上系统
US11468601B2 (en) 2020-01-13 2022-10-11 Samsung Display Co., Ltd. Systems and methods for scalable throughput entropy coder
US11822902B2 (en) * 2020-01-21 2023-11-21 California Institute Of Technology Systems and methods for performing lossless source coding
WO2021162722A1 (en) * 2020-02-12 2021-08-19 Google Llc Multi-context entropy coding for compression of graphs
CN116018647A (zh) * 2020-07-10 2023-04-25 皇家飞利浦有限公司 通过基于可配置机器学习的算术编码进行的基因组信息压缩
US11362681B2 (en) * 2020-08-21 2022-06-14 Seagate Technology Llc One-shot state transition probability encoder and decoder
CN112260699A (zh) * 2020-09-15 2021-01-22 深圳拓邦股份有限公司 属性通讯编解码方法、编码装置、解码装置及系统
FR3114717B1 (fr) * 2020-09-30 2023-10-13 Fond B Com Procédé et dispositif électronique de décodage d’un flux de données, programme d’ordinateur et flux de données associés
US11722672B2 (en) 2020-10-06 2023-08-08 Qualcomm Incorporated Adaptively deriving rice parameter values for high bit-depth video coding
CN114501036A (zh) * 2020-11-13 2022-05-13 联发科技股份有限公司 熵解码装置及相关熵解码方法
CN114727109B (zh) * 2021-01-05 2023-03-24 腾讯科技(深圳)有限公司 多媒体的量化处理方法、装置及编码、解码设备
US11356197B1 (en) 2021-03-19 2022-06-07 Kandou Labs SA Error-tolerant forward error correction ordered set message decoder
CN113079377B (zh) * 2021-04-01 2022-09-30 中国科学技术大学 一种深度图像/视频压缩网络的训练方法
WO2022217245A1 (en) * 2021-04-07 2022-10-13 Innopeak Technology, Inc. Remaining level binarization for video coding
CN113489979A (zh) * 2021-05-28 2021-10-08 杭州博雅鸿图视频技术有限公司 熵编码方法、装置、电子设备及存储介质
CN113422964A (zh) * 2021-06-04 2021-09-21 绍兴市北大信息技术科创中心 一种串长度参数编解码方法和装置
CN117859329A (zh) * 2021-08-17 2024-04-09 北京达佳互联信息技术有限公司 用于基于块的视频编解码的符号预测
US11871038B2 (en) * 2021-09-29 2024-01-09 Tencent America LLC Techniques for constraint flag signaling for range extension with residual rice coding extension
WO2023114468A1 (en) * 2021-12-16 2023-06-22 Beijing Dajia Internet Information Technology Co., Ltd. Sign prediction for block-based video coding
US20230291935A1 (en) * 2022-03-11 2023-09-14 Tencent America LLC Systems and methods for division-free probability regularization for arithmetic coding
US20230308651A1 (en) * 2022-03-22 2023-09-28 Tencent America LLC Systems and methods for regularization-free multi-hypothesis arithmetic coding
WO2023195643A1 (ko) * 2022-04-05 2023-10-12 삼성전자 주식회사 엔트로피 부호화 및 복호화 장치 및 그 방법
WO2024007090A1 (zh) * 2022-07-04 2024-01-11 嘉兴尚坤科技有限公司 一种超高清视频数据编码/解码处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1294193A1 (en) * 2001-09-12 2003-03-19 Thomson Licensing S.A. Method and apparatus for changing received streaming content channels
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
US7221296B2 (en) * 2005-08-22 2007-05-22 Streaming Networks (Pvt.) Ltd. Method and system for fast context based adaptive binary arithmetic coding
RU2371881C1 (ru) * 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression

Family Cites Families (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5925884B2 (ja) * 1980-12-24 1984-06-22 住友ゴム工業株式会社 ゴムロ−ラ
JPS5916569A (ja) * 1982-07-17 1984-01-27 Yoshida Kogyo Kk <Ykk> 金属部材のコ−ナ−部にストライプ模様を形成する方法
US6885864B2 (en) 1992-03-06 2005-04-26 Aircell, Inc. Virtual private network for cellular communications
US5381145A (en) 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US5717394A (en) 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
JPH06334993A (ja) * 1993-03-26 1994-12-02 Sony Corp 動画像符号化又は復号化装置、並びに動きベクトルの可変長符号化及び復号化方法
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
JP2866616B2 (ja) 1996-06-24 1999-03-08 昇 大串 健康ベッド
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
JPH10151789A (ja) 1996-11-22 1998-06-09 Eiji Shiozaki 粉体飛翔式印字制御方法および印字装置
KR100345423B1 (ko) * 1997-03-31 2002-07-26 마츠시타 덴끼 산교 가부시키가이샤 동화상 표시 방법 및 그 장치
KR100255754B1 (ko) * 1997-08-30 2000-05-01 전주범 이진 형상 신호 부호화 방법
CN1146245C (zh) * 1997-12-22 2004-04-14 株式会社大宇电子 隔行二进制形状编码方法和装置
US6677868B2 (en) * 2001-03-16 2004-01-13 Sharp Laboratories Of America, Inc. Entropy coding with adaptive syntax to replace high probability symbols with lower probabilities symbols
US6865298B2 (en) * 2001-03-30 2005-03-08 Sharp Laboratories Of America, Inc. Compound document compression based upon neighboring pixels
JP4125565B2 (ja) * 2001-08-31 2008-07-30 松下電器産業株式会社 画像符号化方法、画像復号化方法及びその装置
KR100765060B1 (ko) 2001-11-09 2007-10-09 주식회사 포스코 침전조의 워터배출 조정장치
US7435543B2 (en) * 2001-11-27 2008-10-14 Animal Technology Institute Of Taiwan Genetic markers for pig backfat thickness
US7200275B2 (en) * 2001-12-17 2007-04-03 Microsoft Corporation Skip macroblock coding
US7003035B2 (en) * 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
CN1225904C (zh) * 2002-04-12 2005-11-02 精工爱普生株式会社 在压缩域视频处理中降低存储器要求和实施有效的逆运动补偿的方法和设备
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
EP1500281A2 (de) 2002-05-02 2005-01-26 Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschung E.V. Kodierung von transformations-koeffizienten in bild- oder videokodierern
JP3989485B2 (ja) * 2002-05-02 2007-10-10 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン バイナリ状態を符号化および復号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータで読取可能な情報記憶媒体
JP4230188B2 (ja) * 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6919105B2 (en) 2003-01-06 2005-07-19 Philip Morris Usa Inc. Continuous process for retaining solid adsorbent particles on shaped micro-cavity fibers
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7233622B2 (en) * 2003-08-12 2007-06-19 Lsi Corporation Reduced complexity efficient binarization method and/or circuit for motion vector residuals
EP1513350A1 (en) * 2003-09-03 2005-03-09 Thomson Licensing S.A. Process and arrangement for encoding video pictures
US6771197B1 (en) 2003-09-26 2004-08-03 Mitsubishi Electric Research Laboratories, Inc. Quantizing signals using sparse generator factor graph codes
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
JP4241417B2 (ja) * 2004-02-04 2009-03-18 日本ビクター株式会社 算術復号化装置、および算術復号化プログラム
JP4408766B2 (ja) 2004-07-30 2010-02-03 Ntn株式会社 Icタグ付き車輪用軸受装置
CN1589023A (zh) * 2004-08-06 2005-03-02 联合信源数字音视频技术(北京)有限公司 一种基于上下文的多码表变长编解码方法及编解码装置
US7609947B2 (en) 2004-09-10 2009-10-27 Panasonic Corporation Method and apparatus for coordinating playback from multiple video sources
CN101061642A (zh) * 2004-09-22 2007-10-24 液滴技术有限公司 置换延迟
DE102004049156B4 (de) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
KR20060038189A (ko) * 2004-10-29 2006-05-03 삼성전자주식회사 컨텍스트 기반 적응형 이진 산술 복부호화 방법 및 장치
KR100636229B1 (ko) * 2005-01-14 2006-10-19 학교법인 성균관대학 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
KR100703760B1 (ko) 2005-03-18 2007-04-06 삼성전자주식회사 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치
AU2006201490B2 (en) * 2005-04-19 2008-05-22 Samsung Electronics Co., Ltd. Method and apparatus for adaptively selecting context model for entropy coding
RU2336661C2 (ru) * 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
EP1727371A1 (en) * 2005-05-27 2006-11-29 Thomson Licensing Method for controlling the encoder output bit rate in a block-based video encoder, and corresponding video encoder apparatus
CN1878309A (zh) * 2005-06-08 2006-12-13 松下电器产业株式会社 视频编码装置
JP4856954B2 (ja) * 2005-06-08 2012-01-18 パナソニック株式会社 画像符号化装置
KR100683788B1 (ko) 2005-06-25 2007-02-20 삼성에스디아이 주식회사 복수의 층들의 전극 라인들이 형성된 교류형 방전디스플레이 패널
CN101223780A (zh) * 2005-07-18 2008-07-16 三星电子株式会社 减少编码器和解码器之间的不匹配的视频编码方法和设备
CN100461863C (zh) * 2005-08-05 2009-02-11 上海富瀚微电子有限公司 基于上下文自适应二进制算术解码器
EP1755341A1 (en) * 2005-08-19 2007-02-21 Texas Instruments Incorporated Method of quantization of transform coefficients
KR100813963B1 (ko) 2005-09-16 2008-03-14 세종대학교산학협력단 동영상의 무손실 부호화, 복호화 방법 및 장치
CN100403801C (zh) * 2005-09-23 2008-07-16 联合信源数字音视频技术(北京)有限公司 一种基于上下文的自适应熵编/解码方法
CN100466739C (zh) 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码系统及方法
CA2627733C (en) 2005-10-31 2011-08-23 Hsiao-Cheng Yen Scleral buckle band and method for making it
KR100873636B1 (ko) * 2005-11-14 2008-12-12 삼성전자주식회사 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치
JP2009517899A (ja) 2005-11-25 2009-04-30 ゼビック,グレゴール 有線および無線のセキュリティ保護されたリンクを用いたホームネットワークアプリケーション
US7245242B2 (en) * 2005-11-28 2007-07-17 Conexant Systems, Inc. Decoding systems and methods
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
JP4318050B2 (ja) 2006-01-24 2009-08-19 ソニー株式会社 ワイヤレスチャンネル決定選択方法およびアクセスポイント装置
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
US20070217702A1 (en) * 2006-03-14 2007-09-20 Sung Chih-Ta S Method and apparatus for decoding digital video stream
US8848789B2 (en) 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
US7929608B2 (en) * 2006-03-28 2011-04-19 Sony Corporation Method of reducing computations in intra-prediction and mode decision processes in a digital video encoder
JP2007300455A (ja) * 2006-05-01 2007-11-15 Victor Co Of Japan Ltd 算術符号化装置、および算術符号化装置におけるコンテキストテーブル初期化方法
JP2007306370A (ja) * 2006-05-12 2007-11-22 Victor Co Of Japan Ltd 画像符号化記録装置
US8472527B2 (en) * 2006-09-13 2013-06-25 Texas Instruments Incorporated Hierarchical motion estimation using original frame for sub-sampled reference
CN101198051B (zh) * 2006-12-07 2011-10-05 深圳艾科创新微电子有限公司 基于h.264的熵解码器的实现方法及装置
US7573405B2 (en) * 2006-12-29 2009-08-11 Texas Instruments Incorporated System updating accumulated statistics coding variable values after multiple encodings
US20080162432A1 (en) * 2006-12-29 2008-07-03 Wen-Shan Wang Search table for unary k-th order exp-golomb decoder
CN101005287A (zh) * 2007-01-26 2007-07-25 北京中星微电子有限公司 提高算术编码速度的方法、系统及编码装置
US20080225947A1 (en) * 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding
CN101115200B (zh) * 2007-04-20 2010-05-19 西安交通大学 一种有效的运动矢量可伸缩编码方法
KR101166732B1 (ko) * 2007-05-04 2012-07-19 퀄컴 인코포레이티드 추정된 코딩 비용을 이용하는 비디오 코딩 모드 선택
JP2008300455A (ja) 2007-05-29 2008-12-11 Sumitomo Electric Ind Ltd パワーモジュール
CN103338366B (zh) * 2007-06-29 2016-08-24 夏普株式会社 图像编码装置、图像编码方法、图像译码装置、图像译码方法
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
KR101408698B1 (ko) 2007-07-31 2014-06-18 삼성전자주식회사 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치
US7839311B2 (en) * 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US7535387B1 (en) * 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
CN101478672B (zh) * 2008-01-04 2012-12-19 华为技术有限公司 视频编码、解码方法及装置和视频处理系统
EP2077551B1 (en) * 2008-01-04 2011-03-02 Dolby Sweden AB Audio encoder and decoder
JP4915350B2 (ja) * 2008-01-16 2012-04-11 日本電気株式会社 エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム
WO2009094349A1 (en) 2008-01-22 2009-07-30 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
US20090201983A1 (en) 2008-02-07 2009-08-13 Motorola, Inc. Method and apparatus for estimating high-band energy in a bandwidth extension system
JP4479829B2 (ja) 2008-04-03 2010-06-09 ソニー株式会社 撮像装置及び撮像方法
US7656320B2 (en) 2008-04-10 2010-02-02 Red Hat, Inc. Difference coding adaptive context model using counting
JP4962400B2 (ja) 2008-04-30 2012-06-27 ソニー株式会社 算術復号装置
US8179974B2 (en) * 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
CN101267559A (zh) * 2008-05-08 2008-09-17 上海交通大学 视频解码器的通用熵解码方法及装置
US20090304071A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Adaptive application of entropy coding methods
CN101304522A (zh) * 2008-06-20 2008-11-12 中国民航大学 一种以jpeg2000压缩图像为载体的大容量信息隐藏方法
US20100086051A1 (en) * 2008-10-06 2010-04-08 Lg Electronics Inc. Method and an apparatus for processing a video signal
WO2010043773A1 (en) * 2008-10-17 2010-04-22 Nokia Corporation Sharing of motion vector in 3d video coding
EP2182732A1 (en) * 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US20100127904A1 (en) 2008-11-26 2010-05-27 Horizon Semiconductors Ltd. Implementation of a rapid arithmetic binary decoding system of a suffix length
WO2010063883A1 (en) * 2008-12-03 2010-06-10 Nokia Corporation Switching between dct coefficient coding modes
JP2010268094A (ja) * 2009-05-13 2010-11-25 Sony Corp 画像復号化装置および画像復号化方法
JP2010278668A (ja) 2009-05-27 2010-12-09 Sony Corp 符号化装置及び符号化方法、並びに復号装置及び復号方法
US9479812B2 (en) * 2009-06-05 2016-10-25 Time Warner Cable Enterprises Llc User selection of software components in a television set-top box
KR101356613B1 (ko) * 2009-08-21 2014-02-06 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101678968B1 (ko) * 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN102055483B (zh) * 2009-10-29 2013-05-08 鸿富锦精密工业(深圳)有限公司 熵解码装置
JP5409268B2 (ja) * 2009-10-30 2014-02-05 株式会社日立ソリューションズ 情報提示装置及び携帯端末
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
US9237355B2 (en) 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
US9973768B2 (en) 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
CN101841707B (zh) * 2010-03-19 2012-01-04 西安电子科技大学 基于jpeg2000标准的高速实时处理算术熵编码方法
HUE037656T2 (hu) * 2010-04-13 2018-09-28 Fraunhofer Ges Forschung Valószínûség intervallum partícionáló kódoló és dekódoló
US20120014429A1 (en) * 2010-07-15 2012-01-19 Jie Zhao Methods and Systems for Parallel Video Encoding and Parallel Video Decoding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
CN101938654B (zh) * 2010-08-17 2013-04-10 浙江大学 一种变换系数的优化量化方法及装置
CN101951516B (zh) * 2010-09-25 2013-06-05 清华大学 基于h.264/avc中cabac的并行编码实现电路及编码方法
US8913666B2 (en) 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
US10327008B2 (en) * 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
JP5570437B2 (ja) * 2011-01-12 2014-08-13 三菱電機株式会社 エントロピー符号化装置、エントロピー復号装置、エントロピー符号化方法及びエントロピー復号方法
US9008181B2 (en) 2011-01-24 2015-04-14 Qualcomm Incorporated Single reference picture list utilization for interprediction video coding
ITTO20110414A1 (it) * 2011-05-11 2012-11-12 St Microelectronics Pvt Ltd Procedimento ed apparecchiatura per elaborare segnali video, prodotto informatico e segnale codificato relativi
MX364201B (es) 2011-06-16 2019-04-16 Fraunhofer Ges Forschung Codificacion de entropia para diferencias de vector de movimiento.
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US10856009B2 (en) * 2014-09-04 2020-12-01 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1294193A1 (en) * 2001-09-12 2003-03-19 Thomson Licensing S.A. Method and apparatus for changing received streaming content channels
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
RU2371881C1 (ru) * 2005-07-08 2009-10-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ моделирования информации кодирования видеосигнала для компрессии/декомпрессии информации
US7221296B2 (en) * 2005-08-22 2007-05-22 Streaming Networks (Pvt.) Ltd. Method and system for fast context based adaptive binary arithmetic coding
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2771925C1 (ru) * 2018-12-29 2022-05-13 Хуавей Текнолоджиз Ко., Лтд. Кодер, декодер и соответствующие способы с использованием компактного mv хранилища
RU2783385C2 (ru) * 2018-12-29 2022-11-11 Хуавей Текнолоджиз Ко., Лтд. Кодер, декодер и соответствующие способы с использованием компактного mv хранилища
US11818357B2 (en) 2018-12-29 2023-11-14 Huawei Technologies Co., Ltd. Encoder, a decoder and corresponding methods using compact MV storage

Also Published As

Publication number Publication date
CN107517383B (zh) 2020-07-14
HK1248436A1 (zh) 2018-10-12
PT3343781T (pt) 2022-03-07
PH12018500356A1 (en) 2018-08-13
CN103931194B (zh) 2017-09-05
IL304856A (en) 2023-09-01
KR102631388B1 (ko) 2024-01-31
US10063858B2 (en) 2018-08-28
IL294454B2 (en) 2023-06-01
HK1248949A1 (zh) 2018-10-19
US11533485B2 (en) 2022-12-20
RU2019127048A3 (ru) 2021-03-01
HK1248948B (zh) 2020-02-21
US10819982B2 (en) 2020-10-27
RU2018120845A (ru) 2019-12-09
PH12018500356B1 (en) 2018-08-13
US20230078680A1 (en) 2023-03-16
CY1124687T1 (el) 2022-07-22
ES2953667T3 (es) 2023-11-15
PH12018500349A1 (en) 2018-08-13
EP4033672A1 (en) 2022-07-27
CN103931194A (zh) 2014-07-16
PT2721822T (pt) 2019-01-23
CN103748886A (zh) 2014-04-23
AU2012268950B2 (en) 2016-02-04
CL2013003603A1 (es) 2014-08-01
PH12018500330B1 (en) 2018-07-09
IL309379A (en) 2024-02-01
IL265636A (en) 2019-05-30
US20180152707A1 (en) 2018-05-31
AU2018200699B2 (en) 2018-10-25
HK1247487A1 (zh) 2018-09-21
US10148962B2 (en) 2018-12-04
EP3703367A1 (en) 2020-09-02
KR20140028106A (ko) 2014-03-07
KR20240017975A (ko) 2024-02-08
RU2758981C2 (ru) 2021-11-03
CN107801042B (zh) 2020-06-19
US20160360223A1 (en) 2016-12-08
CN103748886B (zh) 2017-11-10
EP3471415A1 (en) 2019-04-17
ES2704627T3 (es) 2019-03-19
PL3471415T3 (pl) 2022-01-03
CN103733622B (zh) 2017-06-30
CN107613307B (zh) 2021-04-06
SI3471415T1 (sl) 2021-12-31
PH12018500355B1 (en) 2018-08-13
EP2721819A1 (en) 2014-04-23
EP3930330B1 (en) 2023-06-07
HK1249313B (zh) 2020-04-24
KR102254000B1 (ko) 2021-05-20
MY170940A (en) 2019-09-19
US10306232B2 (en) 2019-05-28
ES2897209T3 (es) 2022-02-28
JP2014518473A (ja) 2014-07-28
HUE057958T2 (hu) 2022-06-28
IL230415A (en) 2017-01-31
ZA201400030B (en) 2015-04-29
US20180295387A1 (en) 2018-10-11
JP7231594B2 (ja) 2023-03-01
AU2012268950A1 (en) 2014-01-30
SI3930330T1 (sl) 2023-10-30
JP6356723B2 (ja) 2018-07-11
CA2839560A1 (en) 2012-12-20
CN107770559A (zh) 2018-03-06
KR20190136116A (ko) 2019-12-09
CN107465926B (zh) 2021-06-08
AP2014007360A0 (en) 2014-01-31
SI2721819T1 (sl) 2023-12-29
BR112013032333B1 (pt) 2022-07-26
US20200092560A1 (en) 2020-03-19
ES2704627T8 (es) 2021-01-25
EP2721819B1 (en) 2023-08-16
HK1197128A1 (en) 2015-01-02
CN107770559B (zh) 2020-06-26
MX2023005264A (es) 2023-05-23
WO2012172114A1 (en) 2012-12-20
KR101818978B1 (ko) 2018-01-16
PH12018500351A1 (en) 2018-08-13
PL2721819T3 (pl) 2024-02-19
HK1248947A1 (zh) 2018-10-19
US20170302968A1 (en) 2017-10-19
JP5925884B2 (ja) 2016-05-25
CN107360423B (zh) 2020-05-12
RU2018100106A3 (ru) 2019-07-17
US9596475B2 (en) 2017-03-14
IL249644A0 (en) 2017-02-28
BR112013032333A2 (pt) 2016-12-20
PH12018500354A1 (en) 2018-08-13
CN107529706B (zh) 2020-11-17
CN107465926A (zh) 2017-12-12
CN107529710B (zh) 2020-04-07
PH12018500353A1 (en) 2018-08-13
PT2721819T (pt) 2023-11-22
EP3471415B1 (en) 2021-08-04
US20180152708A1 (en) 2018-05-31
RU2014101164A (ru) 2015-07-27
US9930371B2 (en) 2018-03-27
US10440364B2 (en) 2019-10-08
PH12018500355A1 (en) 2018-08-13
IL283649B (en) 2022-03-01
US9918090B2 (en) 2018-03-13
CN107465927A (zh) 2017-12-12
HK1247488A1 (zh) 2018-09-21
HK1246543A1 (zh) 2018-09-07
AP2016009618A0 (en) 2016-12-31
PH12018500331A1 (en) 2018-07-09
CA2839569A1 (en) 2012-12-20
CN107333140A (zh) 2017-11-07
DK2721822T3 (en) 2019-02-18
US20190141329A1 (en) 2019-05-09
FI3930330T3 (fi) 2023-09-07
US20170302969A1 (en) 2017-10-19
IL230023A (en) 2017-06-29
KR101662136B1 (ko) 2016-10-04
RU2642373C1 (ru) 2018-01-24
IL299953A (en) 2023-03-01
KR20220122800A (ko) 2022-09-02
ZA201400029B (en) 2015-04-29
AU2022235513B2 (en) 2023-04-13
AU2023203785B2 (en) 2023-12-21
US10425644B2 (en) 2019-09-24
PH12018500328A1 (en) 2018-07-09
US10313672B2 (en) 2019-06-04
MY184473A (en) 2021-04-01
CN107347161B (zh) 2020-06-12
US20190191165A1 (en) 2019-06-20
CN107801041B (zh) 2019-08-13
KR20140022957A (ko) 2014-02-25
HK1246542A1 (zh) 2018-09-07
JP2014522613A (ja) 2014-09-04
PH12018500354B1 (en) 2018-08-13
RS64867B1 (sr) 2023-12-29
KR102160647B1 (ko) 2020-09-28
AU2012268951B2 (en) 2015-07-30
US11277614B2 (en) 2022-03-15
CN107333142A (zh) 2017-11-07
IL283649A (en) 2021-07-29
CN107360423A (zh) 2017-11-17
EP3930330A1 (en) 2021-12-29
IL254274A0 (en) 2017-10-31
CN107529709B (zh) 2019-05-07
CN107801041A (zh) 2018-03-13
MX2013014867A (es) 2014-05-21
ES2961663T3 (es) 2024-03-13
EP2721822B1 (en) 2018-10-31
HK1246545A1 (zh) 2018-09-07
LT3930330T (lt) 2023-09-11
PH12018500351B1 (en) 2018-08-13
US20140140400A1 (en) 2014-05-22
LT3343781T (lt) 2022-03-10
CL2013003601A1 (es) 2014-07-25
JP2021044809A (ja) 2021-03-18
JP7100836B2 (ja) 2022-07-14
AU2016202638B2 (en) 2017-06-15
HRP20220272T1 (hr) 2022-05-13
KR20190079689A (ko) 2019-07-05
PT3471415T (pt) 2021-11-04
AU2019203792B2 (en) 2021-04-29
SI3343781T1 (sl) 2022-04-29
RU2699677C2 (ru) 2019-09-09
BR112013032332B1 (pt) 2022-08-16
CN107529705B (zh) 2021-02-12
US20170302952A1 (en) 2017-10-19
KR20160119254A (ko) 2016-10-12
US9729883B2 (en) 2017-08-08
RU2595934C2 (ru) 2016-08-27
HUE056273T2 (hu) 2022-02-28
US20180205953A1 (en) 2018-07-19
KR20180006510A (ko) 2018-01-17
RS63053B1 (sr) 2022-04-29
HK1246541A1 (zh) 2018-09-07
CN107529707A (zh) 2018-01-02
AU2018200699A1 (en) 2018-02-22
AU2023203785A1 (en) 2023-07-13
HK1246540A1 (zh) 2018-09-07
CO6852031A2 (es) 2014-01-30
AU2021209284A1 (en) 2021-08-19
KR20180086522A (ko) 2018-07-31
HK1247489A1 (zh) 2018-09-21
IL290229A (en) 2022-03-01
JP2023075109A (ja) 2023-05-30
KR102187981B1 (ko) 2020-12-07
US9686568B2 (en) 2017-06-20
CN107801025A (zh) 2018-03-13
KR20170047406A (ko) 2017-05-04
PL3343781T3 (pl) 2022-03-28
KR20160018879A (ko) 2016-02-17
IL297827A (en) 2023-01-01
BR112013032332A2 (pt) 2016-12-20
US20170302954A1 (en) 2017-10-19
US20170302953A1 (en) 2017-10-19
US20180359476A1 (en) 2018-12-13
IL252388B (en) 2022-08-01
US9762913B2 (en) 2017-09-12
US10630988B2 (en) 2020-04-21
EP4277276A1 (en) 2023-11-15
BR122020024986B1 (pt) 2022-02-22
HUE063990T2 (hu) 2024-02-28
DK3930330T3 (da) 2023-08-28
CN107517384A (zh) 2017-12-26
JP6492047B2 (ja) 2019-03-27
JP2019050610A (ja) 2019-03-28
US20180324435A1 (en) 2018-11-08
US20160360238A1 (en) 2016-12-08
AU2022235513A1 (en) 2022-10-13
JP2018139415A (ja) 2018-09-06
KR20200064171A (ko) 2020-06-05
CN107465927B (zh) 2020-05-12
US20170142416A1 (en) 2017-05-18
PH12018500352A1 (en) 2018-08-13
CA2839569C (en) 2017-01-03
CN107465928B (zh) 2020-10-30
RU2018100106A (ru) 2019-07-09
AP3686A (en) 2016-04-23
WO2012172115A1 (en) 2012-12-20
PH12018500329A1 (en) 2018-07-09
CN107517383A (zh) 2017-12-26
KR101619333B1 (ko) 2016-05-18
CN107333142B (zh) 2020-06-02
US10432940B2 (en) 2019-10-01
IL299953B2 (en) 2024-01-01
CN107529708B (zh) 2019-05-07
JP2017085602A (ja) 2017-05-18
PH12018500330A1 (en) 2018-07-09
US9936227B2 (en) 2018-04-03
IL305221A (en) 2023-10-01
RS64604B1 (sr) 2023-10-31
HUE042350T2 (hu) 2019-06-28
US20190158840A1 (en) 2019-05-23
US20190327474A1 (en) 2019-10-24
US20220224904A1 (en) 2022-07-14
RS62714B1 (sr) 2022-01-31
RU2019127048A (ru) 2021-03-01
CN107801025B (zh) 2020-07-14
AU2019200328B2 (en) 2019-03-07
IL252388A0 (en) 2017-07-31
US9930370B2 (en) 2018-03-27
US20170250709A1 (en) 2017-08-31
MX345195B (es) 2017-01-20
PH12018500350A1 (en) 2018-08-13
PH12019500792A1 (en) 2020-12-02
JP2021108479A (ja) 2021-07-29
ES2906869T3 (es) 2022-04-20
US20180332290A1 (en) 2018-11-15
US20140198841A1 (en) 2014-07-17
US20180109813A1 (en) 2018-04-19
JP2014520451A (ja) 2014-08-21
US10298964B2 (en) 2019-05-21
PH12018500353B1 (en) 2018-08-13
PH12018500328B1 (en) 2018-07-09
PH12018500348B1 (en) 2018-08-13
CA2839560C (en) 2016-10-04
CN107347161A (zh) 2017-11-14
AU2016202638A1 (en) 2016-05-19
IL297827B1 (en) 2023-09-01
US9918104B2 (en) 2018-03-13
US10432939B2 (en) 2019-10-01
AP2014007361A0 (en) 2014-01-31
IL297827B2 (en) 2024-01-01
UA115186C2 (uk) 2017-09-25
US20200169733A1 (en) 2020-05-28
EP3343781A1 (en) 2018-07-04
UA123987C2 (uk) 2021-07-07
CN107529706A (zh) 2018-01-02
DK3343781T3 (da) 2022-03-07
US9628827B2 (en) 2017-04-18
IL299953B1 (en) 2023-09-01
EP2721822A1 (en) 2014-04-23
KR102052471B1 (ko) 2019-12-05
AU2024201731A1 (en) 2024-04-04
HK1247490A1 (zh) 2018-09-21
CN107360434B (zh) 2020-05-12
CN103733622A (zh) 2014-04-16
KR102437504B1 (ko) 2022-08-29
PT3930330T (pt) 2023-08-31
JP6059212B2 (ja) 2017-01-11
JP2022123096A (ja) 2022-08-23
KR20200138444A (ko) 2020-12-09
PH12018500352B1 (en) 2018-08-13
US20190320178A1 (en) 2019-10-17
JP6814780B2 (ja) 2021-01-20
MX336735B (es) 2016-01-29
HK1248951A1 (zh) 2018-10-19
AU2021209284B2 (en) 2022-06-23
CN107333140B (zh) 2020-09-22
US20160360204A1 (en) 2016-12-08
KR101994869B1 (ko) 2019-07-01
PH12018500349B1 (en) 2018-08-13
PH12019500790A1 (en) 2019-11-11
MX2019004403A (es) 2021-10-07
AU2019203792A1 (en) 2019-06-20
US20140177707A1 (en) 2014-06-26
JP5952900B2 (ja) 2016-07-13
MX2013014868A (es) 2014-05-28
US10630987B2 (en) 2020-04-21
JP2018186527A (ja) 2018-11-22
US9455744B2 (en) 2016-09-27
PL3930330T3 (pl) 2023-10-23
CN107529707B (zh) 2019-10-01
KR101730587B1 (ko) 2017-04-26
CN107517384B (zh) 2020-06-30
BR122021000264B1 (pt) 2022-02-22
US11838511B2 (en) 2023-12-05
DK2721819T3 (da) 2023-11-13
LT2721819T (lt) 2023-11-27
US9743090B2 (en) 2017-08-22
AP4072A (en) 2017-03-16
US20240048708A1 (en) 2024-02-08
US20170180733A1 (en) 2017-06-22
RU2615681C2 (ru) 2017-04-06
CN107529710A (zh) 2018-01-02
PH12018500329B1 (en) 2018-07-09
IL265636B (en) 2021-06-30
US9473170B2 (en) 2016-10-18
AU2019200328A1 (en) 2019-02-07
IL290229B (en) 2022-12-01
AU2017228613B2 (en) 2017-11-02
PH12018500348A1 (en) 2018-08-13
EP2721820A1 (en) 2014-04-23
RU2755020C2 (ru) 2021-09-09
RU2018120845A3 (ru) 2021-04-05
JP6867334B2 (ja) 2021-04-28
IL249644A (en) 2017-09-28
IL290229B2 (en) 2023-04-01
RU2014101166A (ru) 2015-07-27
AU2012268951A1 (en) 2014-01-16
CN107360434A (zh) 2017-11-17
US10230954B2 (en) 2019-03-12
HK1248434B (zh) 2020-04-24
KR101882848B1 (ko) 2018-07-27
CN107465928A (zh) 2017-12-12
FI2721819T3 (fi) 2023-11-16
PL2721822T3 (pl) 2019-04-30
US9768804B1 (en) 2017-09-19
JP2016174378A (ja) 2016-09-29
EP3343781B1 (en) 2021-12-01
US20170366810A1 (en) 2017-12-21
MX364201B (es) 2019-04-16
CN107529708A (zh) 2018-01-02
US10057603B2 (en) 2018-08-21
AU2017228613A1 (en) 2017-10-05
CN107333141B (zh) 2020-04-07
CO6852030A2 (es) 2014-01-30
DK3471415T3 (da) 2021-11-01
JP6560393B2 (ja) 2019-08-14
CN107529705A (zh) 2018-01-02
CN107529704A (zh) 2018-01-02
HUE062605T2 (hu) 2023-11-28
CN107801042A (zh) 2018-03-13
CN107613307A (zh) 2018-01-19
US20230188719A1 (en) 2023-06-15
CN107529704B (zh) 2019-08-09
LT3471415T (lt) 2021-12-10
US10021393B2 (en) 2018-07-10
US20200267389A1 (en) 2020-08-20
WO2012172113A1 (en) 2012-12-20
IL259768A (en) 2018-07-31
IL294454A (en) 2022-09-01
MX2023005265A (es) 2023-05-23
CN107333141A (zh) 2017-11-07
US9973761B2 (en) 2018-05-15
US20160366447A1 (en) 2016-12-15
PH12018500350B1 (en) 2018-08-13
CN107529709A (zh) 2018-01-02
IL254274B (en) 2018-06-28

Similar Documents

Publication Publication Date Title
RU2758981C2 (ru) Энтропийное кодирование разностей векторов движения
RU2776910C1 (ru) Энтропийное кодирование разностей векторов движения
JP7464768B2 (ja) 動きベクトル差のエントロピー符号化