Способ, устройство и система для кодирования и декодирования единицы кодирования

Иллюстрации

Показать все

Группа изобретений относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение производительности обработки данных при кодировании или декодировании видеоданных за счет параллельного считывания смежных бинов из битового потока. Предложен способ декодирования по меньшей мере одной единицы кодирования. Способ включает в себя этап, на котором определяют структуру единицы кодирования упомянутой по меньшей мере одной единицы кодирования из битового потока, причем структура единицы кодирования описывает разделение единицы кодирования на упомянутую по меньшей мере одну единицу кодирования и разделение упомянутой по меньшей мере одной единицы кодирования на множество единиц предсказания. Способ также включает в себя этап, на котором декодируют, согласно определенной структуре единицы кодирования, арифметически закодированный флаг наиболее вероятного режима для каждой из упомянутого множества единиц предсказания в упомянутой по меньшей мере одной единице кодирования из первого блока смежно кодированных данных в битовом потоке. 6 н. и 4 з.п. ф-лы, 20 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0001] Настоящее изобретение относится в общем плане к цифровой обработке видеосигналов и, в частности, к способу, устройству и системе для кодирования и декодирования остаточных коэффициентов единицы преобразования (TU), причем данная единица преобразования (TU) может иметь квадратную форму или неквадратную форму.

УРОВЕНЬ ТЕХНИКИ

[0002] В настоящее время существует множество приложений для кодирования видеоданных, включая приложения для передачи и хранения видеоданных. Также было разработано множество стандартов кодирования видеоданных, и в настоящий момент в стадии разработки находятся другие. Последние разработки в области стандартизации кодирования видеоданных привели к формированию группы под названием «Объединенная команда по видеокодированию (JCT-VC)». Данная объединенная команда по видеокодированию (JCT-VC) включает в себя членов исследовательской группы 16, вопроса 6 (SG16/Q6) сектора стандартизации телекоммуникаций (ITU-T) международного союза телекоммуникаций (ITU), известных как «Экспертная группа в области кодирования видеоданных (VCEG)», а также членов международных организаций по стандартизации/объединенного технического комитета 1 международной электротехнической комиссии/подкомитета 29/рабочей группы 11 (ISO/IEC JTC1/SC29/WG11), также известных как «Экспертная группа по вопросам движущегося изображения (MPEG)».

[0003] Объединенная команда по видеокодированию (JCT-VC) имеет целью выпуск нового стандарта кодирования видеоданных с целью значительно превзойти по эффективности существующий в настоящий момент стандарт кодирования видеоданных, известный как «H.264/MPEG-4 AVC». Данный стандарт H.264/MPEG-4 AVC сам по себе представляет существенное усовершенствование предшествующих стандартов кодирования видеоданных, таких как MPEG-4 и ITU-T H.263. Новый стандарт кодирования видеоданных, находящийся в стадии разработки, был назван «Высокоэффективное видеокодирование (HEVC)». Объединенная команда по видеокодированию JCT-VC также в настоящий период рассматривает проблемы осуществления, проистекающие из технологии, предложенной для высокоэффективного видеокодирования (HEVC), которые создают сложности при масштабировании осуществлений стандарта с целью функционирования с высокими разрешающими способностями или высокими скоростями передачи кадров.

[0004] Одной областью стандарта кодирования видеоданных H.264/MPEG-4 AVC, представляющей сложности для достижения высокой степени сжатия, является кодирование остаточных коэффициентов, используемых для представления видеоданных. Видеоданные формируются посредством последовательности кадров, причем каждый кадр имеет двумерный массив выборок. Обычно кадры включают в себя один канал яркости и два канала цветности. Каждый кадр раскладываeтся на один или более слайсов. Каждый слайс содержит одну или более наибольших единиц кодирования (LCU). Эти наибольшие единицы кодирования (LCU) имеют фиксированный размер, с краевыми размерностями, являющимися степенью двойки и имеющими равную ширину и высоту, например 64 выборки яркости. Одной особенностью находящегося в стадии разработки стандарта эффективного видеокодирования (HEVC) является особенность «слайсов мелкой гранулярности». Когда разрешена особенность слайсов мелкой гранулярности, границы слайсов не ограничиваются границами наибольшей единицы кодирования (LCU). Слайсы мелкой гранулярности могут быть разрешены на уровне битового потока.

