RU2321169C2 - Способ декодирования префиксных кодов переменной длины - Google Patents

Способ декодирования префиксных кодов переменной длины Download PDF

Info

Publication number
RU2321169C2
RU2321169C2 RU2005138866/09A RU2005138866A RU2321169C2 RU 2321169 C2 RU2321169 C2 RU 2321169C2 RU 2005138866/09 A RU2005138866/09 A RU 2005138866/09A RU 2005138866 A RU2005138866 A RU 2005138866A RU 2321169 C2 RU2321169 C2 RU 2321169C2
Authority
RU
Russia
Prior art keywords
bits
length
prefix
decoding
bit stream
Prior art date
Application number
RU2005138866/09A
Other languages
English (en)
Other versions
RU2005138866A (ru
Inventor
Сергей Николаевич Желтов (RU)
Сергей Николаевич Желтов
Станислав Викторович Братанов (RU)
Станислав Викторович Братанов
Original Assignee
Интел, Закрытое Акционерное Общество
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел, Закрытое Акционерное Общество filed Critical Интел, Закрытое Акционерное Общество
Priority to RU2005138866/09A priority Critical patent/RU2321169C2/ru
Publication of RU2005138866A publication Critical patent/RU2005138866A/ru
Application granted granted Critical
Publication of RU2321169C2 publication Critical patent/RU2321169C2/ru

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Изобретение относится к декодированию префиксных кодов переменной длины, например кодов Хаффмана, и более конкретно к комбинированной схеме декодирования с использованием декодирования с помощью таблицы преобразования и декодирования, ориентированного по префиксу. Сущность изобретения состоит в том, что из потока битов считывают количество битов, не меньшее чем максимально возможная длина кода переменной длины (КПД), выбирают заданное количество битов, которое используют в качестве индекса для структуры данных, которая содержит, по меньшей мере, декодированное значение и индикатор достоверности. Индикатор достоверности используют для определения, следует ли продолжить декодирование или получить достоверное декодированное значение из структуры данных и возвратить избыточные биты в поток битов. Если декодированное значение определено как недостоверное, декодирование продолжается и способ декодирования, который выполняет оценку длины префикса кода и количества значимых битов, соответствующих полученной оценке длины, применяют к битам, первоначально считанным из потока битов. Технический результат - обеспечить быстрое декодирование кодов переменной длины, когда может быть определен поднабор наиболее часто используемых кодов с относительно короткими префиксами. 3 н. и 21 з.п. ф-лы, 3 ил., 1 прилож.

Description

Часть описания этого патентного документа содержит материал, который защищен авторским правом. Владелец авторского права не возражает против факсимильного воспроизведения любым человеком патентного документа или раскрытия патента, в том виде, как он был представлен в патентном файле или в регистрации Ведомства по патентам и товарным знакам, но в остальных отношениях сохраняет за собой все авторские права в любом отношении.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение, в общем, относится к декодированию префиксных кодов переменной длины, например кодов Хаффмана, и более конкретно к новой комбинированной схеме декодирования с использованием декодирования с помощью таблицы преобразования и декодирования, ориентированного по префиксу.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Энтропийное кодирование представляет собой широко используемую методику сжатия данных, на основе которой построено множество стандартов кодирования изображения и звука. Теоретическая основа энтропийного кодирования определяет, что эффект сжатия может быть получен, когда наиболее часто используемые данные кодируют с меньшим количеством битов, чем количество битов, обозначающее менее часто появляющиеся данные. Этот подход позволяет получить потоки кодированных данных, состоящих из кодов, имеющих разную длину.
Существует ряд способов, предназначенных для формирования таких кодов с переменной длиной (КПД, VLC). В одном из популярных способов используют префиксное кодирование, в котором код состоит из префикса, который позволяет системе декодирования распознавать различные коды, и нескольких значащих битов, представляющих конкретное значение (например, при кодировании Хаффмана).
Хотя в большинстве стандартов кодирования используются коды Хаффмана с префиксами, состоящими из последовательности битов "1" или "0", в их схемах кодирования некоторые стандарты (например, ISO/IEC 14496-2, группа экспертов подвижного изображения (MPEG)-4 стандарта кодирования, Visual) позволяют использовать различные схемы кодирования с префиксом, которые состоят из последовательности более длинных комбинаций битов.
Как правило, количество битов, которые составляют код переменной длины, зависит от количества битов, которые составляют префикс кода. Одновременно, экспериментально определенный поднабор наиболее часто появляющихся кодов может иметь относительно короткие префиксы (включая нулевой префикс) и, таким образом, может быть декодирован с использованием таблицы преобразования как единственный код, что может представлять собой более быстрый способ декодирования для конкретной системы.
Поэтому существует потребность обеспечения возможности высокоскоростного декодирования кодов переменной длины, с префиксом из обычных комбинаций битов, в соответствии с действительным распределением частота - длина кода.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Свойства и преимущества настоящего изобретения будут очевидны из следующего подробного описания настоящего изобретения, в котором:
на фиг.1 показана схема примера кодирования с переменной длиной кода;
на фиг.2 показана схема, иллюстрирующая взаимоотношения между битами, первоначально считываемыми из потока битов, выделенными битами и таблицей, содержащей декодированные величины, индикатор достоверности и вспомогательную информацию;
на фиг.3 показана блок-схема алгоритма, иллюстрирующая процесс декодирования с переменной длиной, в соответствии с вариантом выполнения настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Вариант выполнения настоящего изобретения представляет собой способ выполнения декодера для кодов переменной длины, которые имеют префиксы, состоящие из правильных последовательностей битов. Для применения раскрытого способа к конкретной схеме кодирования, такая схема должна содержать поднабор наиболее часто используемых кодов с относительно короткими префиксами (включая нулевой префикс), так что операция сканирования префикса становится неэффективной. В соответствии с раскрытым способом количество битов, не меньшее чем максимальная возможная длина КПД, считывают из потока битов. Затем заданное количество битов выбирают и используют как индекс для структуры данных, которая содержит, по меньшей мере, декодированную величину и индикатор достоверности, вместе с другими предварительно кодированными данными, включая без ограничений: тип и длину префикса, максимальную длину кода для группы кодов, действительную длину кода и количество битов для возврата в поток битов. Индикатор достоверности используют для определения, следует ли продолжать операцию декодирования или получить достоверное декодированное значение из структуры данных и возвратить избыточные биты в поток битов. Если декодированное значение обозначено как недостоверное, операцию декодирования продолжают и применяют способ декодирования, который выполняет оценку длины префикса кода и количества значимых битов, соответствующих полученной оценке длины к битам, первоначально считанным из потока битов. Раскрытый способ требует меньше памяти, чем способы декодирования с непосредственным использованием таблицы преобразования, и эффективность этого способа обеспечивает меньшие затраты для доступа к памяти по сравнению со способами предшествующего уровня техники, в которых используют множество таблиц преобразования. Кроме того, данный способ, вероятно, является более эффективным для декодирования кодов с "коротким префиксом" по сравнению с другими способами, ориентированными на префикс, поскольку он исключает операции определения типа и длины префикса для наиболее часто используемых кодов.
Ссылка в описании на "один вариант выполнения" или "вариант выполнения" настоящего изобретения означает, что конкретное свойство, структура или характеристика, описанная в связи с вариантом выполнения, включена, по меньшей мере, в один вариант выполнения настоящего изобретения. Таким образом, появление фразы "в одном варианте выполнения" в различных местах описания не обязательно относится к этому же варианту выполнения.
На фиг.1 показана схема, иллюстрирующая пример кодирования переменной длины. Как представлено на фиг.1, каждый код переменной длины имеет группу битов, используемых как префикс 10, и группу значимых битов 12. Префиксы могут быть состоять из группы битов (последовательности битов), которые (в общем случае) дублируют друг друга и связаны друг с другом. Биты, которые следуют после префикса кода, можно называть значимыми битами.
Коды переменной длины (КПД) могут иметь идентичные префиксы. В этом случае, коды составляют группу кода префикса, но одновременно количество значимых битов, которые следуют после префикса, может быть различным. Максимальное количество значимых битов, которое возможно для кодов в такой группе, может быть обозначено как максимальное количество битов. Количество битов, которое следует после префикса для каждого КПД, можно назвать действительным количеством битов.
На фиг.2 показана схема, иллюстрирующая взаимозависимость между битами, первоначально считанными из потока битов, выбранными битами и таблицей, содержащей декодированную величину, индикатор достоверности и вспомогательную информацию, в соответствии с вариантом выполнения настоящего изобретения. Как представлено в примере 2, количество битов 20, не меньшее чем любая возможная длина КПД, то есть количество битов, достаточное для содержания самого длинного КПД в конкретной схеме кодирования, может быть считано из потока битов. Из считанных битов можно выбрать любое количество ведущих битов 22. Структура 24 данных позволяет содержать, по меньшей мере, декодированные данные и индикатор достоверности для каждой комбинации битов, которые могут быть сформированы из выбранных битов. Структура 24 данных может также содержать вспомогательную информацию по типу префикса, длине кода и количество битов для возврата в поток битов для упрощения будущего декодирования.
На фиг.3 показана блок-схема алгоритма, иллюстрирующая процесс декодирования с переменной длиной, в соответствии с вариантом выполнения настоящего изобретения. В блоке 100 количество битов, не меньшее чем любая возможная длина кода с переменной длиной, считывают из потока битов. Количество считанных битов должно быть достаточным для содержания самого длинного кода с переменной длиной, но не ограничивается сохранением дополнительных битов, поскольку это может упростить процесс декодирования (например, считанные биты соответствуют размеру слова машины). Затем в блоке 102 из ранее считанных битов можно выбрать заданное количество битов. Количество выбираемых битов зависит от конкретной используемой схемы кодирования и поэтому определяется внешним средством. Определение следует выполнять с помощью такого способа, который позволяет охватывать выбранными битами наиболее часто используемые (наиболее вероятные) КПД и одновременно минимизировать размер таблицы преобразования кода. В блоке 104 таблицу преобразования кода индексируют значением, сформированным из выбранных битов, и получают, по меньшей мере, декодированные значения и индикатор достоверности, а также вспомогательную информацию. В одном варианте выполнения, получение вспомогательной информации является не обязательным. Индикатор достоверности затем проверяют в блоке 106 и, если получают достоверный результат, декодированное значение, полученное в блоке 104, возвращают как результат процесса декодирования в блок 108. В случае необходимости, действительную длину кода или разность между действительной длиной и количеством выбранных битов (полученным в блоке 104 как вспомогательная информация) можно проверять для регулирования потока битов после декодирования.
Если декодированные данные окажутся недостоверными, способ декодирования, ориентированный на префикс (то есть способ, который выполняет оценку длины префикса кода и количества значимых битов, соответствующих полученной оценке длины), применяют в блоке 110 к битам, первоначально считанным из потока битов. Вспомогательная информация, полученная в блоке 104, может описывать тип и длину префикса кода и, таким образом, повышать эффективность способа, применяемого далее.
Пример варианта выполнения настоящего изобретения, представленный на языках программирования С и Ассемблер, приведен в Приложении А. Этот пример является неограничивающим, и специалист в данной области техники может выполнить настоящее изобретение с использованием других языков программирования без отхода от объема заявленного изобретения.
Описанная здесь методика не ограничивается какими-либо конкретными аппаратными средствами или программными конфигурациями; ее можно использовать в любой вычислительной или обрабатывающей данные среде. Эта технология может быть выполнена в виде логических средств, воплощенных в аппаратных средствах, программных средствах или встроенных средства или с использованием их комбинаций. Методика может быть выполнена в виде программ, выполняемых на программируемых устройствах, таких как мобильные или стационарные компьютеры, карманные персональные компьютеры, телевизионные приставки, сотовые телефоны и пейджеры, и других электронных устройствах, каждое из которых включает процессор, носитель информации, считываемый процессором (включая энергозависимую и энергонезависимую память и/или элементы накопителя информации), по меньшей мере, одно входное устройство и одно или больше выходных устройств. Программный код применяют к вводимым данным с использованием входного устройства для выполнения описанных функций и для генерирования выходной информации. Выходная информация может поступать в одно или больше выходные устройства. Для специалистов в данной области техники будет понятно, что изобретение может быть выполнено на практике с использованием различных конфигураций компьютерной системы, включая микропроцессорную систему, миникомпьютеры, универсальные вычислительные машины и т.п. Изобретение также может быть выполнено в распределенных вычислительных средах, задачи которых могут выполняться с использованием дистанционных устройств обработки, которые соединены через систему передачи данных.
Каждая программа может быть выполнена в виде процедур высокого уровня или языка объектно-ориентированного программирования для обеспечения передачи данных в систему обработки данных. Однако программа может быть выполнена на языке Ассемблер или на языке программирования, если это требуется. В любом случае, язык может быть компилирован или интерпретирован.
Программные инструкции можно использовать для обеспечения выполнения системой обработки общего назначения или специального назначения, которая запрограммирована с использованием инструкций для выполнения операций, описанных в них. В качестве альтернативы, операции могут быть выполнены с использованием конкретных аппаратных компонентов, которые содержат аппаратные логические средства для выполнения операций, или с использованием комбинаций запрограммированных компьютерных компонентов и специализированных аппаратных компонентов. Способы, описанные здесь, могут быть выполнены как компьютерный программный продукт, который может включать считываемый машиной носитель информации, на котором записаны инструкции, которые можно использовать для программирования системы обработки или другого электронного устройства для выполнения этих способов. Термин "считываемый машиной носитель информации", используемый здесь, должен включать любой носитель информации, который позволяет сохранять или кодировать последовательность инструкций для выполнения в устройстве и который обеспечивает выполнение машиной любого из способов, описанных здесь. Термин "считываемый машиной носитель информации", соответственно, должен включать, без ограничений, твердотельное запоминающее устройство, оптические и магнитные диски, а также несущую волну, в которой закодирован сигнал данных. Кроме того, в данной области техники можно говорить о программных средствах в одной или другой форме (например, о программной процедуре, процессе, прикладной программе, модуле, логической программе и так далее), как выполняющих действия или позволяющих получать результат. Такие выражения представляют собой просто сокращенный способ описания выполнения программного средства в системе обработки данных для выполнения процессором действия или получения результата.
Хотя данное изобретение было описано со ссылкой на иллюстративные варианты выполнения, его описание не предназначено для использования в ограничивающем смысле. Различные модификации представленных в качестве иллюстраций вариантов выполнения, а также другие варианты выполнения изобретения, которые будут очевидны для специалистов в данной области техники, к которой относится изобретение, рассматриваются как находящиеся в пределах сущности и объема изобретения.

Claims (24)

1. Способ декодирования префиксных кодов переменной длины в потоке битов, содержащий:
считывание из потока битов количества битов, не меньшее, чем максимальная длина кода переменной длины (КПД),
выбор заданного количества битов из считанных битов КПД, предназначенных в качестве индекса структуры данных, которая содержит, по меньшей мере, декодированную величину кода и индикатор достоверности для каждой комбинации КПД, и
формирование в соответствии с действительной величиной заданного количества битов, выбранных из первоначально считанных битов из потока битов, структуры данных, содержащей, по крайней мере, декодированную величину кода и индикатор достоверности для каждой кодовой комбинации КПД.
2. Способ по п.1, дополнительно содержащий применение декодирования, ориентированный на префикс, к количеству битов, первоначально считанному из потока битов, когда декодированная величина определена как недостоверная.
3. Способ по п.1, в котором считывание из потока количество битов содержит обеспечение возможности доступа к указанному количеству битов для будущих операций.
4. Способ по п.1, в котором выбор заданного количества битов содержит обеспечение возможности доступа к указанному количеству битов для будущих операций, выполняемое быстрее, чем считывание из потока битов того же количества битов.
5. Способ по п.1, в котором заданное количество битов содержит максимальное количество битов, предназначенных для использования в качестве индекса в структуре данных.
6. Способ по п.1, в котором индикатор достоверности предназначен для определения достоверности декодированной величины кода для каждой комбинации КПД.
7. Способ по п.1, в котором структуру данных, содержащую, по меньшей мере, декодированную величину кода и индикатора достоверности для каждой комбинации КПД и сформированную в зависимости от выбранного значения количества бит, хранят в таблице преобразования кода.
8. Способ по п.2, в котором способ декодирования, ориентированный на префикс, дополнительно включает декодирование кода переменной длины, при котором используют свойства префикса кода переменной длины.
9. Машиночитаемый носитель информации для декодирования префиксных кодов переменной длины в потоке битов, содержащий множество машиносчитываемых инструкций, выполняемых с помощью процессора, причем машиночитаемые инструкции обеспечивают декодирование префиксных кодов переменной длины в потоке битов путем
считывания из потока битов количества битов, не меньшее, чем максимальная длина кода переменной длины (КПД),
выбора заданного количества битов из считанных битов КПД, предназначенных в качестве индекса структуры данных, которая содержит, по меньшей мере, декодированную величину кода и индикатор достоверности для каждой комбинации КПД, и
формирования в соответствии с действительной величиной заданного количества битов, выбранных из первоначально считанных битов из потока битов, структуры данных, содержащей, по крайней мере, декодированную величину кода и индикатора достоверности для каждой комбинации КПД.
10. Машиночитаемый носитель информации по п.9, дополнительно содержащий инструкции для применения способа декодирования, ориентированного на префикс, к количеству битов, первоначально считанному из потока битов, когда декодированная величина кода определена как недостоверная.
11. Машиночитаемый носитель информации по п.9, в котором инструкции для считывания из потока битов количества битов содержат инструкции, обеспечивающие возможность доступа к указанному количеству битов для будущих операций.
12. Машиночитаемый носитель информации по п.9, в котором инструкции для выбора заданного количества битов содержат инструкции, обеспечивающие возможность доступа к указанному заданному количеству битов для будущих операций быстрее, чем считывание из потока битов того же количества битов.
13. Машиночитаемый носитель информации по п.9, в котором заданное количество битов содержит максимальное количество битов, используемых как индекс для структуры данных.
14. Машиночитаемый носитель информации по п.9, в котором индикатор достоверности предназначен для определения достоверности декодированной величины кода для каждой комбинации КПД.
15. Машиночитаемый носитель информации по п.9, в котором структуру данных, содержащую, по меньшей мере, декодированную величину кода и индикатора достоверности для каждой комбинации КПД, и сформированную в зависимости от выбранного заданного количества бит, хранят в таблице преобразования кода.
16. Машиночитаемый носитель информации по п.10, в котором способ декодирования, ориентированный на префикс, дополнительно включает декодирование кода переменной длины, при котором используют свойства префикса кода переменной длины.
17. Система декодирования префиксных кодов переменной длины в потоке битов, содержащая
устройство для считывания из потока битов количество битов, не меньшее, чем максимальная длина кода переменной длины (КПД)
устройство для выбора заданного количества битов из считанных битов КПД, предназначенных в качестве индекса структуры данных, которая содержит, по меньшей мере, декодированную величину кода и индикатор достоверности для каждой комбинации КПД, и
устройство для формирования в соответствии с действительной величиной заданного количества битов, выбранных из первоначально считанных битов из потока битов, структуры данных, содержащей, по крайней мере, декодированную величину кода и индикатор достоверности для каждой комбинации КПД.
18. Система по п.17, дополнительно содержащая устройство, предназначенное для использования способа декодирования, ориентированного на префикс, к количеству битов, первоначально считанному из потока битов, когда декодированная величина определена как недостоверная.
19. Система по п.17, в которой устройство для считываемого количества битов содержит устройство, позволяющее обеспечить возможность доступа к указанному количеству битов для будущих операций.
20. Система по п.17, в которой устройство для выбора заданного количества битов содержит устройство, позволяющее обеспечить доступ к указанному количеству битов для будущих операций быстрее, чем устройство, предназначенное для считывания из потока битов того же количества битов.
21. Система по п.17, в которой заданное количество битов содержит максимальное количество битов, используемых в качестве индекса для структуры данных.
22. Система по п.17, в которой индикатор достоверности предназначен для определения достоверности декодированной величины кода для каждой комбинации КПД.
23. Система по п.17, в которой структура данных, содержащая, по меньшей мере, декодированную величину кода и индикатор достоверности для каждой комбинации КПД и сформированная в зависимости от выбранного заданного количества бит, хранится в таблице преобразования кода.
24. Система по п.18, в которой способ декодирования, ориентированный на префикс, дополнительно включает декодирование кода переменной длины, при котором используют свойства префикса кода переменной длины.
RU2005138866/09A 2003-07-15 2003-07-15 Способ декодирования префиксных кодов переменной длины RU2321169C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005138866/09A RU2321169C2 (ru) 2003-07-15 2003-07-15 Способ декодирования префиксных кодов переменной длины

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005138866/09A RU2321169C2 (ru) 2003-07-15 2003-07-15 Способ декодирования префиксных кодов переменной длины

Publications (2)

Publication Number Publication Date
RU2005138866A RU2005138866A (ru) 2006-06-27
RU2321169C2 true RU2321169C2 (ru) 2008-03-27

Family

ID=36714557

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005138866/09A RU2321169C2 (ru) 2003-07-15 2003-07-15 Способ декодирования префиксных кодов переменной длины

Country Status (1)

Country Link
RU (1) RU2321169C2 (ru)

Also Published As

Publication number Publication date
RU2005138866A (ru) 2006-06-27

Similar Documents

Publication Publication Date Title
KR100624432B1 (ko) 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US8666179B2 (en) Image encoding apparatus and decoding apparatus
JP4878262B2 (ja) エントロピー符号化装置
RU2586639C2 (ru) Способ и устройство кодирования или декодирования
CN105247863B (zh) 三维或多视图视频编码或解码的方法
US6891976B2 (en) Method to decode variable length codes with regular bit pattern prefixes
JP3778087B2 (ja) データ符号化装置及びデータ復号装置
CN102017634A (zh) 重新排序的变换系数的多级表示
WO1999023602A1 (en) System and method for efficiently encoding video frame sequences
JP2003273748A (ja) 改善されたハフマンデコーディング方法及び装置
US7408989B2 (en) Method of video encoding using windows and system thereof
US7205915B2 (en) Method of decoding variable length prefix codes
US20020118754A1 (en) Device and method for selecting coding mode for video encoding system
JPH07193810A (ja) 符号化データ復号方法および装置
CN113490953A (zh) 预测值的确定方法、解码器以及计算机存储介质
US7239716B2 (en) Data insertion device and method of inserting data
RU2321169C2 (ru) Способ декодирования префиксных кодов переменной длины
US8456334B2 (en) Variable-length code decoding apparatus, decoding system, and variable-length code decoding method
CN112449201B (zh) 解码方法、编码方法、相应的装置、电子设备及存储介质
US6778706B1 (en) Image compression method for video decoding based on motion compensation
Rahmani et al. A low distortion reversible data hiding scheme for search order coding of VQ indices
KR100576548B1 (ko) 문맥기반 적응 가변길이 복호화 장치 및 그 방법
CN107277518B (zh) Cabac解码方法
KR20060032944A (ko) LASeR 이진 표현의 포인트 시퀀스 부호화 방법 및 장치
US8284840B2 (en) Video decoding device and method

Legal Events

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

Effective date: 20100716