Масштабируемое видеокодирование с двухуровневым кодированием и одноуровневым декодированием

Иллюстрации

Показать все

Изобретение относится к способу и устройству кодирования и декодирования масштабируемых видеоданных. Техническим результатом является снижение сложности вычислений и требований к объему памяти при декодировании масштабируемых видеоданных. Предложен способ видеокодирования, который заключается в том, что выбирают данные для кодирования в первом уровне и втором уровне, чтобы обеспечить возможность декодирования данных в одном объединенном уровне, и кодируют выбранные данные в первом уровне и во втором уровне кодированием коэффициента в первом уровне и кодированием дифференциального уточнения коэффициента первого уровня во втором уровне. 10 н. и 48 з.п. ф-лы, 11 ил.

Реферат

Настоящая заявка на патент испрашивает приоритет предварительной заявки №60/660/877, «TWO PARALLEL ENCODING AND SINGLE LAYER DECODING», поданной 10 марта 2005 г., и предварительной заявке №60/713,208, «SCALABLE VIDEO CODING WITH TWO LAYER ENCODING AND SINGLE LAYER DECODING», поданной 1 сентября 2005 г., которые настоящим прямо включены в настоящее описание посредством ссылки.

Область техники

Настоящее изобретение относится к способу и устройству для кодирования и декодирования масштабируемых видеоданных.

Предшествующий уровень техники

Вследствие бурного развития и широкого распространения межсетевой и беспроводной связи, а также возрастающего спроса на мультимедийные услуги, потоковая передача мультимедийных данных по сети Internet и мобильным/беспроводным каналам стала объектом большого внимания. В гетерогенных сетях, использующих межсетевые протоколы (IP-сетях), видео обеспечивается сервером и может передаваться в потоковом режиме, по меньшей мере, одним клиентом. Проводные соединения включают в себя автоматическое телефонное соединение, ISDN (цифровые сети с комплексными услугами), кабельные линии, xDSL (цифровые абонентские линии, использующие ряд специальных технологий), волоконно-оптические линии, LAN (локальные сети), WAN (глобальную сеть) и пр. Режим передачи может быть либо однопунктовым, либо многопунктовым. Множество разнообразных клиентских устройств, включая PDA (электронный секретарь), носимый компьютер, настольный компьютер, декодер каналов кабельного телевидения, TV (ТВ-приемник), HDTV (ТВ-приемник высокой четкости), мобильный телефон и др., требуют битовых потоков с разными пропускными способностями одновременно для одного и того же контента. Пропускная способность может быстро изменяться со временем (от 9,6 Кбит/с до 100 Мбит/с и выше) и может превосходить по скорости реакцию сервера.

Мобильная/беспроводная связь аналогична гетерогенной IP-сети. Транспорт мультимедийного контента по мобильным/беспроводным каналам является очень сложной проблемой, так как в каналах часто наводятся сильные искажения из-за замирания вследствие многолучевого распространения, затенения, межсимвольных помех и мешающих шумов. Некоторые другие причины, например мобильность и конкурирующий трафик, также могут вызывать изменения и снижение пропускной способности. Шум в канале и число обслуживаемых пользователей определяют меняющуюся во времени характеристику канальных сред. В дополнение к состоянию окружающей среды сеть назначения может быть разнообразной от сотовых сетей второго-третьего поколений до широкополосных сетей передачи только данных вследствие географического местоположения, а также мобильного роуминга. Все упомянутые переменные параметры требуют адаптивной настройки скорости передачи мультимедийного контента, причем даже в реальном времени. Следовательно, успешная передача видео в гетерогенных проводных/беспроводных сетях требует эффективного кодирования, а также адаптируемости к изменяющемуся состоянию сети, характеристикам устройств и предпочтениям пользователей, причем при устойчивости к потерям.