[0005] Дерево кодирования разрешает подразделение каждой наибольшей единицы кодирования (LCU) на четыре области равных размеров, каждую имеющую половину ширины и высоты родительской наибольшей единицы кодирования (LCU). Каждая из областей может быть дополнительно подразделена на четыре области равных размеров. Там, где область не подразделяется дополнительно, существует единица кодирования, занимающая весь объем области. Такой процесс подразделения может применяться рекурсивно до тех пор, пока размер области не достигнет размера наименьшей единицы кодирования (SCU), и не будет выведен размер единицы кодирования (CU) наименьшей единицы кодирования (SCU). Рекурсивное подразделение наибольшей единицы кодирования на иерархию единиц кодирования имеет структуру дерева квадрантов и именуется деревом кодирования. Единицы кодирования (CU) или области имеют характеристику, известную как их «глубина», которая относится к их положению в дереве кодирования с точки зрения уровня в иерархии подразделений. Этот процесс подразделения кодируется в битовом потоке в качестве последовательности арифметически кодированных флагов. Когда разрешены слайсы медкой гранулярности, точно определяется пороговое значение, которое определяет наименьший размер единицы кодирования, при котором может существовать граница слайса.

[0006] В дереве кодирования существует набор единиц кодирования, которые не подвергаются дополнительному подразделению, являясь теми единицами кодирования, которые занимают концевые узлы дерева кодирования. На этих единицах кодирования существуют деревья преобразований. Дерево преобразований может дополнительно раскладывать единицу кодирования с использованием структуры дерева квадрантов, как это используется для дерева кодирования. На концевых узлах дерева преобразований осуществляется кодирование остаточных данных с использованием единиц преобразования (TU). В отличие от дерева кодирования, дерево преобразований может подразделять единицы кодирования на единицы преобразования, имеющие неквадратную форму. Дополнительно, структура дерева преобразований не требует, чтобы единицы преобразования (TU) занимали всю область, обеспечиваемую родительской единицей кодирования.

[0007] Каждая единица кодирования на концевых узлах деревьев кодирования подразделяется на один или более массивов выборок предсказанных данных, каждая известна как единица предсказания (PU). Каждая единица предсказания (PU) содержит предсказание части данных входного кадра, полученное посредством применения процесса интра-предсказания (внутреннего предсказания) или процесса интер-предсказания (внешнего предсказания). Для кодирования единиц предсказания (PU) внутри единицы кодирования (CU) может быть использовано несколько способов. Одна единица предсказания (PU) может занимать весь объем области единицы кодирования (CU), либо единица кодирования (CU) может быть разделена на две прямоугольных единицы предсказания (PU) равных размеров, либо горизонтальных, либо вертикальных. В дополнение к этому, единицы кодирования (CU) могут быть разделены на четыре квадратных единицы предсказания (PU) равных размеров.

[0008] Видеокодер осуществляет сжатие видеоданных в битовый поток посредством преобразования видеоданных в последовательность элементов синтаксиса. В рамках находящегося в стадии разработки стандарта эффективного видеокодирования (HEVC), с использованием схемы арифметического кодирования, идентичной схеме, определенной в стандарте сжатия видеоданных MPEG4-AVC H.264, определяется схема контекстно-зависимого адаптивного двоичного арифметического кодирования (CABAC). В находящемся в стадии разработки стандарте эффективного видеокодирования (HEVC), когда используется контекстно-зависимое адаптивное двоичное арифметическое кодирование (CABAC), каждый элемент синтаксиса выражается в качестве последовательности бинов (ячеек), где бины выбираются из набора доступных бинов. Данный набор доступных бинов получают из контекстной модели, с одним контекстом на бин. Каждый контекст удерживает вероятное значение бина («valMPS») и вероятностное состояние для операции арифметического кодирования или арифметического декодирования. Следует отметить, что бины также могут быть кодированными обходом (в режиме обхода), когда нет ассоциирования с контекстом. Кодированные обходом бины потребляют один бит в битовом потоке и, вследствие этого, приспособлены для бинов с равной вероятностью имеющих значение ноль или имеющих значение единица. Создание такой последовательности бинов из элемента синтаксиса известно как «бинаризация» (преобразование в двоичную форму) элементов синтаксиса.

