СИСТЕМА И СПОСОБ МАСШТАБИРУЕМОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ МУЛЬТИМЕДИЙНЫХ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ МНОЖЕСТВА УРОВНЕЙ
SYSTEM AND METHOD FOR SCALABLE CODING AND DECODING MULTIMEDIA DATA USING MULTIPLE LAYERS

Настоящая Заявка на патент испрашивает приоритет Предварительной заявки номер 60/789271, озаглавленной "DATA PROCESSING WITH SCALABILITY", поданной 4 апреля 2006 года, Предварительной заявки номер 60/677607, озаглавленной "BASE LAYER VIDEO QUALITY COMPARISON", поданной 3 мая 2005 года, Предварительной заявки номер 60/677609, озаглавленной "INTRODUCING NEW MB MODES", поданной 3 мая 2005 года, Предварительной заявки номер 60/677610, озаглавленной "SHARING INFORMATION IN TWO LAYER CODING", поданной 3 мая 2005 года, и Предварительной заявки номер 60/677611, озаглавленной "INTERLAYER PREDICTION FOR INTER MBS IN SCALABLE VIDEO CODING", поданной 3 мая 2005 года, переуступленных правопреемнику настоящей заявки и в явном виде включенных в данный документ посредством ссылки.
Область техники, к которой относится изобретение
Изобретение относится к масштабируемому кодированию и декодированию мультимедийных данных, которые могут содержать аудиоданные, видеоданные или и то, и другое. Более конкретно, система относится к системе и способу масштабируемого кодирования и декодирования мультимедийных данных с использованием множества уровней.
Уровень техники
Международный союз электросвязи (МСЭ) обнародовал стандарты H.261, H.262, H.263 и H.264 для кодирования цифрового видео. Эти стандарты задают синтаксис кодированных цифровых видеоданных, а также то, как эти данные должны декодироваться для представления или воспроизведения. Тем не менее, эти стандарты предоставляют различные методы (к примеру, алгоритмы или средства сжатия), которые должны быть использованы гибким способом для преобразования цифровых видеоданных из несжатого формата в сжатый или кодированный формат. Следовательно, в настоящее время доступно множество различных кодеров цифровых видеоданных. Эти цифровые видеокодеры обеспечивают достижение различных степеней сжатия при различных затратах и уровнях качества.
Масштабируемое видеокодирование формирует множество уровней, например базовый уровень и уровень расширения, для кодирования видеоданных. Эти два уровня, в общем, передаются по различным каналам с различными характеристиками передачи, приводящими к различным частотам ошибок пакетов. Базовый уровень типично имеет меньшую частоту ошибок пакетов в сравнении с уровнем расширения. Базовый уровень, в общем, содержит наиболее значимую информацию, а уровень расширения, в общем, предоставляет детализацию в сравнении с базовым уровнем. Наиболее масштабируемые технологии видеосжатия применяют тот факт, что зрительная система человека более терпима к шуму (вследствие сжатия) в высокочастотных областях изображения, чем в более равномерных низкочастотных областях. Как следствие, базовый уровень преимущественно содержит низкочастотную информацию, а уровень расширения преимущественно содержит высокочастотную информацию. Когда пропускная способность сети становится низкой, имеется более высокая вероятность приема только базового уровня кодированного видео (но не уровня расширения). В этих случаях восстановленное видео является размытым, а фильтры разблокирования могут даже подчеркивать этот эффект.
Декодеры обычно декодируют базовый уровень или базовый уровень и уровень расширения. При декодировании базового уровня и уровня расширения декодера множества уровней в общем требуется повышенная вычислительная сложность и большая емкость хранения по сравнению с одноуровневыми декодерами. Многие мобильные устройства не используют декодеры множества уровней вследствие более высокой вычислительной сложности и требований по емкости хранения.
Сущность изобретения
Способ обработки мультимедийных данных, связанных с множеством уровней, может включать в себя определение остаточных данных базового уровня. Межуровневое прогнозирование может выполняться, чтобы сформировать остаточные данные уровня расширения, если, по меньшей мере, одно из некоторого числа ненулевых коэффициентов остаточных данных базового уровня и некоторого числа нулевых коэффициентов остаточных данных базового уровня удовлетворяет первому выбранному условию. Первым выбранным условием может быть число ненулевых или нулевых коэффициентов остаточных данных базового уровня, больших, меньших или равных пороговому значению. Может выполняться временное прогнозирование, чтобы сформировать остаточные данные уровня расширения, если, по меньшей мере, одно из числа ненулевых коэффициентов остаточных данных базового уровня или числа нулевых коэффициентов остаточных данных базового уровня удовлетворяет второму выбранному условию. Вторым выбранным условием может быть число ненулевых или нулевых коэффициентов остаточных данных базового уровня, больших, меньших или равных пороговому значению.
Раскрыт способ использования базового уровня прогнозирования уровня расширения. Блок мультимедийных данных может быть использован для формирования базовых остаточных данных, которые включают в себя множество базовых квантованных коэффициентов. Блок мультимедийных данных также может быть использован для формирования остаточных данных расширения, которые включает в себя множество квантованных коэффициентов расширения. Первое значение может быть определено на основе множества базовых квантованных коэффициентов, а второе значение может быть определено на основе множества квантованных коэффициентов расширения. Уровень расширения может быть определен посредством использования, по меньшей мере, одного из множества базовых квантованных коэффициентов или множества квантованных коэффициентов расширения.
Способ декодирования мультимедийного битового потока может включать в себя прием мультимедийного битового потока, имеющего базовый уровень и уровень расширения. Базовый уровень может декодироваться для определения, должен ли декодироваться уровень расширения с помощью внутриуровневого прогнозирования или межуровневого прогнозирования.
Краткое описание чертежей
Признаки, цели и преимущества изобретения должны стать более очевидными из нижеизложенного подробного описания, рассматриваемого вместе с чертежами, на которых:
фиг.1 - блок-схема системы кодирования и декодирования мультимедийных данных;
фиг.2 - блок-схема битового потока видеоданных H.264;
фиг.3 - блок-схема многоуровневого масштабируемого кодера с межуровневым прогнозированием;
фиг.4 - блок-схема последовательности операций модуля принятия решения о режиме (MDM), который может быть частью модулей прогнозирования по фиг.3;
фиг.5 - блок-схема последовательности операций модуля преобразования и энтропийного кодирования (TECM), который может быть частью модулей прогнозирования по фиг.3;
фиг.6 - блок-схема последовательности операций, иллюстрирующая межуровневое прогнозирование на основе макроблоков или на основе блоков;
фиг.7 иллюстрирует шесть блоков 4×4 в области преобразования, чтобы показать межуровневое прогнозирование на основе по каждому коэффициенту DCT;
фиг.8 иллюстрирует способ межслойного прогнозирования на основе по каждому коэффициенту DCT;
фиг.9 - блок-схема последовательности операций декодирования мультимедийного битового потока с помощью внутриуровневого прогнозирования или межуровневого прогнозирования; и
фиг.10 - блок-схема декодера с внутриуровневым прогнозированием и межуровневым прогнозированием.
Подробное описание изобретения
Далее описываются со ссылкой на чертежи системы и способы, которые реализуют варианты осуществления различных признаков изобретения. Чертежи и соответствующее описание представлены для иллюстрации некоторых вариантов осуществления изобретения, но не ограничения объема изобретения. На всех чертежах ссылочные позиции используются для указания соответствия между обозначаемыми элементами. Помимо этого, первая цифра каждой ссылочной позиции указывает чертеж, на котором элемент первый раз представлен.
Фиг.1 - это блок-схема системы 100 кодирования и декодирования мультимедийных (к примеру, видео, аудио или и того, и другого) данных. Система 100 может быть выполнена с возможностью кодировать (к примеру, сжимать или уплотнять) и декодировать (к примеру, разуплотнять или распаковывать) видеоданные (к примеру, изображения и видеокадры). Система 100 может включать в себя сервер 105, устройство 110 и канал 115 связи, соединяющей сервер 105 с устройством 110. Система 100 может быть использована для иллюстрации способов, описанных ниже, для кодирования и декодирования видеоданных. Система 100 может быть реализована посредством аппаратных средств, программного обеспечения, промежуточного программного обеспечения, микрокода или их любой комбинации вышеозначенного. Один или более элементов могут быть перекомпонованы и/или комбинированы, и другие системы могут быть использованы вместо системы 100 без отступления от сущности и объема изобретения. Дополнительные элементы могут быть добавлены в систему 100 или могут быть удалены из системы 100 без отступления от сущности и объема изобретения.
Сервер 105 может включать в себя процессор 120, носитель 125 хранения, кодер 130 и устройство 135 ввода-вывода (к примеру, приемо-передающее устройство). Процессор 120 и/или кодер 130 может быть выполнен с возможностью принимать видеоданные в форме последовательности видеокадров. Процессором 120 и/или кодером 130 может быть усовершенствованная RISC-машина (ARM), контроллер, процессор цифровых сигналов (DSP), микропроцессор или любое другое устройство, обеспечивающее обработку данных. Процессор 120 и/или кодер 130 может передавать последовательность видеокадров в носитель 125 хранения для хранения и/или может кодировать последовательность видеокадров. Носитель 125 хранения также может сохранять вычислительные команды, которые используются процессором 120 и/или кодером 130 для управления операциями и функциями сервера 105. Носитель 125 хранения может представлять одно или более устройств для хранения видеоданных и/или других машиночитаемых носителей для хранения информации. Термин "машиночитаемый носитель" включает в себя, но не только, оперативное запоминающее устройство (ОЗУ), флэш-память, постоянное запоминающее устройство (ПЗУ), ЭППЗУ, ЭСППЗУ, регистры, жесткий диск, съемный диск, CD-ROM, DVD, беспроводные каналы и различные другие носители, обеспечивающие хранение, размещение или перенос команд и/или данных.
Кодер 130, использующий вычислительные команды, принимаемые из носителя 125 хранения, может быть выполнен с возможностью выполнять параллельную и последовательную обработку (к примеру, сжатие) последовательностей видеокадров. Вычислительные команды могут быть реализованы так, как описано в способах ниже. После того как последовательность кадров кодирована, кодированные данные могут быть переданы в устройство 135 ввода-вывода для передачи в устройство 110 через канал 115 связи.
Устройство 110 может включать в себя процессор 140, носитель 145 хранения, декодер 150, устройство 155 ввода-вывода (к примеру, приемо-передающее устройство) и устройство отображения или экран 160. Устройством 110 может быть вычислительная машина, цифровой видеорекордер, портативное устройство (к примеру, сотовый телефон, Blackberry и т.д.), телевизионная игровая приставка, телевизор и другие устройства, обеспечивающие прием, обработку (к примеру, разуплотнение) и/или отображение последовательностей видеокадров. Устройство 155 ввода-вывода принимает кодированные данные и посылает кодированные данные в носитель 145 хранения и/или в декодер 150 для разуплотнения. Декодер 150 выполнен с возможностью воспроизводить последовательность из двух видеокадров, используя кодированные данные. После декодирования, последовательность видеокадров может быть сохранена в носителе 145 хранения. Декодер 150, использующий вычислительные команды, извлекаемые из носителя 145 хранения, может быть конфигурирован для выполнения параллельной и последовательной обработки (к примеру, разуплотнение) кодированных данных, чтобы воспроизводить последовательность видеокадров. Вычислительные команды могут быть реализованы так, как описано в способах ниже. Процессор 140 может быть конфигурирован для приема последовательности видеокадров из носителя 145 хранения и/или декодера 150 и отображения последовательности видеокадров на устройстве 160 отображения. Носитель 145 хранения также может сохранять вычислительные команды, которые используются процессором 140 и/или декодером 150 для управления операциями и функциями устройства 110.
Канал 115 связи может быть использован для передачи кодированных данных между сервером 105 и устройством 110. Каналом 115 связи может быть проводное соединение или сеть и/или беспроводное соединение или сеть. Например, канал 115 связи может включать в себя Интернет, коаксиальные кабели, оптоволоконные линии, спутниковые линии связи, наземные линии связи, беспроводные линии связи или другие среды, обеспечивающие распространение сигналов, а также любую комбинацию вышеозначенного.
Фиг.2 - это блок-схема потока 200 битов видеоданных H.264. Поток 200 битов может быть организован или секционирован в ряд блоков 205 доступа (к примеру, блок 1 доступа, блок 2 доступа, блок 3 доступа и т.д.). Каждый блок 205 доступа может включать в себя информацию, соответствующую кодированному видеокадру. Каждый блок 205 доступа может быть организован или секционирован на ряд NAL-блоков 210. Каждый NAL-блок 210 может включать в себя NAL-префикс 215, NAL-заголовок 220 и блок данных 225. NAL-префиксом 215 может быть последовательность битов (к примеру, 00000001), указывающая начало блока данных 225, а NAL-заголовок 220 может включать в себя тип 230 NAL-блока (к примеру, I-, P- или B-кадр). Блок данных 225 может включать в себя заголовок 235 и данные 240. Блок данных 225 может быть организован или секционирован в макроблок 16×16 данных, весь кадр данных или часть видеоданных (к примеру, блок 2×2 или блок 4×4). Термины "макроблок" и "блок" могут быть использованы взаимозаменяемо.
Заголовок 135 может включать в себя режим 245, список 250 опорных изображений и QP-значения 255. Режим 245 может указывать кодеру 130 то, как организовывать или секционировать макроблоки, как определять и передавать информацию движения и как определять и передавать информацию остаточных данных.
Данные 240 могут включать в себя информацию движения (к примеру, вектор 285 движения) и информацию остаточных данных (к примеру, остаточные данные DC 260 и AC 265). Для I-кадров, данные 240 могут включать в себя DC-остаточные данные 260 и AC-остаточные данные 265. AC-остаточные данные 265 могут включать в себя значения 270 шаблона кодированных блоков (CBP), число замыкающих единиц 275 и коэффициенты 280 остаточного квантования. Информация движения не требуется для I-кадра, поскольку он является первым кадром. Для P- и B-кадров, данные 240 могут включать в себя векторы 285 движения, DC-остаточные данные 290 и AC-остаточные данные 95.
Фиг.3 - это блок-схема модулей 300 и 305 кодирования базового уровня и уровня расширения масштабируемого кодера 130 множества уровней. Многоуровневое кодирование вводит несколько контуров временного прогнозирования. Например, двухуровневое кодирование может вводить два контура временного прогнозирования. Видеоданные могут совместно использоваться между двумя уровнями, чтобы предоставлять определенное распределение битов для двух уровней и снижать объем служебной информации. Межуровневое прогнозирование может быть использовано на уровне расширения для уменьшения общего объема служебной информации для кодирования. Модуль 300 кодирования базового уровня может быть использован для видео базового уровня, а модуль 305 кодирования уровня расширения может быть использован для видео уровня расширения. В некоторых вариантах осуществления видео базового уровня может быть таким же или практически таким же, как видео уровня расширения. Видеоданные могут кодироваться до приема посредством модулей 300 и 305 кодирования базового уровня и уровня расширения.
(T
)
(Q
)
(T
)
Q
(T
)
(Q
)
(T
)
(Q
)
b
b
b
b
e
e
e
e
-1
-1
-1
-1
Кодированные данные могут предоставляться на входы 310 и 315. Модуль 300 кодирования базового уровня может включать в себя модуль 320 преобразования , модуль 325 квантования , модуль 330 обратного преобразования  и модуль 335 обратного квантования ( ). Модуль 305 кодирования уровня расширения может включать в себя модуль 340 преобразования , модуль 345 квантования , модуль 350 обратного преобразования   и модуль 355 обратного квантования  . Модули 325, 335, 345 и 355 квантования могут включать в себя один или более параметров квантования, которые могут быть использованы для определения качества результирующего изображения. В общем, параметры квантования для модуля 300 кодирования базового уровня больше параметров квантования для модуля 305 кодирования уровня расширения. Больший параметр квантования означает худшее качество изображения. Модуль 300 кодирования базового уровня может формировать остаточную информацию 360 для базового уровня, а модуль 305 кодирования уровня расширения может кодировать остаточную информацию 365 для уровня расширения. Модули 300 и 305 кодирования базового уровня и уровня расширения также могут включать в себя модули 370 и 375 прогнозирования соответственно. Модули 370 и 375 прогнозирования могут комбинироваться в один модуль прогнозирования. Модули 370 и 375 прогнозирования могут быть использованы для выполнения внутриуровневого и межуровневого кодирования мультимедийных данных.
Для I-кадра декодированный базовый уровень может быть использован в качестве опоры для уровня расширения. Для P- и B-кадров, совместный базовый кадр и опора, вычисленные посредством компенсации движения одного или более предыдущих кадров, могут быть использованы для уровня расширения. Межуровневое прогнозирование может выполняться на основе макроблока, на основе блока (к примеру, на основе блока 4×4) или на основе DCT-коэффициентов.
Для каждого макроблока в P- или B-кадре межуровневое прогнозирование или внутриуровневое прогнозирование (к примеру, временное прогнозирование) может быть использовано в зависимости от различных факторов, таких как функция искажения в зависимости от скорости передачи. Если используется межуровневое прогнозирование, макроблок уровня расширения может прогнозироваться с помощью соотнесенного макроблока базового уровня. В некоторых вариантах осуществления ошибка прогнозирования может кодироваться, а затем передаваться в декодер 150. Если используется временное прогнозирование, макроблок уровня расширения может прогнозироваться посредством использования одного или более макроблоков из одного или более предыдущих и/или последующих кадров в качестве опоры и использования (к примеру, копирования) информации режима макроблоков и векторов движения из базового уровня.
X
y
x
y
x
y
Фиг.4 - это блок-схема последовательности операций модуля принятия решения о режиме (MDM) 400, который может быть частью модулей 370 и 375 прогнозирования по фиг.3. MDM 400 может включать в себя модуль 405 оценки движения и модуль 410 принятия решений. MDM 400 может быть реализован посредством процессора 120 и/или кодера 130. Модуль 405 оценки движения формирует информацию движения (к примеру, векторы движения) для уровня расширения в различных режимах. Режим может быть определен посредством использования информации (к примеру, векторов движения и остаточных данных) из базового уровня и уровня расширения. Несколько режимов предусмотрено в оценке движения H.264. Например, режимом "a" может быть макроблок 16×16 (выходные данные MV и MV), режимом "b" могут быть два блока 8×16 или два блока 16×8 (для каждых выходных данных MV и MV разбиения), а режимом "c" может быть четыре блока 8×8 (для каждых выходных данных разбиения режим подразбиения 8×8 и для каждых выходных данных MV и MV подразбиения). Каждый макроблок и каждый блок может иметь собственную информацию движения. В двухуровневом кодировании несколько режимов предоставляют большую гибкость в распределении битов. В некоторых режимах уровень расширения формирует более точные векторы движения в сравнении с базовым уровнем благодаря видеоуровня расширения более высокого качества. При двухуровневом кодировании базовый уровень и уровень расширения могут использовать одинаковую информацию движения, соответствующую базовому уровню. Остаточная информация может быть сформирована посредством использования спрогнозированного макроблока и вычитания его из текущего макроблока.
Кодер 130 может выбирать режим пропуска, который является режимом внутриуровневого прогнозирования. В режиме пропуска кодер 130 не передает информацию движения и остаточных данных о текущем макроблоке или блоке в декодер 150. Информация движения для текущего блока может быть извлечена из одного или более соседних блоков. В одном режиме кодер 130 может передавать информацию движения и может не передавать информацию остаточных данных. Этот может осуществляться посредством задания coded_block_pattern равным 0. В стандарте H.264, когда coded_block_pattern равен 0, все коэффициенты преобразования равны 0. Когда coded_block_pattern=0, декодер 150 уведомляется о том, что информация остаточных данных не посылалась кодером 130. Чтобы кодировать значение coded_block_pattern, кодовое число, показанное в таблице 1, может назначаться coded_block_pattern. Кодовое число может быть закодировано с помощью кода Exp-Golomb. Декодер 150 может принимать кодовое число, показанное в таблице 1, от кодера 130.
Таблица 1
Кодовое число
Coded_Block_Pattern
Битовая строка
0
0
1
1
16
010
2
1
011
3
2
00100
4
4
00101
5
8
00110
...
...
...
Модуль 410 принятия решения может выбирать режим, который влияет на различные факторы, такие как битовые издержки на кодирование информации движения, эффективность кодирования, точность движения, объем служебной информации, производительность, оптимизация искажения в зависимости от скорости передачи и т.д. Один режим может формировать более оптимальные результаты для базового уровня, тогда как другой режим может формировать более оптимальные результаты для уровня расширения. Следовательно, может потребоваться определенный компромисс, чтобы достичь "наилучшего режима" или "оптимального режима" для базового уровня и уровня расширения. Компромисс может быть не нужен, если один режим формирует наилучшие результаты для базового уровня и уровня расширения. Наилучший режим может выбираться, например, на основе оптимизации искажения в зависимости от скорости передачи, поскольку она представляет наилучшее согласование между точностью движения и битовыми затратами на кодирование информации движения. Модуль 410 принятия решений может использовать TECM 500 (см. фиг.5) для целей оптимизации. Режим может предоставлять процессору 120 и/или кодеру 130 набор принципов, функций, команд, параметров, процедур или любую комбинацию вышеозначенного, чтобы выполнять кодирование видеоданных.
a_enh
b_base
c_base
c_enh
Нижеприведенное описание предоставляет пример трех различных режимов, a, b и c. Допустим, что базовый уровень имеет наилучшую производительность в режиме a, а уровень расширения имеет наилучшую производительность в режиме b. Если модуль 410 принятия решения выбирает режим a, то служебная информация ΔR вводится на уровне расширения, и никакой служебной информации не вводится на базовом уровне. Если модуль 410 принятия решения выбирает режим b, то служебная информация ΔR вводится на базовом уровне, и никакой служебной информации не вводится на уровне расширения. Если модуль 410 принятия решения выбирает режим c, то служебная информация ΔR вводится на базовом уровне, и служебная информация ΔR вводится на уровне расширения. Из трех переменных могут быть определены издержки служебной информации для каждого режима по каждому уровню.
x_base
x_enh
x_base
x_enh
j-1
j-1
j
j-1
j-1
j-1
j-1
j
j
j
Общие издержки для обоих слоев могут быть определены следующим образом. Критерий 1: Если общие издержки заданы как C=ΔR, где x может быть a, b или c, то базовый уровень имеет наивысшую эффективность кодирования, и результаты уровня расширения несущественны. Критерий 2: Если общие издержки заданы как C=ΔR, где x может быть a, b или c, то уровень расширения имеет наивысшую эффективность кодирования, и результаты базового уровня несущественны. Критерий 3: Если общие издержки заданы как C=ΔR/2+ΔR/2, где x может быть a, b или c, то базовый уровень и уровень расширения трактуются одинаково или аналогично. Критерий 4: Если общий объем служебной информации для всего кадра базового уровня должен составлять не более 5%, то может быть определено заданное требование на основе макроблока. Например, когда макроблок j на базовом уровне кодируется, верхняя граница объема служебной информации может быть вычислена как Верхняя граница = (B-E+b)*5%-E, где B - это общее число битов, используемых для кодирования предыдущих j-1 макроблоков, E - это биты служебной информации в B, а b - это используемые биты при кодировании макроблока j в его наилучшем режиме на базовом уровне. После кодирования макроблока j, B и E могут быть обновлены для следующего макроблока.
Фиг.5 - это блок-схема последовательности операций модуля преобразования и энтропийного кодирования (TECM) 500, который может быть частью модулей 370 и 375 прогнозирования по фиг.3. TECM 500 может включать в себя модуль 505 кодирования базового уровня, модуль 510 декодирования, модуль 515 проверки, модуль 520 межуровневого прогнозирования и модуль 525 временного прогнозирования. TECM 500 может быть реализован посредством процессора 120 и/или кодера 130. TECM 500 использует кодированный базовый уровень для прогнозирования уровня расширения. Модуль 505 кодирования базового уровня может быть использован для определения информации движения (к примеру, векторов движения) для базового уровня. Модуль 510 декодирования может быть использован для декодирования базового уровня перед межуровневым прогнозированием. Модуль 515 проверки может быть использован для определения числа нулевых и/или ненулевых коэффициентов в преобразованных остаточных данных базового уровня. В зависимости от коэффициентов, межуровневое прогнозирование (520) или временное прогнозирование (525) может быть выбрано для прогнозирования уровня расширения.
Фиг.6 - это блок-схема последовательности операций, иллюстрирующая межуровневое прогнозирование на основе макроблоков или на основе блоков. Межуровневое прогнозирование может выполняться на основе макроблока или на основе блока (т.е. любой части макроблока (к примеру, на основе блока 4×4)). Для межуровневого прогнозирования на основе блока 4×4 или на основе блока 2×2 информация движения и/или информация остаточных данных из макроблоков на базовом уровне может быть использована для определения, следует ли использовать межуровневое прогнозирование или временное прогнозирование. Модуль 505 кодирования базового уровня может определять информацию движения и информацию остаточных данных для базового уровня (605). Модуль 505 кодирования базового уровня также может получать опору (к примеру, макроблок или кадр) для уровня расширения. Модуль 505 кодирования базового уровня может определять число ненулевых или нулевых коэффициентов информации остаточных данных для базового уровня (610). Если информация остаточных данных из базового уровня содержит больше информации, чем опора из уровня расширения, то информация остаточных данных на базовом уровне применима к уровню расширения. Модуль 515 проверки может определять то, удовлетворяет ли число ненулевых или нулевых коэффициентов выбранному условию (615). Например, модуль 515 проверки может анализировать информацию остаточных данных базового уровня для определения, больше, меньше или равно число ненулевых коэффициентов пороговому значению (T), либо больше, меньше или равно число нулевых коэффициентов пороговому значению (T). Если информация остаточных данных включает в себя все ненулевые коэффициенты или некоторые ненулевые коэффициенты, то информация остаточных данных на базовом уровне может быть полезна для уровня расширения, и кодер 130 может использовать межуровневое прогнозирование для прогнозирования макроблоков на уровне расширения (625). Если информация остаточных данных включает в себя все нули или некоторые нули, то информация остаточных данных на базовом уровне может не быть полезной для уровня расширения и кодер 130 может использовать временное прогнозирование для прогнозирования макроблоков на уровне расширения (620). Кодер 130 может передавать кодированные макроблоки или кодированные блоки в декодер 150 (630).
Фиг.7 иллюстрирует шесть блоков 4×4 в области преобразования, чтобы проиллюстрировать межуровневое прогнозирование на основе по каждому коэффициенту DCT, а фиг.8 иллюстрирует способ межуровневого прогнозирования на основе по каждому коэффициенту DCT. Верхняя строка включает в себя блок прогнозирования с компенсацией движения (MCP) или опорный блок 700, остаточный блок 705 и восстановленный блок 710 для базового уровня. Нижняя строка включает в себя MCP- или опорный блок 715, остаточный блок 720 и восстановленный блок 725 для уровня расширения. MCP- и остаточные блоки 700, 705, 715 и 720 показаны для преобразования из пространственной (к примеру, пиксельной) области в область преобразования (к примеру, частотную) (805). MCP-блок 700 может быть использован посредством использования информации движения на базовом уровне. Восстановленный блок 710 может быть сформирован посредством использования коэффициентов из MCP- и остаточных блоков 700 и 705. Восстановленный блок 725 может быть сформирован посредством использования (к примеру, копирования) коэффициентов из восстановленного блока 710.
X
E
X
X
E
E
E
≠
b,t
t+1
b,t+1
b,t
t+1
t+1
t+1
Межуровневое прогнозирование может быть выполнено для ненулевых коэффициентов в остаточном блоке 705 для базового уровня. На фиг.7,  представляет коэффициент в MCP-блоке 700, а  представляет кодированный ненулевой коэффициент в остаточном блоке 705. Восстановленный коэффициент для восстановленного блока 710 может быть представлен посредством =+ и может быть использован для межуровневого прогнозирования. Восстановленный коэффициент в той же позиции для уровня расширения может быть копией восстановленного коэффициента из базового уровня. Если =0 или примерно 0, то коэффициент может не подходить для уровня расширения, и модуль 525 временного прогнозирования может выполнять временное прогнозирование, чтобы сформировать восстановленный блок 725 посредством использования MCP-блока 715 и остаточного блока 720. Если 0 или примерно 0, то коэффициент может подходить для уровня расширения, и модуль 520 межуровневого прогнозирования может выполнять межуровневое прогнозирование с помощью коэффициентов. Следовательно, восстановленные коэффициенты для уровня расширения могут быть скопированы из базового уровня. Каждый коэффициент также может быть сравнен с пороговым значением, чтобы определить то, следует использовать межуровневое прогнозирование или временное прогнозирование. Коэффициенты для уровня расширения могут быть отправлены из кодера 130 в декодер 150.
b
e
Термин "шаблон кодированных блоков (CBP)" относится к сумме всех ненулевых коэффициентов в макроблоке. С помощью остаточных коэффициентов в остаточном макроблоке 705 модуль 520 межуровневого прогнозирования может определять CBP для базового уровня (CBP) (810). С помощью остаточных коэффициентов в остаточном макроблоке 720 модуль 520 межуровневого прогнозирования может определять CBP для уровня расширения (CBP) (815).
b
b
Если CBP=0 или CBP<T (пороговое значение), то модуль 520 межуровневого прогнозирования может задавать все коэффициенты в остаточном макроблоке 705 равными нулю (820) и может передавать остаточный макроблок 720 в декодер 150 (825). В некоторых вариантах осуществления T может быть равно 4 (или примерно 4), где сумма всех ненулевых коэффициентов может быть определена посредством линейной суммы или взвешенной суммы остаточных коэффициентов на основе позиции остаточных коэффициентов в макроблоке 705.
b
e
e
e
e
b
Если CBP+CBP≠0, то модуль 520 межуровневого прогнозирования может определять минимальные квантованные коэффициенты с помощью остаточных коэффициентов базового уровня и уровня расширения (830). Например, минимальные квантованные коэффициенты могут быть определены с помощью уравнения MQC(i,j)=C(i,j)-min[Cb(i,j), C(i,j)], где C могут быть остаточными коэффициентами уровня расширения, а C могут быть остаточными коэффициентами базового уровня. Модуль 520 межуровневого прогнозирования может передавать MQC(i,j) в декодер 150 (835).
e
e
Если знак C(i,j) ≠ знаку Cb(i,j), то модуль 520 межуровневого прогнозирования может задавать всем остаточным коэффициентам базового уровня (Cb(i,j)) значение нуль (840) и может передавать все остаточные коэффициенты уровня расширения (C(i,j)) в декодер 150 (845).
Фиг.9 - это блок-схема 900 декодирования мультимедийного потока битов с помощью внутриуровневого прогнозирования или межуровневого прогнозирования. Процессор 140 может принимать мультимедийный битовый поток, имеющий базовый уровень и уровень расширения (905). Декодер 150 может декодировать базовый уровень для определения, должен ли быть декодирован уровень расширения с помощью внутриуровневого прогнозирования или межуровневого прогнозирования (910). Базовый уровень может включать в себя множество коэффициентов базового уровня. В некоторых вариантах осуществления для определения должен ли уровень расширения декодироваться с помощью внутриуровневого прогнозирования или межуровневого прогнозирования, декодер 150 может определять то, включают ли в себя множество коэффициентов базового уровня, по меньшей мере, один ненулевой коэффициент. Декодер 150 может декодировать базовый уровень с помощью межуровневого прогнозирования, если все из множества коэффициентов базового уровня имеют нулевое значение, и может декодировать базовый уровень с помощью внутриуровневого прогнозирования, если, по меньшей мере, один из множества коэффициентов базового уровня имеет ненулевое значение.
Фиг.10 - это блок-схема декодера 1000 с внутриуровневым прогнозированием и межуровневым прогнозированием. Декодер 1000 может быть частью процессора 140 и/или декодера 1500 и может быть использован для реализации способа по фиг.9. Декодер 1000 может быть реализован посредством аппаратных средств, программного обеспечения, промежуточного программного обеспечения, микрокода или их любой комбинации вышеозначенного. Декодер 1000 может включать в себя модуль 1005 принятия решения, модуль 1010 внутриуровневого прогнозирования и модуль 1015 межуровневого прогнозирования. Модуль 1005 принятия решения может принимать мультимедийный битовый поток, имеющий базовый уровень и уровень прогнозирования и может декодировать базовый уровень для определения, должен быть декодирован уровень расширения с помощью внутриуровневого прогнозирования или межуровневого прогнозирования. Модуль 1010 внутриуровневого прогнозирования может быть использован для декодирования уровня расширения с помощью внутриуровневого прогнозирования. Модуль 1015 межуровневого прогнозирования может быть использован для декодирования уровня расширения с помощью межуровневого прогнозирования.
В некоторых вариантах осуществления изобретения раскрывается устройство для обработки мультимедийных данных, связанных с множеством уровней. Устройство может включать в себя средство определения остаточных данных базового уровня. Средством определения остаточных данных базового уровня может быть процессор 120, кодер 130, модуль 300 кодирования базового уровня, модуль 305 кодирования уровня расширения, модули 370 и 375 прогнозирования, модуль 405 оценки движения, модуль 410 принятия решения и/или модуль 505 кодирования базового уровня. Устройство может включать в себя средство выполнения межуровневого прогнозирования, чтобы сформировать остаточные данные уровня расширения, если, по меньшей мере, одно из числа ненулевых коэффициентов остаточных данных базового уровня или числа нулевых коэффициентов остаточных данных базового уровня удовлетворяет первому выбранному условию. Средством выполнения межуровневого прогнозирования может быть процессор 120, кодер 130, модуль 300 кодирования базового уровня, модуль 305 кодирования уровня расширения, модули 370 и 375 прогнозирования, модуль 505 кодирования базового уровня и/или модуль 520 межуровневого прогнозирования. Устройство может включать в себя средство выполнения временного прогнозирования для формирования остаточных данных уровня расширения, если, по меньшей мере, одно из числа ненулевых коэффициентов остаточных данных базового уровня или числа нулевых коэффициентов остаточных данных базового уровня удовлетворяет второму выбранному условию. Средством выполнения временного прогнозирования может быть процессор 120, кодер 130, модуль 300 кодирования базового уровня, модуль 305 кодирования уровня расширения, модули 370 и 375 прогнозирования, модуль 505 кодирования базового уровня и/или модуль 525 временного прогнозирования.
В некоторых вариантах осуществления изобретения раскрыто устройство декодирования мультимедийного потока битов. Устройство может включать в себя средство приема мультимедийного потока битов, имеющего базовый уровень и уровень расширения. Средством приема мультимедийного битового потока может быть процессор 140, декодер 150 и/или модуль 1005 принятия решения. Устройство может включать в себя средство декодирования базового уровня для определения, должен уровень расширения декодироваться с помощью внутриуровневого прогнозирования или межуровневого прогнозирования. Средством декодирования может быть процессор 140, декодер 150, модуль 1005 принятия решения, модуль 1010 внутриуровневого прогнозирования и/или модуль 1015 межуровневого прогнозирования.
Специалисты в данной области техники должны принимать во внимание, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытыми в данном документе вариантами осуществления, могут быть реализованы как электронные аппаратные средства, вычислительное программное обеспечение либо комбинации вышеозначенного. Чтобы понятно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше, в общем, на основе их функциональности. Реализована ли эта функциональность в качестве аппаратных средств или программного обеспечения, зависит от конкретного варианта применения и структурных ограничений, накладываемых на систему в целом. Высококвалифицированные специалисты могут реализовать описанную функциональность различными способами для каждого конкретного варианта применения, но такие решения по реализации не должны интерпретироваться как вызывающие отступление от объема раскрытых способов.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытыми в данном документе примерами, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем матричной БИС (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторной логики, дискретных компонентов аппаратных средств либо любой комбинации вышеозначенного, предназначенной для того, чтобы выполнять описанные в данном документе функции. Процессором общего назначения может быть микропроцессор, но в альтернативном варианте, процессором может быть любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован как сочетание вычислительных устройств, к примеру, сочетание DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP либо любая другая подобная конфигурация.
Этапы способа или алгоритма, описанные в связи с раскрытыми в данном документе примерами, могут быть реализованы непосредственно в аппаратных средствах, в программном модуле, приводимом в исполнение посредством процессора, либо в комбинации вышеозначенного. Программный модуль может размещаться в ОЗУ, флэш-памяти, ПЗУ, памяти типа ЭППЗУ, памяти типа ЭСППЗУ, регистрах, на жестком диске, сменном диске, компакт-диске или любой другой форме носителя хранения, известной в данной области техники. Типичный носитель хранения соединяется с процессором, причем процессор может считывать информацию и записывать информацию на носитель хранения. В альтернативном варианте носитель хранения может быть встроен в процессор. Процессор и носитель хранения могут постоянно размещаться в специализированной интегральной схеме (ASIC). ASIC может постоянно размещаться в беспроводном модеме. В альтернативном варианте процессор и носитель хранения могут постоянно размещаться как дискретные компоненты в беспроводном модеме.
Вышеприведенное описание раскрытых примеров предоставлено для того, чтобы дать возможность любому специалисту в данной области техники создавать или использовать раскрытые способы и устройства. Различные модификации в этих примерах должны быть очевидными для специалистов в данной области техники, а описанные в данном документе принципы могут быть применены к другим примерам без отступления от сущности и объема раскрытых способов и устройств. Описанные варианты осуществления должны рассматриваться во всех аспектах как иллюстративные, а не ограничивающие, и объем изобретения, следовательно, определяется посредством прилагаемой формулы изобретения, а не вышеприведенного описания. Все изменения, которые подпадают под смысл и диапазон эквивалентности пунктов формулы изобретения, должны включаться в их объем.