УСТРОЙСТВО И СПОСОБ УПРОЩЕННОГО ПОИСКА РЕФЕРЕНСНОГО КАДРА В ВИДЕОКОДИРОВАНИИ
DEVICE AND METHOD FOR SIMPLIFIED SEARCHING OF REFERENT FRAME IN VIDEO CODING

Настоящая заявка направлена на обработку мультимедийных сигналов, и более конкретно, на видеокодирование.
УРОВЕНЬ ТЕХНИКИ
Системы обработки мультимедийных данных, такие как видеокодеры, могут кодировать мультимедийные данные, используя способы кодирования, основанные на международных стандартах, таких как стандарты MPEG-x и Н.26х. Такие способы, в общем, направлены на сжатие мультимедийных данных для передачи и/или хранения. Сжатие в широком смысле является процессом удаления избыточности из данных.
Видеосигнал может быть описан в понятиях последовательности изображений, которые включают в себя кадры (целое изображение) или поля (например, чередующийся видеопоток содержит поля чередующихся четных и нечетных линий изображения). Как использовано в данном документе, термин «кадр» в широком смысле используется для обозначения изображения, кадра или поля. Мультимедийные процессоры, такие как видеокодеры, могут кодировать кадр разделением его на блоки или «макроблоки», например, размером 16×16 пикселей. Кодер может дополнительно разделять каждый макроблок на подблоки. Каждый подблок может также содержать дополнительные подблоки. Например, подблоки макроблока могут включать в себя подблоки размером 16×8 или 8×16. Подблоки, относящиеся к подблокам размером 8×16, могут включать в себя подблоки 8×8, и так далее. Как использовано в данном документе, термин «блок» относится либо к макроблоку, либо подблоку.
Способы видеокодирования сжимают видеосигналы, используя алгоритмы сжатия с потерями или без потерь, для сжатия каждого кадра или блоков кадра. Внутикадровое кодирование относится к кодированию кадра на основании данных из этого кадра. Межкадровое кодирование относится к схемам кодирования с предсказанием, таким как схемы, содержащие кодирование кадра на основании других, «опорных», кадров. Например, видеосигналы часто содержат временную избыточность, в которой кадры, расположенные друг с другом во временной последовательности, имеют, по меньшей мере, части, которые совпадают или, по меньшей мере, частично совпадают друг с другом. Кодеры могут использовать преимущество этой временной избыточности для уменьшения размера кодируемой информации.
Кодеры могут использовать эту временную избыточность, кодируя кадр на основе разности между кадром и одним или более опорными кадрами. Например, видеокодеры могут использовать алгоритмы, основанные на принципе компенсации движения, которые сопоставляют блоки кодируемого кадра с частями одного или более других кадров. Блок кодированного кадра может быть сдвинут в кадре относительно совпадающей части опорного кадра. Этот сдвиг характеризуется вектором движения. Любые различия между блоком и частично совпадающей частью опорного кадра могут быть охарактеризованы через их разность. Таким образом, кодер может кодировать кадр как данные, которые содержат один или более векторов движения и разностей для конкретного разбиения кадра. Конкретное разбиение блоков для кодирования кадра может быть выбрано путем приблизительного минимизирования функции затрат, которая, например, находит баланс между размером кодируемых данных и искажением содержания кадра, получающегося в результате кодирования.
Опорные кадры могут включать в себя один или более предшествующих кадров видеосигнала или один или более кадров, которые следуют за кадром в видеосигнале. Например, стандарт Н.264 определяет использование пяти опорных кадров при поиске блока с наилучшим совпадением. В общем, поиск большего числа опорных кадров увеличивает возможности кодера для поиска частей одного из опорных кадров, который наиболее близко совпадает с блоком кодируемого кадра. При наилучших совпадениях разница для кодирования минимальна, что, в общем, приводит к более компактному кодированию. Однако для поиска совпадающих частей опорного кадра для блока, кодер должен выполнять поиск по всем опорным кадрам для каждого блока (например, макроблокам и подблокам) кодируемого кадра. Так как совпадающие части могут быть сдвинуты, кодер, в общем, осуществляет большое число сравнений для каждого опорного кадра. В результате, кодирование кадра, в частности, относительно ряда опорных кадров, может быть очень сложным для вычисления, что приводит к увеличению размера, затрат и энергопотребления кодера. Соответственно, существует необходимость уменьшения сложности поиска опорных кадров в видеокодерах.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Примеры системы, способа и устройств, описанных здесь, имеют несколько аспектов, ни один из которых не отвечает целиком за все требуемые характеристики. Ниже будут кратко описаны основные признаки без ограничения объема данного изобретения, как выражено в формуле изобретения, следующей далее. После рассмотрения этого описания, в частности, раздела «Осуществление изобретения» станет понятно, каким образом раскрытые признаки обеспечивают преимущества, включающие в себя более эффективные, и меньшим энергопотреблением и/или более быстродействующие видеокодеры.
Один аспект представляет собой способ обработки мультимедийных данных. Способ содержит этап, на котором сравнивают часть кадра с множеством опорных кадров. Часть кадра содержит множество подчастей. Способ дополнительно содержит этап, на котором выбирают опорный кадр из множества опорных кадров на основании сравнения. Способ дополнительно содержит этап, на котором обрабатывают по меньшей мере одну из подчастей на основании выбранного опорного кадра.
Другой аспект представляет собой устройство для обработки мультимедийных данных. Устройство содержит средство сравнения части кадра со множеством опорных кадров. Часть кадра содержит множество подкадров. Устройство дополнительно содержит средство для выбора опорного кадра из множества опорных кадров на основании сравнения. Устройство дополнительно содержит средство для обработки по меньшей мере одной подчасти на основании выбранного опорного кадра.
Другой аспект представляет собой устройство для обработки мультимедийных данных. Устройство содержит компаратор, выполненный с возможностью сравнивать части кадра с множеством опорных кадров. Часть кадра содержит множество подчастей. Устройство дополнительно содержит селектор, выполненный с возможностью выбирать опорный кадр из множества опорных кадров на основании сравнения. Устройство дополнительно содержит процессор, выполненный с возможностью сравнивать по меньшей мере одну из подчастей на основании выбранного опорного кадра.
Один аспект представляет собой процессор обработки мультимедийных данных, содержащий конфигурацию для сравнения части кадра с множеством опорных кадров. Часть кадра содержит множество подчастей. Конфигурация также используется для выбора опорного кадра из множества опорных кадров на основании сравнения и обработки по меньшей мере одной из подчастей на основании выбранного опорного кадра.
Другой аспект представляет собой машиночитаемый носитель информации, содержащий команды для обработки мультимедийных данных. Команды при выполнении побуждают устройство сравнивать часть кадра с множеством опорных кадров. Часть кадра содержит множество подчастей. Команды при выполнении дополнительно побуждают устройство выбирать опорный кадр из множества опорных кадров на основании сравнения и обрабатывать по меньшей мере одну из подчастей на основании выбранного опорного кадра.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 представляет собой функциональную блок-схему, иллюстрирующую мультимедийную систему связи в соответствии с одним аспектом.
Фиг.2 представляет собой графическую иллюстрацию частей способа кодирования части видеокадра в системе, такой как проиллюстрировано на Фиг.1.
Фиг.3 представляет собой блок-схему, иллюстрирующую один пример способа кодирования части видеопотока в системе, такой как проиллюстрировано на Фиг.1.
Фиг.4 представляет собой блок-схему, иллюстрирующую пример устройства для обработки видеоданных в соответствии со способом, проиллюстрированным на Фиг.3.
Фиг.5 представляет собой блок-схему, иллюстрирующую более детально часть одного примера способа, проиллюстрированного на Фиг.3.
Фиг.6 представляет собой блок-схему, иллюстрирующую более детально часть другого примера способа, проиллюстрированного на Фиг.3.
Фиг.7 представляет собой блок-схему, иллюстрирующую более детально часть еще одного примера способа, проиллюстрированного на Фиг.3.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Последующее подробное описание посвящено некоторым конкретным аспектам изобретения. Однако изобретение может быть воплощено множеством различных способов, как определено и заявлено в формуле изобретения. В данном описании даются ссылки на чертежи, причем одинаковые части обозначены одинаковыми ссылочными позициями. В последующем описании представлены конкретные детали для того, чтобы обеспечить полное понимание описываемых аспектов. Однако для специалистов в данной области техники должно быть понятно, что данные аспекты могут быть использованы без этих конкретных деталей. Например, электронные компоненты могут быть показаны на блок-схемах для того, чтобы не загружать описание аспектов ненужными деталями. В других случаях, такие компоненты, другие структуры и методики могут быть детально показаны для дополнительного объяснения аспекта.
Кроме того, понятно, что в зависимости от варианта осуществления изобретения, определенные действия или события любых описанных способов, процессов, блок-схем и схем могут быть добавлены, соединены или вообще опущены (например, не все описанные действия или события необходимы для реализации способа). Более того, в некоторых вариантах осуществления действия и события могут быть выполнены одновременно, а не последовательно, например, путем использования многопоточной обработки, обработки с прерываниями или нескольких процессоров. Также понятно, что описанные способы, процессы, блок-схемы и схемы алгоритмов могут повторяться, как целиком, так и частично.
Аспекты изобретения включают в себя системы и способы улучшения обработки в кодере в мультимедийной системе связи. Мультимедийные данные могут включать в себя один или несколько видеороликов, аудиозаписей, графических изображений или любые другие аудио и видеоданные соответствующего типа. Аспекты включают в себя устройство и способ кодирования видеоданных. Например, один аспект содержит способ упрощенного поиска опорного кадра при видеокодировании. Другой такой аспект содержит способ упрощенного поиска опорного кадра в способе компенсации движения. В частности, было установлено, что поиск менее чем всех опорных кадров из набора опорных кадров согласно одному аспекту, значительно упрощает вычислительную сложность поиска компенсации движений без существенного возрастания количества шума или искажений в кодируемом кадре.
Фиг.1 представляет собой функциональную блок-схему, иллюстрирующую мультимедийную систему 100 связи в соответствии с одним аспектом. Система 100 включает в себя кодирующее устройство 110, связанное с декодирующим устройством 150 через сеть 140. В одном примере кодирующее устройство принимает мультимедийный сигнал из внешнего источника 102 и кодирует этот сигнал для передачи по сети 140.
В этом примере кодирующее устройство 110 содержит процессор 112, соединенный с памятью 114 и приемопередатчиком 116. Процессор 112 кодирует данные из мультимедийного источника данных и предоставляет их на приемопередатчик 116 для передачи через сеть 140.
В этом примере декодирующее устройство 150 содержит процессор 152, соединенный с памятью 154 и приемопередатчиком 156. Процессор 152 может включать в себя один или более процессоров общего назначения или процессоров обработки цифровых сигналов. Память 154 может включать в себя один или более твердотельных или дисковых накопителей. Приемопередатчик 156 выполнен с возможностью принимать мультимедийные данные через сеть 140 и предоставлять их на процессор 152 для декодирования. В одном примере приемопередатчик 156 включает в себя беспроводной приемопередатчик. Сеть 140 может содержать одну или более проводных или беспроводных систем связи, включая одну или более Ethernet-систем, телефонных систем, например, простых телефонных сетей (например, PQTS), кабельных систем, систем линий электропередач и волоконно-оптических систем, и/или беспроводных систем, содержащих одну или более из системы связи множественного доступа с кодовым разделением (CDMA или CDMA2000), системы множественного доступа с частотным разделением (FDMA), системы множественного доступа с временным разделением (TDMA), такой как GSM/GPRS (пакетная радиосвязь общего назначения)/EDGE (улучшенный GSM для передачи данных), мобильной телефонной системы TETRA (магистральная наземная радиосвязь), системы широкополосного множественного доступа с кодовым разделением (WCDMA), системы высокоскоростной передачи данных (IxEV-DO или IxEV-DO Gold Multicast), системы стандарта IEEE 802.11, системы MediaFLO, системы DMB или системы DVB-H.
Фиг.2 графически иллюстрирует один аспект способа кодирования части видеокадра в системе, такой как проиллюстрировано на Фиг.1. Как показано на Фиг.2, кадр 170 может быть разделен на некоторое количество макроблоков 171. Каждый макроблок 171 содержит массив пикселей, например, массив пикселей размера 16×16 кадра 170. Также кодер 110 может разделять макроблоки 171 на любое количество блоков меньшего размера, таких как подблок 171а размером 8×8 или подблок 171b размером 4×4. Как вариант, кодер 110 может варьировать размер подблоков внутри кадра 170 и/или между кодированными кадрами 170. Вместе макроблоки 171 и части макроблоков, такие как подблоки 171а, здесь обозначаются как «блоки» и относятся вместе к элементу 171 на Фиг.2.
Кодированные видеокадры 170 (или блоки 171 кадров 170) могут быть кодированы независимо от других кадров (например, при внутрикадровом кодировании) или с предсказанием, на основании других кодированных кадров (например, при межкадровом кодировании). Конкретный режим кодирования, использованный для части кадра 170 может упоминаться как «режим» (кодирования). Кодер 110 может кодировать различные части кадра 170, например, различные блоки 171 или подблоки 171, используя различные режимы. Например, алгоритмы компенсации движения могут быть использованы для кодирования кадра 170 или одного или более блоков 1,71 кадра 170. Один пример кодера 110 кодирует кадр 170 на основе блоков, которые включают в себя блоки таких размеров, как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 (но также могут быть использованы и другие размеры). Кодированный кадр 170 может содержать разбиение кадра 170 в набор кодированных блоков 171, что позволяет кодировать практически все пиксели кадра 170. Кодированные блоки 171 могут быть различного размера и могут быть выбраны на основе функции затрат, что позволяет сравнивать различные стратегии кодирования на основании взвешенного среднего таких параметров, как например, размер кодированных данных и результирующее искажение изображения.
Как отмечено выше, одним из способов предсказания видеокадров является использование алгоритмов оценки движения, которые используют временную избыточность в видеоданных для кодирования кадра 170 на основании по меньшей мере частично совпадающих блоков 171 у одного кадра и другого кадра, например, опорного кадра. Алгоритмы оценок движения идентифицируют блоки 176 в одном или нескольких опорных кадрах 174, которые схожи (например, по меньшей мере частично совпадают) с блоками 171 кадра 170, но, возможно, их расположение сдвинуто в кодируемом кадре 174. В различных аспектах алгоритмы оценки движения могут использовать опорные кадры 174, которые предшествовали текущему кадру 170, следовали за кадром 170, или кадры обоих типов. Блоки 171 кадра 170 кодируются на основе вектора движения, указывающего на позиционную разницу между блоком 171 и блоком 176, и данных разницы, указывающих на разницу между пикселями блока 171 кадра 170, относящегося к опорному блоку (например, блок 176 опорного кадра 174с), найденному в списке одного или нескольких кадров 174 (например, опорные кадры 174а, 174b, 174с, 174d и 174е). Опорные кадры 174 могут быть упорядоченным по времени списком кадров в видеосигнале до или после кадра 170. Как показано на Фиг.2, кодер 110 может сравнивать блок 171а кадра 170 с опорным кадром 174 для идентификации соответствующих блоков, таких как блок 176 в кадре 174с.
Кодер 110 может вычислять данные компенсации движения, например, векторы движения и значения разницы для каждой группы блоков, таких как блоки (части) размером 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 блоков 171. Кодер 110 может сначала вычислять данные компенсации движения для больших блоков 171, например, размером 16×16, затем вычислять данные компенсации движения для каждого подблока в больших блоках, например, размером 16×8, 8×8 и т.д. Кодер 110 может выбрать конкретное разбиение или ряд блоков 171 одного или нескольких размеров, которое покрывает в значительной степени весь кадр 170. Кодер 110 может выбрать конкретные блоки и соответствующие данные предсказания для каждой части кадра 170 на основании функции затрат, например, функции, определяющей искажение в зависимости от скорости передачи (RD), которая содержит меру соотношения между размером кодирования и искажением на основе размера данных кодирования в кадре и части кадра, использующего конкретный набор векторов движения и разностей для конкретного набора блоков кадра и соответствующих оценок конечного искажения изображения. Кодер 110 может использовать любую подходящую функцию затрат, включая в себя уже известные в уровне техники. Например, подходящие функции затрат описаны в работе "Rate-Constrained Coder Control and Comparison of Video Coding Standards," IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL.13, NO.7, 688 (July 2003). Функции затрат могут содержать, например, функции, определяющие искажение в зависимости от скорости передачи, малейшие разности и/или функции суммы абсолютных разностей (SAD).
Фиг.3 представляет собой блок-схему, иллюстрирующую пример способа 204 кодирования мультимедийных данных. Данный способ начинается на этапе 222, на котором кодер 110 сравнивает блок кадра, например, блок 171а кадра 170, как проиллюстрировано на Фиг.2, с каждым опорным кадром из списка, например, с кадрами 174 по Фиг.2 для идентификации совпадающих данных для кодирования блока 171а. Кодер 110 может проводить поиск для каждого из опорных кадров 174 на наличие частей, таких как блок 176 кадра 174с, который по меньшей мере частично совпадает с блоком 171а. Затем на этапе 224 кодер 110 выбирает один из опорных кадров 174, например, опорный кадр 174с, у которого наименьшая функция затрат кодирования для представления блока 171а. В дополнение к этому, кодер 110 может, как вариант, выбрать поднабор опорных кадров 174 на основании выбранного опорного кадра. Например, поднабор может включать в себя только выбранный опорный кадр, например, опорный кадр 174с. В другом примере, в котором опорные кадры 174 содержат временную последовательность кадров от 1 до N, выбранный опорный кадр 174 является кадром j в последовательности, таким образом, что этот поднабор включает в себя опорные кадры от j-M до j+M, где М - целое число, которое задает размер поднабора. Например, если М=1, то подмножество включает в себя кадры от j-1 до j+1, например, идентифицированный опорный кадр и опорные кадры, смежные с идентифицированным опорным кадром в серии кадров от 1 до N. Понятно, что М=1 приводится только в качестве иллюстрации и что аспекты могут использовать другие значения параметра М размера множества. Кроме того, понятно, что диапазон может иметь нижнюю границу кадра в нижнем конце последовательности, например, кадр, идентифицированный как 1, и верхнюю границу кадра в верхнем конце последовательности, например, кадр N.
Затем на этапе 228 кодер 110 обрабатывает по меньшей мере одну из подчастей, например, подблоков, на основании выбранного опорного кадра. Кодер может обрабатывать подблоки путем сравнения подблоков кадра 170 с выбранным опорным кадром, чтобы найти по меньшей мере частично совпадающую часть 176 опорного кадра 174. Например, кодер 110 может сравнивать каждый подблок блока 171а, например, подблоки размера 16×8 или 8×16 только с выбранным опорным кадром 174. Таким образом, кодеру 110 для кодирования подблоков нет необходимости искать все пять опорных кадров 174 и, следовательно, уменьшается вычислительная сложность при незначительном увеличении эффектов искажения.
В дополнение к этому, кодер может также сравнивать подблоки с поднабором опорных кадров, как описано со ссылкой на этап 224 способа. Например, если кадр 174с идентифицируется как опорный кадр для блока 171а размером 8×8, поднабор опорных кадров может содержать кадр 174с или целый диапазон кадров, примыкающих к кадру 174с во временной области, например, кадров от 174b до 174d. Кроме того, кодер 110 может быть сконфигурирован для выполнения следующих комбинаций: поиска всех опорных кадров, только выбранных опорных кадров или только поднабора опорных кадров. Кодер 110 может выбрать эти комбинации на основании, например, размера искомых блоков. Фиг.5, 6 и 7 иллюстрируют конкретные примеры таких комбинаций.
Было установлено, что поиск не всех опорных кадров 174 в соответствии с вышеизложенным способом предпочтительно уменьшает вычислительную сложность поиска компенсации движения без существенного увеличения количества шума или искажения в кодированном кадре 170. Способ 204 может быть повторен для различных блоков или подблоков 171 кадра 170.
Фиг.4 представляет собой блок-схему, иллюстрирующую пример устройства для обработки видеоданных в соответствии со способом, показанным на Фиг.3. В частности, Фиг.3 иллюстрирует пример кодера 110. Кодер 100 содержит модуль 302 для сравнения части кадра с множеством опорных кадров, модуль 304 для выбора опорного кадра из множества опорных кадров и модуль 306 для обработки по меньшей мере одной из подчастей на основании выбранного опорного кадра. Модуль 302 для сравнения части кадра может быть сконфигурирован для сравнения части кадра с несколькими опорными кадрами. Например, модуль 302 может выполнять действия, описанные на этапе 222 по Фиг.3. Модуль 304 для выбора опорного кадра может быть сконфигурирован для выбора опорного кадра, например, 174с, из множества опорных кадров 174 (см. Фиг.2). Например, модуль 304 может выполнять действия, описанные на этапе 224 по Фиг.3. Модуль 304 может выбрать опорный кадр 174 на основании функции затрат, как это описано выше. Модуль 304 для выбора опорного кадра может также быть сконфигурирован для выбора поднабора опорных кадров на основании идентифицированного опорного кадра, например, кадры от j-1 до j+1, в которых опорные кадры идентифицированы, как кадр j в следующих во времени сериях опорных кадров. Модуль 306 для обработки подчастей кадра может быть сконфигурирован для обработки по меньшей мере одной из подчастеи на основании выбранного опорного кадра 174, например, модуль 306 может выполнять действия, описанные на этапе 228 по Фиг.3.
Представленная ниже Таблица 1 иллюстрирует смоделированные результаты для некоторого количества примеров способов кодирования, в которых поиск опорных кадров 174 упрощен для поиска блоков различных размеров. Таблица 1 сравнивает затраты поиска всех N опорных кадров для всех размеров блоков для трех примеров различных способов упрощенного поиска опорных кадров, описанного здесь. Таблица 1 сравнивает битовые скорости, отношение пикового сигнала к шуму (PSNR) и «штраф», например, увеличенное отношение сигнала к шуму в способах упрощенного поиска, для некоторого количества различных видеосигналов из анимации, видеоклипов, новостей, спортивных состязаний, спортивного кабельного канала, кабельного канала с фильмами или типичного кабельного телевизионного сигнала.
Фиг.5 представляет собой блок-схему, показывающую более детально первый пример способа 204 по Фиг.3. Этот первый пример соответствует Примеру А в Таблице 1 и содержит способ уменьшения опорных кадров в режимах, использующих подблоки размером 8×8. Например, выполняется поиск по всем N опорных кадров на этапе 350 на наличие кодирования данных для подблока размером 8×8. Выбирается конкретный опорный кадр 174, например, кадр j с наименьшим значением функции затрат для кодирования подблока размером 8×8. В смоделированных данных Таблицы 1, N равно 5 опорным кадрам. Затем на 9 тапе 352 смоделированный кодер 110 выполняет только поиск по выбранному кадру j на наличие кодированных данных для подблоков блока размером 8×8 (например, блоков размером 8×4, 4×4, 4×8).
Фиг.6 представляет собой блок-схему, более детально показывающую второй пример способа 204 по Фиг.3. Второй пример соответствует Примеру В в Таблице 1 и сравнивает способ, предоставляющий уменьшение опорных кадров, по которым выполняется поиск на наличие кодированных данных для блоков размером 16×8 и блоков размером 8×16. Например, на этапе 360 кодер 110 выполняет поиск по N опорным кадрам для кодирования данных для блока размером 16×16 и идентифицирует кадр j, как предоставляющий низкое значение функции затрат для кодирования блока размером 16×16. Наименьшее значение может быть наименьшим вычисленным значением затарт. Далее на этапе 362 для подблоков размером 16×8 и 8×16 блока размером 16×16 кодер 110 только ищет выбранный опорный кадр j для кодирования данных.
Фиг.7 представляет собой блок-диаграмму, иллюстрирующую более подробно третий пример способа 204 по Фиг.3. Третий пример соответствует Примеру С и содержит способ уменьшения опорных кадров, используемых для кодирования блоков размером 16×8, 8×16, 8×8 и подблоков размером 8×8. Способ Примера С включает в себя действия, связанные с этапами 360 и 362 по Фиг.6, для упрощения поиска для блоков размером 16×8 и 8×16 путем поиска только выбранного опорного кадра j. Затем после вычисления затрат на основании сокращенных опорных кадров для блоков размером 16×8 и 8×16 на этапе 362 для каждого подблока размером 8×8 блоков размером 16×8 и 8×16 кодер 110 ищет на этапе 374 по Фиг.6 набор опорных кадров, временно соседствующих с выбранным опорным кадром j, например, внутри одного кадра для подблоков размером 8×8, кадры от max(0, j-1) до min(N, j+1). Переходя на этап 378, кодер 110 выбирает опорный кадр i, имеющий наименьшие затраты кодирования для каждого блока размером 8×8. Далее, на этапе 380 для подблоков блока размером 8×8 кодер 110 осуществляет поиск только по опорному кадру i для кодирования данных.
Смоделированные данные в Таблице 1 были сгенерированы с учетом использования адаптивного кодирования кадра и поиска в диапазоне 32×32 пикселя.
Таблица 1
Тип контента
Поиск всех N опорных кадров
Пример А
Пример А и В
Пример С
Анимация
Скорость передачи данных (кбит/с)
224.1024
223.9125
223.4455
223.8705
PSNR (дБ)
36.48065
36.40682
36.36378
36.26227
Штраф (дБ)
0
0.070032
0.103732
0.213742
Музыка
Скорость передачи данных (кбит/с)
242.9459
241.1545
240.2382
240.4
PSNR (дБ)
36.12607
36.00855
35.93545
35.8716
Штраф (дБ)
0
0.081692
0.136466
0.203552
Новости
Скорость передачи данных (кбит/с)
201.852
202.3049
201.5107
202.9838
PSNR (дБ)
38.31485
38.46045
38.34122
38.38856
Штраф (дБ)
0
-0.13654
-0.0332
-0.05107
Спорт
Скорость передачи данных (кбит/с)
250.3261
250.5926
250.8334
250.9431
PSNR (дБ)
33.76418
33.70399
33.67024
33.59318
Штраф (дБ)
0
0.06552
0.104086
0.18334
Спортивный кабельный канал
Скорость передачи данных (кбит/с)
258.1204
257.9902
257.4172
258.2838
PSNR (дБ)
32.12103
32.05273
31.9976
31.93628
Штраф (дБ)
0
0.065696
0.109366
0.188018
Кабельный канал с фильмами
Скорость передачи данных (кбит/с)
237.925
238.8215
237.9826
138.5083
PSNR (дБ)
37.6586
37.71595
37.61822
37.53846
Штраф (дБ)
0
-0.03942
0.041532
0.131806
Общее кабельное видео
Скорость передачи данных (кбит/с)
237.567
234.5901
236.9851
236.7844
PSNR (дБ)
35.64185
35.47642
35.3201
35.43013
Штраф (дБ)
0
0.105892
0.110112
0.196068
Среднее Штраф (дБ)
0
0.03041
0.082738
0.152207
Все три проиллюстрированных примера представляют различные соотношения между сложностью поиска опорного кадра и качеством кодирования. Среди них способ из Примера С имеет наименьшую сложность при потерях PSNR всего лишь около 0.15 дБ.
На основании вышеизложенного понятно, что изобретение преодолевает проблему кодирования мультимедийных данных, таких как видеоданные. Например, упрощенный поиск опорных кадров в соответствии с одним аспектом уменьшает вычислительную сложность видеокодирования без существенной потери точности воспроизведения видео. Следовательно, видеокодеры могут использовать меньшую мощность, меньшие задержки и/или требовать менее сложные процессоры и электронные компоненты.
Специалистам в данной области техники должно быть понятно, что различные проиллюстрированные здесь логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с раскрытыми аспектами, могут быть реализованы как электронное аппаратное оборудование, или как компьютерное программное обеспечение, или в их комбинации. Для более ясной иллюстрации взаимозаменяемости аппаратной и программной реализации выше описаны примеры различных компонентов, блоков, модулей, микросхем и этапов, в общем, с точки зрения их функциональности. Конкретный способ реализации такой функциональности, аппаратный или программный, зависит от конкретного решения и ограничений в разработке, учитываемых для всей системы. Квалифицированные разработчики могут реализовывать описываемую функциональность различными способами для каждого конкретного решения, но такие решения реализации не должны быть истолкованы, как отклонение от объема данного изобретения.
Различные проиллюстрированные логические блоки, модули и микросхемы, описанные в связи с раскрытыми аспектами, могут быть реализованы или выполнены на процессоре общего назначения, процессоре обработки цифровых сигналов (DSP), специализированной интегральной микросхеме (ASIC), программируемой вентильной матрице (FPGA) или других программируемых логических устройствах, дискретных вентилях или транзисторной логике, дискретных аппаратных компонентах или любой их комбинации, созданных для выполнения описанной здесь функциональности. Процессор общего назначения может быть микропроцессором, но как вариант процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может быть также реализован как комбинация вычислительных устройств, например, комбинация DSP и микропроцессора, нескольких микропроцессоров, одного или более процессоров вместе с ядром DSP-процессора или как любая другая подобная конфигурация.
Этапы способа или алгоритма, описанные в связи с раскрытыми аспектами, могут быть реализованы либо непосредственно на аппаратном уровне, либо в виде программного модуля, выполняемого на процессоре, либо в их комбинации. Программный модуль может находиться в оперативной памяти (RAM), во флеш-памяти, в постоянной памяти (ROM), в программируемой постоянной памяти (EPROM), в электрически стираемой программируемой постоянной памяти (EEPROM), в регистрах, на жестком диске, на сменном диске, на оптическом диске (CD-ROM) или на любом другом носителе, известном из уровня техники. Примерный носитель соединен с процессором таким образом, что процессор может считывать с него данные и записывать на него данные. В альтернативном случае, носитель может быть интегрирован в процессор. Процессор и носитель информации могут находиться на ASIC. Сама схема ASIC может располагаться в пользовательском терминале. В альтернативном случае, процессор и носитель информации могут располагаться как дискретные компоненты в пользовательском терминале.
Предшествующее описание раскрываемых здесь аспектов приведено для того, чтобы дать возможность любому специалисту в данной области техники создать или использовать настоящее изобретение. Различные модификации этих аспектов будут очевидны для специалистов в данной области техники, а общие принципы, определенные здесь, могут быть применены для других вариантов осуществления без отклонения от сущности или объема данного изобретения. Таким образом, настоящее изобретение не ставит целью ограничиваться представленными аспектами, но должно соответствовать самому широкому объему, совместимому с раскрытыми принципами и новыми признаками.
Хотя выше приведено подробное описание, описывающее и выделяющее новые признаки изобретения в применении к различным аспектам, понятно, что специалисты в данной области техники могут делать всевозможные пропуски, подстановки и изменения по форме и в деталях устройства или процесса, проиллюстрированного здесь, но без отклонения от сущности изобретения. Понятно, что настоящее изобретение может быть воплощено в такой форме, которая не обеспечивает всех признаков и преимуществ, изложенных выше, так как некоторые признаки могут быть использованы или задействованы отдельно от других. Объем данного изобретения представлен прилагаемой формулой изобретения, а не вышеизложенным описанием. Все изменения, которые выполняются в рамках значения и диапазона эквивалентности пунктов формулы изобретения, должны охватываться объемом настоящего изобретения.