Для выполнения различных требований пользователей и адаптации к изменениям в канале можно генерировать несколько независимых вариантов битовых потоков, каждый из которых выполняет ограничивающие условия одного класса, основанные на ширине полосы пропускания, дисплее и/или вычислительных возможностях пользователя, но это не эффективно для хранения на сервере и многопунктовой передачи. При масштабируемом кодировании, когда один битовый макропоток, пригодный для высокопроизводительных пользователей, формируется на сервере, битовые потоки для низкопроизводительных систем встроены в виде подмножеств битового макропотока. По сути, один битовый поток можно приспособить для разнообразного прикладного окружения путем селективной передачи битовых подпотоков. Другим преимуществом, обеспечиваемым масштабируемым кодированием, является надежная передача видео в подверженных ошибкам каналах. Решение проблем защиты от ошибок и маскирования ошибок может быть несложным. Более надежный канал передачи или более эффективную защиту от ошибок можно применить к битам базового уровня, которые содержат наиболее значительную информацию.

В гибридных кодерах типа MPEG-1, MPEG-2, MPEG-4 (совместно именуемых MPEG-x), H.261, H.262, H.263 и H.264 (совместно именуемых H.26x) имеется масштабируемость пространственная, временная и по отношению сигнал/шум (SNR). При гибридном кодировании временная избыточность устраняется предсказанием с компенсацией движения (MCP). Видео обычно делится на ряд групп изображений (GOP), при этом каждая GOP начинается с внутренне кодированного кадра (I-кадра), за которым следует комбинация кадров с прямым (и/или обратным) предсказанием (P-кадров) и кадров с двунаправленным предсказанием (B-кадров). Как P-кадры, так и B-кадры представляют собой кадры с междукадровым предсказанием, использующие MCP. Базовый уровень может содержать наиболее важную информацию I-кадров, P-кадров или B-кадров на нижнем уровне качества, и улучшенный уровень может содержать высококачественную информацию тех же самых кадров или дополнительных кадров с временным масштабированием, не содержащихся в базовом уровне. Масштабируемость по SNR можно получить в декодере путем селективного пропуска декодирования высококачественных данных на улучшенном уровне, при декодировании данных базового уровня. В зависимости от того, как данные различают по принадлежности к базовому уровню и улучшенному уровню, декодирование данных базового уровня и дополнительно улучшенного уровня может привнести повышение сложности и требований к памяти. Повышение сложности вычислений и повышение требований к памяти может привести к снижению эксплуатационных характеристик устройств, ограниченных по мощности и вычислительным возможностям, например, PDA (электронным секретарям), мобильным телефонам и т.п. Существует потребность в том, чтобы декодирование базового уровня и улучшенного уровня не приводило к значительному повышению сложности вычислений и требований к памяти упомянутых устройств.

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

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

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

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

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

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

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

Кроме того, вышеупомянутые аспекты могут быть реализованы машиночитаемым носителем и/или процессором.

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

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

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

Данные могут содержать данные с междукадровым кодированием. В таком случае способ и устройство для кодирования могут дополнительно содержать способ или средство для кодирования данных с междукадровым кодированием во втором уровне.

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

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

Способ, в котором кодирование дополнительно содержит кодирование некоторых из выбранных данных как данных с внутрикадровым кодированием в первом уровне и некоторых из выбранных данных как данных с междукадровым кодированием во втором уровне.

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

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

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

Кроме того, вышеописанные аспекты могут быть реализованы машиночитаемым носителем и/или процессором.

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

Фиг.1 - изображение примера системы связи для передачи потокового видео;

Фиг.2A - блок-схема последовательности операций способа для одного примера кодирования потокового видео с масштабированием SNR;

Фиг.2B - блок-схема последовательности операций способа для одного примера декодирования в одном уровне потокового видео с масштабированием SNR;

Фиг.3 - изображение примера процесса построения P-кадра;

Фиг.4 - изображение примера реализуемого кодером процесса кодирования коэффициентов базового уровня и улучшенного уровня;

