СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ С ПЕРЕМЕННОЙ ДЛИНОЙ КОДОВОГО СЛОВА

1. Способ кодирования символа кодом с переменной длиной кодового слова, включающий:
выбор таблицы кодовых слов переменной длины из набора таблиц кодовых слов переменной длины на основе значения переменной;
выбор кодового слова из выбранной таблицы кодовых слов переменной длины на основе упомянутого символа;
обновление значения упомянутой переменной путем сравнения упомянутого символа и упомянутой переменной, при этом
если сравнение показывает, что значение переменной меньше, чем символ, значение упомянутой переменной увеличивают; иначе
если сравнение показывает, что значение переменной больше, чем символ, значение упомянутой переменной уменьшают; иначе значение переменной не изменяют.
2. Способ по п.1, включающий:
повторение описанных выше шагов для кодирования еще одного символа.
3. Способ по п.1, включающий:
задание смещения для изменения упомянутой переменной, при этом, если упомянутое сравнение показывает, что переменную необходимо изменить, величина изменения переменной задается упомянутым смещением.
4. Способ по п.3, включающий:
определение разности между символом и упомянутой переменной, при этом упомянутое смещение зависит от этой разности.
5. Способ по п.1, включающий:
оценивание статистического параметра на основе информации, подлежащей кодированию;
задание кодовых слов в упомянутых таблицах кодовых слов переменной длины на основе оцененного статистического параметра.
6. Способ по п.5, в котором упомянутое оценивание включает определение вероятностного распределения символов, представляющих информацию.
7. Способ по п.1, включающий:
выбор упомянутого символа из набора символов.
8. Способ по п.1, включающий:
задание набора символов, выбранных из набора символов, в которых символы взаимно упорядочены, и один из символов представляет наибольшее значение символа, а еще один символ представляет наименьшее значение символа в упомянутом наборе символов.
9. Способ по п.8, включающий по меньшей мере одно из следующего:
выбор верхнего предела для переменной к, который меньше, чем наибольшее значение символа в упомянутом наборе символов;
выбор нижнего предела, который больше, чем наименьшее значение символа в упомянутом наборе символов;
выбор как верхнего предела для переменной k, который меньше, чем наибольшее значение символа в упомянутом наборе символов, так и нижнего предела, который больше, чем наименьшее значение символа в упомянутом наборе символов.
10. Способ декодирования кодового слова кода с переменной длиной кодового слова, включающий:
выбор таблицы кодовых слов переменной длины из набора таблиц кодовых слов переменной длины на основе значения переменной;
использование упомянутого кодового слова для нахождения символа, соответствующего упомянутому кодовому слову из выбранной таблицы кодовых слов переменной длины, и
обновление значения упомянутой переменой путем сравнения упомянутого символа и упомянутой переменной, при этом,
если сравнение показывает, что значение переменной меньше, чем символ, значение упомянутой переменной увеличивают; иначе,
если сравнение показывает, что значение переменной больше, чем символ, значение упомянутой переменной уменьшают; иначе
значение переменной не изменяют.
11. Способ по п.10, включающий:
повторение описанных выше шагов для декодирования еще одного кодового слова.
12. Способ по п.10, включающий:
задание смещения для изменения упомянутой переменной, при этом, если упомянутое сравнение показывает, что переменную необходимо изменить, величина изменения переменной задается упомянутым смещением.
13. Способ по п.12, включающий:
определение разности между символом и упомянутой переменной, при этом упомянутое смещение зависит от этой разности.
14. Способ по п.10, включающий:
ввод бита из битового потока;
проверку по выбранной таблице кодовых слов переменной длины, соответствует ли упомянутый бит кодовому слову в упомянутой выбранной таблице кодовых слов переменной длины;
если проверка показывает, что упомянутый бит соответствует кодовому слову в упомянутой выбранной таблице кодовых слов переменной длины, определение того, какой символ в упомянутой выбранной таблице кодовых слов переменной длины соответствует этому кодовому слову, и вывод этого символа; иначе,
если проверка показывает, что упомянутый бит не соответствует ни одному кодовому слову в упомянутой выбранной таблице кодовых слов переменной длины, ввод следующего бита из битового потока и использование комбинации входных битов на упомянутом этапе проверки, и
повторение описанных выше шагов до тех пор, пока не будет найдено корректное кодовое слово из выбранной таблицы кодовых слов переменной длины.
15. Способ по п.10, включающий:
ввод по меньшей мере части битового потока;
проверку по выбранной таблице кодовых слов переменной длины, включает ли упомянутая часть битового потока кодовое слово из упомянутой выбранной таблицы кодовых слов переменной длины;
если проверка показывает, что упомянутая часть битового потока включает кодовое слово из упомянутой выбранной таблицы кодовых слов переменной длины, определение того, какой символ в упомянутой выбранной таблице кодовых слов переменной длины соответствует этому кодовому слову, и вывод этого символа; иначе,
если проверка показывает, что упомянутая часть битового потока не включает ни одного кодового слова из упомянутой выбранной таблицы кодовых слов переменной длины, ввод следующей части битового потока, и
повторение описанных выше шагов до тех пор, пока не будет найдено корректное кодовое слово из выбранной таблицы кодовых слов переменной длины.
16. Устройство, включающее:
средство выбора таблицы кодовых слов, сконфигурированное для выбора таблицы кодовых слов переменной длины из набора таблиц кодовых слов переменной длины на основе значения переменной;
средство выбора кодового слова, сконфигурированное для выбора кодового слова из выбранной таблицы кодовых слов переменной длины на основе символа;
элемент обновления, сконфигурированный для обновления значения упомянутой переменной путем сравнения упомянутого символа и упомянутой переменной, при этом
элемент обновления сконфигурирован для увеличения значения упомянутой переменной, если сравнение показывает, что значение переменной меньше, чем символ, и
элемент обновления сконфигурирован для уменьшения значения упомянутой переменной, если сравнение показывает, что значение переменной больше, чем символ.
17. Устройство по п.16, содержащее смещение для изменения упомянутой переменной, при этом упомянутый элемент обновления сконфигурирован для использования упомянутого смещения при изменении переменной.
18. Устройство по п.17, в котором элемент обновления сконфигурирован для определения разности между символом и упомянутой переменной, а также сконфигурирован для определения величины упомянутого изменения на основе этой разности.
19. Устройство по п.16, включающее средство выбора для выбора символа из набора символов для представления информации от источника.
20. Устройство по п.19, в котором символы в упомянутом наборе символов взаимно упорядочены, при этом один из символов представляет наибольшее значение символа, а еще один символ представляет наименьшее значение символа.
21. Устройство по п.20, включающее по меньшей мере одно из следующего:
верхний предел для переменной k, который меньше, чем наибольшее значение символа в упомянутом наборе символов,
нижний предел для переменной k, который больше, чем наименьшее значение символа в упомянутом наборе символов,
как верхний предел для переменной k, который меньше, чем наибольшее значение символа в упомянутом наборе символов, так и нижний предел, который больше, чем наименьшее значение символа в наборе символов.
22. Устройство, включающее:
средство выбора таблицы кодовых слов, сконфигурированное для выбора таблицы кодовых слов переменной длины из набора таблиц кодовых слов переменной длины на основе значения переменной;
средство определения символа, сконфигурированное для нахождения символа, соответствующего упомянутому кодовому слову из выбранной таблицы кодовых слов переменной длины;
элемент обновления, сконфигурированный для обновления значения упомянутой переменной путем сравнения упомянутого символа и упомянутой переменной, при этом
элемент обновления сконфигурирован для увеличения значения упомянутой переменной, если сравнение показывает, что значение переменной меньше, чем символ,
элемент обновления сконфигурирован для уменьшения значения упомянутой переменной, если сравнение показывает, что значение переменной больше, чем символ.
23. Устройство по п.22, содержащее смещение для изменения упомянутой переменной, при этом упомянутый элемент обновления сконфигурирован для использования упомянутого смещения при изменении переменной.
24. Устройство по п.23, в котором элемент обновления сконфигурирован для определения разности между символом и упомянутой переменной, а также сконфигурирован для определения величины упомянутого изменения на основе этой разности.
25. Устройство по п.22, включающее:
вход, сконфигурированный для ввода бита из битового потока;
при этом упомянутое средство определения символа сконфигурировано
для проверки по выбранной таблице кодовых слов переменной длины, соответствует ли упомянутый бит кодовому слову в упомянутой выбранной таблице кодовых слов переменной длины;
для определения того, какой символ в упомянутой выбранной таблице кодовых слов переменной длины соответствует этому кодовому слову, если проверка показывает, что упомянутый бит соответствует кодовому слову в упомянутой выбранной таблице кодовых слов переменной длины, и для вывода этого символа;
для проверки следующего бита из битового потока и использования комбинации входных битов на упомянутом этапе проверки, если проверка показывает, что упомянутый бит не соответствует ни одному кодовому слову в упомянутой выбранной таблице кодовых слов переменной длины, и
для повторения описанных выше шагов до тех пор, пока не будет найдено корректное кодовое слово из выбранной таблицы кодовых слов переменной длины.
26. Носитель данных, включающий хранимый на нем исполняемый программный код для использования кодером, при этом упомянутый программный код включает инструкции для
выбора таблицы кодовых слов переменной длины из набора таблиц кодовых слов переменной длины на основе значения переменной;
выбора кодового слова из выбранной таблицы кодовых слов переменной длины на основе упомянутого символа;
обновления значения упомянутой переменной путем сравнения упомянутого символа и упомянутой переменной, при этом,
если сравнение показывает, что значение переменной меньше, чем символ, значение упомянутой переменной увеличивают; иначе,
если сравнение показывает, что значение переменной больше, чем символ, значение упомянутой переменной уменьшают; иначе
значение переменной не изменяют.
27. Носитель данных, включающий хранимый на нем исполняемый программный код для использования декодером, при этом упомянутый программный код включает инструкции для
выбора таблицы кодовых слов переменной длины из набора таблиц кодовых слов переменной длины на основе значения переменной;
использования упомянутого кодового слова для нахождения символа, соответствующего упомянутому кодовому слову из выбранной таблицы кодовых слов переменной длины, и
обновления значения упомянутой переменой путем сравнения упомянутого символа и упомянутой переменной, при этом,
если сравнение показывает, что значение переменной меньше, чем символ, значение упомянутой переменной увеличивают; иначе,
если сравнение показывает, что значение переменной больше, чем символ, значение упомянутой переменной уменьшают; иначе
значение переменной не изменяют.