[0009] В видеокодере или видеодекодере, по мере того, как отдельная информация контекста становится доступной для каждого бина, выбор контекста для бинов обеспечивает средство для улучшения эффективности кодирования. В частности, эффективность кодирования может быть улучшена посредством выбора конкретного бина, так чтобы статистические характеристики от предыдущих экземпляров бина, где была использована ассоциированная информация контекста, коррелировали со статистическими характеристиками текущего экземпляра бина. Такой выбор контекста часто использует пространственно локальную информацию для определения оптимального контекста.

[0010] В находящемся в стадии разработки стандарте эффективного видеокодирования (HEVC), а также в стандарте H.264/MPEG-4 AVC, получают предсказание для текущего блока на основе данных опорных выборок либо из других кадров, либо из соседних областей внутри текущего блока, которые были декодированы ранее. Разность между предсказанием и данными желаемой выборки известна как остаток. Представление частотной области для остатка представляет собой двумерный массив остаточных коэффициентов. Согласно правилу, остаточные коэффициенты, представляющие низкочастотную информацию, содержит верхний левый угол двумерного массива.

[0011] Один аспект производительности находящегося в стадии разработки стандарта эффективного видеокодирования (HEVC) относится к способности кодирования и декодирования видеоданных с высокими скоростями передачи битов. Схема контекстно-зависимого адаптивного двоичного арифметического кодирования (CABAC), используемая в находящемся в стадии разработки стандарте эффективного видеокодирования (HEVC), поддерживает режим работы «равной вероятности», именуемый как «кодирование обходом». В этом режиме бин не является ассоциированным с контекстом из контекстной модели, и поэтоиму не существует этапа обновления контекстной модели. В этом режиме является возможным параллельное считывание множественных смежных бинов из битового потока при условии, что каждый бин является кодированным обходом, что увеличивает производительность. Например, реализации аппаратного обеспечения могут осуществлять параллельную запись/считывание групп смежных, кодированых обходом данных с целью увеличения производительности кодирования/декодирования битового потока.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0012] Целью настоящего изобретения является, по существу, преодоление или, по меньшей мере, усовершенствование одного или более недостатков существующих компоновок.

[0013] В соответствии с одним аспектом настоящего раскрытия изобретения, обеспечивается способ декодирования множества единиц кодирования из битового потока видеоданных, причем способ содержит этапы, на которых:

определяют структуру единицы кодирования упомянутого множества единиц кодирования из первого блока данных битового потока, причем структура единицы кодирования описывает разделение единицы кодирования на множество единиц кодирования;

декодируют, согласно определенной структуре единицы кодирования, закодированные обходом данные для множества единиц кодирования из второго блока данных битового потока;

декодируют, согласно определенной структуре единицы кодирования, остаточные данные для множества единиц кодирования из третьего блока данных битового потока; и

формируют множество единиц кодирования из битового потока с использованием остаточных данных и закодированных обходом данных.

[0014] В предпочтительном варианте осуществления способ дополнительно содержит этап, на котором определяют размер второго блока данных согласно определенной структуре единицы кодирования.

[0015] В предпочтительном варианте осуществления способ дополнительно содержит этап, на котором определяют значение флага разбиения так, чтобы когда текущая единица кодирования больше, чем меньшая единица кодирования, флаг значения разбиения декодировался из битового потока, а где текущая единица кодирования равна по размеру наименьшей единице кодирования, флаг значения разбиения выводился равным нулю. Эта реализация может дополнительно содержать этап, на котором используют определенное значение флага разбиения для определения, находится ли структура единицы кодирования на концевом узле.

[0016] В другой реализации битовый поток кодирует флаг разрешения слайсов мелкой гранулярности в начале каждой наибольшей единицы кодирования, так чтобы когда слайсы мелкой гранулярности не разрешены для наибольшей единицы кодирования, способ применялся к этой наибольшей единице кодирования (LCU), а когда слайсы мелкой гранулярности разрешены для наибольшей единицы кодирования, способ применялся к каждой подразделенной единице кодирования равной по размеру пороговому значению слайса мелкой гранулярности.

[0017] В предпочтительном варианте осуществления оставшийся режим единицы кодирования упомянутого множества единиц кодирования кодируется с использованием кода с переменной длиной слова, упомянутый способ дополнительно содержит этап, на котором вычисляют минимальную длину на основе значения флага наиболее вероятного режима и размера единицы предсказания, ассоциированного с единицей кодирования.