Фиг.5 - изображение примера реализуемого блоком выбора процесса выбора коэффициентов базового уровня и улучшенного уровня для применения в процессе, показанном на фиг.4;

Фиг.6 - изображение другого примера реализуемого блоком выбора процесса выбора коэффициентов базового уровня и улучшенного уровня для применения в процессе, показанном на фиг.4;

Фиг.7 - изображение другого примера реализуемого блоком выбора процесса выбора коэффициентов базового уровня и улучшенного уровня для применения в процессе, показанном на фиг.4;

Фиг.8 - изображение примера реализуемого декодером процесса декодирования данных базового уровня;

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

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

ПОДРОБНОЕ ОПИСАНИЕ

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

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

На фиг.1 изображен пример системы связи для передачи потокового видео. Система 100 содержит кодирующее устройство 105 и декодирующее устройство 110. Кодирующее устройство 105 дополнительно содержит компонент 115 преобразования, компонент 120 квантования, компонент 125 кодирования с масштабированием SNR, запоминающий компонент 130, процессорный компонент 135 и связной компонент 140. Процессор 135 обеспечивает вычислительную платформу для выполнения процессов других компонентов. Компонент 115 преобразования преобразует видеоданные из пространственной области в другую область, например частотную область, в случае DCT (дискретного косинусного преобразования). Данные, которые преобразуются, могут быть данными с внутрикадровым кодированием, в которых преобразуются реальные видеоданные, или данные могут быть данными с внутрикадровым кодированием, в которых преобразуется пространственная невязка предсказания, или данные могут быть данными с междукадровым кодированием, в которых преобразуется остаточная ошибка. Другие цифровые преобразования включают в себя преобразование Адамара, DWT (дискретное вейвлет-преобразование) и целочисленные преобразования, например используемые в H.264.

Компонент 120 квантования распределяет число бит для представления каждого из коэффициентов преобразования. Квантование преобразованных коэффициентов может изменяться для каждого блока или каждого макроблока. Макроблок может быть блоком из 16×16 пикселей (сформированным из яркостного блока 16×16 и двух блоков 8×8 цветности). Параметр квантования QP определяет уровень квантования, которое выполняется. Большее сильное цифровое сжатие реализуется повышением QP, что ведет к снижению качества цифрового представления коэффициентов, которые можно кодировать в базовом уровне видеопотока с масштабированием SNR. Снижение QP обеспечивает повышение качества цифрового представления коэффициентов, которые можно кодировать в улучшенном уровне видеопотока с масштабированием SNR. Компонент 125 кодирования с масштабированием SNR выполняет интерактивный выбор коэффициентов, например, параллельно, при котором коэффициенты разделяются на коэффициенты базового уровня и коэффициенты улучшенного уровня. Интерактивный выбор коэффициентов базового уровня и улучшенного уровня может выполняться таким образом, чтобы декодирующее устройство могло декодировать данные двух уровней, базового уровня и дополнительно улучшенного уровня в одном уровне, и более подробно описан ниже. Запоминающий компонент 130 служит для сохранения информации, например необработанных видеоданных, подлежащих кодированию, кодированных видеоданных, подлежащих преобразованию, или промежуточных данных, обрабатываемых различными компонентами кодера.

Компонент 115 преобразования и компонент 120 квантования выполняют также обратное преобразование и обратное квантование, соответственно. Упомянутые обратные преобразования выполняются в кодере для обеспечения возможности реконструкции коэффициентов таким же образом, как в декодирующем устройстве, чтобы вычисления остаточной ошибки и вычисления коэффициентов улучшенного уровня были как можно точнее.

