Улучшенное кодирование мультимедийных данных
Иллюстрации
Показать всеИзобретение относится к кодированию видеоданных. Техническим результатом является повышение эффективности кодирования мультимедийных данных, таких как видеокадр, с возможностью определения соответствующего параметра квантования для кодирования такого видеокадра. Указанный результат достигается тем, что предложен способ кодирования видеокадра, имеющего множество блоков, содержащий этапы, на которых: принимают последовательные видеокадры, содержащие, по меньшей мере, один В-кадр для, по меньшей мере, двух режимов кодирования, причем эти режимы кодирования задают различные пути, которыми блок В-кадра может быть разделен, определяют первый вектор движения, который ассоциирован с В-кадром и первым опорным кадром, и определяют стоимостный показатель путем использования первого вектора движения и принятого по умолчанию параметра квантования; выбирают один из упомянутых режимов кодирования на основе результатов определения стоимостного показателя; определяют параметр квантования путем использования первого вектора движения, ассоциированного с выбранным режимом кодирования; кодируют блок В-кадра путем использования определенного параметра квантования и выбранного режима кодирования. 10 н. и 70 з.п. ф-лы, 7 ил.
Реферат
Испрашивание приоритета в соответствии с 35 U.S.C §119
По настоящей заявке на патент испрашивается приоритет предварительной заявки № 60/660,874 под названием "IMPROVED B FRAME ENCODING", поданной 10 марта 2005г. и переуступленной правообладателю настоящей заявки, и которая, таким образом, полностью приведена здесь в качестве ссылочного материала.
Область техники, к которой относится изобретение
Изобретение, в общем, относится к кодированию мультимедийных данных и, более конкретно, к кодированию видеоданных.
Предшествующий уровень техники
Из-за резкого роста и большого успеха Интернета и беспроводной связи при одновременном увеличении спроса на мультимедийные услуги потоковая передача мультимедийных данных через Интернет или беспроводные каналы привлекают огромное внимание. Например, мультимедийные данные, такие как видеоданные, передают по сети, и они могут быть переданы в потоковом режиме одним или больше устройствами-клиентами, такими как мобильные телефоны и телевизоры. Режим передачи может представлять собой одноадресную или групповую передачу. В случае систем беспроводной связи радиоинтерфейс может быть реализован с использованием одной из следующих технологий: множественный доступ с кодовым разделением каналов (CDMA), множественный доступ с разделением частот (FDMA), множественный доступ с ортогональным частотным разделением каналов (OFDMA), множественный доступ с временным разделением каналов (TDMA), глобальная система мобильной связи (GSM) и широкополосный CDMA (WCDMA).
Перед передачей видеоданные кодируют. Существует множество стандартов кодирования видеоданных, и некоторые из них представляют собой MPEG-2, MPEG-4, H.263, H.264 и т.п. Видеоданные содержат три типа кадров - I-кадры (интракадры), P-кадры (предикативные кадры) и B-кадры (двунаправленные кадры).
Рассмотрим вначале I-кадры, их кодируют независимо от любых других кадров. То есть их кодируют, используя только информацию, содержащуюся в самом кадре, таким же образом кодируют неподвижные изображения, например, используя дискретное косинусное преобразование (DCT), квантование, кодирование по длинам серий и так далее. Это называется интракодированием. Существуют, в общем, один или два I кадра, ассоциированных с каждой секундой видеоданных. Сложные кадры кодируют как I-кадры.
Что касается P- и B-кадров, оба эти типа кодируют с обращением к предыдущему кадру, то есть они интеркодированы. P-кадры кодируют с обращением к предыдущему кадру, что называется прогнозированием вперед. B-кадры кодируют со ссылкой на один или на оба из предыдущего кадра (прогнозирование вперед) и следующего кадра (прогнозирование назад). Применение прогнозирования вперед, назад или одновременно вперед и назад позволяет использовать меньшее количество битов для кодирования, поскольку кодируют только изменения от одного кадра к следующему.
Кроме того, при кодировании видеоданных B-кадры вводятся для получения лучшей функциональности, такой как масштабируемость по времени и эффективность кодирования. B B-кадрах могут использоваться прогнозирование с компенсацией движения на основе соседних для них предшествующих и последующих кадров, как описано выше. Такие опорные кадры кодируются и затем воссоздаются до B-кадров. В каждом блоке, например, блоке пикселей размером 16×16 или макроблоке (MB и МБ) В-кадра может использоваться прогнозирование из любого направления или в обоих направлениях, и, таким образом, эти возможности обеспечивают масштабируемость по времени. Эффективность кодирования обеспечивается, поскольку только остаточные данные или разность между В-кадром и опорным кадром, определяемая после прогнозирования, будет преобразована, квантована и кодирована.
Для эффективного кодирования мультимедийных данных, таких как видеокадр, требуется определить соответствующий параметр квантования для кодирования такого видеокадра.
Сущность изобретения
Способы и устройство, которые будут описаны ниже, в общем, относятся к кодированию видеоданных. В одном варианте выполнения принимают последовательные видеокадры, содержащие, по меньшей мере, один B-кадр. Для каждого из, по меньшей мере, двух режимов кодирования, задающих, как может быть разделен блок B-кадра, определяют первый вектор движения, ассоциированный с B-кадром и первым опорным кадром, и определяют стоимостный показатель, используя первый вектор движения и заданный по умолчанию параметр квантования. На основе определенного стоимостного показателя выбирают один из упомянутых режимов кодирования. Параметр квантования определяют, используя первый вектор движения, ассоциированный с выбранным режимом кодирования. Упомянутый блок B-кадра кодируют, используя определенный параметр квантования и выбранный режима кодирования.
В другом варианте выполнения принимают последовательные видеокадры, содержащие, по меньшей мере, один B-кадр. Для двух или больше режимов кодирования, задающих, как может быть разделен блок B-кадра, определяют первый вектор движения, ассоциированный с B-кадром, и первый опорный кадр, и параметр квантования определяют для блока B-кадра, используя первый вектор движения. Выбирают один из параметров квантования, определенных для режимов кодирования. Упомянутый блок B-кадра кодируют, используя выбранный параметр квантования и ассоциированный с ним режим кодирования.
Перечень фигур чертежей
На фиг.1 иллюстрируется система, содержащая кодер и декодер;
на фиг.2 иллюстрируется определение параметра квантования, ассоциированного с конкретным блоком кадра;
на фиг.3 иллюстрируются различные режимы кодирования, задающие, как блок видеокадра может быть разделен для кодирования;
на фиг.4 иллюстрируется пример способа кодирования данных;
на фиг.5 иллюстрируется примерное устройство кодирования данных;
на фиг.6 иллюстрируется другой пример способа кодирования данных; и
на фиг.7 иллюстрируется еще один пример устройства кодирования данных.
Подробное описание изобретения
Приведенное ниже описание представляет несколько примеров, относящихся к тому, как может быть определен параметр квантования, чтобы, например, меньшее количество битов можно было выделять для кодирования видеокадра по сравнению с обычными подходами. Такое уменьшение количества битов позволяет достичь более высокой эффективности, в частности, для вариантов применения с ограниченной полосой пропускания, таких как широковещательная передача видеоизображения.
В следующем описании приведены конкретные детали, обеспечивающие полное понимание вариантов выполнения. Однако для специалистов в данной области техники будет понятно, что варианты выполнения могут быть реализованы на практике без этих конкретных деталей. Например, электрические компоненты могут быть показаны в блок-схемах для того, чтобы не загромождать описание вариантов выполнения излишними деталями. В других случаях такие компоненты, другие структуры и методики могут быть подробно представлены для дополнительного пояснения вариантов выполнения. Для специалистов в данной области техники также должно быть понятно, что электрические компоненты, которые показаны в отдельных блоках, могут быть перекомпонованы, скомбинированы или повторно скомпонованы и скомбинированы в одном компоненте.
Следует также отметить, что некоторые варианты выполнения могут быть описаны как процесс, который изображен в виде блок-схемы последовательности операций, схемы обработки, структурной схемы или блок-схемы. Хотя блок-схема последовательности операций может описывать операции как последовательный процесс, многие операции могут выполняться параллельно или одновременно, и процесс может повторяться. Кроме того, порядок операций может быть изменен. Процесс прекращается, когда его операции заканчиваются. Процесс может соответствовать способу, функции, процедуре, подпроцедуре, подпрограмме и так далее. Когда процесс соответствует функции, ее окончание соответствует возвращению функции к функции вызова или основной функции.
Более конкретно предусматривается, что описанные здесь способы и устройство могут быть воплощены или ассоциированы с различными электронными устройствами, такими как (но без ограничений) мобильные телефоны, беспроводные устройства, карманные персональные компьютеры (PDA), переносные или портативные компьютеры, приемники/навигаторы GPS (глобальной системы навигации и местоопределения), фотоаппараты, MP3-плейеры, видеокамеры, игровые консоли, наручные часы, калькуляторы, телевизионные мониторы, дисплеи в виде плоских панелей, компьютерные мониторы, электронные фотографии, электронные доски объявлений или знаки, проекторы, архитектурные и эстетические структуры. Устройства, аналогичные описанным здесь, также могут быть выполнены как устройства, не являющиеся дисплеями сами по себе, а скорее устройствами, которые выводят сигналы отображения для отдельных устройств дисплея.
На фиг.1 иллюстрируется система 100, содержащая кодер 105 и декодер 110. Некоторые варианты выполнения, указанные в приведенном выше описании, могут быть воплощены в виде кодера 105, и некоторые варианты выполнения могут быть воплощены в виде декодера 110. Рассмотрим вначале кодер 105, он содержит процессор 125, соединенный с носителем 130 информации. Процессор 105 предоставляет собой вычислительную платформу для выполнения некоторых или всех процессов других компонентов (не показаны), необходимых для кодирования принимаемых видеоданных. После кодирования принимаемых видеоданных такие кодированные видеоданные могут быть сохранены на носителе 130 информации. Носитель 130 информации также может быть расположен за пределами кодера 105.
Для кодирования принимаемых видеоданных кодер 105 может использовать, например, (1) ДСТ для преобразования принимаемых видеоданных из представленных во временной области. В представленные в частотной области (2) квантование, для уменьшения количества битов, требуемых для кодирования преобразованных видеоданных, и (3) кодирование с переменной длинной поля, для определения битов, необходимых для кодирования квантованных видеоданных, для передачи их в конечном счете в декодер 110.
После приема кодированных видеоданных декодером 110 принятые кодированные видеоданные декодируются. Более конкретно, процессор 165 декодера 110 образует вычислительную платформу для выполнения некоторых или всех из процессов других компонентов (не показаны) необходимых для декодирования принимаемых кодированных видеоданных. После приема кодированные видеоданные декодируются так, чтобы декодированные видеоданные можно было сохранять на носителе 170 информации или передавать в устройство дисплея (не показано). Носитель 170 информации также может быть расположен за пределами кодера 110.
На фиг.2 иллюстрируется определение параметра квантования (QP), ассоциированного с конкретным блоком кадра, так чтобы B-кадр мог быть определен на основе, по меньшей мере, одного соседнего или опорного кадра. В обычной технологии, как правило, используется только один QP для кодирования всего видеокадра. В некоторых случаях QP может быть ассоциирован с одним или больше блоками кодированного опорного кадра, поскольку, вероятно, может потребоваться кодировать такой опорный кадр на основе блока с учетом качества видеоданных в пределах этого блока на основе свойств системы зрения человека (HVS). На фиг.2 иллюстрируется опорный кадр A, который содержит блоки 200-216, с каждым из которых ассоциирован QP. Более конкретно, QP1 ассоциирован с блоком 210, QP2 ассоциирован с блоком 208, QP3 ассоциирован с блоком 216 и QP4 ассоциирован с блоком 214. Таким образом, в настоящем раскрытии описаны примеры того, как QP может быть адаптивно определен для некоторых из блоков данных пикселей видеокадра, предназначенного для кодирования. Такой видеокадр может представлять собой P-кадр или B-кадр.
Перед кодированием конкретного блока видеокадра выбирают режим кодирования для такого конкретного блока. На фиг.3 иллюстрируются различные режимы кодирования, задающие, как может быть разделен блок видеокадра. Например, блок размером 16×16 пикселей может быть разделен в соответствии с одним из режимов кодирования, представленных так, что соответственно получают (a) два участка 16×8, (b) два участка 8×16 или (c) четыре участка 8×8. На фиг.3 также иллюстрируется, как каждый из этих четырех участков размером 8×8 может быть дополнительно разделен в соответствии с другими режимами кодирования. Различные режимы кодирования можно использовать для разделения, и, таким образом, следует отметить, что на фиг.3 иллюстрируются некоторые примеры доступных режимов кодирования, из которых выбирают один для разделения конкретного блока данных пикселя. Для определения того, какой из режимов кодирования может быть выбран, для каждого режима кодирования определяют информацию движения, например вектор движения, и затем выбирают один из режимов кодирования, как дополнительно поясняется ниже.
На фиг.4 иллюстрируется блок-схема способа кодирования видеокадра, имеющего множество блоков, как дополнительно поясняется с учетом фиг.2 и 4. Как можно видеть на этапе 400, принимают последовательные видеокадры, содержащие в себе, по меньшей мере, один B-кадр. Как можно видеть на этапе 402, для каждого из, по меньшей мере, двух режимов кодирования, задающих, как может быть разделен конкретный блок B-кадра, определяют, по меньшей мере, один вектор движения, например первый вектор движения, ассоциированный с B-кадром, и первый опорный кадр. Как можно видеть на этапе 404, для каждого из, по меньшей мере, двух режимов кодирования определяют стоимостный показатель, используя первый вектор движения и принятый по умолчанию параметр квантования. Как можно видеть на этапе 406, один из режимов кодирования выбирают на основе результатов определения их стоимостного показателя. Как можно видеть на этапе 408, параметр квантования определяют, используя первый вектор движения, ассоциированный с выбранным режимом кодирования. Как можно видеть на этапе 410, конкретный блок B-кадра, для которого был определен QP, кодируют, используя определенный таким образом параметр квантования и выбранный режим кодирования.
В некоторых вариантах выполнения перед B-кадром во временном отношении принимают первый опорный кадр, такой как опорный кадр А, как показано на фиг.2. В других вариантах выполнения такой опорный кадр принимают во временном отношении после B-кадра, такой как опорный кадр B, как показано на фиг.2. Кроме того, конкретный блок, предназначенный для кодирования с использованием определенного QP и выбранного режима кодирования, предпочтительно представляет собой MB.
Как можно видеть на этапе 408, с областью пикселей первого опорного кадра, ассоциированной с конкретным блоком B-кадра на основе первого вектора движения, может быть ассоциирован более чем один QP. Например, можно рассмотреть заштрихованную область 218 опорного кадра А, с которой ассоциированы четыре QP, как показано на фиг.2. В этом случае, в некоторых вариантах выполнения определение параметра квантования содержит расчет средневзвешенного значения параметров квантования, ассоциированных с областью пикселей в первом опорном кадре. Такая область пикселей соответствует конкретному блоку B-кадра, на основе первого вектора движения.
Как показано на этапе 402, вместо определения только первого вектора движения могут быть определены первый набор векторов движения, ассоциированный с B-кадром, и первый опорный кадр. В этом случае в некоторых вариантах выполнения для определения стоимостного показателя используют первый набор векторов движения и принятый по умолчанию параметр квантования. Кроме того, определение параметра квантования содержит расчет средневзвешенного значения параметров квантования, ассоциированных с областью пикселей в первом опорном кадре. Такая область пикселей соответствует конкретному блоку B-кадра на основе первого набора векторов движения.
В дополнение к определению первого вектора движения для каждого из, по меньшей мере, двух режимов кодирования также может быть определен второй вектор движения со ссылкой на блок 402. Такой второй вектор движения ассоциирован с B-кадром и вторым опорным кадром. Если, например, первый опорный кадр представляет собой опорный кадр А, как показано на фиг.2, второй опорный кадр может представлять собой опорный кадр B, как показано на фиг.2, или другой опорный кадр, который также принимают о временном отношении перед B-кадром. В этих вариантах выполнения при определении стоимостного показателя также используют второй вектор движения, и определение параметра квантования содержит использование первого и второго векторов движения, ассоциированных с выбранным режимом кодирования.
Кроме того, вместо определения только первого и второго векторов движения, первый набор векторов движения, ассоциированных с B-кадром, и первый опорный кадр, и второй набор векторов движения, ассоциированных с B-кадром, и второй опорный кадр могут быть определены со ссылкой на этап 402. Например, первый опорный кадр может представлять собой опорный кадр А, как показано на фиг.2, и второй опорный кадр может представлять собой опорный кадр B, как показано на фиг.2. Если этом так, в этих вариантах выполнения при определении стоимостного показателя используют первый и второй наборы векторов движения. Кроме того, определение параметра квантования содержит расчет средневзвешенного значения QP1-QP4, ассоциированного с первой областью 218 пикселей опорного кадра A, и QP5-QP8, ассоциированного со второй областью 220 пикселей опорного кадра B, как показано на фиг.2. Такая первая область 218 соответствует блоку 222 B-кадра на основе первого набора векторов движения, и вторая область 220 соответствует блоку 222 B-кадра на основе второго набора векторов движения.
Со ссылкой на этап 404 при определении стоимостного показателя может использоваться уравнение:
C=R+λD,
где R определяют на основе первого вектора движения и принятого по умолчанию параметра квантования, λопределяют на основе принятого по умолчанию параметра квантования и D определяют на основе первого вектора движения и принятого по умолчанию параметра квантования.
На фиг.5 иллюстрируется блок-схема устройства, имеющего в своем составе определенные средства, предназначенные для выполнения определенных функций. Более конкретно, устройство для кодирования видеокадра, имеющего множество блоков, дополнительно поясняется со ссылкой на фиг.5. Как можно видеть в модуле 500, средство приема выполнено с возможностью приема последовательных видеокадров, содержащих, по меньшей мере, один B-кадр. Как можно видеть в модуле 502, для каждого из, по меньшей мере, двух режимов кодирования, задающих, как может быть разделен конкретный блок B-кадра, средство определения выполнено с возможностью определения, по меньшей мере, одного вектора движения, например первого вектора движения, который ассоциирован с B-кадром и первым опорным кадром. Со ссылкой на модуль 504 для каждого из, по меньшей мере, двух режимов кодирования средство определения выполнено с возможностью определения стоимостного показателя с использованием первого вектора движения и принятого по умолчанию параметра квантования. Как показано в модуле 506, средство выбора выполнено с возможностью выбора одного из режимов кодирования на основе результатов определения их стоимостных показателей. Со ссылкой на модуль 508 средство определения выполнено с возможностью определения параметра квантования с использованием первого вектора движения, ассоциированного с выбранным режимом кодирования. Как показано в модуле 510, средство кодирования выполнено с возможностью кодирования конкретного блока B-кадра, для которого QP был определен с использованием определенного таким образом параметра квантования и выбранного режима кодирования. Устройство, описанное выше со ссылкой на фиг.5, также содержит другое дополнительное средство, предназначенное для выполнения других функциональных аспектов, которые аналогичны дополнительным аспектам, описанным для способа, широко представленного на фиг.4.
Другой вариант выполнения содержит процессор, предназначенный для кодирования видеокадра, имеющего множество блоков. Более конкретно процессор выполнен с возможностью приема последовательных видеокадров, содержащих в себе, по меньшей мере, один B-кадр. Для каждого из, по меньшей мере, двух режимов кодирования, задающих, как конкретный блок B-кадра может быть разделен, процессор также выполнен с возможностью определения, по меньшей мере, одного вектора движения, например первого вектора движения, ассоциированного с B-кадром и первым опорным кадром. Кроме того, для каждого из, по меньшей мере, двух режимов кодирования процессор выполнен с возможностью определения стоимостного показателя, с использованием первого вектора движения и принятого по умолчанию параметра квантования. Процессор также выполнен с возможностью выбора одного из режимов кодирования на основе результатов определения их стоимостных показателей. Процессор также выполнен с возможностью определения параметра квантования с использованием первого вектора движения, ассоциированного с выбранным режимом кодирования. Процессор также выполнен с возможностью кодирования конкретного блока B-кадра, для которого QP был определен с использованием определенного таким образом параметра квантования и выбранного режима кодирования. Кроме того, описанный выше процессор также выполнен с возможностью реализации других аспектов, которые аналогичны этим дополнительным аспектам, которые были описаны для способа, широко иллюстрируемого на фиг.4.
Другой вариант выполнения содержит устройство, предназначенное для кодирования видеокадра, имеющего множество блоков. Более конкретно, устройство содержит приемник, предназначенный для приема последовательных видеокадров, содержащих, по меньшей мере, один B-кадр. Для каждого из, по меньшей мере, двух режимов кодирования, задающих, как может быть разделен конкретный блок B-кадра, устройство дополнительно содержит первое средство определения (определитель), предназначенное для определения, по меньшей мере, одного вектора движения, например первого вектора движения, который ассоциирован с B-кадром и первым опорным кадром. Также для каждого из, по меньшей мере, двух режимов кодирования устройство дополнительно содержит второй определитель, предназначенный для определения стоимостного показателя с использованием первоговектора движения и принятого по умолчанию параметра квантования. Устройство дополнительно содержит средство выбора (селектор), предназначенное для выбора одного из режимов кодирования на основе определения их стоимости. Устройство, кроме того, содержит третий определитель, предназначенный для определения параметра квантования путем использования первого вектора движения, ассоциированного с выбранным режимом кодирования. Устройство также содержит кодер, предназначенный для кодирования конкретного блока B-кадра, для которого QP был определен с использованием определенного таким образом параметра квантования и выбранного режима кодирования. Кроме того, описанное выше устройство также содержит дополнительные компоненты, выполняющие другие аспекты, которые аналогичны дополнительным аспектам, описанным для способа, широко иллюстрируемого на фиг.4.
Другой вариант выполнения содержит машиночитаемый носитель информации, воплощающий способ кодирования видеокадра, имеющего множество блоков. Такой способ аналогичен способу, широко описанному выше со ссылкой на фиг.4. Кроме того, машиночитаемый носитель информации также воплощает в себе другие аспекты, которые аналогичны тем дополнительным аспектам, которые были описаны для способа, широко иллюстрируемого на фиг.4.
На фиг.6 иллюстрируется блок-схема способа кодирования видеокадра, имеющего множество блоков, и который дополнительно поясняется со ссылкой на фиг.2 и 6. Как показано на этапе 600, принимают последовательные видеокадры, содержащие, по меньшей мере, один B-кадр. Как показано на этапе 602, для каждого из, по меньшей мере, двух режимов кодирования, задающих, как может быть разделен блок B-кадра, определяют, по меньшей мере, один вектор движения, например первый вектор движения. Такой первый вектор движения ассоциирован с B-кадром и первым опорным кадром. Как показано на этапе 604, также для каждого из, по меньшей мере, двух режимов кодирования определяют параметр квантования для конкретного блока B-кадра, используя первый вектор движения. Со ссылкой на этап 606 выбирают один из параметров квантования, определенный для режимов кодирования. Как показано на этапе 608, конкретный блок B-кадра кодируют, используя выбранный параметр квантования и ассоциированный с ним режим кодирования.
В некоторых вариантах выполнения первый опорный кадр принимают во временном отношении перед B-кадром, такой как опорный кадр А, как показано на фиг.2. В других вариантах выполнения такой опорный кадр принимают во временном отношении после B-кадра, такой как опорный кадр B, как показано на фиг.2. Кроме того, конкретный блок, который должен быть кодирован с использованием определенного QP и выбранного режима кодирования, предпочтительно представляет собой МВ.
Как показано на этапе 604, область пикселей первого опорного кадра, ассоциированного с конкретным блоком B-кадра, на основе первого вектора движения, может иметь больше, чем один QP, ассоциированный с нею. Например, смотри заштрихованную область 218 опорного кадра А, с которой ассоциированы четыре QP, как представлено на фиг.2. В этом случае, в некоторых из вариантов выполнения определение параметра квантования содержит расчет средневзвешенного значения параметров квантования, ассоциированных с областью пикселей в первом опорном кадре. Такая область пикселей соответствует блоку B-кадра на основе первого вектора движения.
Как показано на этапе 602, первый набор векторов движения, ассоциированных с B-кадром, и первый опорный кадр определяют вместо определения только первого вектора движения. В этом случае в некоторых из вариантов выполнения определение параметра квантования содержит расчет средневзвешенного значения параметров квантования, ассоциированных с областью пикселей в первом опорном кадре. Такая область пикселей соответствует блоку B-кадра на основе первого набора векторов движения.
В дополнение к определению первого вектора движения для каждого из, по меньшей мере, двух режимов кодирования также может быть определен второй вектор движения. Такой второй вектор движения ассоциирован с B-кадром и вторым опорным кадром. В этих вариантах выполнения определение параметра квантования содержит использование первого и второго векторов движения.
Кроме того, вместо определения только первого и второго векторов движения первый набор векторов движения, который ассоциирован с B-кадром и первым опорным кадром, и второй набор векторов движения, который ассоциирован с B-кадром и вторым опорным кадром, могут быть определены со ссылкой на этап 402. Например, первый опорный кадр может представлять собой опорный кадр А, как показано на фиг.2, и второй опорный кадр может представлять собой опорный кадр B, как показано на фиг.2. В этом случае в этих вариантах выполнения определение параметра квантования содержит расчет средневзвешенного значения для QP1-QP4, ассоциированных с первой областью 218 пикселей опорного кадра A, и QP5-QP8, ассоциированных со второй областью 220 пикселей опорного кадра B, как показано на фиг.2. Такая первая область 218 соответствует блоку 222 кадра B на основе первого набора векторов движения, и вторая область 220 соответствует блоку 222 кадра B на основе второго набора векторов движения.
Как показано в блоке 606, выбор параметра квантования может дополнительно содержать определение стоимости каждого из этих, по меньшей мере, двух режимов путем использования их ассоциированного определенного параметра квантования, битов, подлежащих использованию для кодирования блока, и значения искажения, ассоциированного с этим блоком. В этом случае выбранный параметр квантования ассоциируют с самым наименьшим стоимостным показателем или одним из наименьших стоимостных показателей.
На фиг.7 иллюстрируется блок-схема устройства, имеющего определенные средства для выполнения определенных функций. Более конкретно, устройство кодирования видеокадра, имеющего множество блоков, дополнительно поясняется со ссылкой на фиг.7. В модуле 700 показано средство приема, выполненное с возможностью приема последовательных видеокадров, содержащих, по меньшей мере, один B-кадр. Как показано в модуле 702, для каждого из, по меньшей мере, двух режимов кодирования, задающих, как блок B-кадра может быть разделен, предусмотрено средство определения, предназначенное для определения, по меньшей мере, одного вектора движения, например первого вектора движения. Такой первый вектор движения ассоциирован с B-кадром и первым опорным кадром. Как показано в модуле 704, также для каждого из, по меньшей мере, двух режимов кодирования предусмотрено средство определения, предназначенное для определения параметра квантования для конкретного блока B-кадра путем использования первого вектора движения. Как показано в модуле 706, средство выбора предусмотрено для выбора одного из параметров квантования, определенных для режимов кодирования. Как показано в модуле 708, средство кодирования предусмотрено для кодирования конкретного блока B-кадра путем использования выбранного параметра квантования и его ассоциированного режима кодирования. Устройство, описанное выше со ссылкой на фиг.7, также содержит другие дополнительные средства, предназначенные для выполнения других функциональных аспектов, которые аналогичны дополнительным аспектам, описанным для способа, широко представленного на фиг.6.
Другой вариант выполнения содержит процессор, предназначенный для кодирования видеокадра, имеющего множество блоков. Более конкретно, процессор выполнен с возможностью приема последовательных видеокадров, содержащих, по меньшей мере, один B-кадр. Для каждого из, по меньшей мере, двух режимов кодирования, задающих, как блок B-кадра может быть разделен, процессор дополнительно выполнен с возможностью определения, по меньшей мере, одного вектора движения, например первого вектора движения. Такой первый вектор движения ассоциирован с B-кадром и первым опорным кадром. Также для каждого из упомянутых, по меньшей мере, двух режимов кодирования процессор дополнительно выполнен с возможностью определения параметра квантования для конкретного блока B-кадра путем использования первого вектора движения. Процессор также выполнен с возможностью выбора одного из параметров квантования, определенных для режимов кодирования. Процессор также выполнен с возможностью кодирования конкретного блока B-кадра путем использования выбранного параметра квантования и ассоциированного с ним режима кодирования. Кроме того, процессор, описанный выше, также выполнен с возможностью реализации других аспектов, которые аналогичны тем дополнительным аспектам, что описаны для способа, широко иллюстрируемого на фиг.6.
Другой вариант выполнения содержит устройство, предназначенное для кодирования видеокадра, имеющего множество блоков. Более конкретно, устройство содержит приемник, предназначенный для приема последовательных видеокадров, содержащих, по меньшей мере, один B-кадр. Для каждого из, по меньшей мере, двух режимов кодирования, задающих, как блок B-кадра может быть разделен, устройство также содержит первый определитель, предназначенный для определения, по меньшей мере, одного вектора движения, например, первого вектора движения. Такой первый вектор движения ассоциирован с B-кадром и первым опорным кадром. Также для каждого из упомянутых, по меньшей мере, двух режимов кодирования устройство содержит второй определитель, предназначенный для определения параметра квантования для конкретного блока B-кадра путем использования первого вектора движения. Устройство также содержит селектор, предназначенный для выбора одного из параметров квантования, определенных для режимов кодирования. Устройство также содержит кодер, предназначенный для кодирования конкретного блока B-кадра путем использования выбранного параметра квантования и его ассоциированного режима кодирования. Кроме того, описанное выше устройство также содержит дополнительные компоненты, выполняющие другие аспекты, которые аналогичны дополнительным аспектам, описанным для способа, широко иллюстрируемого на фиг.6.
Другой вариант выполнения содержит машиночитаемый носитель информации, воплощающий способ кодирования видеокадра, имеющего множество блоков. Такой способ аналогичен способу, широко описанному выше со ссылкой на фиг.6. Кроме того, машиночитаемый носитель информации также воплощает другие аспекты, которые аналогичны дополнительным аспектам, описанным для способа, широко иллюстрируемого на фиг.6.
Для специалиста в данной области техники будет понятно, что информация и сигналы могут быть представлены с использованием любой из множества различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные посылки, на которые делается ссылка во всем описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Для описанных выше вариантов выполнения QP может быть определен для каждого интеркодированного блока, например интеркодированного МВ, в пределах кадра. Такие интеркодированные блоки представляют собой блоки, для которых параметры QP могут быть определены на основе прогнозирования вперед, прогнозирования назад или одновременно вперед и назад. Для подобных интеркодированных блоков одного и того же кадра также требуется определять параметры QP. С этой целью для конкретного интеркодированного блока можно использовать параметр(ы) QP, ассоциированный с его соседними блоками, для определения QP данного конкретного интеркодированного блока.
Для специалистов в данной области техники будет также понятно, что различные иллюстративные логические блоки, модули и этапы алгоритма, описанные совместно с раскрытыми здесь примерами, могут быть воплощены как электронные аппаратные средства, специализированное программное обеспечение, компьютерное программное обеспечение, микрокод или их комбинации. Для иллюстрации такой возможности взаимозаменяемости аппаратных и программных средств были выше описаны различные иллюстративные компоненты, блоки, модули, схемы и этапы в общем, со ссылкой на их функции. Воплощены ли такие функции как аппаратные или программные средства, зависит от конкретного варианта применения и конструктивных ограничений, наложенных на всю систему. Специалисты в данной области техники могут воплотить описанные функции различными способами для каждого конкретного варианта применения, но такие решения при воплощении не должны интерпретироваться как выходящие за рамки объема, соответствующего раскрытым способам.
Различные иллюстративные логические блоки, модули и схемы, описанные совместно с раскрытыми здесь вариантами воплощения, могут быть воплощены или выполнены с использованием процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной микросхемы (ASIC), программируемой вентильной матрицы (FPGA) или другого программируемого логического устройства, логического элемента на дискретных компонентах или транзисторной логической схемы, дискретных аппаратных компонентов или любой их комбинации, разработанной для выполнения описанных здесь функций. Процессор общего назначения может представлять собой микропроцессор, но в качестве альтернативы процессор может представлять собой любой обычный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть воплощен как комбинация вычислительных устройств, например комбинация DSP и микропроцессора, множества микропроцессоров, одного или