[0018] В желательном варианте осуществления оставшиеся режимы упомянутого множества единиц кодирования кодируются с использованием кода с переменной длиной слова, упомянутый способ дополнительно содержит этап, на котором вычисляют минимальную длину на основе структуры единицы кодирования, значений флага наиболее вероятного режима и размеров единицы предсказания, ассоциированных с множеством единиц кодирования.

[0019] В преимущественном варианте, когда кодированные обходом данные имеют неизвестную длину, способ дополнительно содержит этапы, на которых осуществляют доступ к битовому потоку для определения сегмента данных, содержащего по меньшей мере некоторые кодированные обходом данные, декодируют индексы наиболее вероятного режима и оставшиеся режимы из данного сегмента данных, и устанавливают длину нарастающего итога декодированных данных, так что когда все кодированные обходом данные декодированы из сегмента данных, длина нарастающего итога затем потребляется из битового потока.

[0020] В соответствии с одним другим аспектом настоящего раскрытия изобретения, обеспечивается способ кодирования множества единиц кодирования в битовый поток видеоданных, причем способ содержит этапы, на которых:

кодируют структуру единицы кодирования упомянутого множества единиц кодирования для формирования первого блока данных битового потока, причем структура единицы кодирования описывает разделение единицы кодирования на множество единиц кодирования;

кодируют, согласно структуре единицы кодирования, закодированные обходом данные для множества единиц кодирования для формирования второго блока данных битового потока; и

кодируют, согласно структуре единицы кодирования, остаточные данные для множества единиц кодирования для формирования третьего блока данных битового потока; и

сохраняют первый, второй и третий блоки данных для кодирования множества единиц кодирования в битовый поток видеоданных.

[0021] В желательном варианте осуществления этот способ дополнительно содержит этап, на котором сохраняют флаги разбиения в первом блоке данных для кодирования структуры единицы кодирования.

[0022] В предпочтительном варианте осуществления способ дополнительно содержит этап, на котором арифметически кодируют первый блок.

[0023] В преимущественном варианте осуществления способ дополнительно содержит этап, на котором кодируют обходом второй блок.

[0024] В соответствии с одним другим аспектом раскрывается способ декодирования по меньшей мере одной единицы кодирования из битового потока видеоданных, причем способ содержит этапы, на которых:

определяют структуру единицы кодирования упомянутой по меньшей мере одной единицы кодирования из битового потока, причем структура единицы кодирования описывает разделение единицы кодирования на упомянутую по меньшей мере одну единицу кодирования и разделение упомянутой по меньшей мере одной единицы кодирования на множество единиц предсказания;

декодируют, согласно определенной структуре единицы кодирования, арифметически закодированный флаг наиболее вероятного режима для каждой из упомянутого множества единиц предсказания в упомянутой по меньшей мере одной единице кодирования из первого блока смежно кодированных данных в битовом потоке;

декодируют, согласно определенной структуре единицы кодирования, закодированные обходом данные для каждой из упомянутого множества единиц предсказания в упомянутой по меньшей мере одной единице кодирования из второго блока данных смежно кодированных данных в битовом потоке;

определяют режимы интра-предсказания для каждой из упомянутого множества единиц предсказания согласно каждому из флагов наиболее вероятного режима и закодированных обходом данных; и

декодируют упомянутую по меньшей мере одну единицу кодирования из битового потока с использованием определенных режимов интра-предсказания.

[0025] В предпочтительном варианте осуществления кодированные обходом данные содержат индекс наиболее вероятного режима. Кодированные обходом данные могут в альтернативном варианте осуществления, или в дополнение к этому, содержать значение оставшегося режима.

[0026] Также раскрываются другие аспекты.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0027] Далее будет описан по меньшей мере один вариант осуществления настоящего изобретения со ссылкой на нижеследующие чертежи, в которых:

[0028] фиг. 1 представляет собой схематическую блок-схему, демонстрирующую функциональные модули видеокодера;

[0029] фиг. 2 представляет собой схематическую блок-схему, демонстрирующую функциональные модули видеодекодера;

[0030] фиг. 3A и фиг. 3B формируют схематическую блок-схему компьютерной системы общего назначения, на которой могут применяться кодер и декодер по фиг. 1 и фиг. 2 соответственно;

[0031] фиг. 4 представляет собой схематическую блок-схему, демонстрирующую функциональные модули энтропийного кодера;

