МАСШТАБИРУЕМОЕ ВИДЕОКОДИРОВАНИЕ С ДВУХУРОВНЕВЫМ КОДИРОВАНИЕМ И ОДНОУРОВНЕВЫМ ДЕКОДИРОВАНИЕМ
SCALABLE VIDEO CODING WITH TWO-LEVEL CODING AND ONE-LEVEL DECODING

Настоящая заявка на патент испрашивает приоритет предварительной заявки №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-кадров. В базовом уровне параметр
b
c
QP квантования базового уровня дает коэффициенты преобразования для размера с шагом грубого квантования. Попиксельное различие между исходным кадром и реконструированным кадром базового уровня можно кодировать в улучшенном уровне. Улучшенный уровень использует параметр QP квантования, который дает размер с меньшим шагом квантования. Операцию 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.
b
b
e
b
b
В приведенном примере для каждого I-кадра применяется двухпроходный процесс декодирования. На этапе 230 I-кадр базового уровня декодируется в течение первого прохода, и на этапе 235 декодируется улучшенный уровень, содержащий дифференциальное уточнение для базового уровня, и объединяется с базовым уровнем (как P-кадр с нулевыми векторами движения) для формирования I-кадра улучшенного уровня. Операции 230 и 235 может выполнять средство декодирования, например одноуровневый декодер 165, показанный на фиг.1. Если декодирующее устройство не нуждается в декодированном I-кадре I базового уровня, то буфер памяти, содержащий I, можно перезаписать, и декодированный I-кадр I улучшенного уровня можно использовать в качестве опорного для последующих предсказанных кадров. Такая перезапись памяти или перемещение содержимого памяти выполняется на этапе 240. Операцию 240 может выполнять средство перемещения содержимого памяти, например запоминающий компонент 170, показанный на фиг.1. Декодирующее устройство может перезаписывать I, если кодер не использует I для какого-либо последующего предсказания с компенсацией движения.
Однопроходное декодирование применяют для P- и B-кадров. Как описано ниже, коэффициенты базового и улучшенного уровней P- и B-кадров кодируются таким образом, чтобы обеспечивалось однопроходное декодирование. Декодер, после приема коэффициентов базового и улучшенного уровней, объединяет их на этапе 245 и декодирует их в одном уровне на этапе 250 точно так, как если бы это был нормально кодированный P- или B-кадр. Этап приема (этап приема, не показанный на фиг.2B) может выполняться приемным средством, например приемником типа связного компонента 175, показанного на фиг.1. Подробное описание этапа 245 объединения и этапа 250 декодирования приведено ниже. Этапы 245 и 250 могут выполняться средством объединения, например объединителем, и средством декодирования, например компонентом 165 одноуровневого декодирования, показанным на фиг.1. Этап 255 выбора решения проверяет битовый поток для определения, завершена ли GOP, подлежащая декодированию. Если GOP завершена, то процесс заканчивается и затем начинается снова на новой GOP. Если существуют еще P- и/или B-кадры, остающиеся в GOP, то этапы 245 и 250 повторяются, пока GOP не декодируется полностью. Операцию 255 может выполнять средство декодирования, например компонент 165 одноуровневого декодирования, показанный на фиг.1.
Для обеспечения одноуровневого декодирования коэффициенты двух уровней объединяют перед обратным квантованием. Поэтому коэффициенты двух уровней могут генерироваться интерактивно; в противном случае возможно введение большого количества служебных данных. Одна причина увеличения объема служебных данных состоит в том, что кодирование базового уровня и кодирование улучшенного уровня может использовать разные опорные временные сигналы. Требуется алгоритм для генерации коэффициентов базового уровня и улучшенного уровня, которые могут быть объединены в декодере перед обратным квантованием, когда существуют оба уровня. В то же время, алгоритм может обеспечивать приемлемое видео базового уровня, когда улучшенный уровень отсутствует, или декодер выбирает решение не декодировать улучшенный уровень по таким причинам, как, например, экономия энергии. Перед пояснением деталей алгоритма полезно пояснить стандартное кодирование с предсказанием. Возможны пропуск, перестановка и/или объединение, по меньшей мере, одного элемента процесса 220.
В P-кадрах (или любых секциях с междукадровым кодированием) возможно использование временной избыточности между областью в текущем изображении и областью оптимально совпадающего предсказания. Местоположение области оптимально совпадающего предсказания в опорном кадре можно кодировать множеством векторов движения. Разность между текущей областью и опорной областью оптимально совпадающего предсказания известна как остаточная ошибка (или ошибка предсказания). На фиг.3 изображен пример процесса построения P-кадра в, например, MPEG-4. Процесс 300 является более подробным изображением примерного процесса, который может иметь место на этапе 210, показанном на фиг.2A. Процесс 300 содержит текущее изображение 325, образованное из макроблоков 5×5, при этом число макроблоков в данном примере является произвольным. Макроблок образован из 16×16 пикселей. Пиксели могут определяться 8-битовым яркостным значением (Y) и двумя 8-битовыми значениями (Cr и Cb) цветности. В стандарте MPEG, компоненты Y, Cr и Cb могут сохраняться в формате 4:2:0, при этом компоненты Cr и Cb 2-кратно субдискретизируются 2 по направлениям X и Y. Следовательно, каждый макроблок должен состоять из 256 компонент Y, 64 компонент Cr и 64 компонент Cb. Макроблок 335 текущего изображения 325 спрогнозирован из опорного изображения 330. Как текущее изображение 325, так и опорное изображение 330 расположены в последовательности изображений. Поиск выполняется в опорном изображении 330 для обнаружения местонахождения оптимально совпадающего макроблока 340, который является наиболее точно соответствующим с точки зрения значений Y, Cr и Cb текущему кодируемому макроблоку 335. Местоположение оптимально совпадающего макроблока 340 в опорном изображении 330 кодируется вектором 345 движения. Опорное изображение 330 может быть I-кадром или P-кадром, который декодер может реконструировать перед реконструкцией текущего изображения 325. Оптимально совпадающий макроблок 340 вычитается из текущего макроблока 335 (вычисляется разность для каждой из компонент Y, Cr и Cb), что дает остаточную ошибку 350. Остаточная ошибка 350 кодируется посредством 2-мерного дискретного косинусного преобразования (DCT) 355 и затем квантуется 360. Квантование 360 может выполняться для обеспечения пространственного сжатия, например, путем распределения меньшего количества бит коэффициентам для высоких частот, при распределении большего количества бит коэффициентам для низких частот. Квантованные коэффициенты остаточной ошибки 350 вместе с вектором 345 движения и информацией, идентифицирующей опорное изображение 330, являются кодированной информацией, представляющей текущий макроблок 335. Кодированная информация может сохраняться в памяти для будущего использования или обрабатываться в целях, например, коррекции ошибки или улучшения изображения, или передаваться по сети 365.
Кодированные квантованные коэффициенты остаточной ошибки 350 вместе с кодированным вектором 345 движения можно применить для реконструкции текущего макроблока 335 в кодере для использования в виде части опорного кадра для оценки и компенсации движения. Кодер может имитировать процедуры декодера при такого рода реконструкции P-кадра. Имитация декодера может привести к обработке кодера и декодера с одним и тем же опорным изображением. В данном описании представлен процесс реконструкции, вне зависимости от того, выполняется ли он в кодере для дальнейшего междукадрового кодирования или в декодере. Реконструкция P-кадра может начинаться после реконструкции опорного кадра (или участка изображения или кадра, которое(ый) принимается за опорное(ый)). Кодированные квантованные коэффициенты подвергаются обратному квантованию 370, и затем выполняется 2-мерное обратное DCT или IDCT 375, с получением в результате декодированной или реконструированной остаточной ошибки 380. Кодированный вектор 345 движения декодируется и применяется для определения местоположения уже реконструированного оптимально совпадающего макроблока 385 в уже реконструированном опорном изображении 330. Затем реконструированную остаточную ошибку 380 прибавляют к реконструированному оптимально совпадающему макроблоку 385 для формирования реконструированного макроблока 390. Реконструированный макроблок 390 можно сохранять в памяти, отображать независимо или в изображении вместе с другими реконструированными макроблоками или обрабатывать дополнительно для улучшения изображения.
B-кадры (или любая секция, кодированная с двунаправленным предсказанием) могут использовать временную избыточность между областью в текущем изображении и областью оптимально совпадающего предсказания в предыдущем изображении и предыдущим изображением и областью оптимально совпадающего предсказания в последующем изображении. Последующая область оптимально совпадающего предсказания и предыдущая область оптимально совпадающего предсказания объединяются для формирования объединенной области двунаправленного предсказания. Разность между областью текущего изображения и объединенной областью оптимально совпадающего двунаправленного предсказания равна остаточной ошибке (или ошибке предсказания). Местоположения области оптимального совпадающего предсказания в последующем опорном изображении и области оптимального совпадающего предсказания в предыдущем опорном изображении можно кодировать двумя векторами движения.
На фиг.4 изображен пример реализуемого кодером процесса кодирования коэффициентов базового уровня и улучшенного уровня. Базовый и улучшенный уровни кодируются для обеспечения битовых потоков с масштабированием SNR. Процесс 400 отражает пример кодирования коэффициентов остаточной ошибки для интер-MB, например, такого, которое выполнялось бы на этапе 210, показанном на фиг.2A. Однако подобные способы можно применить также для кодирования коэффициентов для интра-MB. Процесс 400 и этап 210, показанный на фиг.2A, могут выполняться средством кодирования, например компонентом 125 кодирования с масштабированием SNR, показанным на фиг.1. Исходные (подлежащие кодированию) видеоданные 406 (в настоящем примере видеоданные содержат информацию о яркости и цветности) вводятся в контур 402 оптимально совпадающего макроблока базового уровня и контур 404 оптимально совпадающего макроблока улучшенного уровня. Оба контура 402 и 404 стремятся минимизировать остаточную ошибку, которая вычисляется в сумматорах 422 и 438, соответственно. Контуры 402 и 404 могут быть выполненными параллельно, как показано, или последовательно. Контуры 402 и 404 содержат логические схемы для поиска буферов 420 и 436, соответственно, которые содержат опорные кадры, для идентификации оптимально совпадающего макроблока, который минимизирует остаточную ошибку между оптимально совпадающим макроблоком и исходными данными 406 (буферы 420 и 436 могут быть одним и тем же буфером). Остаточные ошибки контура 402 и контура 404 могут различаться, поскольку контур 402 базового уровня обычно может использовать более крупный размер шага квантования (более высокое значение QP), чем контур 404 улучшенного уровня. Блоки 408 и 424 преобразования преобразуют остаточные ошибки каждого контура. В одном примере кодер связывает информацию заголовка оптимально сопадающего макроблока (или блока пикселей с любым размером) и информацию соответствующего вектора движения с базовым уровнем, при этом упомянутая информация заголовка блока и информация вектора движения извлекаются из принятых исходных данных.
Затем преобразованные коэффициенты разделяются на коэффициенты базового уровня и улучшенного уровня в блоке выбора 410. Разделение блоком 410 выбора может принимать несколько форм, описанных ниже. Одна общая особенность методов разделения состоит в том, что основной коэффициент  улучшенного уровня вычисляется так, что он представляет собой дифференциальное уточнение основного коэффициента  базового уровня. Вычисление улучшенного уровня в виде уточнения базового уровня позволяет декодеру декодировать коэффициент базового уровня отдельно и получать пригодное представление изображения или объединять коэффициенты базового и улучшенного уровней и получать уточненное представление изображения. Затем основные коэффициенты, выбранные и вычисленные блоком 410 выбора, квантуются квантователями 412 и 426. Квантованные основные коэффициенты  и  (вычисленные квантователями 412 и 426, соответственно) могут сохраняться в запоминающем средстве, например, запоминающем компоненте 130, показанном на фиг.1, или передаваться по сети в декодер.
Для согласования реконструкции макроблока в декодере блок 414 обратного квантования выполняет обратное квантование коэффициентов остаточной ошибки базового уровня. Обратно-квантованные коэффициенты остаточной ошибки подвергаются обратному преобразованию 416 и добавляются 418 к оптимально совпадающему макроблоку, найденному в буфере 420, что дает реконструированный макроблок, который согласуется с тем, что может быть реконструировано в декодере. Квантователь 426, блок 428 обратного квантования, блок 432 обратного преобразования, сумматор 434 и буфер 436 выполняют в контуре 404 улучшенного уровня вычисления, аналогичные выполняемым в контуре 402 базового уровня. Кроме того, сумматор 430 служит для объединения обратно-квантованных коэффициентов улучшенного уровня и базового уровня, применяемых при реконструкции улучшенного уровня. Квантователь и блок обратного квантования улучшенного уровня обычно могут использовать более мелкий размер шага квантователя (меньшее значение QP), чем для базового уровня. Возможны пропуск, перестановка и/или объединение, по меньшей мере, одного элемента процесса 400.
На фиг. 5, 6 и 7 показаны примеры реализуемых блоком выбора процессов выбора коэффициентов базового уровня и улучшенного уровня, которые могут применяться в блоке 410 выбора, показанном на фиг.4. Процессы, показанные на фиг.5, 6 и 7, могут выполняться средством выбора, например компонентом 125 кодирования с масштабированием SNR, показанным на фиг.1. В примере на фиг.5 преобразованные коэффициенты разделяются на основные коэффициенты базового и улучшенного уровней следующим образом:
<img file="00000005.tif" he="13" wi="63" img-content="undefined" img-format="tif" />
если <img file="00000006.tif" he="6" wi="8" img-content="undefined" img-format="tif" /> и <img file="00000007.tif" he="6" wi="7" img-content="undefined" img-format="tif" />с разными знакамив ином случае
[1]
, [2]
b
b
-1
где функция «min» является математическим минимумом двух аргументов, и  Формула [1] отражает блок 505 и формула [2] отражает сумматор 510 на фиг.5. Формула [2] Q отражает квантователь 412 базового уровня, и Q  отражает блок 414 обратного квантования базового уровня. Формула [2] преобразует коэффициент улучшенного уровня в дифференциальное уточнение коэффициента базового уровня, вычисленного по формуле [1].
На фиг.6 изображен другой пример блока 410 выбора коэффициента уточняющего уровня. В этом примере формула (3), реализуемая блоком 605, представляет основной коэффициент базового уровня следующим образом:
<img file="00000010.tif" he="12" wi="24" img-content="undefined" img-format="tif" />
если <img file="00000011.tif" he="7" wi="47" img-content="undefined" img-format="tif" />в ином случае
[3]
Сумматор 610 вычисляет основной коэффициент улучшенного уровня следующим образом:
[4],
где  дается формулой [3].
На фиг.7 изображен другой пример блока 410 выбора базового уровня и улучшенного уровня. В этом примере основной коэффициент базового уровня не изменяется по сравнению с исходным коэффициентом базового уровня, и основной коэффициент улучшенного уровня равен разности между квантованным/обратно-квантованным коэффициентом базового уровня и исходным коэффициентом улучшенного уровня. В зависимости от процесса блок 410 выбора можно использовать с исходными коэффициентами базового уровня и улучшенного уровня, которые являются кодированными коэффициентами с междукадровым или внутрикадровым кодированием.
Независимо от того, который примерный процесс из тех, что показаны на фиг.5, 6 или 7, применяется в блоке 410 выбора, декодер выполняет при декодировании одни и те же операции, как поясняется ниже. Контуры 402 и 404 могут обрабатывать оба уровня синхронно с привязкой к одному совпадающему макроблоку или асинхронно, с ориентацией каждого контура на отличающийся опорный макроблок (как опорная информация базового уровня, так и опорная информация улучшенного уровня могут быть кодированы в дополнительной служебной информации, как поясняется ниже). Если контуры 402 и 404 ориентированы на разные опорные макроблоки, декодер может использовать кодированную опорную информацию базового уровня для декодирования только базового уровня, или декодер может использовать кодированную опорную информацию улучшенного уровня для декодирования объединенных базового уровня и улучшенного уровня.
Кроме коэффициентов остаточных ошибок базового и улучшенного уровней, декодер нуждается в информации, идентифицирующей, как кодированы MB. Средство кодирования, например, компонент 125 кодирования с масштабированием SNR, показанный на фиг.1, во время выполнения этапа 210, показанного на фиг.2A, кодирует дополнительную служебную информацию, которая может содержать таблицу участков с внутрикадровым и междукадровым кодированием, например таблицу MB, в которой макроблоки (или суб-макроблоки) идентифицированы как кодированные внутрикадровым или междукадровым методом, например идентификатором (идентифицирующим также тип междукадрового кодирования, включая, например, прямое, обратное или двунаправленное) и кадр(ы), к которому(ым) привязаны участки с междукадровым кодированием. В примерном варианте осуществления таблица MB и коэффициенты базового уровня кодированы в базовом уровне и коэффициент улучшенного уровня кодирован в улучшенном уровне.
b
На фиг.8 изображен пример реализуемого в декодере процесса декодирования одного уровня видеоданных, а именно данных базового уровня в приведенном примере, например, процесса, который исполнялся бы на этапе 260, показанном на фиг.2B. В процессе 800 квантованные коэффициенты  отражают либо данные с внутрикадровым кодированием, либо данные остаточной ошибки с междукадровым кодированием. Коэффициенты обрабатываются обратным квантованием 805, обратным преобразованием 810, и добавляются 815 в данные пространственного или временного предсказания, хранимые в буфере 820. Этап 805 обратного квантования использует параметр QP квантования базового уровня. Получаемое декодированное выходное видео 825 базового уровня может сохраняться в запоминающем средстве, например запоминающем компоненте 170, показанном на фиг.1, или отображаться на дисплейном средстве, например дисплейном компоненте 190, показанном на фиг.1.
Процесс 800 может повторяться на втором проходе с коэффициентами
e
b
улучшенного уровня, заменяющими коэффициенты  базового уровня, и с параметром QP квантования улучшенного уровня, заменяющим параметр QP базового уровня с этапа 805. Получаемые выходные данные могут представлять собой декодированное выходное видео улучшенного уровня. Затем выходное видео 825 базового уровня может объединяться в пиксельной области с выходным видео улучшенного уровня. Упомянутый двухпроходный процесс может повторно использовать те же самые аппаратные схемы декодера для повышения эффективности. Описанный процесс декодирования можно применить независимо от того, который процесс кодирования из тех, что показаны на фиг.5, 6 или 7, применялся.
b
e
На фиг.9 изображен пример реализуемого декодером процесса декодирования данных базового уровня и дополнительно улучшенного уровня, например такого, который выполнялся бы на этапах 245 и 250, показанных на фиг.2B. В ходе процесса 900, квантованные коэффициенты  и  подвергаются обратному квантованию на этапах 905 и 910, соответственно, и объединяются в преобразованной (например, частотной) области, при добавлении этапа 915. Операция 905 обратного квантования использует параметр QP квантования базового уровня, а операция 910 обратного квантования использует меньший параметр QP квантования улучшенного уровня. Затем объединенные коэффициенты подвергаются обратному преобразованию 920 и прибавляют на этапе 925 к данным пространственного или временного предсказания, хранимым в буфере 930. Описанный процесс декодирования может применяться независимо от того, какой процесс кодирования из тех, что показаны на фиг.5, 6 или 7, применялся. Получаемое выходное видео 935 улучшенного уровня может сохраняться в памяти или отображаться.
p
b
e
Процесс 900 имеет одно серьезное отличие от процесса 800. В процессе 900 применяются две операции 905 и 910 обратного квантования вместо одной операции 805 обратного квантования в процессе 800. Если обратное квантование выполняется в конвейерном режиме в аппаратном ядре, то очень желательно наличие только одного этапа обратного квантования для декодирования улучшенного уровня, как в процессе 800 декодирования базового уровня. В одном примере для сокращения числа этапов обратного квантования до одного, применяются параметры квантования, связанные математическими характеристиками. Размер шага квантования удваивается при каждом наращивании на 6 в Q для H.264. Если QP=QP+6, то коэффициенты базового уровня можно преобразовывать к масштабу улучшенного уровня и объединять по следующей формуле:
. [5]
b
e
b
e
На фиг.10 изображен другой пример реализуемого декодером процесса декодирования данных базового уровня и дополнительно улучшенного уровня. В процессе 1000 применяется квантование базового уровня и улучшенного уровня, при QP=QP+6. Как показано в формуле [5], коэффициенты базового уровня преобразуются к масштабу улучшенного уровня сдвигом (вид масштабирования) коэффициентов на один бит влево на этапе 1005 и прибавляются к коэффициенту улучшенного уровня на этапе 1010. Следовательно, требуются только одна операция обратного квантования на этапе 1015 и одна операция обратного преобразования на этапе 1020. Если коэффициент базового уровня равен нулю, то сдвиг не обязателен. Поэтому чтобы воспользоваться указанным свойством, когда как , так и  не равны нулю, разность между QP и QP может быть кратной 6. Можно также применить другие способы, кроме битового сдвига, например, умножение на коэффициент масштабирования, например, в преобразователе масштаба.
P-кадры и B-кадры могут содержать интра-MB, а также интер-MB. Общим для гибридных видеокодеров является использование оптимизации искажения, зависящего от скорости передачи (RD), для выбора решения относительно кодирования некоторых макроблоков в P- или B-кадрах в виде интра-MB. Для обеспечения одноуровневого декодирования, когда интра-MB не зависят от интер-MB базового уровня и/или улучшенного уровня, никакие соседние интер-MB не применяются для пространственного прогнозирования интра-MB базового уровня. Чтобы сохранить сложность вычислений без изменений при декодировании улучшенного уровня, для интра-MB в P- или B-кадре базового уровня можно пропускать уточнение в улучшенном уровне.
Интра-MB в P- или B-кадрах требуют намного больше бит, чем интер-MB. По этой причине интра-MB в P- или B-кадрах можно кодировать только с качеством базового уровня, при более высоком значении QP. Это может внести некоторое ухудшение качества видео, однако упомянутое ухудшение не должно становиться заметным, если оно исправляется в последующем кадре коэффициентами для интер-MB в базовом и улучшенном уровне, как описано выше. Упомянутое ухудшение незаметно по двум причинам. Первой причиной является особенность зрительной системы человека (HVS), и другой причиной является то, что интер-MB уточняют интра-MB. Для объектов, которые изменяют положение между первым и вторым кадром, некоторые пиксели первого кадра не видимы во втором кадре (открытая информация), и некоторые пиксели второго кадра видимы в первый раз (открытая информация). Глаза человека не чувствительны к открытой и скрываемой визуальной информации. Поэтому что касается открытой информации, даже если она кодирована с низким качеством, глаза не могут свидетельствовать о различии. Если та же самая информация остается в следующем P-кадре, то существует высокая вероятность того, что следующий P-кадр в улучшенном уровне может уточнить упомянутую информацию, так как улучшенный уровень характеризуется низким QP.
b
e
e
b
Другой общий метод, по которому интра-MB вводятся в P- или B-кадры, известен под названием внутреннего обновления (Intra Refresh). В таком случае некоторые MB кодируются как интра-MB, даже несмотря на то, что стандартная оптимизация RD указывает, что они могут быть MB с междукадровым кодированием. Упомянутые MB с междукадровым кодированием, содержащие в базовом уровне, можно кодировать с использованием либо QP, либо QP. Если для базового уровня используют QP, то в улучшенном уровне уточнения не требуется. Если для базового уровня используют QP, то уточнение может быть целесообразным, иначе в улучшенном уровне может быть заметно снижение качества. Поскольку междукадровое кодирование эффективнее внутрикадрового кодирования с точки зрения эффективности кодирования, упомянутые уточнения в улучшенном уровне могут кодированы междукадровым методом. При этом коэффициенты базового уровня нельзя использовать для улучшенного уровня. Поэтому качество в улучшенном уровне повышается без введения новых операций.
B-кадры обычно применяются в улучшенных уровнях по причине высокого качества сжатия, которое они обеспечивают. Однако, возможно, потребуется привязка B-кадров к интра-MB P-кадра. Если бы пиксели B-кадра пришлось кодировать с качеством улучшенного уровня, то это могло бы потребовать слишком большого числа бит вследствие пониженного качества интра-MB P-кадра, как пояснялось выше. Путем использования вышеизложенных характеристик HVS, MB B-кадра можно кодировать с пониженным качеством при привязке к интра-MB пониженного качества в P-кадрах.
Одним предельным случаем интра-MB в P- или B-кадрах является случай, когда все MB в P- или B-кадре кодированы в режиме внутрикадрового кодирования из-за наличия изменения сцены в кодируемом видео. В таком случае весь кадр можно кодировать с качеством базового уровня и без уточнения в улучшенном уровне. Если изменение сцены имеет место в B-кадре, и предполагается, что в улучшенном уровне кодированы только B-кадры, то B-кадр можно кодировать с качеством базового уровня или просто игнорировать. Если изменение сцены имеет место в P-кадре, то изменения не обязательны, но P-кадр можно игнорировать или кодировать с качеством базового уровня.
Вышеописанные примерные процессы кодирования используют способы выбора коэффициента базового уровня и улучшенного уровня после того, как преобразованы исходные данные. Перед преобразованием коэффициентов можно использовать аналогичные методы выбора.
Специалистам в данной области техники должно быть очевидно, что информацию и сигналы можно представлять с использованием любых из множества различных технологий и методов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные сигналы, которые могли упоминаться в вышеприведенном описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Кроме того, специалистам должно быть очевидно, что различные поясняющие логические блоки, модули и шаги алгоритмов, описанные в связи с примерами, представленными в настоящем описании, могут быть реализованы в электронной аппаратуре, компьютерном программном обеспечении или их комбинации. Для четкой иллюстрации упомянутой взаимозаменяемости аппаратуры и программных средств, различные наглядные компоненты, блоки, модули, схемы и шаги описаны выше, в основном, с учетом их функциональных свойств. Подход к реализации упомянутых функций, т.е. в аппаратуре или программных средствах, зависит от конкретного применения и проектных ограничений, налагаемых на систему в целом. Специалисты могут реализовать описанные функции различными способами для каждого конкретного применения, но решения по такой реализации не подлежат интерпретации, как приводящие к выходу за пределы объема описанных способов.
Различные поясняющие логические блоки, модули и схемы, описанные в связи с примерами, представленными в настоящем описании, могут быть реализованы или выполняться в универсальном процессоре, цифровом процессоре сигналов (DSP), прикладной специализированной интегральной схеме (ASIC), программируемой вентильной матрице (FPGA) или другом программируемом логическом устройстве, логическом элементе на дискретных компонентах или транзисторных логических схемах, дискретных программных компонентах или любой их комбинации, предназначенной для выполнения описанных здесь функций. Универсальный процессор может быть микропроцессором, но, в альтернативном варианте, процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор можно также реализовать в виде комбинации вычислительных устройств, например комбинации DSP и микропроцессора, множества микропроцессоров, по меньшей мере, одного микропроцессора в связи с центральным DSP или любой другой подобной конфигурации.
Этапы способа или алгоритма, описанного в связи с примерами, представленными в настоящем описании, могут быть осуществлены непосредственно в аппаратуре, в программном модуле, исполняемом процессором или в их комбинации. Программный модуль может содержаться в памяти RAM, флэш-памяти, памяти ROM, памяти EPROM (стираемом программируемом постоянном запоминающем устройстве), памяти EEPROM (электрически стираемом программируемом постоянном запоминающем устройстве), регистрах, на жестком диске, сменном диске, CD-ROM (компакт-диске) или носителе данных любого другого вида, известном в технике. Например, носитель связывают с процессором так, чтобы процессор мог считывать информацию с носителя данных или на него. В альтернативном варианте носитель данных может быть встроен в процессор. Процессор и носитель данных могут находиться на прикладной специализированной интегральной схеме (ASIC). ASIC может находиться в беспроводном модеме. В альтернативном варианте, процессор и носитель данных могут находиться в виде дискретных компонентов в беспроводном модеме.
Вышеизложенное описание представленных примеров дано для того, чтобы любой специалист в данной области техники мог воспользоваться описанными способами и устройствами. Специалистам в данной области техники должны быть совершенно очевидны различные модификации представленных примеров, и описанные здесь принципы применимы к другим примерам без выхода за пределы сущности или объема описанного способа и устройства.
Таким образом, описаны способ и устройство для обеспечения видеоприемлемого качества в базовом уровне и видеоповышенного качества в улучшенном уровне, при минимуме непроизводительных рабочих затрат декодера.