Структура декодера для оптимизированного управления обработкой ошибок в потоковой передаче мультимедийных данных
Иллюстрации
Показать всеИзобретение относится к декодирующему устройству данных изображения. Техническим результатом является повышение эффективности обработки потока мультимедийных данных посредством приема множества потоков закодированных мультимедийных данных, устраняя ошибки в ошибочной части потока и восстанавливая мультимедийные данные из множества потоков. Предложен способ и устройство для многоуровневой интеграции, используемые для устранения ошибок. Ошибка обнаруживается в мультимедийных данных на основе протокола первого уровня, а затем обнаруженная в мультимедийных данных ошибка маскируется на основе протокола второго уровня. В одном аспекте ошибку в мультимедийных данных устраняют на основе протокола уровня связи и контролируют ее на основе протокола транспортного уровня. Далее определяется распределение контролируемой ошибки на основе протокола уровня синхронизации, затем обнаруженная в мультимедийных данных ошибка маскируется на основе протокола прикладного уровня. Также обеспечивается этап устранения ошибок и этап масштабирования. 5 н.п. и 35 з.п. ф-лы, 7 ил., 1 табл.
Реферат
Описание
По настоящей заявке на патент испрашивается приоритет в соответствии с предварительной заявкой на патент № 60/660.681, названной «Method and apparatus for error recovery in video communications», поданной 10 марта 2005 года, предварительной заявкой на патент № 60/660.923, названной «Method and apparatus for video decoding», поданной 10 марта 2005 года, и предварительной заявкой на патент № 60/660.867, названной «Method of error recovery for a decoder», поданной 10 марта 2005 года, каждая из которых принадлежит заявителю настоящей заявки и включена в настоящее описание посредством ссылки.
Область техники, к которой относится изобретение
Настоящее изобретение относится к способам и устройству для декодирования потоковой передачи мультимедийных данных в реальном времени на портативных устройствах.
Уровень техники
Вследствие высокого роста и большого успеха сети Интернет и беспроводной связи, а также увеличенного спроса на услуги мультимедиа, потоковая передача мультимедийных данных по сети Интернет и каналам мобильной/беспроводной связи привлекает огромное внимание. В неоднородной IP-сети видеоданные предоставляются сервером, но также могут быть предоставлены одним или несколькими клиентами. Проводные соединения включают в себя связь по телефонной линии, по цифровой сети с комплексными услугами (ISDN), по кабельной линии, по протоколам цифровой абонентской линии (совместно названные xDSL), по волоконно-оптическому кабелю, по локальным сетям (LAN), по глобальным сетям (WAN) и др. Режим передачи может быть либо одноадресным, либо многоадресным (групповым).
Мобильная/беспроводная связь подобна связи по неоднородной IP-сети. Транспортировка мультимедиа-контента (содержания) по каналам мобильной/беспроводной связи является довольно затруднительной в связи с тем, что качество этих каналов зачастую значительно ухудшается из-за замираний, связанных с многолучевым распространением, затенения, межсимвольной интерференции и шумовых помех (мешающего шума). Некоторые иные причины, такие как мобильность и конкурирующий трафик, также приводят к изменениям пропускной способности и потерям. Шумы канала и количество обслуживаемых пользователей определяют изменяемое во времени свойство сред канала.
Потребности в более высоких скоростях передачи данных и более высоком качестве обслуживания как в неоднородных IP- сетях, так и в системах мобильной связи быстро растут. Однако факторы, такие как ограниченное время задержки (запаздывание), ограниченная мощность передачи, ограниченная пропускная способность и замирания, связанные с многолучевым распространением, продолжают ограничивать скорость передачи данных применяемой на практике системы. При передаче мультимедийных данных, в частности, в средах, подверженных ошибкам, устойчивость к ошибкам передающихся мультимедийных данных является критической при обеспечении желаемого качества обслуживания, в связи с тем что ошибки, даже в отдельном декодированном значении, могут привести к декодированию артефактов (искажений изображения), распространяющихся в пространственном и временном отношениях. Для минимизации ошибок используются различные параметры кодирования, поддерживающие необходимую скорость передачи данных, однако все эти методы страдают от проблем, связанных с ошибками, достигающими стороны декодера.
Данные сжимаются с помощью кодера источника, передающего максимальное количество информации с расходом минимального количества битов, следующего за канальным кодером, имеющим тенденцию максимизировать пропускную способность канала для заданной вероятности ошибки при приеме этих битов.
Канальное кодирование, такое как кодирование Рида-Соломона, используется для повышения надежности данных, закодированных кодером источника. Методы совместного кодирования каналов используются для предоставления изменяющихся уровней защиты от ошибок данным, закодированным кодером источника, с изменяющимися уровнями важности или для предоставления возможности адаптации скорости передачи закодированных видеоданных к доступной пропускной способности сети посредством деления и отказа от пакетов. Это происходит в связи с тем, что обычные транспортные протоколы не поставляют поврежденные данные декодеру источника.
Методы кодирования источника, например реверсивное кодирование с кодами переменной длины (например, в стандарте MPEG-4), использовались для устранения ошибок посредством декодирования пакета в обратном порядке при фактическом приеме поврежденных пакетов. Существует компромисс в эффективности кодирования с помощью методов кодирования источника, который сохраняет качество декодированных видеоданных на заданной скорости передачи данных.
Стандарты гибридного кодирования, такие как MPEG-1, MPEG-2, MPEG-4 (совместно названные MPEG-x), H.261, H.262, H.263 и H.264 (совместно названные H.26x), используют точки повторной синхронизации в битовом потоке в качестве основного способа обработки ошибок в декодере.
Другая причина, которая может вызвать потерю данных, превышающую начальное искажение, происходит из-за эмуляции неверного ключевого слова. Идентификация начальной позиции битовой ошибки не является тривиальной задачей и, как правило, невозможна без специальной структуры, поддерживающей идентификацию позиций битовых ошибок на MAC-уровне или компоненте физического уровня. Следовательно, после обнаружения повреждения битового потока декодеру, вероятно, придется остановить декодирование и продвинуться по битовому потоку для поиска следующей точки повторной синхронизации, в процессе чего неизбежно пропускается большое количество потенциально полезных данных. Несмотря на эмуляцию другого ключевого слова, которое имеет длину, аналогичную оригиналу, то есть верную, ключевое слово может показаться меньшей проблемой по сравнению с последовательностью вышеописанных событий, фактически она не является примером. Существует множество способов, в которых подобный тип ошибки может привести к ошибкам при расшифровке верного битового потока декодера. Например, в самых современных кодеках (кодерах-декодерах) в битовом потоке присутствуют объекты (параметры, связанные со сжатием), значения которых влияют на порядок следующей части битового потока. Следовательно, неверное значение такого объекта может привести к расшифровке неверного битового потока.
В связи с тем что обычные транспортные протоколы не доставляют декодеру поврежденные данные (например, применение видео- или аудиодекодера), декодер имеет ограниченную способность обработки битовых ошибок, используя отказ от пакетов и повторную синхронизацию, что является самым распространенным решением. Необходим улучшенный способ обработки битовых ошибок, которые приводят к распространению ошибок, а также к потере данных из-за проблем, таких как потеря синхронизации и эмуляция неверного ключевого слова.
Сущность изобретения
В одном аспекте способ и устройство для многоуровневой интеграции, используемой для устранения ошибок, содержат способ или средство для обнаружения ошибки в мультимедийных данных на основе протокола первого уровня и маскировки обнаруженной в мультимедийных данных ошибки на основе протокола второго уровня. В другом аспекте устройство для многоуровневой интеграции, используемой для устранения ошибок, содержит средство обнаружения для обнаружения ошибки в мультимедийных данных на основе протокола первого уровня и средство маскировки для маскировки обнаруженной в мультимедийных данных ошибки на основе протокола второго уровня. В способе и устройстве для многоуровневой интеграции первый уровень может включать в себя уровень связи. Уровень связи может включать в себя один элемент из множества, содержащего физический уровень, MAC-уровень и транспортный уровень или же комбинацию этих элементов. Кроме того, способ и устройство могут дополнительно содержать способ или средство для контроля обнаруженной ошибки на основе протокола транспортного уровня. Этап контроля обнаруженной ошибки может содержать этап ограничения распространения обнаруженной ошибки. Способ и устройство также могут дополнительно включать в себя способ или средство для определения распределения обнаруженной ошибки на основе протокола уровня синхронизации. Второй уровень может включать в себя прикладной уровень.
В другом аспекте способ и устройство для многоуровневой интеграции, используемой для устранения ошибок, включают в себя способ или средство для обнаружения ошибки в мультимедийных данных на основе протокола уровня связи, контроля обнаруженной ошибки на основе протокола транспортного уровня, определения распределения контролируемой ошибки на основе протокола уровня синхронизации и маскировки обнаруженной в мультимедийных данных ошибки на основе протокола прикладного уровня. В другом аспекте способ и устройство, используемые для обработки мультимедийных данных, включают в себя способ или средство для выполнения устранения ошибок закодированных мультимедийных данных и поддержки масштабируемости закодированных мультимедийных данных. Еще в одном аспекте устройство, используемое для обработки мультимедийных данных, включает в себя компонент устранения ошибок для выполнения устранения ошибок закодированных мультимедийных данных и компонент масштабирования для поддержки масштабируемости закодированных мультимедийных данных. В способе и устройстве, используемых в обработке мультимедийных данных, масштабируемость может являться либо пространственной, либо временной, либо и той и другой. Этап устранения ошибок может содержать либо этап временной маскировки ошибок, либо этап пространственной маскировки ошибок, либо этап преобразования частоты кадров, либо комбинацию этих этапов.
В другом аспекте способ и устройство, используемые для обработки мультимедиа-потока, включают в себя способ или средство для приема множества потоков закодированных мультимедийных данных, выполнения устранения ошибок в ошибочной части потока и восстановления мультимедийных данных из множества потоков. В другом аспекте устройство, используемое для обработки мультимедиа-потока, включает в себя приемник для приема множества потоков закодированных мультимедийных данных, компонент устранения ошибок для выполнения устранения ошибок в ошибочной части потока и блок восстановления для восстановления мультимедийных данных из множества потоков. В способе и устройстве, используемых для обработки мультимедиа-потока, этап устранения ошибок может содержать либо этап временной маскировки ошибок, либо этап пространственной маскировки ошибок, либо этап преобразования частоты кадров, либо комбинацию этих этапов.
Следует отметить, что вышеупомянутый способ и устройство могут быть осуществлены с помощью машиночитаемой среды и/или процессора, выполненного с возможностью выполнения способа или операции устройства.
Краткое описание чертежей
Фиг.1A изображает блок-схему примера системы связи для доставки потоковой передачи мультимедийных данных.
Фиг.1B изображает блок-схему примера многоуровневой системы связи для доставки потоковой передачи мультимедийных данных.
Фиг.1С изображает блок-схему другого примера многоуровневой системы связи для доставки потоковой передачи мультимедийных данных.
Фиг.2A изображает блок-схему примера структуры декодирующего устройства для декодирования потоковой передачи мультимедийных данных.
Фиг.2B изображает диаграмму стека протоколов интегрированной многоуровневой системы управления, включающей в себя передатчик, и другое представление изображенной на Фиг.2A структуры декодирующего устройства.
Фиг.3 изображает пример мультимедиа-символов, упорядоченных для каскадного кодирования со стиранием ошибок Рида-Соломона и турбокодирования.
Фиг.4 изображает схему последовательности операций примера способа декодирования потоковой передачи мультимедийных данных.
Фиг.5 изображает структуру информационного турбопакета для видеоданных.
Фиг.6 изображает блок-схему иллюстративной системы компонентов, которая может являться частью мультимедиа-приемника 24, изображенного на Фиг.1.
Фиг.7 изображает блок-схему процесса устранения ошибок.
Подробное описание
Описывается способ и устройство для обеспечения расширенных возможностей устранения ошибок в мультимедиа-декодере. Обеспечиваются интегрированные возможности устранения ошибок, такие как обнаружение ошибки в потоке мультимедийных данных на верхнем уровне (например, на уровне связи) и выполнение устранения ошибок относительно обнаруженной ошибки на прикладном уровне (например, видео- или аудиодекодер). В одном примере представлена структура декодера, обеспечивающая информацию, маркирующую поврежденные биты, для компонентов прикладного уровня, используемую для создания обоснованных решений при выполнении различных типов методов устранения ошибок. Методы устранения ошибок используются для замены поврежденных символов предполагаемыми символами, полученными из информации, доступной для компонента прикладного уровня, такой как предварительно декодированные видеоданные, аудиоданные, текстовая и графическая информация. Для обеспечения полного понимания вариантов осуществления в следующем описании приведены характерные элементы. Однако специалистам в данной области техники будет понятно, что варианты осуществления могут быть осуществлены без этих характерных элементов. Например, на блок-схемах могут быть изображены электрические компоненты для того, чтобы не затенять варианты осуществления ненужными элементами. В других случаях подобные компоненты, другие структуры и методы можно изобразить подробно для дополнительного разъяснения вариантов осуществления. Также специалистам в данной области техники понято, что электрические компоненты, изображенные в качестве отдельных блоков, могут быть перестроены и/или объединены в один компонент.
Также следует отметить, что некоторые варианты осуществления могут быть описаны в качестве процесса, изображенного в виде блок-схемы, схемы последовательности операций, структурной схемы или принципиальной схемы. Несмотря на то что блок-схема может описывать операции в качестве многоэтапного процесса, многие из операций могут быть выполнены параллельно или одновременно, а процесс может быть повторен. Кроме того, порядок операций может быть перестроен. Процесс завершается в случае, если его операции завершены. Процесс может соответствовать способу, функции, процедуре, подпрограмме, части программы и т.д. Если процесс соответствует функции, то его завершение соответствует возврату функции к вызывающей функции или же к главной функции.
Фиг.1A изображает блок-схему примера системы связи для доставки потоковой передачи мультимедийных данных. Система 20 включает в себя передатчик 22 и мультимедиа-декодер 24 приемника. Передатчик 22 содержит сжатые мультимедийные данные различных форм, включающие в себя, в числе прочего, видеоданные, аудиоданные, графическую информацию, текстовую информацию и изображения. Данные могут являться сжатыми видеоданными и аудиоданными, как в стандартах MPEG-x и H.26x, сжатыми аудиоданными, как в стандартах сжатия речи или видео MPEG-4 AAC, MP3, AMR и G.723, или же любым другим видом цифровых данных.
Передатчик 22 получает данные из различных источников, включающих в себя внешнюю память, сеть Интернет и оперативную подачу аудиоданных и/или видеоданных. Передатчик 22 также выполняет передачу (Tx) полученных данных по сети. Сеть может являться проводной сетью 28, например телефонной, кабельной или оптоволоконной, или же беспроводной сетью 26. В отношении системы беспроводной связи сеть 26 может содержать, например, часть системы связи с множественным доступом с кодовым разделением каналов (CDMA или CDMA2000) или поочередно система может являться системой множественного доступа с частотным разделением (FDMA), системой множественного доступа на основе ортогонального частотного разделения (OFDMA), системой множественного доступа с временным разделением (TDMA), как технология мобильной связи для индустрии обслуживания GSM/GPRS (система пакетной радиосвязи общего пользования) / EDGE (улучшенный GSM для передачи данных) или TETRA (магистральная наземная радиосвязь), широкополосного множественного доступа с кодовым разделением каналов (WCDMA), системой высокоскоростной передачи данных (1xEV-DO или 1xEV-DO Gold Multicast) или же вообще любой системой беспроводной связи, использующей комбинации методов.
Декодер 24 содержит средство, такое как радиочастотная антенна или сетевое подключение, для приема данных по беспроводной сети 26 и/или проводной сети 28. Декодер 24 может включать в себя множество процессоров, содержащих различную комбинацию предварительных процессоров (например, любой тип центрального процессора (CPU), например, ARM), цифровой сигнальный процессор (DSP), программное обеспечение, встроенное программное обеспечение и аппаратные средства, такие как мультимедийный процессор VideoCore, для распределения демодуляции и декодирования задач, связанных с принятыми данными. Декодер 24 также содержит компоненты памяти для сохранения принятых данных и промежуточных данных на различных этапах процесса демодуляции/декодирования. В некоторых вариантах осуществления предварительный процессор ARM выполняет менее сложные задачи, включающие в себя распаковку (удаление побочной информации, такой как заголовки и сообщения) и демультиплексирование множества битовых потоков, включающих в себя аудиоданные, видеоданные и другое. Предварительный процессор ARM также выполняет разбор битового потока, обнаружение ошибок, маскировку и декодирование энтропии переменной длины. В некоторых таких вариантах осуществления цифровой сигнальный процессор (DSP) выполняет расширение ключевых слов VLC (с кодом переменной длины), обратное зигзагообразное сканирование видеоданных для пространственного определения параметров пикселя, обратное предсказание переменного тока/постоянного тока параметров пикселя для видеоданных стандарта MPEG-4 (не является особенностью стандарта H.264 из-за контекстного адаптивного кодирования энтропии) и декодирование аудиоданных (например, MPEG-4 AAC, MP3, AMR или G.723). Мультимедийный процессор VideoCore может выполнить более сложные в вычислительном отношении задачи декодирования видеоданных, содержащие деквантование, обратное преобразование, предсказание с компенсацией движения и разблокировку (форма фильтрации для сокращения краевых искажений изображения (артефактов) между краями блока пикселей). В системе 20 связи один или несколько элементов могут быть добавлены, перестроены или же объединены. В отношении системы проводной связи сеть 26 может включать в себя, например, часть системы связи, базирующейся на межсетевом протоколе (IP), с транспортными протоколами, такими как транспортный протокол реального времени (RTP) или универсальный протокол передачи дейтаграмм (UDP).
Фиг.1B изображает блок-схему многоуровневого стека протоколов, используемого для задач деления, выполняемых на передатчике 22 и декодере 24. Компоненты 205 и 210 верхнего уровня, находящиеся в передатчике 22 и декодере 24 соответственно, могут включать в себя множество приложений, таких как, например, видео- или аудиокодеры и/или декодеры. Некоторые варианты осуществления могут включать в себя множество потоков информации, которые предназначены для одновременного декодирования. В этих случаях задачи синхронизации множества потоков также могут быть выполнены в компонентах 205 и 210 верхнего уровня. Компонент 205 верхнего уровня может обеспечить закодированную информацию о синхронизации в битовом потоке, передающемся по беспроводной сети 26 и/или проводной сети 28. Компонент 210 верхнего уровня 210 может разобрать множество потоков информации из условия, чтобы связанные приложения декодировали их приблизительно в то же самое время.
Компоненты 215 нижнего уровня, находящиеся в передатчике 22, могут включать в себя различные схемы для обеспечения устойчивости к ошибкам. Подверженные ошибкам каналы, например беспроводная сеть 26 и/или проводная сеть 28, могут ввести ошибки в битовый поток, принимаемый декодером 24. Такие схемы устойчивости к ошибкам, обеспеченные в компонентах 215 нижнего уровня, могут включать в себя одну или несколько схем помехоустойчивого кодирования (с контролем ошибок), схем чередования и других известных специалистам в данной области техники схем. Компоненты 220 нижнего уровня, находящиеся в декодере 22, могут включать в себя соответствующие компоненты декодирования ошибок, которые допускают обнаружение и коррекцию ошибок. Некоторые ошибки, введенные по беспроводной сети 26 и/или проводной сети 28, могут являться некорректируемыми с помощью компонентов 220 нижнего уровня. Для некорректируемых ошибок решения, такие как компоненты 220 нижнего уровня, запрашивающие повторную передачу поврежденных компонентов посредством компонентов 215 нижнего уровня передатчика 22, могут быть невыполнимы в некоторых ситуациях, например, при передаче мультимедийных данных в реальном времени, например, при потоковой передаче приложений. В некоторых вариантах осуществления компоненты 215 и 220 нижнего уровня содержат компоненты уровня связи. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 24, изображенных на Фиг.1B.
Фиг.1С изображает блок-схему более подробного примера многоуровневого стека протоколов, используемого для задач деления в передатчике 22 и декодере 24. Компоненты 205 верхнего уровня, находящиеся в передатчике 22, распределяются либо в один уровень из множества, содержащего прикладной уровень 206 и уровень 207 синхронизации, либо в несколько уровней. Компоненты 215 нижнего уровня, находящиеся в передатчике 22, распределяются либо в один уровень из множества, содержащего транспортный уровень 216, уровень 217 управления доступом к среде передачи (MAC)/потоковый уровень 217 и физический уровень 218, либо в несколько уровней. Подобным образом компоненты 210 верхнего уровня, находящиеся в декодере 24, распределяются либо в один уровень из множества, содержащего прикладной уровень 211 и уровень 207 синхронизации, либо в несколько уровней. Компоненты 220 нижнего уровня, находящиеся в декодере 24, распределяются либо в один уровень из множества, содержащего транспортный уровень 221, уровень 222 управления доступом к среде передачи (МАС)/потоковый уровень 222 и физический уровень 223, либо в несколько уровней. Специалистам в данной области техники известны эти уровни, а также они знакомы с распределением различных задач среди них. Далее обсуждается пример структуры, объединяющей различные уровни декодирующего устройства 24, как обсуждалось выше, для использования в своих интересах устойчивости к ошибкам, обеспеченную в передатчике 22. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 24, изображенных на Фиг.1С.
Фиг.2A изображает блок-схему примера структуры декодирующего устройства для декодирования потоковой передачи мультимедийных данных. Фиг.2B изображает диаграмму стека протоколов примера интегрированной многоуровневой системы управления, содержащей передатчик 22, и представление стека протоколов изображенной на Фиг.2A структуры декодирующего устройства. Как показано на Фиг.2A и 2B, мультимедиа-декодер 30 содержит компонент 32 физического уровня, компонент 34 МАС-уровня, блок 39 разбора транспортного уровня (TSP) и уровня синхронизации и компонент 50 прикладного уровня. Мультимедиа-декодер 30 принимает входной битовый поток (В), содержащий схему каскадной коррекции ошибок, например, схему каскадного кодирования турбо/Рида-Соломона. Компонент 32 физического уровня может выполнять задачи демодуляции, в числе прочего, включающие в себя прием, помехоустойчивое декодирование, например декодирование с использованием турбокода, и взаимодействие с МАС-уровнем (уровнем управления доступом к среде передачи). Компонент 34 МАС-уровня может выполнять помехоустойчивое декодирование, например, обнаружение ошибок Рида-Соломона, коррекцию ошибок и маркировку некорректируемых поврежденных данных, например, группы, состоящей из одного или нескольких битов. Компонент 34 МАС-уровня взаимодействует с компонентом 39 разбора транспортного уровня и уровня синхронизации (TSP).
Компонент 39 TSP может дополнительно содержать компонент 36 демультиплексирования транспортного уровня и компонент 38 разбора уровня синхронизации. Компонент 36 демультиплексирования транспортного уровня может принять битовый поток, передающийся от компонента 34 МАС-уровня, содержащий как верные, так и поврежденные биты, и информацию, маркирующую поврежденные группы битов. Поврежденные группы битов и соответствующая маркирующая информация содержат информацию, соответствующую ошибкам 33 в контрольной циклической сумме (CRC) турбодекодера и ошибкам 35 Рида-Соломона. (В некоторых стеках протоколов компонент 36 демультиплексирования транспортного уровня также известен как подуровень потокового уровня, где подуровень МАС-уровня и подуровень потокового уровня являются подуровнями транспортного уровня.) Компонент 36 демультиплексирования транспортного уровня может демультиплексировать (de-mux) или разобрать принятый битовый поток на множество битовых потоков. Разобранные битовые потоки могут содержать битовые потоки, предназначенные для различных приложений, таких как видеодекодер, аудиодекодер, и различных комбинаций текстовых, графических приложений и приложений отображения. Компонент демультиплексирования транспортного уровня также может разобрать один битовый поток, предназначенный для отдельного приложения, такой как битовый поток видеоданных, например, на два или несколько отдельных уровней (например, используя масштабируемое кодирование), например, на основной уровень и уровень улучшения. Затем эти уровни могут быть использованы для обеспечения масштабируемости, такой как временная и/или SNR масштабируемость. Один пример масштабируемого кодирования делит кадры с внутренним кодированием (такие как I-кадры) и другие кадры с взаимным кодированием (например, P-кадры или В-кадры, полученные при использовании, например, предсказания с компенсацией движения) на различные уровни в битовом потоке. I-кадры могут быть закодированы на основном уровне, а P-кадры и/или В-кадры могут быть закодированы на уровне улучшения. Масштабируемое кодирование является полезным в динамических каналах, где масштабируемые битовые потоки могут быть адаптированы к соответствию колебаниям в пропускной способности сети. В подверженных ошибкам каналах масштабируемое кодирование может увеличить надежность с помощью защиты от неравных ошибок основного уровня и уровня улучшения. Лучшая защита от ошибок может быть применена к более важному уровню.
Компонент 38 разбора уровня синхронизации дополнительно выполняет разбор битового потока на битовые субпотоки, связанные друг с другом на основе временной синхронизации. Мультимедийный битовый поток видеоданных может быть разобран на битовый поток видеоданных, битовый поток аудиоданных и битовый поток с соответствующей текстовой информацией скрытых титров. Компонент 38 разбора уровня синхронизации передает разобранные битовые потоки связанному приложению декодера наряду с информацией временной синхронизации. Это предоставляет связанным аудиоданным, видеоданным и текстовой информации возможность отображения и воспроизведения в соответствующее время.
В дополнение к обсуждаемому выше разбору компонент 36 демультиплексирования транспортного уровня может разобрать и переслать информацию, маркирующую повреждение (например, информацию 33 об ошибке CRC и информацию 35 об ошибке Рида-Соломона), которую он принял от компонента 34 МАС-уровня и компонента 32 физического уровня, компоненту 38 разбора уровня синхронизации и/или соответствующему процессу прикладного уровня (например, видеодекодеру или аудиодекодеру). Компонент 38 разбора уровня синхронизации может передать информацию, маркирующую повреждение, в виде информации 37 о распределении ошибок. Компонент 38 разбора уровня синхронизации также может передать рекомендованную информацию 41 о стратегии контроля ошибок. Затем процесс прикладного уровня может использовать информацию 37, маркирующую повреждение, и информацию 41 о стратегии контроля для обработки ошибок.
Компонент 50 прикладного уровня может содержать один или несколько компонентов, таких как, например, компонент 40 устранения ошибок, компонент 42 масштабирования, компонент 44 преобразования частоты кадров (FRUC), компонент 46 декодирования базового приложения и компонент 48 последующей обработки. Компонент 50 прикладного уровня использует переданную информацию 37, маркирующую повреждение, и информацию 41 о стратегии контроля для принятия решения, касающуюся способа использования компонентов устранения ошибок, масштабирования и преобразования частоты кадров (FRUC) для управления поврежденными данными, таким образом предлагая более высокое качество декодирования с использованием компонента 46 декодирования базового приложения. Например, касаемо временной масштабируемости, где некоторые мультимедийные данные принимаются на одном уровне, содержащем важную информацию, а остальная часть мультимедийных данных - на другом уровне, компонент преобразования частоты кадров (FRUC) может быть использован для восстановления недостающих мультимедийных данных в случае, если второй уровень не был принят, потерян или поврежден. После декодирования компонент 48 последующей обработки выполняет любые необходимые определенные модификации аппаратных средств для предоставления возможности отображения, воспроизведения или рендеринга видео- и аудиовыхода на устройстве отображения или динамиках соответственно. Компонент 48 последующей обработки также может выполнить операции улучшения или восстановления прежде, чем мультимедийные данные будут воспроизведены или представлены.
Компонент 46 декодирования базового приложения может содержать видеодекодер(ы), аудиодекодер(ы), а также текстовые и графические приложения. Посредством выполнения обработки устранения ошибок, масштабирования и преобразования частоты кадров (FRUC) битовых потоков различных приложений перед или в течение декодирования с использованием компонента 46 декодирования базового приложения могут быть сделаны улучшения для повышения качества битового потока низкого качества (закодированного с низким качеством, либо принятого с низким качеством из-за ошибок). Например, компоненты 40, 42 и 44 могут предложить улучшения стандартного исходного, совместимого со стандартом H.264, битового потока видеоданных (базовый профиль является очень простым профилем, который был спроектирован для маломощного устройства), и обеспечить некоторые элементы других профилей стандарта H.264, такие как B-кадры и разделение послойных данных, которые обязаны выполнять масштабирование, обнаружение и устойчивость к ошибкам для потока видеоданных. Элементы процессов, использующих компоненты мультимедиа-декодера 30, представлены ниже. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 30, изображенных на Фиг.2A и 2B.
Далее представлено краткое обсуждение процесса обнаружения ошибок и коррекции ошибок. Один пример схемы обнаружения и коррекции ошибок использует каскадный код, содержащий как внутренний (канальный) код, так и внешний (канальный) код. Каскадные канальные коды состоят из турбо (внутреннего) кода на физическом уровне и корректирующего кода (внешнего) стирания ошибок Рида-Соломона, установленного на МАС-уровне. Фиг.3 изображает пример мультимедиа-символов, упорядоченных для каскадного кодирования со стиранием ошибок Рида-Соломона и турбокодирования. Что касается кодирующей стороны, то вывод символов из информационного источника, вывод двойных ключевых слов из кодера склеивается в байты 102. Каждый байт 102 считается символом в конечном поле, известном как «поле Галуа (256)», для целей внешнего (N, K) кода Рида-Соломона (RS) по полю Галуа (256) (GF). N и К соответственно обозначают размеры всего ключевого слова 104 Рида-Соломона (RS) и его исходных данных 106, содержащих в числе символов систематическую часть. Таким образом, N минус К представляет собой количество символов 108 паритета, включенных в каждое ключевое слово 104. Код Рида-Соломона (RS) (N, K) поддается исправлению N минус К стиранию ошибок.
К верхних строк 106, по существу, содержат символы, выведенные из информационного источника, и эти символы могут быть отсканированы из К строк или изначально сканируемых строк или столбцов. Чередование достигается посредством сканирования начальных столбцов и приводит к значительно меньшим группам поврежденных битов в случае, если данная строка 112 информационного турбопакета повреждена. Длина каждой группы поврежденных битов из-за стирания ошибок информационного турбопакета может быть равна 1 байту для изначально сканируемых столбцов в отличие от длины, равной (L-1) байт, для изначально сканируемой строки. В декодере маркировка этих поврежденных групп битов, как обсуждается ниже, может требоваться для идентификации размера и позиции (в битовом потоке) этих групп битов. После этого начального этапа размещения данных источника каждый из L столбцов 104 (К байт) кодируется с помощью RS в N байт посредством добавления N-K байтов паритета и, следовательно, формируются K+1,…,N изображенных на Фиг.3 строк 108. К верхних строк состоят из данных 106 источника, упоминаемых как информационный блок RS, а целый набор N строк упоминается как блок, закодированный с помощью RS, или же просто закодированный блок 110.
К каждой строке 112 добавлена контрольная циклическая сумма (CRC) и некоторые замыкающие биты, необходимые для правильной работы турбокодера. Из-за добавления контрольной суммы к каждой строке 112 эти строки не смогут удовлетворить свои соответствующие контрольные суммы после того, как турбодекодирование может быть объявлено стертым. Каждый кодовый блок 110 за один раз вводит одну строку 112 в турбокодер и, следовательно, каждая строка упоминается как информационный турбопакет.
Процесс турбодекодирования представляет четкие данные процессу декодирования Рида-Соломона, который затем сокращает коэффициент остаточных ошибок. Способность успешной коррекции для стирания зависит от общего количества стираний внутри кодового блока и количества (N минус K) символов паритета, используемых в ключевом слове RS.
В структуре канального кодирования, предназначенного для мультимедиа-декодера 30, изображенного на Фиг.2, в случае, если кодовый блок Рида-Соломона (RS) имеет стирания вне корректирующей способности, то соответствующий информационный блок RS (Фиг.3) может быть передан компонентам на транспортном уровне, уровне синхронизации или же на прикладном уровне с уведомлением, маркирующим то, какие из числа К информационных турбопакетов 112 (Фиг.3) являются поврежденными. Систематическая структура внешнего (N, K) кода Рида-Соломона (RS) по полю Галуа (256) допускает прямое использование безошибочно принятых информационных турбопакетов (не поврежденных).
Фиг.4 изображает схему последовательности операций примера способа декодирования потоковой передачи мультимедийных данных. Модулированные ошибочные данные (IN) принимаются и вводятся в процесс 60 декодирования и демодулируются (этап 62). Данные могут быть приняты по проводным или беспроводным сетям, например, по беспроводной сети 26 и проводной сети 28, изображенным на Фиг.1. На этапе 62 компонент 32 физического уровня, изображенный на Фиг.2, выполняет демодуляцию принятых ошибочных данных. Затем демодулированные данные передаются на этап 64, где ошибки могут быть обнаружены и откорректированы. На этапе 64 компонент 32 физического уровня, изображенный на Фиг.2, может выполнить турбодекодирование, в то время как компонент 34 МАС-уровня, изображенный на Фиг.2, может выполнить коррекцию ошибок Рида-Соломона.
После того как на этапе 64 турбодекодирование и декодирование Рида-Соломона обнаружило и откорректировало все корректируемые ошибки, информационные турбопакеты и/или поврежд