[0032] фиг. 5 представляет собой схематическую блок-схему, демонстрирующую функциональные модули энтропийного декодера;

[0033] фиг. 6A-6C представляет собой схематическую блок-схему, демонстрирующую примерную наибольшую единицу кодирования (LCU);

[0034] фиг. 7 представляет собой схематическую блок-схему, демонстрирующую стандартный битовый поток, представляющий примерную наибольшую единицу кодирования (LCU);

[0035] фиг. 8 представляет собой схематическую блок-схему, демонстрирующую битовый поток в соответствии с настоящим раскрытием изобретения, представляющий примерную наибольшую единицу кодирования (LCU);

[0036] фиг. 9 представляет собой схематическую блок-схему последовательности операций, демонстрирующую способ в соответствии с настоящим раскрытием изобретения для декодирования элементов синтаксиса наибольшей единицы кодирования (LCU) битового потока, схожего с потоком по фиг. 8;

[0037] фиг. 10 представляет собой схематическую блок-схему последовательности операций, демонстрирующую обобщенный способ в соответствии с настоящим раскрытием изобретения для декодирования элементов синтаксиса наибольшей единицы кодирования (LCU) битового потока;

[0038] фиг. 11 представляет собой схематическую блок-схему последовательности операций, демонстрирующую способ в соответствии с настоящим раскрытием изобретения для кодирования элементов синтаксиса наибольшей единицы кодирования (LCU);

[0039] фиг. 12 представляет собой схематическую блок-схему последовательности операций, демонстрирующую обобщенный способ в соответствии с настоящим раскрытием изобретения для кодирования элементов синтаксиса наибольшей единицы кодирования (LCU) битового потока;

[0040] фиг. 13 представляет собой схематическую блок-схему, демонстрирующую битовый поток, представляющий примерную наибольшую единицу кодирования (LCU), произведенную альтернативным способом, в соответствии с настоящим раскрытием изобретения, для синтаксического анализа;

[0041] фиг. 14 представляет собой схематическую блок-схему последовательности операций, демонстрирующую альтернативный способ в соответствии с настоящим раскрытием изобретения для декодирования элементов синтаксиса наибольшей единицы кодирования (LCU);

[0042] фиг. 15 представляет собой схематическую блок-схему, демонстрирующую примерную наибольшую единицу кодирования (LCU) с границей слайса внутри данной наибольшей единицы кодирования (LCU);

[0043] фиг. 16 представляет собой схематическую блок-схему, демонстрирующую битовый поток, представляющий примерную наибольшую единицу кодирования (LCU), произведенную посредством способа для синтаксического анализа с разрешенными слайсами мелкой гранулярности (FGS); и

[0044] фиг. 17 представляет собой схематическую блок-схему последовательности операций, демонстрирующую дополнительный альтернативный способ в соответствии с настоящим раскрытием изобретения для декодирования элементов синтаксиса наибольшей единицы кодирования (LCU).

ПОДРОБНОЕ ОПИСАНИЕ, ВКЛЮЧАЮЩЕЕ В СЕБЯ ЛУЧШИЕ ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ

[0045] Там, где в каком-либо одном или более из сопроводительных чертежей делается ссылка на этапы и/или признаки, имеющие одни и те же самые ссылочные позиции, эти этапы и/или признаки имеют, для целей настоящего описания, одну(и) и ту(те) же самую(ые) функцию(ии) или функционирование(ия), если только иное не следует из содержания.

[0046] Фиг. 1 представляет собой схематическую блок-схему, демонстрирующую функциональные модули видеокодера 100. Фиг. 2 представляет собой схематическую блок-схему, демонстрирующую функциональные модули соответствующего видеодекодера 200. Видеокодер 100 и видеодекодер 200 могут осуществляться с использованием компьютерной системы 300 общего назначения, как продемонстрировано на фиг. 3A и фиг. 3B, где различные функциональные модули могут быть осуществлены посредством специализированного аппаратного обеспечения внутри компьютерной системы 300, посредством программного обеспечения, выполняемого внутри компьютерной системы 300, или, в альтернативном варианте, посредством комбинации специализированного аппаратного обеспечения и программного обеспечения, выполняемого внутри компьютерной системы 300.