Связной компонент 140 содержит логические схемы, используемые для приема, например приемник данных, подлежащих кодированию, из внешнего источника 145. Внешний источник 145 может быть, например, внешней памятью, сетью Internet, источник видео и/или аудио в реальном масштабе времени, и прием данных может содержать проводную и/или беспроводную связь. Связной компонент 140 содержит также логические схемы для передачи (Tx) кодированных данных по сети 150. Кодированные данные могут содержать преобразованные данные, квантованные данные, данные, кодированные кодом переменной длины, или любую их комбинацию. Сеть 150 может составлять часть проводной системы, например телефонной, кабельной и волоконно-оптической или беспроводной сети. В случае беспроводных систем связи сеть 150 может содержать, например, часть коммуникационной системы множественного доступа с кодовым разделением каналов (CDMA или CDMA2000) или, в альтернативном варианте, система может быть системой множественного доступа с частотным разделением каналов (FDMA), системой множественного доступа с временным разделением каналов (TDMA), например GSM/GPRS (система пакетной передачи общего пользования)/EDGB (улучшенный GSM для передачи данных) или системой по технологии мобильной телефонной связи TETRA (наземная радиосеть с автоматическим перераспределением каналов) для сферы услуг, широкополосной системой множественного доступа с кодовым разделением каналов (WCDMA), системой с высокой скоростью передачи данных (1xEV-DO или 1xEV-DO Gold Multicast), или, в общем, любой беспроводной коммуникационной системой, использующей любое сочетание технологий. Возможны перестановка или объединение, по меньшей мере, одного элемента кодирующего устройства 105. Например, процессорный компонент 135 может быть внешним по отношению к кодирующему устройству 105.

Декодирующее устройство 110 содержит компоненты, аналогичные компонентам кодирующего устройства 105, включая компонент 155 обратного преобразования, компонент 160 обратного квантования, компонент 165 одноуровневого декодирования, запоминающий компонент 170, связной компонент 175 и процессорный компонент 180. Декодирующее устройство 110 принимает кодированные данные, которые переданы по сети 150 или из внешнего запоминающего устройства 185. Кодированные данные могут содержать преобразованные данные, квантованные данные, данные, кодированные кодом переменной длины, или любую их комбинацию. Связной компонент 175 содержит логические схемы, применяемые для приема (Rx) кодированных данных во взаимодействии с сетью 150, а также логические схемы для приема кодированных данных из внешнего запоминающего устройства 185. Внешнее запоминающее устройство 185 может быть, например, внешней RAM (оперативным запоминающим устройством) или ROM (постоянным запоминающим устройством), или удаленным сервером. Компонент 165 одноуровневого декодирования содержит логические схемы, применяемые для декодирования данных базового уровня и улучшенного уровня. Данные базового уровня могут декодироваться отдельно, например, если улучшенный уровень не принимается или принимается в искаженном состоянии, или для экономии энергии батарейки или энергии для обработки. Компонент 165 одноуровневого декодирования содержит также логические схемы для объединения данных базового уровня и улучшенного уровня, чтобы декодировать объединенные данные в одном уровне. Данные с внутрикадровым кодированием обрабатываются компонентом 160 обратного квантования и после него компонентом 155 обратного преобразования с получением декодированного изображения, которое может быть отображено на дисплейном компоненте 190.

Данные с междукадровым кодированием могут декодироваться после декодирования опорного(ых) кадра(ов), из которого(ых) упомянутые данные прогнозировались. Коэффициенты остаточных ошибок обрабатываются компонентом 165 одноуровневого декодирования, компонентом 160 обратного квантования и компонентом 155 обратного преобразования, что дает декодированную остаточную ошибку. Затем остаточная ошибка объединяется с оптимально совпадающим(и) макроблоком(ами) из опорного(ых) кадра(ов). Декодированные кадры могут отображаться дисплейным компонентом 190, сохраняться во внешнем запоминающем устройстве 185 или сохраняться во внутренней памяти процессорного компонента 180. Дисплейный компонент 190 может составлять неотъемлемую часть декодирующего устройства, которое содержит такие части, как видеотерминальное оборудование и логические схемы, содержащие дисплейный экран, или упомянутый компонент может быть внешним периферийным устройством. Связной компонент 175 содержит также логические схемы, применяемые для передачи декодированных кадров во внешний запоминающий компонент 185 или дисплейный компонент 190. Двухуровневое кодирование и одноуровневое декодирование, выполняемые компонентом 125 кодирования с масштабированием SNR и компонентом 165 одноуровневого декодирования, соответственно, более подробно описаны ниже. По меньшей мере, возможны перестановка и/или объединение, по меньшей мере, одного элемента декодирующего устройства 110. Например, процессорный компонент 180 может быть внешним по отношению к декодирующему устройству 110.

