Методики масштабируемости на основе информации содержимого
Иллюстрации
Показать всеИзобретение относится к устройствам перекодирования видеоданных для потоковой передачи в реальном времени, и в частности, к перекодированию видеоданных для потоковой передачи в реальном времени в мобильном широковещательном приложении. Техническим результатом является создание транскодера, который предоставляет высокоэффективную обработку и сжатие мультимедийных данных, который использует информацию, определенную из самих мультимедийных данных, и является масштабируемым и устойчивым к ошибкам для применения во множестве приложений мультимедийных данных. Предложенное устройство использования информации содержимого для кодирования мультимедийных данных включает в себя модуль классификации содержимого, сконфигурированный так, чтобы классифицировать содержимое мультимедийных данных и предоставлять данные классификации содержимого, и кодер, сконфигурированный так, чтобы кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. 5 н. и 44 з.п. ф-лы, 42 ил.
Реферат
Заявление о преимуществе 35 U.S.C. §119
Настоящая Патентная заявка притязает на приоритет (a) Предварительной патентной заявки номер 60/721416, озаглавленной "A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS", зарегистрированной 27 сентября 2005 года, (b) Предварительной патентной заявки номер 60/789377, озаглавленной "A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILE BROADCAST APPLICATIONS", зарегистрированной 4 апреля 2006 года, (c) Предварительной заявки номер 60/727643, озаглавленной "METHOD AND APPARATUS FOR SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD-BASED VIDEO", зарегистрированной 17 октября 2005 года, (d) Предварительной заявки номер 60/727644, озаглавленной "METHOD AND APPARATUS FOR SHOT DETECTION IN VIDEO STREAMING", зарегистрированной 17 октября 2005 года, (e) Предварительной заявки номер 60/727640, озаглавленной "A METHOD AND APPARATUS FOR USING AN ADAPTIVE GOP STRUCTURE IN VIDEO STREAMING", зарегистрированной 17 октября 2005 года, (f) Предварительной заявки номер 60/730145, озаглавленной "INVERSE TELECINE ALGORITHM BASED ON STATE MACHINE", зарегистрированной 24 октября 2005 года, и (g) Предварительной заявки номер 60/789048, озаглавленной "SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATION FOR FIELD-BASED MULTIMEDIA DATA", зарегистрированной 3 апреля 2006 года. Все семь этих предварительных патентных заявок назначены ее правопреемнику и тем самым полностью содержатся в данном документе по ссылке.
Ссылка на находящиеся одновременно на рассмотрении Заявки на патент
Настоящая заявка на патент связана с патентной заявкой (США) № 11/373577, озаглавленной "CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING", зарегистрированной 10 марта 2006 года, назначенной правопреемнику этой заявки и таким образом явно содержащейся в данном документе по ссылке.
Уровень техники
Область техники, к которой относится изобретение
Настоящая заявка направлена на устройства и способы перекодирования видеоданных для потоковой передачи в реальном времени, а более конкретно к перекодированию видеоданных для потоковой передачи в реальном времени в мобильном широковещательном приложении.
Уровень техники
Эффективное видеосжатие используется во множестве мультимедийных приложений, таких как потоковая передача видео и видеотелефония, вследствие ограниченных ресурсов полосы пропускания и непостоянства доступной полосы пропускания. Конкретные стандарты кодирования видео, такие как MPEG-4 (ISO/IEC), H.264 (ITU) или аналогичное кодирование видео, предоставляют высокоэффективное кодирование, оптимально подходящее для таких приложений, как беспроводная широковещательная передача. Некоторые мультимедийные данные, например, цифровые телевизионные представления, как правило, кодируются согласно другим стандартам, таким как MPEG-2. Соответственно, транскодеры используются для того, чтобы перекодировать или преобразовывать мультимедийные данные, кодированные согласно одному стандарту (к примеру, MPEG-2), в другой стандарт (к примеру, H.264) до беспроводной широковещательной передачи.
Усовершенствованные оптимизированные по скорости кодеки могут предоставлять преимущества по устойчивости к ошибкам, восстановлению после ошибок и масштабируемости. Более того, применение информации, определенной из самих мультимедийных данных, также может предоставлять дополнительные усовершенствования по кодированию, в том числе устойчивость к ошибкам, восстановление после ошибок и масштабируемость. Соответственно, существует потребность в транскодере, который предоставляет высокоэффективную обработку и сжатие мультимедийных данных, который использует информацию, определенную из самих мультимедийных данных, и является масштабируемым и устойчивым к ошибкам для применения во множестве приложений мультимедийных данных, в том числе мобильной широковещательной передаче потоковой мультимедийной информации.
Сущность изобретения
Каждое из изобретаемых устройств и способов, основанных на содержимом перекодирования, описанных и проиллюстрированных, имеет несколько аспектов, ни один из которых не отвечает исключительно за требуемые атрибуты. Не ограничивая объем этого изобретения, далее будут кратко обсуждены его наиболее заметные признаки. После рассмотрения этого обсуждения, а более точно, после прочтения раздела, озаглавленного "Подробное описание изобретения", станет понятно, как признаки данного управляемого содержимым перекодирования предоставляют усовершенствования в устройства и способы обработки мультимедийных данных.
Изобретаемые аспекты, описанные в данном документе, относятся к использованию информации содержимого для различных способов кодирования мультимедийных данных и в различных модулях и компонентах кодера, например, кодера, используемого в транскодере. Транскодер может управлять перекодированием мультимедийных данных с помощью информации содержимого. Информация содержимого может приниматься из другого источника, например, метаданных, которые принимаются вместе с видео. Транскодер может быть сконфигурирован для того, чтобы формировать информацию содержимого с помощью множества различных операций обработки. В некоторых аспектах транскодер формирует классификацию содержимого мультимедийных данных, которая затем используется в одном или более процессов кодирования. В некоторых аспектах управляемый содержимым транскодер может определять пространственную и временную информацию содержимого мультимедийных данных и использовать информацию содержимого для кодирования с одинаковым качеством с учетом содержимого по каналам и основанного на классификации сжатия/назначения битов.
В некоторых аспектах информация содержимого (к примеру, метаданные, показатели содержимого и/или классификация содержимого) мультимедийных данных получается и вычисляется, а затем предоставляется компонентам транскодера для использования в обработке мультимедийных данных для кодирования. Например, препроцессор может использовать определенную информацию содержимого для обнаружения смены сцен, преобразования из видеоформата в фильм (IVTC), устранения чересстрочной развертки, компенсации движения и подавления шумов (к примеру, двумерного вейвлет-преобразования) и пространственно-временного ослабления шумов, к примеру, удаления дефектов изображения, подавления ревербераций, разблокирования и/или снижения шумности. В некоторых аспектах препроцессор также может использовать информацию содержимого для понижающей дискретизации пространственного разрешения, к примеру, определения соответствующих "защищенных" зон и зон "управления движущимися объектами" при понижающей дискретизации со стандартного разрешения (SD) до четверти логической матрицы видеографики (QVGA).
В некоторых аспектах кодер включает в себя модуль классификации содержимого, который сконфигурирован так, чтобы вычислять информацию содержимого. Кодер может использовать классификацию содержимого для управления скоростью передачи в битах (к примеру, назначения битов) при определении параметров квантования для каждого MB, для оценки движения, например, выполнения цветовой оценки движения (ME), выполнения предсказания векторов движения (MV), масштабируемости при предоставлении базового уровня и уровня улучшения, а также для устойчивости к ошибкам посредством использования классификации содержимого так, чтобы влиять на схемы иерархии предсказания и устойчивости к ошибкам, в том числе, к примеру, процессы адаптивного внутреннего обновления, выравнивания границ и предоставление избыточных данных I-кадра в уровне улучшения. В некоторых аспектах транскодер использует классификацию содержимого во взаимодействии с мультиплексором данных для поддержания оптимального качества мультимедийных данных в каналах. В некоторых аспектах кодер может использовать информацию классификации содержимого для принудительного периодического появления I-кадров в кодированных данных, чтобы обеспечить быстрое переключение каналов. Эти реализации также могут применять I-блоки, которые могут требоваться в кодированных данных для устойчивости к ошибкам, с тем чтобы переключение с произвольным доступом и устойчивость к ошибкам (на основе, к примеру, классификации содержимого) могли эффективно комбинироваться посредством иерархии предсказания, чтобы повысить эффективность кодирования с увеличением запаса устойчивости по ошибкам.
В одном аспекте способ обработки мультимедийных данных содержит классификацию содержимого мультимедийных данных и кодирование мультимедийных данных в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Кодирование может включать в себя определение скорости передачи битов на основе классификации содержимого мультимедийных данных и кодирование мультимедийных данных на основе скорости передачи битов. Классификация содержимого может содержать определение сложности мультимедийных данных, и при этом выбранные мультимедийные данные кодируются на основе сложности мультимедийных данных. Сложность может содержать временную сложность или пространственную сложность либо временную сложность и пространственную сложность. Кодирование может включать в себя кодирование мультимедийных данных так, чтобы обеспечить декодирование только первой группы данных или первой группы данных и второй группы данных в одну комбинированную группу данных. Первое дифференциальное уточнение может указывать разность между выбранным видеокадром и данными кадра, вытекающими из декодирования первой группы данных. Первая группа данных может быть базовым уровнем, а вторая группа данных может быть уровнем улучшения. Помимо этого, способ может включать в себя выбор коэффициента из одного из коэффициента остаточной ошибки исходного базового уровня и коэффициента остаточной ошибки исходного уровня улучшения и вычисления первого дифференциального уточнения на основе коэффициента и коэффициента остаточной ошибки исходного уровня улучшения. Кодирование дополнительно может содержать кодирование информации заголовков макроблоков и информации вектора движения в первой группе данных. Кодирование дополнительно может содержать квантование первой группы данных с первым размером шага и квантование второй группы данных со вторым размером шага, при этом первый размер шага и второй размер шага соотносятся посредством коэффициента масштабирования. Кодирование дополнительно может включать в себя определение первого параметра квантования, имеющего первый размер шага квантования, для использования при кодировании первой группы данных и определение второго параметра квантования, имеющего второй размер шага квантования, для использования при кодировании второй группы данных, при этом первый и второй параметры квантования определяются на основе информации содержимого выбранных данных кадра и при этом упомянутый первый размер шага квантования более грубый, чем упомянутый второй размер шага квантования. В другом аспекте кодирование включает в себя кодирование первой группы данных с помощью I-кадров и P-кадров либо любой их комбинации и кодирование второй группы данных с помощью I-кадров, P-кадров и B-кадров либо любой их комбинации.
В другом аспекте устройство кодирования мультимедийных данных включает в себя средство классификации содержимого мультимедийных данных, средство кодирования мультимедийных данных в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Средство кодирования может содержать средство для определения скорости передачи битов на основе классификации содержимого мультимедийных данных и кодирования мультимедийных данных на основе скорости передачи битов. Средство классификации содержимого может включать в себя средство определения сложности мультимедийных данных, и при этом выбранные мультимедийные данные кодируются на основе сложности мультимедийных данных, причем сложность содержит временную сложность или пространственную сложность либо временную сложность и пространственную сложность. Средство кодирования может содержать средство для того, чтобы обеспечить декодирование только первой группы данных или первой группы данных и второй группы данных в одну комбинированную группу данных.
В другом аспекте устройство включает в себя модуль классификации содержимого мультимедийных данных, сконфигурированный так, чтобы классифицировать содержимое мультимедийных данных и предоставлять данные классификации содержимого, и кодер, сконфигурированный так, чтобы кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных. Кодер может включать в себя компонент скорости передачи битов, сконфигурированный так, чтобы определять назначение битов на основе классификации содержимого, при этом компонент кодирования дополнительно сконфигурирован так, чтобы кодировать выбранные мультимедийные данные с помощью назначения битов.
В другом аспекте машиночитаемый носитель содержит инструкции, которые при исполнении инструктируют машине классифицировать содержимое мультимедийных данных и кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных.
В другом аспекте процессор сконфигурирован так, чтобы классифицировать содержимое мультимедийных данных и кодировать мультимедийные данные в первой группе данных и во второй группе данных на основе классификации содержимого, причем первая группа данных содержит коэффициент, а вторая группа данных содержит первое дифференциальное уточнение, ассоциативно связанное с коэффициентом первой группы данных.
Краткое описание чертежей
Фиг.1A - это блок-схема мультимедийной широковещательной системы, включающей в себя транскодер для перекодирования между различными видеоформатами.
Фиг.1B - это блок-схема кодера, сконфигурированного так, чтобы кодировать мультимедийные данные и предоставлять кодированную первую группу данных и кодированную вторую группу данных.
Фиг.1C - это блок-схема процессора, сконфигурированного так, чтобы кодировать мультимедийные данные.
Фиг.2 - это блок-схема примера транскодера системы по фиг.1.
Фиг.3 - это блок-схема последовательности операций способа, иллюстрирующая работу анализатора, используемого в транскодере по фиг.2.
Фиг.4 - это блок-схема последовательности операций способа, иллюстрирующая работу декодера, используемого в транскодере по фиг.2.
Фиг.5 - это системная временная схема, иллюстрирующая последовательность операций, выполняемых посредством транскодера по фиг.2.
Фиг.6 - это блок-схема, иллюстрирующая последовательность операций и функций препроцессора, которые могут быть использованы в транскодере по фиг.2.
Фиг.7 - это блок-схема примерного двухпроходного кодера, который может быть использован в транскодере по фиг.2.
Фиг.8 иллюстрирует пример классификационной диаграммы, которая иллюстрирует один аспект того, как ассоциативно связывать значения текстуры и движения с классификацией содержимого.
Фиг.9 - это блок-схема последовательности операций способа, иллюстрирующая примерную операцию классификации содержимого, например, для использования в кодере по фиг.7.
Фиг.10 - это блок-схема последовательности операций способа, иллюстрирующая операцию управления скоростью, например, для использования в кодере по фиг.7.
Фиг.11 - это блок-схема последовательности операций способа, иллюстрирующая работу примерного блока оценки движения, например, для использования в кодере по фиг.7.
Фиг.12 - это блок-схема последовательности операций способа, иллюстрирующая работу примерной функции кодера для определения режима, например, для использования в кодере по фиг.7.
Фиг.13 - это блок-схема последовательности операций способа, иллюстрирующая примерную операцию осуществления масштабируемости для использования в кодере по фиг.7.
Фиг.14 - это блок-схема последовательности операций способа, иллюстрирующая примерную операцию осуществления потока данных с искажением в зависимости от скорости, как происходит, к примеру, в кодере по фиг.7.
Фиг.15 - это график, иллюстрирующий взаимосвязь между сложностью кодирования, назначенными битами и визуальным качеством человека.
Фиг.16 - это график, иллюстрирующий нелинейную схему обнаружения сцен.
Фиг.17A - это блок-схема последовательности операций способа, иллюстрирующая обработку мультимедийных данных, которые получены, приняты или иным образом доступны.
Фиг.17B - это блок-схема системы кодирования мультимедиа.
Фиг.18 - это схема, иллюстрирующая процесс устранения чересстрочной развертки с помощью оценки/компенсации движения.
Фиг.19 - это блок-схема мультимедийной системы связи.
Фиг.20 - это схема, иллюстрирующая организацию видеопотока битов в уровне улучшения и базовом уровне.
Фиг.21 - это схема, иллюстрирующая совмещение серий макроблоков с границами видеокадров.
Фиг.22 - это блок-схема, иллюстрирующая иерархию предсказания.
Фиг.23 - это блок-схема последовательности операций, иллюстрирующая способ кодирования мультимедийных данных на основе информации содержимого.
Фиг.24 - это блок-схема последовательности операций, иллюстрирующая способ кодирования мультимедийных данных, так чтобы совмещать границы данных на основе уровня информации содержимого.
Фиг.25 - это график, иллюстрирующий защищенную область движущихся объектов и защищенную область тайтлов кадра данных.
Фиг.26 - это график, иллюстрирующий защищенную область движущихся объектов кадра данных.
Фиг.27 - это блок-схема последовательности операций, иллюстрирующая процесс кодирования мультимедийных данных с помощью адаптивного внутреннего обновления на основе информации мультимедийного содержимого.
Фиг.28 - это блок-схема последовательности операций, иллюстрирующая процесс кодирования мультимедийных данных с помощью избыточных I-кадров на основе информации мультимедийного содержимого.
Фиг.29 иллюстрирует векторы компенсации движения между текущим кадром и предыдущим кадром MVP и текущим кадром и следующим кадром MVN.
Фиг.30 - это блок-схема последовательности операций способа, иллюстрирующая обнаружение кадров.
Фиг.31 - это блок-схема последовательности операций способа, иллюстрирующая кодирование базового уровня и уровня улучшения.
Фиг.32 - это схематичное представление, иллюстрирующее кодирование макроблока.
Фиг.33 - это схематичное представление, иллюстрирующее модули для кодирования базового уровня и уровня улучшения.
Фиг.34 иллюстрирует пример процесса в блоке выбора коэффициентов базового уровня и уровня улучшения.
Фиг.35 иллюстрирует еще один пример процесса в блоке выбора коэффициентов базового уровня и уровня улучшения.
Фиг.36 иллюстрирует еще один пример процесса в блоке выбора коэффициентов базового уровня и уровня улучшения.
Фиг.37 - это блок-схема последовательности операций способа, иллюстрирующая кодирование мультимедийных данных на основе информации содержимого.
Фиг.38 - это схема, иллюстрирующая возможные системные решения в процессе преобразования из видеоформата в фильм.
Фиг.39 иллюстрирует границы в макроблоке, которые должны быть отфильтрованы посредством процесса разблокирования.
Фиг.40 - это схема, иллюстрирующая процесс пространственно-временного устранения чересстрочной развертки (деинтерлейсинга).
Фиг.41 иллюстрирует пример одномерной монофазной повторной дискретизации.
Фиг.42 - это блок-схема последовательности операций способа, иллюстрирующая пример адаптивной GOP-структуры в потоковой передаче видео.
Следует отметить, что аналогичные номера ссылок означают аналогичные детали по всем представлениям на чертежах соответствующим образом.
Подробное описание изобретения
Последующее подробное описание направлено на определенные аспекты, описываемые в данной заявке. Тем не менее, изобретение может быть осуществлено большим количеством различных способов. Ссылка в этом подробном описании на "один аспект" или "аспект" означает, что конкретный признак, конструкция или характеристика, описываемые в связи с аспектом, включены, по меньшей мере, в один аспект. Вхождение фразы "в одном аспекте", "согласно одному аспекту" или "в некоторых аспектах" в разных местах данного подробного описания не обязательно все указывают на тот же аспект, а также не являются отдельными или альтернативными аспектами, взаимоисключающими другие аспекты. Более того, описаны различные признаки, которые могут быть продемонстрированы посредством некоторых аспектов, но не посредством других. Аналогично, описаны различные требования, которые могут быть требованиями для некоторых аспектов, но не для других аспектов.
Последующее описание включает в себя подробные сведения для того, чтобы предоставить полное понимание примеров. Тем не менее, специалистам в данной области техники следует понимать, что примеры могут быть использованы на практике, даже если все подробности процесса или устройства в примере или аспекте не пояснены или проиллюстрированы в данном документе. Например, на блок-схемах могут быть показаны электрические компоненты, которые не иллюстрируют все электрические соединения или все электрические элементы компонента, чтобы не отвлекать от понимания примеров ненужными подробностями. В других случаях такие компоненты, другие структуры и методики могут быть подробно показаны, чтобы дополнительно пояснить примеры.
Настоящее устройство относится к устройствам и способам управления кодированием и перекодированием с помощью информации содержимого кодируемых мультимедийных данных. "Информация содержимого" или "содержимое" (мультимедийных данных) - это обширные термины, означающие информацию, связанную с содержимым мультимедийных данных, и могут включать в себя, например, метаданные, показатели, вычисленные из мультимедийных данных, и относящуюся к содержимому информацию, ассоциативно связанную с одним или более показателями, например, классификацию содержимого. Информация содержимого может быть предоставлена в кодер или определена посредством кодера в зависимости от конкретного варианта применения. Информация содержимого может быть использована для многих аспектов кодирования мультимедийных данных, в том числе обнаружения смены сцен, временной обработки, пространственно-временного понижения шумов, понижающей дискретизации, определения скоростей передачи битов для квантования, масштабирование устойчивости к ошибкам, сохранения оптимального качества мультимедиа в широковещательных каналах и быстрого переключения каналов. С помощью одного или более этих аспектов транскодер может управлять обработкой мультимедийных данных и формировать связанные с содержимым кодированные мультимедийные данные. Описания и чертежи в данном документе, которые описывают аспекты перекодирования, также могут быть применены к аспектам кодирования и аспектам декодирования.
Устройства и способы транскодера связаны с перекодированием из одного формата в другой и подробно описываются в данном документе как связанные с перекодированием видео MPEG-2 в улучшенный масштабируемый формат H.264 для передачи по беспроводным каналам в мобильные устройства, иллюстрирующие некоторые аспекты. Тем не менее, описание перекодирования видео MPEG-2 в формат H.264 не выступает в качестве ограничения области применения изобретения, а является просто примером некоторых аспектов изобретения. Раскрытые устройства и способы предоставляют высокоэффективную архитектуру, которая поддерживает устойчивое к ошибкам кодирование с помощью возможностей произвольного доступа и разбиения на уровне и также может быть применена к перекодированию и/или кодированию видеоформатов, отличных от MPEG-2 и H.264.
"Мультимедийные данные" или просто "мультимедиа" при использовании в данном документе являются обширным термином, который включает в себя видеоданные (которые могут включать в себя аудиоданные), аудиоданные или и видеоданные, и аудиоданные. "Видеоданные" или "видео" при использовании в данном документе является широким термином, относящимся к основанным на кадрах или основанным на полях данным, которые включают в себя одно или более изображений или связанных последовательностей изображений, содержащих текст, информацию изображений и/или аудиоданных, и могут быть использованы для того, чтобы означать мультимедийные данные (к примеру, термины могут быть использованы взаимозаменяемо), если не указано иное.
Ниже описываются примеры различных компонентов транскодера и примеры процессов, которые могут использовать информацию содержимого для кодирования мультимедийных данных.
Фиг.1A - это блок-схема, иллюстрирующая поток данных некоторых аспектов системы 100 широковещательной передачи мультимедийных данных. В системе 100 поставщик 106 мультимедийных данных передает кодированные мультимедийные данные 104 в транскодер 200. Кодированные мультимедийные данные 104 принимаются посредством транскодера 200, который обрабатывает мультимедийные данные 104 в "сырые" необработанные мультимедийные данные на этапе 110. Обработка на блоке 110 декодирует и разбирает кодированные мультимедийные данные 104 и дополнительно обрабатывает мультимедийные данные, чтобы подготовить их к кодированию в другой формат. Декодированные мультимедийные данные предоставляются на этап 112, где мультимедийные данные кодируются в предварительно определенный мультимедийный формат или стандарт. После того как мультимедийные данные кодированы, на этапе 114 они подготавливаются для передачи, например, посредством беспроводной широковещательной системы (к примеру, сотовой телефонной широковещательной сети или посредством другой сети связи). В некоторых аспектах принятые мультимедийные данные 104 кодированы согласно стандарту MPEG-2. После того как перекодированные мультимедийные данные 104 декодированы, транскодер 200 кодирует мультимедийные данные в стандарт H.264.
Фиг.1B - это блок-схема транскодера 130, который может быть сконфигурирован так, чтобы выполнять обработку на этапах 110 и 112 фиг.1A. Транскодер 130 может быть сконфигурирован так, чтобы принимать мультимедийные данные, декодировать и разбирать мультимедийные данные на пакетированные элементарные потоки (к примеру, субтитры, аудио, метаданные, "необработанное" видео, CC-данные и временные метки представления), кодировать их в требуемый формат и предоставлять кодированные данные для дополнительной обработки или передачи. Транскодер 130 может быть сконфигурирован так, чтобы предоставлять кодированные данные в две или более группы данных, например, кодированную первую группу данных и кодированную вторую группу данных, что упоминается как многоуровневое кодирование. В некоторых примерах аспектов различные группы данных (или уровни) в схеме многоуровневого кодирования могут кодироваться на различных уровнях качества и форматироваться так, что данные, кодированные в первой группе данных, имеют худшее качество (к примеру, предоставляют меньший уровень визуального качества при отображении), чем данные, кодированные во второй группе данных.
Фиг.1C - это блок-схема процессора 140, который может быть сконфигурирован так, чтобы перекодировать мультимедийные данные, и может быть сконфигурирован так, чтобы выполнять часть или всю обработку, проиллюстрированную на этапах 110 и 112 по фиг.1A. Процессор 140 может включать в себя модули 124a...n, выполнять один или более процессов перекодирования, описанных в данном документе, в том числе декодирование, разбор, предварительную обработку и кодирование, и использовать информацию содержимого для обработки. Процессор 140 также включает в себя внутреннее запоминающее устройство 122 и может быть сконфигурирован так, чтобы обмениваться данными с внешним запоминающим устройством 120 напрямую или косвенно посредством другого устройства. Процессор 140 также включает в себя модуль 126 связи, сконфигурированный так, чтобы обмениваться данными с одним или более устройствами, внешними для процессора 140, в том числе принимать мультимедийные данные и предоставлять кодированные данные, такие как данные, кодированные в первой группе данных, и данные, кодированные во второй группе данных. В некоторых примерах аспектов различные группы данных (или уровни) в схеме многоуровневого кодирования могут кодироваться на различных уровнях качества и форматироваться так, что данные, кодированные в первой группе данных, имеют худшее качество (к примеру, предоставляют меньший уровень визуального качества при отображении), чем данные, кодированные во второй группе данных.
Транскодер 130 или его компоненты препроцессора 140 (сконфигурированные для перекодирования), а также процессы, содержащиеся в нем, могут быть реализованы посредством аппаратных средств, программного обеспечения, микропрограммного обеспечения, промежуточного программного обеспечения, микрокода или комбинации вышеозначенного. Например, анализатор, декодер, препроцессор или кодер могут быть автономными компонентами, включенными как аппаратные средства, микропрограммное обеспечение, промежуточное программное обеспечение в компонент другого устройства, или могут быть реализованы в микрокоде либо программном обеспечении, которое приводится в исполнение в процессоре, либо как комбинация вышеозначенного. Когда реализован в программном обеспечении, микропрограммном обеспечении, промежуточном программном обеспечении или микрокоде, программный код или сегменты кода, которые выполняют процессы компенсации движения, классификации кадров и кодирования, могут быть сохранены на машиночитаемом носителе, таком как носитель хранения. Сегмент кода может представлять процедуру, функцию, подпрограмму, программу, стандартную процедуру, вложенную процедуру, модуль, комплект программного обеспечения, класс или любое сочетание инструкций, структур данных или операторов программы. Сегмент кода может быть связан с другим сегментом кода или аппаратной схемой посредством передачи и/или приема информации, данных, аргументов, параметров или содержимого памяти.
Иллюстративный пример архитектуры транскодера
Фиг.2 иллюстрирует блок-схему примера транскодера, который может быть использован для транскодера 200, проиллюстрированного в мультимедийной широковещательной системе 100 по фиг.1. Транскодер 200 содержит анализатор/декодер 202, препроцессор 226, кодер 228 и синхронизирующий уровень 240, дополнительно описанные ниже. Транскодер 200 сконфигурирован так, чтобы использовать информацию содержимого мультимедийных данных 104 для одного или более аспектов процесса перекодирования, как описано в данном документе. Информация содержимого может быть получена из источника, внешнего для транскодера 200, через мультимедийные метаданные или вычислена посредством транскодера, например, посредством препроцессора 226 или кодера 228. Компоненты, показанные на фиг.2, иллюстрируют компоненты, которые могут быть включены в транскодер, который использует информацию содержимого для одного или более процессов перекодирования. В конкретной реализации один или более компонентов транскодера 200 могут быть исключены либо могут быть включены дополнительные компоненты. Дополнительно, части транскодера и процессов перекодирования описаны для того, чтобы предоставить возможность специалистам в данной области техники использовать на практике изобретение, даже если все подробности процесса или устройства могут не описываться в данном документе.
Фиг.5 иллюстрирует временную схему в качестве графической иллюстрации временной взаимосвязи работы различных компонентов и/или процессов транскодера 200. Как показано на фиг.5, кодированное потоковое видео 104 (кодированные мультимедийные данные), например, видео MPEG-2 сначала принимается в произвольный нулевой момент времени (0) посредством анализатора 205 (фиг.2). Далее видеопоток разбирается 501, демультиплексируется 502 и декодируется 503, например, посредством анализатора 205 в комбинации с декодером 214. Как проиллюстрировано, эти процессы могут выполняться параллельно с небольшим смещением по времени, чтобы предоставить потоковый вывод данных обработки в препроцессор 226 (фиг.2). В момент времени T1 504, после того как препроцессор 226 принял достаточно данных от декодера 214 для того, чтобы начать вывод результатов обработки, оставшиеся этапы обработки становятся последовательными по характеру, при этом кодирование 505 первого прохода, кодирование 506 второго прохода и повторное кодирование 507 выполняется последовательно после предварительной обработки до завершения повторного кодирования в момент времени Tf 508.
Транскодер 200, описанный в данном документе, может быть сконфигурирован так, чтобы перекодировать различные мультимедийные данные, и многие из процессов применяются к тому типу мультимедийных данных, который перекодируется. Хотя некоторые из примеров, предоставляемых в данном документе, относятся к перекодированию данных MPEG-2 в данные H.264, эти примеры не предназначены для того, чтобы ограничивать изобретение этими данными. Аспекты кодирования, описываемые ниже, могут быть применены к перекодированию любого соответствующего стандарта мультимедийных данных в другой соответствующий стандарт мультимедийных данных.
Анализатор/декодер
Снова ссылаясь на фиг.2, анализатор/декодер 202 принимает мультимедийные данные 104. Анализатор/декодер 202 включает в себя анализатор транспортных потоков ("анализатор") 205, который принимает мультимедийные данные 104 и разбирает данные на элементарный поток (ES) видео 206, ES 208 аудио, временные метки представления (PTS) 210 и другие данные, такие как субтитры 212. ES переносит один тип данных (видео или аудио) из одного видео- или аудиокодера. Например, ES видео содержит видеоданные для последовательности данных, включающие в себя заголовок последовательности и все подчасти последовательности. Пакетированный элементарный поток, или PES, состоит из одного ES, который составлен в пакеты, каждый из которых в типичном варианте начинается с добавленного заголовка пакета. PES-поток содержит только один тип данных из одного источника, к примеру, из одного видео- или аудиокодера. PES-пакеты имеют переменную длину, не соответствующую фиксированной длине транспортных пакетов, и могут быть гораздо длиннее, чем транспортный пакет. Когда транспортные пакеты сформированы из PES-потока, PES-заголовок может быть помещен в начало рабочих данных транспортного пакета, сразу после заголовка транспортного пакета. Оставшееся содержимое PES-пакета заполняет рабочие данные последовательных транспортных пакетов, пока PES-пакет не будет полностью использован. Конечный транспортный пакет может быть заполнен до фиксированной длины, к примеру, посредством дополнения байтами, к примеру, байтами = 0xFF (все единицы).
Анализатор 205 передает ES 206 видео в декодер 214, который является частью анализатора/декодера 202, показанной здесь. В других конфигурациях анализатор 205 и декодер 214 являются отдельными компонентами. PTS 210 отправляются в PTS-формирователь 215 транскодера, который может формировать отдельные временные метки представления, конкретные для транскодера 200, для использования при компоновке данных, которые должны быть отправлены из транскодера 200 в широковещательную систему. PTS-формирователь 215 транскодера может быть сконфигурирован так, чтобы предоставлять данные в синхронизирующий уровень 240 транскодера 200, чтобы координировать синхронизацию широковещательной передачи данных.
Фиг.3 иллюстрирует блок-