[0047] Как видно на фиг. 3A, компьютерная система 300 включает в себя: модуль 301 компьютера; устройства ввода, такие как клавиатура 302, устройство-манипулятор 303 типа «мышь», сканер 326, камеру 327 и микрофон 380; а устройства вывода включают в себя принтер 315, устройство 314 отображения и громкоговорители 317. Для осуществления передачи и приема информации по сети 320 связи через посредство соединения 321 модулем 301 компьютера может быть использовано внешнее приемопередающее устройство 316 модуляции-демодуляции (модем). Сеть 320 связи может представлять собой вычислительную сеть широкого охвата (WAN), такую как Интернет, сеть сотовой телефонной связи или частную WAN. Там, где соединение 321 представляет собой телефонную линию, модем 316 может представлять собой традиционный модем «с набором номера» (с коммутируемым доступом). В альтернативном варианте, там где соединение 321 представляет собой соединение с высокой пропускной способностью (например, кабельное), модем 316 может представлять собой широкополосный модем. Для беспроводного соединения с сетью 320 связи может также быть использован беспроводной модем.

[0048] Модуль 301 компьютера обычно включает в себя по меньшей мере один модуль 305 процессора и модуль 306 памяти. Например, модуль 306 памяти может иметь полупроводниковое оперативное запоминающее устройство (RAM) и полупроводниковое постоянное запоминающее устройство (ROM). Модуль 301 компьютера также включает в себя некоторое количество интерфейсов ввода/вывода (I/O), включающих в себя: интерфейс 307 для передачи аудио/видео, соединенный с устройством 314 отображения видео, громкоговорителями 317 и микрофоном 380; интерфейс 313 I/O, соединенный с клавиатурой 302, мышью 303, сканером 326, камерой 327 и, необязательно, ручкой управления типа «джойстик» или другим устройством человеко-машинного интерфейса (не проиллюстрированы); и интерфейс 308 для внешнего модема 316 и принтера 315. В некоторых осуществлениях модем 316 может быть инкорпорирован внутри модуля 301 компьютера, например, внутри интерфейса 308. Модуль 301 компьютера также имеет интерфейс 311 локальной сети, позволяющий осуществлять соединение компьютерной системы 300 через посредство соединения 323 с локальной сетью 322 связи, известной как локальная вычислительная сеть (LAN). Как проиллюстрировано на фиг. 3A, локальная сеть 322 связи может также соединяться с вычислительной сетью 320 широкого охвата через посредство соединения 324, которое может обычно включать так называемое устройство сетевой защиты «файервол» (от англ. firewall - огненная стена) или устройство со схожими функциями. Интерфейс 311 локальной сети может содержать схемную плату Ethernet™, беспроводную компоновку Bluetooth™ или беспроводную компоновку IEEE 802.11; однако для интерфейса 311 может применяться множество других типов интерфейсов.

[0049] Интерфейс 308 I/O и интерфейс 313 могут допускать любое из или оба из последовательного и параллельного соединений, причем первое из упомянутых обычно осуществляется в соответствии со стандартами универсальной последовательной шины (USB) и имеет соответствующие разъемы USB (не проиллюстрированы). Обеспечиваются устройства 309 хранения данных, которые обычно включают в себя накопитель 310 на жестком диске (HDD). Также могут быть использованы другие устройства хранения данных, такие как накопитель на гибких дисках и накопитель на магнитной ленте (не проиллюстрированы). Для работы в качестве энергонезависимого источника данных обычно обеспечивается накопитель 312 на оптических дисках. В качестве соответствующих источников данных для системы 300 могут быть использованы портативные устройства памяти, такие как, например, оптические диски (например, компакт-диск CD-ROM, диск DVD, диск Blu-ray™), USB-RAM, переносные внешние жесткие диски и гибкие магнитные диски. Обычно, в качестве источника для видеоданных, которые должны быть закодированы, или, с помощью устройства 314 отображения, в качестве адресата назначения для декодированных видеоданных, которые должны быть сохранены или воспроизведены, может быть использовано что-либо любое из накопителя 310 HDD, накопителя 312 на оптических дисках, сети 320 и сети 322, или камеры 327.