При декодировании видео, можно, например, применить аппаратное видеоядро, для ускорения процесса декодирования, требующего большого объема вычислений, особенно обратного квантования и обратного преобразования. Аппаратное видеоядро может содержать специализированные схемы и/или процессор(ы), способные одновременно выполнять (в конвейерном режиме) несколько функций. Конвейерная обработка дает возможность сократить время декодирования. Любой перерыв в стандартном потоке конвейерной обработки, например дополнительное обратное преобразование, дополнительная операция обратного квантования или даже дополнительные суммирования могут замедлить процесс в целом. Специалистам в данной области техники очевидно, что, по меньшей мере, один вариант осуществления видеоядра можно реализовать аппаратными средствами, программными средствами, встроенными программами, межплатформенным программным обеспечением, микрокодами или любой их комбинацией. В традиционном одноуровневом декодере, декодирование I-кадров, P-кадров и B-кадров происходит по сходному пути для всех. Коэффициенты, независимо от того, представляют ли они видео с внутрикадровым кодированием или остаточные ошибки, подвергаются обратному квантованию, обратному преобразованию и затем объединяются либо с коэффициентами пространственного предсказания, либо с коэффициентами оптимально совпадающих макроблоков. Нижеописанные процессы кодирования и декодирования делают масштабируемое декодирование базового уровня и/или улучшенного(ых) уровня(ей) масштабируемым для аппаратного видеоядра декодера. Один способ решения упомянутой проблемы заключается в декодировании каждого уровня по отдельности, каждого за собственный проход, и в последующем объединении декодированных уровней. Упомянутый двухпроходный подход может повторно использовать те же самые аппаратные схемы для повышения эффективности. Прозрачность для декодера можно обеспечить также объединением данных базового уровня и изменений улучшенного уровня в данных базового уровня прежде, чем объединенные данные декодируются в аппаратном видеоядре в одном проходе, что обеспечивает более высокую эффективность. Операцию объединения может выполнять, например, препроцессор, например DSP (цифровой процессор сигналов).

На фиг.2A представлена блок-схема последовательности операций способа для одного примера кодирования потокового видео с масштабированием SNR. Процесс 200 описывает поток кодирования GOP, образованных из исходного I-кадра, за которым следует несколько P- и/или B-кадров. Каждый кадр может содержать данные базового уровня и/или данные улучшенного уровня. Специалист со средним уровнем компетентности может также выбрать решение обеспечить дополнительные уровни данных.

I-кадр кодируется, 205, макроблоками с полностью внутрикадровым кодированием (интра-MB). В стандарте H.264, интра-MB в I-кадрах кодируются с полностью используемым пространственным предсказанием, которые обеспечивают значительное улучшение кодирования. Существует два подрежима: Intra 4Ч4 и Intra 16Ч16. Если базовый уровень и/или улучшенный уровень, подлежащие кодированию, должны использовать преимущество улучшения кодирования, обеспечиваемое пространственным предсказанием, то базовый уровень кодируется и реконструируется перед кодированием и реконструкцией улучшенного уровня. Применяются двухпроходные кодирование и реконструкция I-кадров. В базовом уровне параметр

