СПОСОБЫ И СИСТЕМЫ ДЛЯ КОДИРОВАНИЯ ЗНАЧИМЫХ КОЭФФИЦИЕНТОВ ПРИ ВИДЕОСЖАТИИ
METHODS AND SYSTEMS FOR CODING OF SIGNIFICANT COEFFICIENTS IN VIDEO COMPRESSION

Родственные заявки
По данной заявке испрашивается приоритет по дате подачи находящейся одновременно на рассмотрении Предварительной заявки на патент США серийный номер 60/786798, зарегистрированной 27 марта 2006 года, озаглавленной "Significance Coefficient Coding for Fine Granularity Scalability", которая содержится в данном документе по ссылке.
Область техники, к которой относится изобретение
Настоящие системы и способы, в общем, относятся к обработке видео. Более конкретно, настоящие системы и способы относятся к кодированию и декодированию информации, относящейся к методикам видеосжатия.
Уровень техники
Видеосжатие относится к сжатию цифровых видеоданных. Видеосжатие используется для эффективного кодирования видеоданных в форматах видеофайлов и видеоформатов передачи в потоковом и широковещательном режиме. Сжатие - это преобразование данных в формат, который имеет меньше битов, но который может сохраняться или передаваться более эффективно. Обратной операцией сжатия является распаковка, которая формирует точную копию (или хорошее приближение) исходных данных.
Сегодня некоторые способы видеосжатия применяют определенный тип дискретного преобразования, такое как дискретное косинусное преобразование (DCT), для уменьшения пространственной избыточности в прогнозном остатке, который формируется с помощью методик временного или пространственного прогнозирования. Некоторые методики видеосжатия также влекут за собой квантование. Квантование может быть скалярным квантованием или векторным квантованием. После квантования квантованные коэффициенты могут быть кодированы по энтропии и помещены в сжатый поток видеобитов. Сжатый поток битов затем отправляется в декодер, который распаковывает поток битов и восстанавливает хорошее приближение исходных видеоданных.
Методики видеосжатия могут предоставлять выгоды для потребителей различных форм мультимедиа. Например, в области техники широковещания цифровое телевидение может быть сделано практичным за счет видеосжатия. Телевизионные (TV) станции могут передавать в широковещательном режиме телевидение высокой четкости (HDTV) и несколько виртуальных каналов по одному физическому каналу. Цифровое видеовещание может использовать стандарт Экспертной группы по киноизображению (MPEG), такой формат видеосжатия по стандарту MPEG-2. Тем не менее, H.264/MPEG-4 и VC-1 начинают появляться в качестве новых стандартов видеосжатия.
К сожалению, известные системы и способы кодирования информации при видеосжатии могут испытывать различные недостатки. Следовательно, преимущества могут быть реализованы посредством усовершенствованных систем и способов кодирования информации при видеосжатии.
Краткое описание чертежей
Фиг.1 - это блок-схема, иллюстрирующая одну конфигурацию потока битов масштабированного видеокодирования;
Фиг.2 - это блок-схема, иллюстрирующая одну конфигурацию базового слоя и множества улучшающих слоев, отправляемых из кодера по сети в декодер;
Фиг.3 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа кодирования информации;
Фиг.4 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа, чтобы декодировать кодированную видеопоследовательность;
Фиг.5 иллюстрирует одну конфигурацию кадра изображения, поделенного на множество макроблоков;
Фиг.6 иллюстрирует одну конфигурацию классификации значимых и уточняющих коэффициентов;
Фиг.7 иллюстрирует одну конфигурацию таблицы кодовых слов и длин кода;
Фиг.8 иллюстрирует псевдокод для кодирования и декодирования кодовой книги 0 (унарного кода);
Фиг.9 иллюстрирует псевдокод для кодирования и декодирования кодовой книги 1;
Фиг.10 иллюстрирует псевдокод для кодирования и декодирования кодовой книги 2;
Фиг.11 иллюстрирует одну конфигурацию таблицы кодирования с переменной длиной (VLC), используемой для того, чтобы кодировать записи таблицы выбора кодовой книги;
Фиг.12 - это одна конфигурация прямоугольной таблицы выбора кодовой книги;
Фиг.13 - это одна конфигурация треугольной таблицы выбора кодовой книги;
Фиг.14 иллюстрирует псевдокод для кодирования отсеченной таблицы выбора кодовой книги;
Фиг.15 - это блок-схема, иллюстрирующая основные аппаратные компоненты, типично используемые для того, чтобы обрабатывать цифровые изображения и/или цифровое видео.
Подробное описание изобретения
Описан способ кодирования значимых коэффициентов в видеопоследовательности. Видеопоследовательность принимается. Прогноз исходного видеосигнала в текущем кадре составляется из видеопоследовательности. Остаточный сигнал формируется посредством вычитания прогноза исходного видеосигнала из исходного видеосигнала в текущем кадре. К остаточному сигналу применяется преобразование. Множество коэффициентов преобразования квантуется. Кодовая книга выбирается из множества кодовых книг, чтобы кодировать, по меньшей мере, одно из значимой серии и конца блока. По меньшей мере, одно из значимой серии и конца блока кодируется с помощью выбранной кодовой книги.
Также раскрыто электронное устройство. Электронное устройство включает в себя процессор и запоминающее устройство, поддерживающее электронную связь с процессором. Инструкции сохраняются в запоминающем устройстве. Видеопоследовательность принимается. Прогноз исходного видеосигнала в текущем кадре составляется из видеопоследовательности. Остаточный сигнал формируется посредством вычитания прогноза исходного видеосигнала из исходного видеосигнала в текущем кадре. К остаточному сигналу применяется преобразование. Множество коэффициентов преобразования квантуется. Кодовая книга выбирается из множества кодовых книг, чтобы кодировать, по меньшей мере, одно из значимой серии и конца блока. По меньшей мере, одно из значимой серии и конца блока кодируется с помощью выбранной кодовой книги.
Описан способ декодирования значимых коэффициентов в видеопоследовательности. Поток битов кодированного видео принимается. Информация таблицы кодовых книг извлекается из потока битов. Значимые символы декодируются с помощью извлеченной информации таблицы кодовых книг. Значимые коэффициенты декодируются с помощью значимых символов. Множество коэффициентов преобразования деквантуется. Обратное преобразование применяется к остаточному сигналу. Видеопоследовательность составляется.
Конец блока может быть кодирован с помощью выбранной кодовой книги. Информация таблицы кодовых книг может быть кодирована с помощью серии последовательных макроблоков видео. Информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги. Таблица выбора кодовой книги может включать в себя каждую запись, соответствующую каждой паре номера цикла кодирования и позиции LEBL (последний кодированный коэффициент в базовом слое). В одной конфигурации таблица выбора кодовой книги включает в себя каждую запись, соответствующую только номеру цикла кодирования. Таблица выбора кодовой книги может быть кодирована как одномерный массив селекторов кодовых книг. Селекторы кодовых книг кодируются с помощью кода переменной длины.
Информация таблицы кодовых книг может включать в себя форму таблицы и размерность таблицы. В одном аспекте форма таблицы является прямоугольной. В дополнительном аспекте форма таблицы является треугольной.
Таблица выбора кодовой книги может быть динамически определена из статистической оценки. В одной конфигурации таблица выбора кодовой книги может быть динамически определена из соседней корреляции. Кодовая книга может быть смещенной версией другой кодовой книги.
Таблица выбора кодовой книги может быть отсечена с тем, чтобы предоставить отсеченную таблицу выбора кодовой книги. Отсеченная таблица выбора кодовой книги может быть кодирована с помощью серии последовательных макроблоков видео.
Также раскрыто электронное устройство. Электронное устройство включает в себя процессор и запоминающее устройство, поддерживающее электронную связь с процессором. Инструкции сохраняются в запоминающем устройстве. Поток битов кодированного видео принимается. Информация таблицы кодовых книг извлекается из потока битов. Значимые символы декодируются с помощью извлеченной информации таблицы кодовых книг. Значимые коэффициенты декодируются с помощью значимых символов. Множество коэффициентов преобразования деквантуется. Обратное преобразование применяется к остаточному сигналу. Видеопоследовательность составляется.
В одной конфигурации информация таблицы кодовых книг может быть декодирована из серии последовательных макроблоков. Информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги. Таблица выбора кодовой книги может включать в себя номер цикла преобразования таблицы выбора кодовой книги и позицию LEBL (последний кодированный коэффициент в базовом слое). Информация таблицы кодовых книг может включать в себя номер цикла преобразования таблицы выбора кодовой книги.
Информация таблицы кодовых книг может включать в себя форму таблицы и размерность таблицы. В одной конфигурации форма таблицы является прямоугольной. В дополнительной конфигурации форма таблицы является треугольной.
Таблица выбора кодовой книги может быть динамически определена из статистической оценки. Таблица выбора кодовой книги может быть динамически определена из соседней корреляции.
Также раскрыто электронное устройство, которое выполнено с возможностью кодировать значимые коэффициенты в видеопоследовательности. Электронное устройство включает в себя средство обработки и средство приема видеопоследовательности. Раскрыты средство для составления прогноза исходной видеопоследовательности в текущем кадре из видеопоследовательности и средство формирования остаточного кадра посредством вычитания прогноза исходного видеосигнала из исходного видеосигнала в текущем кадре. Раскрыты средство применения преобразования к остаточному сигналу и средство квантования множества коэффициентов преобразования. Раскрыты средство выбора кодовой книги из множества кодовых книг, чтобы кодировать, по меньшей мере, одно из значимой серии и конца блока и средство кодирования, по меньшей мере, одного из значимой серии и конца блока с помощью выбранной кодовой книги.
Различные конфигурации систем и способов раскрыты со ссылками на чертежи, на которых аналогичные номера ссылок указывают идентичные или функционально аналогичные элементы. Признаки настоящих систем и способов, в общем, раскрытые и проиллюстрированные на чертежах в данном документе, могут быть скомпонованы и разработаны во множестве различных конфигураций. Таким образом, подробное описание ниже не предназначено для того, чтобы ограничивать область применения систем и способов, заявленную в формуле изобретения, а является просто примером конфигураций систем и способов.
Многие признаки конфигураций, раскрытых в данном документе, могут быть реализованы как вычислительное программное обеспечение, электронные аппаратные средства или комбинация вышеозначенного. Чтобы четко проиллюстрировать взаимозаменяемость аппаратных средств и программного обеспечения, различные компоненты, в общем, описываются относительно их функциональности. Реализована эта функциональность в качестве аппаратных средств или программного обеспечения, зависит от конкретного варианта применения и структурных ограничений, накладываемых на систему в целом. Высококвалифицированные специалисты могут реализовать описанную функциональность различными способами для каждого конкретного варианта применения, но такие решения по реализации не должны быть интерпретированы как являющиеся отступлением от области применения настоящих систем и способов.
Если описанная функциональность реализована как вычислительное программное обеспечение, это программное обеспечение может включать в себя любой тип вычислительной инструкции или машиноисполняемого кода, размещенного в запоминающем устройстве и/или передаваемого как электронные сигналы по системной шине либо сети. Программное обеспечение, которое реализует функциональность, ассоциативно связанную с компонентами, описанными в данном документе, может содержать одну инструкцию или множество инструкций и может быть распределено по нескольким различным сегментам кода, по различным программам и по различным запоминающим устройствам.
При использовании в данном документе термины "конфигурация", "конфигурации", "одна или более конфигураций", "несколько конфигураций", "определенные конфигурации", "одна конфигурация", "другая конфигурация" и т.п. означают "одну или более (но не обязательно все) конфигурации раскрытых систем и способов", если иное не указано явно.
Термин "определение" (и его грамматические варианты) используются в самом широком смысле. Термин "определение" заключает в себе множество действий, и, следовательно, "определение" может включать в себя расчет, вычисление, обработку, извлечение, исследование, поиск (к примеру, поиск в таблице, базе данных или другой структуре данных), обнаружение и т.п. Также "определение" может включать в себя прием (к примеру, прием информации), осуществление доступа (к примеру, осуществление доступа к данным в запоминающем устройстве) и т.п. Также "определение" может включать в себя разрешение, отбор, выбор, установление и т.п.
Фраза "основан на" не означает "основан только на", если иное не указано явно. Иными словами, фраза "основан на" описывает как "основан только на", так и "основан, по меньшей мере, на".
Известны некоторые этапы, выполняемые в современных системах видеосжатия. После некоторых этапов видеосжатия, таких как прогнозирование, преобразование и квантование, следующий этап заключается в том, чтобы выполнить кодирование по энтропии синтаксических элементов и квантованных коэффициентов, чтобы сформировать поток битов. В видеодекодере выполняется обратный процесс. Синтаксические элементы и квантованные коэффициенты декодируются из потока битов. Далее выполняются этапы обратного квантования и обратного преобразования. В завершение. Восстановленный остаток добавляется к прогнозу, чтобы восстановить видеосигнал.
В настоящее время Joint Video Team (JVT), которая состоит из экспертов по кодированию видео из ISO/IEC MPEG и ITU-T VCEG, работает над дополнением масштабированного кодирования видео (SVC) к стандарту H.264/Улучшенное видеокодирование (AVC). Стандартное программное обеспечение, называемое Joint Scalable Video Model (JSVM), используется участниками. JSVM может поддерживать различные признаки масштабирования. Поток битов SVC может иметь масштабируемость с точной модульностью, пространственную масштабируемость, временную масштабируемость или любую комбинацию вышеозначенного.
Масштабируемость с точной модульностью, далее упоминаемая как FGS, является важным и очень желательным признаком видеокодирования. Этот признак дает возможность сжатому потоку битов быть практически произвольно отсекаемому, в то же время предоставляя конечному пользователю постепенное ухудшение качества декодированного видео. В масштабируемости с точной модульностью поток битов улучшающего слоя может произвольно отсекаться. По мере того как видеодекодер принимает и декодирует больше битов в этом слое, он формирует более оптимальное качество видео. Более того, FGS в JSVM спроектирована таким образом, что улучшение качества видео равномерно распределено по всему видеокадру в отличие от концентрации только в рамках определенной пространственной области кадра, поскольку последнее должно быть визуально нежелательно для конечного зрителя.
FGS достигает постепенного улучшения качества видео с помощью кодирования в битовой плоскости. Если видеокадр базового или предыдущего слоя кодирован с помощью параметра квантования QP, то видео текущего улучшающего слоя может быть квантовано с помощью параметра квантования, типично примерно QP-6, который эффективно отрезает размер шага квантования наполовину. Как результат меньшего размера шага квантования, больше коэффициентов квантования становятся ненулевыми на улучшающем слое. Ненулевые коэффициенты в улучшающем слое могут быть классифицированы на три типа: незначимые коэффициенты, значимые коэффициенты и уточняющие коэффициенты. Незначимые коэффициенты означают те коэффициенты, которые равны нулю в базовом или предыдущем слое и остаются нулем в текущем улучшающем слое. Значимые коэффициенты означают те коэффициенты, которые равны нулю в базовом или предыдущем слое, но становятся ненулевыми коэффициентами в текущем улучшающем слое. Уточняющие коэффициенты означают те коэффициенты, которые уже являются ненулевыми (т.е. значимыми) в базовом или предыдущем слое. Их значения уточняются в текущем улучшающем слое.
Поскольку уточняющие коэффициенты имеют статистику, отличную от других коэффициентов, они кодируются отдельно в FGS-слое. Аналогично H.264/AVC может быть два режима кодирования по энтропии в SVC: режим контекстного адаптивного двоичного арифметического кодирования (CABAC) и режим контекстного адаптивного кодирования переменной длины (CAVLC). Предоставляются подробности усовершенствованной системы кодирования значимых коэффициентов в режиме CAVLC, которые позволяют предоставлять более высокую производительность кодирования.
Фиг.1 - это блок-схема, иллюстрирующая одну конфигурацию структуры потока битов кодирования масштабированного видео, в общем, упоминаемую как масштабируемость с точной модульностью (FGS). В FGS видеопоследовательность сжимается в один видеопоток, по меньшей мере, с двумя слоями: базовым слоем 106 и улучшающим слоем 104. Как проиллюстрировано, FGS может дополнительно включать в себя N-1 улучшающих слоев 102.
В одной конфигурации базовый слой 106 является немасштабируемым кодированием видеопоследовательности и типично имеет наихудшее качество видеопоследовательности. Улучшающий слой 104 и N-1 улучшающих слоев 102 имеют варьирующиеся уровни качества, выше качества базового слоя 106. Декодирование каждого дополнительного улучшающего слоя, кодированного после базового слоя 106, приводит к повышению качества видеопоследовательности. Помимо этого поток битов FGS имеет одно существенное преимущество в том, что в ходе или после кодирования биты, относящиеся к улучшающему слою 104 и N-1 улучшающих слоев 102, могут быть отсечены (уменьшая скорость передачи битов и тем самым качество декодированного изображения) в реальном времени. Это предоставляет гибкое управление скоростью передачи битов и предоставляет возможность регулирования улучшающего слоя 104 и N-1 улучшающих слоев 102 так, чтобы соответствовать дополнительной скорости передачи битов.
Фиг.2 - это блок-схема 200 сети, иллюстрирующая базовый слой 202 и N улучшающих слоев 204, отправляемых из кодера 208 по сети 210 в декодер 212. Декодер 212 может декодировать и использовать базовый слой 202 и все или части одного или более улучшающих слоев 204. Декодер 212 составляет оптимальную аппроксимацию 214 исходной видеопоследовательности 206. В одной конфигурации оптимальная аппроксимация 214 отображается на дисплее 216, таком как монитор компьютера, телевизор, персональное цифровое устройство (PDA), проектор и т.д. Видеопоследовательность 206 кодируется как базовый слой 202 и один или более улучшающих слоев 204. Базовый слой 202 худшего качества представляет минимальный стандарт качества, а каждый из улучшающих слоев 204 является улучшением качества изображения базового слоя 202.
В одной конфигурации видеопоследовательность 206 кодируется с помощью стандарта видеокодирования FGS, поясненного на фиг.1. Стандарт кодирования FGS особенно полезен для приложений потоковой и широковещательной передачи видео, где доступная полоса пропускания передачи может быть неизвестна заранее. В ходе или после кодирования улучшающие слои 204 могут отсекаться произвольно, чтобы соответствовать доступной скорости передачи битов. По мере того как доступная скорость передачи битов изменяется, улучшающие слои 204 могут отсекаться надлежащим образом в реальном времени, чтобы предоставить декодированную видеопоследовательность оптимального качества относительной текущей полосы пропускания. Например, сеть 200 может отсекать улучающие слои 204 и затем отправлять потоки битов с различной скоростью передачи битов в различные пункты назначения.
Фиг.3 - это блок-схема последовательности операций, иллюстрирующая способ 300 кодирования информации. В одной конфигурации информация, которая должна быть кодирована, содержит видеопоследовательность. Способ 300 может выполняться в видеокодере, а обратная последовательность способа 300 может приводиться в исполнение в видеодекодере. Кодер - это устройство, используемое для того, чтобы изменять сигнал или данные в код. Затем декодер может формировать исходный сигнал или аппроксимацию исходного сигнала из кода. Кодер и декодер совместно могут упоминаться как видеоКОДЕК, который кодирует исходное изображение или видеопоследовательность в сжатую форму и декодирует ее, чтобы сформировать копию или аппроксимацию исходной последовательности.
Способ 300 начинается 302 с приема 304 кодером видеопоследовательности. В одной конфигурации видеопоследовательность - это несжатый видеосигнал. Кодер начинает сжимать видеопоследовательность посредством использования подобий между соседними видеокадрами и составляет 306 прогноз текущего/исходного видеосигнала. Прогноз формируется из одного или более предыдущих или будущих кадров и улучшается посредством компенсации различий между кадрами. Остаточный сигнал затем формируется 308 посредством вычитания прогнозного кадра из фактического текущего/исходного кадра. Кодер использует подобия между соседними выборками прогнозного остатка, чтобы уменьшать пространственную избыточность.
Способ 300 продолжается посредством применения 310 преобразования к остаточному сигналу, чтобы уменьшить избыточность остаточного сигнала. Преобразование преобразует прогнозные остаточные сигналы в другую область, в которой они представляются посредством коэффициентов преобразования. Коэффициенты квантуются 312 с тем, чтобы удалить незначимые значения, оставляя небольшое число значимых коэффициентов, которые предоставляют более компактное представление остаточных выборок. В одной конфигурации прогнозный остаток, кодируемый с помощью способа 300, может быть в улучшающем слое. Если предыдущий слой видеокадра или базовый слой видеокадра квантован 312 с помощью параметра квантования QP, то текущий улучшающий слой квантуется 312 с помощью параметра квантования типично порядка QP-6, где QP - это параметр квантования, используемый в базовом слое. Это фактически уменьшает размер шага квантования наполовину. Как результат уменьшенного размера шага квантования, большее количество коэффициентов квантования становится ненулевым в текущем кадре.
В одной конфигурации ненулевые квантованные коэффициенты в улучшающем слое могут быть классифицированы как незначимые, значимые и уточняющие коэффициенты.
Как описывается в данном документе, кодовая книга VLC (кодирование переменной длины) выбирается так, чтобы кодировать, по меньшей мере, одну значимую серию и EOB (конец блока). Таким образом, до того как значимая серия и EOB могут быть кодированы, кодовая книга выбирается 314. В одной конфигурации кодовая книга выбирается 314 с помощью таблицы выбора кодовой книги, как поясняется ниже. В одной конфигурации информация таблицы кодовых книг может быть кодирована 316 как часть серии последовательных макроблоков видео. В другой конфигурации информация таблицы кодовых книг может быть сохранена в кодере и декодере как внутренние состояния. Информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги, а также размерность и форму таблицы. Далее значимая серия и EOB кодируются 318 с помощью выбранной кодовой книги.
Фиг.4 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа 400, чтобы декодировать кодированную видеопоследовательность. Способ 400 декодирования может быть инверсией способа 300 кодирования по фиг.3. Способ 400 декодирования начинается 402 посредством приема 404 декодером кодированной видеопоследовательности. Кодированная видеопоследовательность также может упоминаться как поток битов. Декодер декодирует 406 информацию таблицы кодовых книг. В одной конфигурации информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги, которая является частью серии последовательных макроблоков. Декодер декодирует 407 значимые символы с помощью выбранной кодовой книги.
Способ 400 продолжается, и декодер декодирует 408 значимые коэффициенты с помощью последних декодированных значимых символов. Далее декодер продолжает деквантовать 410 декодированные значимые коэффициенты. Способ продолжается посредством применения 412 обратного преобразования к деквантованным коэффициентам. В одной конфигурации обратное преобразование может включать в себя обратное дискретное косинусное преобразование. После того как декодер применяет 412 обратное преобразование к коэффициентам, декодер восстанавливает 414 аппроксимацию исходной видеопоследовательности, которая существовала до способа 300 кодирования по фиг.3.
Фиг.5 иллюстрирует одну конфигурацию видеокадра 500, поделенного на множество макроблоков. Макроблоки - это базовые единицы данных в процессе декодирования. Как проиллюстрировано, видеокадр 500 может быть секционирован на множество макроблоков фиксированного размера, каждый из которых включает в себя выборку видеокадра 500. В одной конфигурации каждый макроблок включает в себя выборку 16x16 пикселов. В дополнительном аспекте каждый макроблок включает в себя компонент сигнала яркости (яркость) и два компонента сигнала цветности (цветность). Компонент сигнала яркости относится к яркости конкретной выборки, тогда как компонент сигнала цветности относится к цветовой характеристике выборки. В одной конфигурации видеокадр 500 дополнительно секционируется на множество серий последовательных макроблоков, серию макроблоков A 502, серию макроблоков B 504 и серию макроблоков C 506. Серия последовательных макроблоков - это последовательность макроблоков, которая обрабатывается последовательно в конкретном порядке кодирования. Например, серия последовательных макроблоков A 502 и макроблоки, содержащиеся в серии последовательных макроблоков A 502, могут кодироваться и отправляться в декодер до серии последовательных макроблоков B 504 и серии последовательных макроблоков C 506. В качестве дополнительного признака порядок кодирования различных серий последовательных макроблоков 502, 504 и 506 и отправки их в декодер может быть произвольным. Например, серия последовательных макроблоков B 504 может быть кодирована и отправлена в декодер перед другими сериями последовательных макроблоков. Аналогично, серия последовательных макроблоков C 506 может быть кодирована и отправлена в декодер перед двумя другими сериями последовательных макроблоков. Каждый макроблок в N-ном улучшающем слое соответствует макроблоку в каждом из N-1 улучшающих слоев и базовом слое.
Фиг.6 иллюстрирует пример того, как классифицировать коэффициенты. Предоставляются блок 602 коэффициентов базового слоя и блок 604 коэффициентов улучшающего слоя. Пропуски в базовом слое 602 и улучшающем слое 604 представляют коэффициент в значении нуль. Эти коэффициенты упоминаются как незначимые коэффициенты. Оставшиеся пропуски 606, 608, 608a и 608b представляют коэффициент, который может иметь ненулевое значение. В одной конфигурации блок 602 коэффициентов базового слоя находится в предыдущем улучшающем слое при использовании формата видеокодирования FGS. Как пояснено выше, в ходе способа 300 кодирования по фиг.3 коэффициенты преобразования квантуются. После квантования ненулевые коэффициенты в блоке 604 коэффициентов улучшающего слоя с соответствующими коэффициентами в блоке 602 коэффициентов базового слоя, равными нулю, упоминаются как значимые коэффициенты 606. Коэффициенты, чьи соответствующие коэффициенты в базовом слое являются ненулевыми, упоминаются как уточняющие коэффициенты 608. Поскольку значимые коэффициенты 606 и уточняющие коэффициенты 608 имеют различную статистику, они кодируются отдельно в улучшающем слое 604 согласно формату кодирования FGS.
В одной конфигурации значимые коэффициенты 606c, 606d - это те коэффициенты, соответствующие коэффициенты 606a и 606b которых (коэффициент, представляющий ту же подполосу) в базовом или предыдущем слое равны нулю. Уточняющие коэффициенты 608 - это те коэффициенты, соответствующие коэффициенты 608a и 608b которых в базовом или предыдущем слое равны нулю.
В слое SVC FGS значимые коэффициенты кодируются как значения серии. Кодер проходит через блок 604 коэффициентов улучшающего слоя в зигзагообразном сканировании до тех пор, пока не найдет значимый коэффициент. Затем кодер кодирует значение серии. Уточняющие коэффициенты, обнаруженные в ходе сканирования, не вносят влияния для значимой серии. Например, первый значимый коэффициент 606c на фиг.6 кодируется с run=1 вместо run=3, без подсчета двух уточняющих коэффициентов 608. В CAVLC-режиме по SVC JD5 значимая серия кодируется с помощью кода пуск-шаг-стоп, или S3. См. Thomas Wiegand, Gary Sullivan, Julien Raichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 5: Scalable Video Coding", JVT-R 201, январь 2006 года, Bangkok, Thailand. Затем знак этого коэффициента кодируется как 1-битовый флаг с 0, указывающим положительное значение, и 1, указывающей отрицательное значение. После того кодер перемещается к следующему блоку до тех пор, пока не охвачены все блоки в серии последовательных макроблоков. Это завершает первый цикл значимого кодирования.
Когда следующий цикл значимого кодирования начинается, кодер возвращается к первому блоку и кодирует следующий значимый коэффициент в блоке. В примере по фиг.6, run=3 отправляется во второй значимый коэффициент 606d. Далее бит 0 отправляется, чтобы указать то, что это положительное значение. После того кодер перемещается к следующему блоку до тех пор, пока не отправлены все блоки во втором цикле.
EOB
R
R
EOB
R
EOB
R
EOB
В третьем цикле символ EOB (конец блока) отправляется для блока, показанного на фиг.6, чтобы указать то, что ранее кодированный значимый коэффициент является последним в блоке; дополнительная информация не отправляется по этому блоку в последующих циклах кодирования. В CAVLC-режиме символ EOB комбинируется со всеми другими значениями серии, чтобы сформировать набор символов. Индекс EOB в этом наборе символов назначается "I". Индекс значения серии "R" - это "I". "I" может быть извлечен из "R" и "I" как I = R, если R < I, иначе I= R +1. Индекс каждого символа в этом наборе символов может быть кодирован с помощью кода S3. Число битов, отправляемых при кодировании меньшего индекса, меньше или равно числу битов, отправляемых при кодировании большего индекса. Поскольку вероятность EOB-символа имеет определенную корреляцию с номером цикла кодирования (EOB становится более вероятным в последующих циклах), массив, задающий смещения EOB-символов в каждом цикле, кодируется как часть серии последовательных макроблоков, чтобы предоставить возможность индексу EOB в каждом наборе символов, "I", изменяться с одного цикла кодирования на другой цикл кодирования. Этот массив ограничивается как монотонно невозрастающий как функция от номера цикла. Например, массив {4 1 0 0....} указывает то, что индекс EOB кодируется как 4 в первом цикле, как 1 во втором цикле и как 0 (наиболее вероятный символ) во всех последующих циклах.
Код S3, используемый в значимом кодировании, имеет параметр: порог отсечения m. Если символ s<=m, то s кодируется с помощью унарного кода. Если символ s>m, то он кодируется с префиксом  единиц (1) и суффиксом 00, 01 или 10. Например, таблица, показанная на фиг.7, предоставляет кодовые слова и длину кода S3, соответствующие m=0. Контекстная таблица, содержащая 256 порогов отсечения m для каждого номера цикла (0, 1,..., 15) и каждого местоположения последнего кодированного коэффициента в базовом слое (LEBL) (0, 1,..., 15), отправляется как часть серии последовательных макроблоков.
Код S3 может лучше всего подходить для того, чтобы кодировать символы, распределение вероятностей которых смещено для небольших символов и становится более плоским для больших символов. Тем не менее фактические распределения вероятностей значимых серий зачастую несогласованны с этим допущением. Следовательно, использование других VLC-кодов может повысить эффективность кодирования.
В системах и способах в данном документе один из пяти типов кодовых книг VLC выбирается для того, чтобы кодировать значимую серию и EOB. Пять кодовых книг упоминаются в данном документе как кодовая книга 0, кодовая книга 1, кодовая книга 2, кодовая книга 3 и кодовая книга 4. Каждая из пяти этих кодовых книг поясняется. Меньше пяти кодовых книг может быть использовано в некоторых конфигурациях. Дополнительно, более пяти кодовых книг может быть использовано в других конфигурациях. Использование пяти кодовых книг в данном документе является просто иллюстративным и не предназначено для того, чтобы быть ограничивающим.
Фиг.8 иллюстрирует псевдокод для кодовой книги 0. Кодовая книга 0 использует унарный код. Унарный код кодирует символ s с помощью (s-1) единиц и затем одного нуля. Эта кодовая книга имеет длину кода {1, 2, 3,...}. Она подходит для входных символов с сильно смещенным распределением вероятностей. Псевдокод на фиг.8 иллюстрирует кодирование 802 и декодирование 804 с помощью унарного кода.
Фиг.9 иллюстрирует псевдокод для кодовой книги 1. Кодовая книга 1 кодирует входной символ s с префиксом из s/2 единиц и затем суффиксом в 2 бита, чтобы кодировать остаток mod(s, 2), где mod() означает операцию взятия модуля. Эта кодовая книга имеет длину кода {2, 2, 3, 3, 4, 4,...}. Она подходит для входных символов с более равномерным распределением в сравнении с унарным кодом. Псевдокод на фиг.9 иллюстрирует кодирование 902 и декодирование 904 с помощью кодовой книги 1.
Фиг.10 иллюстрирует псевдокод для кодовой книги 2. Кодовая книга 2 кодирует входной символ s с префиксом из (s/3)*2 единиц и затем суффиксом в 2 бита, чтобы представлять остаток mod(s, 3). Эта кодовая книга имеет длину кода {2, 2, 2, 4, 4, 4, 6, 6, 6,...}, которая подходит для более равномерно распределенных входных символов в сравнении с кодовой книгой 1. Псевдокод на фиг.10 иллюстрирует кодирование 1002 и декодирование 1004 с помощью кодовой книги.
Кодовая книга 3 использует код S3 с m=0 (фиг.7), с длиной кода {1, 3, 3, 3, 5, 5, 5,...}. Следует отметить, что эта кодовая книга является смещенной версией кодовой книги 2. Она кодирует входной символ s=0 с битом 0. Для всех остальных символов s она использует кодовую книгу 2 с входным символом (s+1).
Кодовая книга 4 - это смещенная версия кодовой книги 1 (показанной на фиг.9). Она кодирует входной символ s=0 с битом 0. Для всех остальных символов s она использует кодовую книгу 1 с входным символом, равным (s+1).
Кодовые книги 0-4 все являются структурированными кодовыми книгами. Для определенной реализации может быть необязательным сохранять таблицу поиска в кодере и декодере, как обычно требуется посредством кодов Хаффмана.
Снова ничего не значит, что хотя показано и пояснено в данном документе всего пять кодовых книг, кодовые книги 3 и 4 являются просто смещенной версией кодовых книг 2 и 1 соответственно. Это важный признак, который может быть использован для того, чтобы значительно упростить реализацию декодера.
Оптимальная кодовая книга "c" зависит от распределения вероятностей набора символов, сформированного с помощью значимых серий и EOB-символа, который варьируется не только между последовательностями, но также между кадрами в рамках данной последовательности.
В одной конфигурации таблица выбора кодовой книги явно кодируется как часть серии последовательных макроблоков. Каждая запись в таблице является индексом кодовой книги, используемой для декодирования следующей значимой серии или EOB при определенных условиях. Таблица выбора кодовой книги может содержать запись для каждого номера цикла кодирования CCN независимо от других параметров. В другой реализации таблица выбора кодовой книги может содержать запись для каждой пары номера цикла кодирования CCN и позиции LEBL. Для кодирования блоков 4x4 и CCN, и позиция LEBL находятся в диапазоне [0, 15] включительно. В любом случае кодер определяет значение каждой записи в таблицы так, чтобы оптимизировать эффективность кодирования. В другом аспекте выбор оптимальной таблицы кодирования для кодирования следующей значимой серии и EOB не кодируется явно как часть серии последовательных макроблоков. Оптимальная кодовая книга выбирается на основе распределения вероятностей, оцененного в ходе времени выполнения и соседней корреляции.
Когда имеется ограниченный битовый бюджет для уровня FGS, и таблица выбора кодовой книги явно кодируется в серии последовательных макроблоков, существенно, чтобы таблица выбора кодовой книги сама была кодирована эффективно, чтобы минимизировать количество служебных битов. Неэффективное кодирование таблицы выбора кодовой книги также может задерживать крутизну возрастания кривой зависимости искажения от скорости передачи (пикового отношения сигнал-шум к скорости передачи битов) для слоя FGS. Две схемы вводятся, чтобы добиваться эффективного кодирования таблицы выбора кодовой книги.
Хотя всего имеется пять кодовых книг, из которых можно выбирать, выявлено, что "популярность" этих кодовых книг различная. VLC-таблица 1102 на фиг.11 может быть использована для того, чтобы кодировать записи кодовой книги, чтобы уменьшать среднее число битов, расходуемое на кодирование записей таблицы.
В одной конфигурации выбор оптимальной таблицы кодирования зависит только от номера цикла кодирования CCN, причем каждый номер цикла кодирования соответствует индексу позиции сканирования в последовательности зигзагообразного кодирования. Записи таблицы кодирования кодируются следующим образом. Сначала переменная num_sig_vlc_selectors кодируется, чтобы указать число селекторов кодовых книг, которые кодируются в потоке битов, за которым следуют селекторы кодовых книг num_sig_vlc_selectors. Каждый селектор кодовой книги кодируется с помощью кода переменной длины, заданного в VLC-таблице 1102. Имеется один селектор кодовой книги для каждого номера цикла кодирования. Процесс декодирования является просто обратной последовательностью процесса кодирования. Селекторы кодовых книг, которые не кодированы в серии последовательных макроблоков, имеют значение по умолчанию 0. Например, для кодирования блоков 4×4, требуется 16 селекторов кодовых книг. Если num_sig_vlc_selectors равно 5, это означает, что первые 5 селекторов кодовых книг явно кодируются. Оставшиеся 11 селекторов кодовых книг равны нулю.
В другом аспекте таблица выбора кодовой книги может содержать запись для каждой пары номера цикла кодирования CCN и позиции LEBL. Вероятность выбора кодовой книги 0 (унарного кода), в общем, становится очень высокой для большого номера цикла и позиции LEBL. Следовательно, может стать ненужным отправлять кодовые книги для этих контекстов. Чтобы уменьшать размерность таблицы, форма таблицы и размерность таблицы добавляются как новые синтаксические элементы и отправляются в серии последовательных макроблоков. Далее задаются две формы таблицы: прямоугольная (см. фиг.12) и треугольная (см. фиг.13). Два размерных параметра, ширина и высота, отправляются для прямоугольных таблиц; и один дополнительный параметр, называемый глубиной, отправляется для треугольной таблицы. С определенной формой и размерностью таблицы, только записи таблицы, которые попадают в рамки отсеченной таблицы 1202, 1302, отправляются с помощью VLC-кода на фиг.11. Все остальные записи 1204, 1304 таблицы (записи таблицы, которые не попадают в рамки отсеченной таблицы) не отправляются и считаются равными 0.
Чтобы получить форму и размерность таблицы, таблица выбора кодовой книги 16×16 отсекается с оптимизацией искажения в зависимости от скорости. Отсечение выполняется сначала в направлении столбцов, затем в направлении строк, затем в диагональном направлении (тем не менее, отметим, что кодер может выбирать любой порядок для отсечения). Возьмем, к примеру, столбцы. Зададим затраты C на отсечение одного столбца записей таблицы как битовый штраф, который будет наложен впоследствии в ходе значимого кодирования вследствие замены кодовой книги 0 на оптимальную кодовую книгу (к примеру, C равно 0, если все записи в этом столбце уже выбрали кодовую книгу 0). Далее зададим битовую экономию S на отсечение этого столбца записей таблицы как биты, сэкономленные вследствие неотправки этих записей таблица в расчете на VLC-таблицу на фиг.11 (к примеру, S=16 битов, если все записи в этом столбце выбирают таблицу кодирования 0). Если S>C, то этот столбец записей таблицы отсекается. В противном случае этот столбец сохраняется, отсечение в направлении столбцов прекращается, и начинается отсечение в направлении строк. Этот процесс отсечения, как считается, является очень эффективным при приспособлении к целевой скорости передачи битов. На очень низких скоростях передачи битов, когда имеется немного значимых коэффициентов, биты, требуемые для того, чтобы отправлять записи таблицы, не оправдывают несколько битов, сэкономленных за счет использования оптимальной таблицы кодирования. Когда это имеет место, процесс отсечения может отсекать даже всю таблицу. На более высоких скоростях передачи битов отсеченная таблица стремится к тому, чтобы иметь большие размерности по противоположной причине. Сложность этого процесса отсечения таблицы очень низкая, поскольку битовый штраф за отсечение записи таблица может быть заранее сохранен при формировании таблицы выбора кодовой книги. Псевдокод 1402 на фиг.14 обобщает то, как отправлять отсеченную таблицу.
Фиг.15 иллюстрирует устройство 1600, сконфигурированное так, чтобы обрабатывать цифровые изображения и/или цифровое видео. Устройство 1600 может представлять или быть реализованным в цифровом телевидении, прямой цифровой широковещательной системе, устройстве беспроводной связи, PDA, дорожном компьютере, настольном компьютере, цифровой камере, цифровом записывающем устройстве, сетевом цифровом телевидении, сотовом или спутниковом радиотелефоне или в любом устройстве связи с поддержкой видеотелефонии (VT).
Устройство 1600 может обрабатывать, кодировать, декодировать, передавать и/или принимать данные изображения и/или видео. Видеоданные могут захватываться посредством видеокамеры, такой как модуль видеозахвата (или датчик изображений) 1612, извлекаться из видеоархива или получаться другим способом. Модуль 1610 видеокодирования в устройстве 1600 может использовать стандарт видеокодирования, такой как MPEG-4, ITU-T H.263, ITU-T H.264 или любой другой стандарт видеокодирования. Модуль 1610 видеокодирования может поддерживать методики межкадрового кодирования, такие как оценка движения и компенсация движения, и методики внутрикадрового кодирования, такие как методики пространственной оценки и кодирования с внутренним прогнозированием.
Устройство 1600 может включать в себя устройство 1612 захвата изображений/видео, такое как камера или видеокамера, чтобы захватывать изображения или видеопоследовательности и сохранять захваченные изображения или последовательности в запоминающем устройстве 1614. Модуль 1602 обработки изображений/видео может обрабатывать изображения и/или видеопоследовательности. Запоминающее устройство 1604 может сохранять изображения и/или видеопоследовательности после такой обработки.
Приемо-передающее устройство 1616 может принимать и/или передавать кодированные видеопоследовательности в другое устройство. Приемо-передающее устройство 1616 может использовать стандарт беспроводной связи, такой как множественный доступ с кодовым разделением каналов (CDMA). Примеры стандартов CDMA включают в себя CDMA 1хEV-DO, широкополосный множественный доступ с кодовым разделением каналов (WCDMA) и т.д.
Один или более элементов устройства 1600 могут быть функционально соединены посредством шины 1618 связи. Помимо или вместо элементов, показанных на фиг.16, другие элементы могут быть включены в устройство 1600. Архитектура, проиллюстрированная на фиг.16, является просто примером. Методики, описанные в данном документе, могут быть реализованы с помощью множества других архитектур.
Запоминающее устройство 1614 может иметь относительно большую область памяти. Запоминающее устройство 1614 может содержать динамическое оперативное запоминающее устройство (DRAM) или флэш-память. Запоминающее устройство 1614 может содержать технологию запоминающих устройств с логическими вентилями НЕ-ИЛИ или НЕ-И либо любую другую технологию хранения данных. В других примерах запоминающее устройство 1614 может содержать энергонезависимое запоминающее устройство или любой другой тип модуля хранения данных.
Модуль 1602 обработки изображений/видео может содержать набор микросхем для мобильного радиотелефона, который могут включать в себя аппаратные средства, программное обеспечение, микропрограммное обеспечение и/или один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем матричных БИС (FPGA) или различных комбинаций вышеозначенного. Модуль 1602 обработки может включать в себя локальное запоминающее устройство 1604, соединенное с внешним модулем обработки 1608 изображений/видео и модулем 1610 кодирования изображений/видео. Модуль 1610 кодирования может содержать кодер/декодер (КОДЕК) для кодирования (или сжатия) и декодирования (или распаковки) цифровых видеоданных.
Локальное запоминающее устройство 1604 может содержать меньшую и более быструю область запоминающего устройства относительно запоминающего устройства 1614. Например, локальное запоминающее устройство 1604 может содержать синхронное динамическое оперативное запоминающее устройство (SDRAM). Локальное запоминающее устройство 1604 может содержать "внутреннее" запоминающее устройство, интегрированное с другими компонентами модуля 1602 обработки, чтобы предоставлять быстрый доступ к данным в ходе ресурсоемкого для процессора процесса кодирования. Тем не менее, запоминающие устройства 1614 и 1604 могут быть комбинированы в одно запоминающее устройство или могут быть реализованы в ряде других конфигураций. Контроллер 1606 запоминающего устройства может контролировать выборки из запоминающего устройства и обратную запись в локальное запоминающее устройство 1604.
Внешний модуль 1608 обработки изображений/видео может выполнять одну или более методик обработки изображений для кадров или видеопоследовательности, чтобы повышать качество изображений и тем самым повышать качество видеопоследовательности. Например, внешний модуль 1608 обработки изображений/видео может выполнять такие методики, как устранение мозаичности, коррекция избирательности объектива, масштабирование, цветовую коррекцию, цветовое преобразование и пространственную фильтрацию. Внешний модуль 1608 обработки изображений/видео также может выполнять другие методики. В общем, методики, выполняемые посредством модуля 1608, упоминаются как "внешние" методики обработки изображений, поскольку эти методики предшествуют модулю 1610 кодирования изображений/видео.
Модуль 1612 захвата изображений/видео может содержать датчики изображений, который включают в себя матрицы цветовых фильтров (CFA), размещенные на поверхности датчиков. Внешняя обработка изображений, выполняемая посредством модуля 1608, может повышать качество видеопоследовательности, захватываемой посредством модуля 1612 захвата. Например, внешний модуль 1608 обработки и/или модуль 1610 кодирования могут содержать DSP, запрограммированный так, чтобы обрабатывать изображения, захватываемые посредством модуля 1612 захвата. Та же область запоминающего устройства 1604 (или запоминающего устройства 1614) может быть использована для целей внешней обработки изображения и для других целей хранения.
Модуль 1610 кодирования изображений/видео может выполнять кодирование изображений и/или видео, которое может включать в себя одну или более методик видеосжатия, таких как межкадровое сжатие и/или внутрикадровое сжатие. Например, модуль 1610 кодирования может реализовывать методики оценки движения и компенсации движения, чтобы использовать временную или межкадровую корреляцию данных, чтобы предоставлять межкадровое сжатие. Альтернативно или помимо этого модуль 1610 кодирования может выполнять методики пространственной оценки и внутреннего прогнозирования, чтобы использовать пространственную или внутрикадровую корреляцию данных, чтобы предоставлять внутрикадровое сжатие. Вывод компенсации движения (или внутреннего прогнозирования) упоминается как "остаточный" и может содержать блок данных, указывающих различие между текущим видеоблоком, который должен быть кодирован, и прогнозным блоком, идентифицированным посредством оценки движения или пространственной оценки.
После того как модуль 1610 кодирования выполняет компенсацию движения (или внутреннее прогнозирование), чтобы создать остаток, последовательность дополнительных этапов может быть выполнена для того, чтобы дополнительно кодировать остаток и дополнительно сжимать данные. Дополнительные этапы могут зависеть от используемого стандарта кодирования, но, в общем, упоминаются как "остаточное кодирование". Модуль 1610 кодирования может выполнять одну или более этих методик видеосжатия, чтобы уменьшать объем данных, требуемых для того, чтобы передавать видеопоследовательность в другое устройство посредством приемо-передающего устройства 1616.
Информация и сигналы могут быть представлены с помощью любой из множества различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные сигналы, которые могут приводиться в качестве примера по всему описанию выше, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами либо любой их комбинацией.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытыми в данном документе конфигурациями, могут быть реализованы как электронные аппаратные средства, вычислительное программное обеспечение либо комбинация вышеозначенного. Чтобы понятно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше, в общем, на основе их функциональности. Реализована эта функциональность в качестве аппаратных средств или программного обеспечения, зависит от конкретного варианта применения и структурных ограничений, накладываемых на систему в целом. Высококвалифицированные специалисты могут реализовать описанную функциональность различными способами для каждого конкретного варианта применения, но такие решения по реализации не должны быть интерпретированы как являющиеся отступлением от области применения настоящих систем и способов.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытыми в данном документе конфигурациями, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем матричной БИС (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторной логики, дискретных компонентов аппаратных средств либо любой комбинации вышеозначенного, предназначенной для того, чтобы выполнять описанные в данном документе функции. Процессором общего назначения может быть микропроцессор, но в альтернативном варианте, процессором может быть любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован как комбинация вычислительных устройств, к примеру, комбинация DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP либо любая другая подобная конфигурация.
Этапы способа или алгоритма, описанные в связи с раскрытыми в данном документе конфигурациями, могут быть реализованы непосредственно в аппаратных средствах, в программном модуле, приводимом в исполнение посредством процессора, либо в комбинации вышеозначенного. Программный модуль может постоянно размещаться в оперативном запоминающем устройстве (RAM), флэш-памяти, постоянном запоминающем устройстве (ROM), электрически программируемом ROM (EPROM), электрически стираемом программируемом ROM (EEPROM), регистрах, на жестком диске, сменном диске, компакт-диске (CD-ROM) или любой другой форме носителя хранения данных, известной в данной области техники. Носитель хранения данных соединен с процессором так, чтобы процессор мог считывать информацию и записывать информацию на носитель хранения данных. В альтернативном варианте носитель хранения может быть встроен в процессор. Процессор и носитель хранения данных могут постоянно размещаться в ASIC. ASIC может постоянно размещаться в пользовательском терминале. В альтернативном варианте процессор и носитель хранения данных могут постоянно размещаться как дискретные компоненты в пользовательском терминале.
Способы, раскрытые в данном документе, содержат один или более этапов или действий для осуществления описанного способа. Этапы способа и/или действия могут меняться друг с другом без отступления от области применения настоящих систем и способов. Другими словами, если конкретный порядок этапов или действий не требуется для надлежащей работы конфигурации, порядок и/или применение конкретных этапов и/или действий может быть модифицировано без отступления от области применения настоящих систем и способов.
Хотя проиллюстрированы и описаны конкретные конфигурации и варианты применения настоящих систем и способов, следует понимать, что настоящие системы и способы не ограничены точной конфигурацией и компонентами, раскрытыми в данном документе. Различные модификации, изменения и вариации, которые должны быть очевидны специалистам в данной области техники, могут быть выполнены в структуре, работе и подробностях способов и систем, раскрытых в данном документе, без отклонения от области применения систем и способов.