[0050] Компоненты с 305 по 313 модуля 301 компьютера обычно осуществляют связь через посредство взаимосоединенной шины 304 и способом, который в результате приводит к стандартному режиму функционирования компьютерной системы 300, известному специалистам в соответствующей области техники. Например, процессор 305 является соединенным с системной шиной 304 с использованием соединения 318. Аналогичным образом, память 306 и накопитель 312 на оптических дисках являются соединенными с системной шиной 304 посредством соединений 319. Примеры вычислительных устройств, на которых могут применяться описываемые компоновки, включают в себя компьютеры типа IBM-PC и совместимые с ними устройства, устройства Sun Sparcstation, Apple Mac™ или подобные им компьютерные системы.

[0051] В случае целесообразности и наличия желания, кодер 100 и декодер 200, а также описанные ниже способы, могут осуществляться с использованием компьютерной системы 300, в которой кодер 100, декодер 200 и процессы по фиг.10 и по фиг.11, которые будут описаны ниже по тексту, могут осуществляться в качестве одной или более прикладных программ 333 программного обеспечения, выполняемых внутри компьютерной системы 300. В частности, кодер 100, декодер 200 и этапы описываемых способов подвергаются воздействию посредством инструкций 331 (см. фиг. 3B) в программном обеспечении 333, выполняемых внутри компьютерной системы 300. Инструкции 331 программного обеспечения могут формироваться в качестве одного или более модулей кода, каждого для выполнения одной или более конкретных задач. Программное обеспечение также может быть разделенным на две отдельные части, где первая часть и соответствующие модули кода выполняют описанные способы, а вторая часть и соответствующие модули кода осуществляют управление пользовательским интерфейсом между первой частью и пользователем.

[0052] Программное обеспечение может быть сохраненным на считываемом компьютером носителе данных, включая, например, устройства хранения данных, описанные ниже. Программное обеспечение загружается в компьютерную систему 300 из считываемого компьютером носителя данных, а затем выполняется посредством компьютерной системы 300. Считываемый компьютером носитель данных, имеющий такое программное обеспечение или компьютерную программу, записанную на считываемом компьютером носителе данных, представляет собой компьютерный программный продукт. Использование данного компьютерного программного продукта в компьютерной системе 300 в предпочтительном варианте воздействует на перспективное устройство для осуществления кодера 100, декодера 200 и описываемых способов.

[0053] Программное обеспечение 333 обычно является сохраненным в накопителе 310 HDD или в памяти 306. Программное обеспечение загружается в компьютерную систему 300 из считываемого компьютером носителя информации и выполняется посредством компьютерной системы 300. Таким образом, например, программное обеспечение 333 может быть сохраненным на оптически читаемом носителе 325 информации (например, на компакт-диске CD-ROM), считываемом посредством накопителя 312 на оптических дисках.

[0054] В некоторых ситуациях прикладные программы 333 могут поставляться пользователю, будучи закодированными на одном или более компакт-дисков 325 CD-ROM, и считываться через посредство соответствующего накопителя 312, или, в альтернативном варианте, могут считываться пользователем из сети 320 или сети 322. Более того, программное обеспечение может также загружаться в компьютерную систему 300 с других считываемых компьютером носителей. Считываемыми компьютером носителями информации именуется какой-либо любой не носящий временного характера вещественный носитель информации, обеспечивающий записанные инструкции и/или данные на компьютерную систему 300 для выполнения и/или обработки. Примеры такого носителя информации включают в себя гибкие магнитные диски, магнитную пленку, компакт-диск CD-ROM, диск DVD, диск Blu-ray, накопитель на жестком диске, запоминающее устройство ROM или интегральную схему, память USB, магнитооптический диск, или считываемую компьютером карту, такую как карта PCMCIA, и тому подобное, независимо от того, расположены ли такие устройства внутри или вне модуля 301 компьютера. Примеры временных или невещественных считываемых компьютером сред передачи данных, которые также могут участвовать в предоставлении программного обеспечения, прикладных программ, инструкций и/или видеоданных или кодированных видеоданных на модуль 301 компьютера, включают в себя радиоканалы или каналы передачи данных в инфракрасном диапазоне, а также сетевое соединение с каким-либо другим вычислительным устройством или сетевым устройством, а также Интернет или внутрикорпоративные сети, включая передачи по электронной почте и информацию, записанную на веб-сайтах, и тому подобное.