QPb квантования базового уровня дает коэффициенты преобразования для размера с шагом грубого квантования. Попиксельное различие между исходным кадром и реконструированным кадром базового уровня можно кодировать в улучшенном уровне. Улучшенный уровень использует параметр QPc квантования, который дает размер с меньшим шагом квантования. Операцию 205 кодирования может выполнять кодирующее средство, например кодер 125 с масштабированием SNR, показанный на фиг.1.

На этапе 210 кодер кодирует данные базового уровня и данные улучшенного уровня для P- и/или B-кадров в GOP. Операцию 210 кодирования может выполнять кодирующее средство, например кодер 125 с масштабированием SNR, показанный на фиг.1. Далее устанавливается 215, существуют ли еще P- или B-кадры для кодирования. Кодирующее средство, например кодер 125 с масштабированием SNR, показанный на фиг.1, может выполнять определение 215. Если остаются еще P- или B-кадры, то этап 210 повторяется, пока не заканчивается кодирование всех кадров в GOP. P- и B-кадры состоят из макроблоков с междукадровым кодированием (интер-MB), хотя в P- и B-кадрах могут находиться интра-MB, как описано ниже.

Чтобы декодер мог делать различие между данными базового уровня и данными улучшенного уровня, кодер кодирует дополнительную служебную информацию на этапе 217. Типы дополнительной служебной информации содержат, например, данные, идентифицирующие число уровней, данные, идентифицирующие уровень как базовый уровень, данные, идентифицирующие уровень как улучшенный уровень, данные, идентифицирующие взаимосвязь между уровнями (например, второй уровень является улучшенным уровнем для первого или базового уровня, или третий уровень является улучшенным уровнем для второго уровня), или данные, идентифицирующие уровень как последний улучшенный уровень в цепочке улучшенных уровней. Дополнительная служебная информация может содержаться в заголовках, соединенных с данными базового и/или улучшенного уровня, к которым она относится, или может содержаться в отдельных передаваемых блоках данных. Операцию 217 может выполнять кодирующее средство, например кодер 125 с масштабированием SNR, показанный на фиг.1. Возможны пропуск, перестановка и/или объединение, по меньшей мере, одного элемента процесса 200.

На фиг.2B представлена блок-схема последовательности операций способа для одного примера декодирования в одном уровне потокового видео с масштабированием SNR, кодированного согласно процессу 200. Процесс 220 описывает поток декодирования GOP, образованных из исходного I-кадра, за которым следует несколько P- и/или B-кадров.

Декодер выделяет 222, дополнительную служебную информацию, например, посредством идентификатора, чтобы идентифицировать различные уровни, содержащиеся в битовом(ых) потоке(ах), которые он принимает, а также взаимосвязи между уровнями. Упомянутая дополнительная служебная информация позволяет декодеру идентифицировать информацию базового уровня и выбрать решение декодировать один лишь базовый уровень. На этапе 225 выбирается решение, декодировать ли только базовый уровень или декодировать объединенный базовый и улучшенный уровень. Средство декодирования, например, компонент 165 одноуровневого декодирования может выполнять этап 225. Если требуется декодировать только базовый уровень, то декодер выполняет обычное одноуровневое декодирование интра-MB и интер-MB на этапе 260. Средство декодирования, например компонент 165 одноуровневого декодирования, показанное на фиг.1, может выполнять этап 260. В данном примере, если требуется также декодировать улучшенный уровень, то интра-MB декодируются по двухпроходной схеме или однопроходной схеме, тогда как слои интер-MB декодируются за один проход, как подробно описано ниже. Декодер может использовать дополнительные служебные данные, идентифицирующие число уровней, или дополнительные служебный данные, идентифицирующие уровень как последний уровень, вместе с данными, идентифицирующими взаимосвязи между уровнями, чтобы установить, когда упомянутый декодер принял все слои, присутствующие в битовом потоке для текущей секции, которую декодер обрабатывает. Операцию 222 может выполнять средство выделения, например одноуровневый декодер 165, показанный на фиг.1.

В приведенном примере для каждого