[0055] Вторая часть прикладных программ 333 и соответствующих модулей кода, упомянутых выше, может выполняться с целью осуществления одного или более графических пользовательских интерфейсов (GUI) для его воспроизведения или презентации иным образом на устройстве 314 отображения. Через манипуляции, обычно, на клавиатуре 302 и с манипулятором 303 типа «мышь», пользователь компьютерной системы 300 и приложение могут осуществлять манипулирование интерфейсом функционально адаптируемым способом с целью обеспечения управляющих инструкций и/или ввода в приложения, ассоциированные с интерфейсом(ами) GUI. Также могут осуществляться другие формы функционально адаптируемых пользовательских интерфейсов, такие как аудиоинтерфейс, использующий речевой вывод подсказок через громкоговорители 317 и ввод голосовых команд пользователя через микрофон 380.

[0056] Фиг. 3B представляет собой детализированную схематическую блок-схему процессора 305 и «памяти» 334. Память 334 представляет логическое укрупнение всех модулей памяти (включая накопитель 309 HDD и полупроводниковое запоминающее устройство 306), к которым может осуществляться доступ со стороны модуля 301 компьютера по фиг. 3A.

[0057] Когда первоначально включается питание модуля 301 компьютера, выполняется программа 350 самотестирования при включении питания (POST). Данная программа 350 POST обычно сохраняется в запоминающем устройстве 349 ROM полупроводникового запоминающего устройства 306 по фиг. 3A. Устройство аппаратного обеспечения, такое как запоминающее устройство 349 ROM, сохраняющее программное обеспечение, иногда именуется как программно-аппаратное обеспечение. Программа 350 POST проверяет аппаратное оборудование внутри модуля 301 компьютера с целью обеспечения надлежащего функционирования и обычно осуществляет проверку процессора 305, памяти 334 (309, 306), а также модуля 351 программного обеспечения базовых систем ввода-вывода (BIOS), также обычно сохраняемого в запоминающем устройстве 349 ROM, для правильного функционирования. После того, как программа 350 POST была успешно выполнена, модуль 351 BIOS активирует накопитель 310 на жестком диске по фиг. 3A. Активация накопителя 310 на жестком диске побуждает к выполнению через посредство процессора 305 программы 352 начальной загрузки, постоянно хранящейся на накопителе 310 на жестком диске. Это загружает операционную систему 353 в память 306 RAM, с которой операционная система 353 начинает работать. Операционная система 353 представляет собой приложение системного уровня, выполняемое процессором 305, с целью осуществления различных функций высокого уровня, включая управление процессором, управление памятью, управление устройствами, управление сохранением, интерфейс программных приложений, а также типичный пользовательский интерфейс.

[0058] Операционная система 353 управляет памятью 334 (309, 306) с целью обеспечения того, чтобы каждый процесс или приложение, запускаемые на модуле 301 компьютера, имели достаточный объем памяти для выполнения, не вступая в конфликт с памятью, выделенной для какого-либо другого процесса. Кроме того, для того чтобы каждый процесс мог протекать эффективно, должным образом должны быть использованы различные типы памяти, доступные в системе 300 по фиг. 3A. В соответствии с этим, укрупненная память 334 не предназначена иллюстрировать, как выделяются (если только не запускаются иным образом) конкретные сегменты памяти, но скорее предназначена обеспечивать общий обзор памяти, доступной для компьютерной системы 300, и как это используется.

[0059] Как продемонстрировано на фиг. 3B, процессор 305 включает в себя некоторое количество функциональных модулей, включающих в себя модуль 339 управления, арифметико-логический модуль 340 (ALU), а также локальную или внутреннюю память 348, иногда называемую кэш-памятью. Кэш-память 348 обычно включает в себя некоторое количество запоминающих регистров 344–346 в разделе регистров. Одна или более внутренних шин 341 функционально взаимосоединяют эти функциональные модули. Процессор 305 обычно также имеет один или более интерфейсов 342 для осуществления связи с внешними устройствами через посредство системной шины 304, с использованием соединения 318. Память 334 является соединенной с шиной 304 с использованием соединения 319.

[0060] Прикладная программа 333 включает в себя последовательность инструкций 331, которая может включать в себя инструкции условного перехода и циклические инструкции. Программа 333 может также включать в себя данные 332, используемые при выполнении программы 333. Инструкции 331 и данные 332 сохраняются в ячейках 328, 329, 330 и 335, 336, 337 памяти, соответственно. В зависимости от относительного размера инструкций 331 и ячеек 328-330 памяти, конкретная инструкция может быть сохраненной в одной ячейке памяти, как это проиллюстрировано посредством инст