RU2374787C2 - Structure of decoder for optimised control of error processing in multimedia data streaming - Google Patents

Structure of decoder for optimised control of error processing in multimedia data streaming Download PDF

Info

Publication number
RU2374787C2
RU2374787C2 RU2007137484/09A RU2007137484A RU2374787C2 RU 2374787 C2 RU2374787 C2 RU 2374787C2 RU 2007137484/09 A RU2007137484/09 A RU 2007137484/09A RU 2007137484 A RU2007137484 A RU 2007137484A RU 2374787 C2 RU2374787 C2 RU 2374787C2
Authority
RU
Russia
Prior art keywords
level
layer
error
protocol
multimedia data
Prior art date
Application number
RU2007137484/09A
Other languages
Russian (ru)
Other versions
RU2007137484A (en
Inventor
Виджаялакшми Р. РАВИИНДРАН (US)
Виджаялакшми Р. РАВИИНДРАН
Фан ШИ (US)
Фан Ши
Сейфуллах Халит ОГУЗ (US)
Сейфуллах Халит Огуз
Сумит Сингх СЕТХИ (US)
Сумит Сингх Сетхи
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2007137484A publication Critical patent/RU2007137484A/en
Application granted granted Critical
Publication of RU2374787C2 publication Critical patent/RU2374787C2/en

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

FIELD: information technologies.
SUBSTANCE: method and device are suggested for multilevel integration used for elimination of errors. Error is detected in multimedia data on the basis of the first level protocol, and then error detected in multimedia data is masked on the basis of the second level protocol. In one aspect error in multimedia data is eliminated on the basis of communication level protocol, and it is controlled on the basis of transport level protocol. Further distribution of controlled error is determined on the basis of synchronisation level protocol, then error detected in multimedia data is masked on the basis of applied level protocol. Further stage of error elimination and scaling stage are provided.
EFFECT: increased efficiency of multimedia data stream processing by reception of multiple streams of coded multimedia data, eliminating errors in erroneous part of stream and recovering multimedia data from multiple streams.
40 cl, 10 dwg

Description

ОписаниеDescription

По настоящей заявке на патент испрашивается приоритет в соответствии с предварительной заявкой на патент № 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 года, каждая из которых принадлежит заявителю настоящей заявки и включена в настоящее описание посредством ссылки.This patent application claims priority in accordance with provisional patent application No. 60 / 660.681, entitled "Method and apparatus for error recovery in video communications", filed March 10, 2005, provisional patent application No. 60 / 660.923, called "Method and apparatus for video decoding ”, filed March 10, 2005, and provisional patent application No. 60 / 660.867, entitled“ Method of error recovery for a decoder ”, filed March 10, 2005, each of which belongs to the applicant of this application and is included in the present description by reference.

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Настоящее изобретение относится к способам и устройству для декодирования потоковой передачи мультимедийных данных в реальном времени на портативных устройствах.The present invention relates to methods and apparatus for decoding streaming multimedia data in real time on portable devices.

Уровень техникиState of the art

Вследствие высокого роста и большого успеха сети Интернет и беспроводной связи, а также увеличенного спроса на услуги мультимедиа, потоковая передача мультимедийных данных по сети Интернет и каналам мобильной/беспроводной связи привлекает огромное внимание. В неоднородной IP-сети видеоданные предоставляются сервером, но также могут быть предоставлены одним или несколькими клиентами. Проводные соединения включают в себя связь по телефонной линии, по цифровой сети с комплексными услугами (ISDN), по кабельной линии, по протоколам цифровой абонентской линии (совместно названные xDSL), по волоконно-оптическому кабелю, по локальным сетям (LAN), по глобальным сетям (WAN) и др. Режим передачи может быть либо одноадресным, либо многоадресным (групповым).Due to the high growth and great success of the Internet and wireless communications, as well as the increased demand for multimedia services, the streaming of multimedia data over the Internet and mobile / wireless channels is attracting great attention. In a heterogeneous IP network, video is provided by the server, but can also be provided by one or more clients. Wired connections include telephone line, digital network with integrated services (ISDN), cable lines, digital subscriber line protocols (collectively referred to as xDSL), fiber optic cables, local area networks (LANs), and global networks. networks (WAN), etc. The transmission mode can be either unicast or multicast (multicast).

Мобильная/беспроводная связь подобна связи по неоднородной IP-сети. Транспортировка мультимедиа-контента (содержания) по каналам мобильной/беспроводной связи является довольно затруднительной в связи с тем, что качество этих каналов зачастую значительно ухудшается из-за замираний, связанных с многолучевым распространением, затенения, межсимвольной интерференции и шумовых помех (мешающего шума). Некоторые иные причины, такие как мобильность и конкурирующий трафик, также приводят к изменениям пропускной способности и потерям. Шумы канала и количество обслуживаемых пользователей определяют изменяемое во времени свойство сред канала.Mobile / wireless is similar to heterogeneous IP networking. Transporting multimedia content (content) via mobile / wireless channels is rather difficult due to the fact that the quality of these channels is often significantly deteriorated due to fading due to multipath propagation, shadowing, intersymbol interference and noise interference (interfering noise). Some other reasons, such as mobility and competing traffic, also lead to bandwidth changes and losses. Channel noise and the number of users served determine the time-varying property of the channel media.

Потребности в более высоких скоростях передачи данных и более высоком качестве обслуживания как в неоднородных IP- сетях, так и в системах мобильной связи быстро растут. Однако факторы, такие как ограниченное время задержки (запаздывание), ограниченная мощность передачи, ограниченная пропускная способность и замирания, связанные с многолучевым распространением, продолжают ограничивать скорость передачи данных применяемой на практике системы. При передаче мультимедийных данных, в частности, в средах, подверженных ошибкам, устойчивость к ошибкам передающихся мультимедийных данных является критической при обеспечении желаемого качества обслуживания, в связи с тем что ошибки, даже в отдельном декодированном значении, могут привести к декодированию артефактов (искажений изображения), распространяющихся в пространственном и временном отношениях. Для минимизации ошибок используются различные параметры кодирования, поддерживающие необходимую скорость передачи данных, однако все эти методы страдают от проблем, связанных с ошибками, достигающими стороны декодера.The demand for higher data rates and higher quality of service in both heterogeneous IP networks and mobile communication systems is growing rapidly. However, factors such as limited delay time (delay), limited transmit power, limited bandwidth, and multipath fading continue to limit the data rate of a practical system. When transmitting multimedia data, in particular in error prone environments, the error tolerance of transmitted multimedia data is critical in ensuring the desired quality of service, due to the fact that errors, even in a separate decoded value, can lead to decoding of artifacts (image distortion) propagating spatially and temporally. To minimize errors, various encoding parameters are used that support the necessary data rate, however, all these methods suffer from problems associated with errors reaching the decoder side.

Данные сжимаются с помощью кодера источника, передающего максимальное количество информации с расходом минимального количества битов, следующего за канальным кодером, имеющим тенденцию максимизировать пропускную способность канала для заданной вероятности ошибки при приеме этих битов.Data is compressed using a source encoder that transmits the maximum amount of information with a minimum bit rate, following the channel encoder, which tends to maximize channel throughput for a given error probability when receiving these bits.

Канальное кодирование, такое как кодирование Рида-Соломона, используется для повышения надежности данных, закодированных кодером источника. Методы совместного кодирования каналов используются для предоставления изменяющихся уровней защиты от ошибок данным, закодированным кодером источника, с изменяющимися уровнями важности или для предоставления возможности адаптации скорости передачи закодированных видеоданных к доступной пропускной способности сети посредством деления и отказа от пакетов. Это происходит в связи с тем, что обычные транспортные протоколы не поставляют поврежденные данные декодеру источника.Channel coding, such as Reed-Solomon coding, is used to increase the reliability of data encoded by the source encoder. Joint channel coding techniques are used to provide varying levels of error protection to data encoded by a source encoder, with varying levels of importance, or to enable adaptation of the encoded video data rate to the available network bandwidth by dividing and rejecting packets. This is due to the fact that conventional transport protocols do not deliver corrupted data to the source decoder.

Методы кодирования источника, например реверсивное кодирование с кодами переменной длины (например, в стандарте MPEG-4), использовались для устранения ошибок посредством декодирования пакета в обратном порядке при фактическом приеме поврежденных пакетов. Существует компромисс в эффективности кодирования с помощью методов кодирования источника, который сохраняет качество декодированных видеоданных на заданной скорости передачи данных.Source coding methods, such as reverse coding with variable-length codes (for example, in the MPEG-4 standard), were used to eliminate errors by decoding a packet in the reverse order when actually receiving damaged packets. There is a trade-off in coding efficiency using source coding methods that preserves the quality of decoded video data at a given data rate.

Стандарты гибридного кодирования, такие как MPEG-1, MPEG-2, MPEG-4 (совместно названные MPEG-x), H.261, H.262, H.263 и H.264 (совместно названные H.26x), используют точки повторной синхронизации в битовом потоке в качестве основного способа обработки ошибок в декодере.Hybrid coding standards such as MPEG-1, MPEG-2, MPEG-4 (collectively named MPEG-x), H.261, H.262, H.263 and H.264 (collectively named H.26x) use dots resynchronization in the bitstream as the main way to handle errors in the decoder.

Другая причина, которая может вызвать потерю данных, превышающую начальное искажение, происходит из-за эмуляции неверного ключевого слова. Идентификация начальной позиции битовой ошибки не является тривиальной задачей и, как правило, невозможна без специальной структуры, поддерживающей идентификацию позиций битовых ошибок на MAC-уровне или компоненте физического уровня. Следовательно, после обнаружения повреждения битового потока декодеру, вероятно, придется остановить декодирование и продвинуться по битовому потоку для поиска следующей точки повторной синхронизации, в процессе чего неизбежно пропускается большое количество потенциально полезных данных. Несмотря на эмуляцию другого ключевого слова, которое имеет длину, аналогичную оригиналу, то есть верную, ключевое слово может показаться меньшей проблемой по сравнению с последовательностью вышеописанных событий, фактически она не является примером. Существует множество способов, в которых подобный тип ошибки может привести к ошибкам при расшифровке верного битового потока декодера. Например, в самых современных кодеках (кодерах-декодерах) в битовом потоке присутствуют объекты (параметры, связанные со сжатием), значения которых влияют на порядок следующей части битового потока. Следовательно, неверное значение такого объекта может привести к расшифровке неверного битового потока.Another reason that can cause data loss in excess of the initial distortion is due to emulation of an invalid keyword. Identification of the initial position of the bit error is not a trivial task and, as a rule, is impossible without a special structure that supports the identification of the positions of bit errors at the MAC level or component of the physical layer. Therefore, after detecting damage to the bitstream, the decoder will probably have to stop decoding and advance through the bitstream to search for the next resynchronization point, during which a large amount of potentially useful data is inevitably skipped. Despite emulating another keyword that has a length similar to the original, that is, true, the keyword may seem to be a lesser problem compared to the sequence of events described above, in fact it is not an example. There are many ways in which this type of error can lead to errors in decoding the correct decoder bitstream. For example, in the most modern codecs (encoder-decoders) in the bitstream there are objects (parameters related to compression), the values of which affect the order of the next part of the bitstream. Therefore, an incorrect value of such an object can lead to decryption of the incorrect bit stream.

В связи с тем что обычные транспортные протоколы не доставляют декодеру поврежденные данные (например, применение видео- или аудиодекодера), декодер имеет ограниченную способность обработки битовых ошибок, используя отказ от пакетов и повторную синхронизацию, что является самым распространенным решением. Необходим улучшенный способ обработки битовых ошибок, которые приводят к распространению ошибок, а также к потере данных из-за проблем, таких как потеря синхронизации и эмуляция неверного ключевого слова.Due to the fact that conventional transport protocols do not deliver damaged data to the decoder (for example, the use of a video or audio decoder), the decoder has a limited ability to process bit errors using packet rejection and re-synchronization, which is the most common solution. An improved way to handle bit errors that lead to the propagation of errors, as well as data loss due to problems such as loss of synchronization and emulation of the wrong keyword, is needed.

Сущность изобретенияSUMMARY OF THE INVENTION

В одном аспекте способ и устройство для многоуровневой интеграции, используемой для устранения ошибок, содержат способ или средство для обнаружения ошибки в мультимедийных данных на основе протокола первого уровня и маскировки обнаруженной в мультимедийных данных ошибки на основе протокола второго уровня. В другом аспекте устройство для многоуровневой интеграции, используемой для устранения ошибок, содержит средство обнаружения для обнаружения ошибки в мультимедийных данных на основе протокола первого уровня и средство маскировки для маскировки обнаруженной в мультимедийных данных ошибки на основе протокола второго уровня. В способе и устройстве для многоуровневой интеграции первый уровень может включать в себя уровень связи. Уровень связи может включать в себя один элемент из множества, содержащего физический уровень, MAC-уровень и транспортный уровень или же комбинацию этих элементов. Кроме того, способ и устройство могут дополнительно содержать способ или средство для контроля обнаруженной ошибки на основе протокола транспортного уровня. Этап контроля обнаруженной ошибки может содержать этап ограничения распространения обнаруженной ошибки. Способ и устройство также могут дополнительно включать в себя способ или средство для определения распределения обнаруженной ошибки на основе протокола уровня синхронизации. Второй уровень может включать в себя прикладной уровень.In one aspect, a method and apparatus for multilevel integration used to eliminate errors, comprise a method or means for detecting an error in multimedia data based on a first level protocol and masking an error in multimedia data based on a second level protocol. In another aspect, the device for multi-level integration used to troubleshoot comprises a detection means for detecting errors in multimedia data based on a first level protocol and masking means for masking an error in multimedia data based on a second level protocol. In a method and apparatus for multi-level integration, the first level may include a communication level. The communication layer may include one element from a set containing a physical layer, a MAC layer and a transport layer, or a combination of these elements. In addition, the method and device may further comprise a method or means for monitoring a detected error based on a transport layer protocol. The step of monitoring the detected error may include the step of limiting the distribution of the detected error. The method and device may also further include a method or means for determining the distribution of the detected error based on the synchronization level protocol. The second layer may include an application layer.

В другом аспекте способ и устройство для многоуровневой интеграции, используемой для устранения ошибок, включают в себя способ или средство для обнаружения ошибки в мультимедийных данных на основе протокола уровня связи, контроля обнаруженной ошибки на основе протокола транспортного уровня, определения распределения контролируемой ошибки на основе протокола уровня синхронизации и маскировки обнаруженной в мультимедийных данных ошибки на основе протокола прикладного уровня. В другом аспекте способ и устройство, используемые для обработки мультимедийных данных, включают в себя способ или средство для выполнения устранения ошибок закодированных мультимедийных данных и поддержки масштабируемости закодированных мультимедийных данных. Еще в одном аспекте устройство, используемое для обработки мультимедийных данных, включает в себя компонент устранения ошибок для выполнения устранения ошибок закодированных мультимедийных данных и компонент масштабирования для поддержки масштабируемости закодированных мультимедийных данных. В способе и устройстве, используемых в обработке мультимедийных данных, масштабируемость может являться либо пространственной, либо временной, либо и той и другой. Этап устранения ошибок может содержать либо этап временной маскировки ошибок, либо этап пространственной маскировки ошибок, либо этап преобразования частоты кадров, либо комбинацию этих этапов.In another aspect, a method and apparatus for multilevel integration used to eliminate errors includes a method or means for detecting errors in multimedia data based on a communication layer protocol, monitoring a detected error based on a transport layer protocol, determining a distribution of a controlled error based on a level protocol synchronization and masking of errors detected in multimedia data based on the application layer protocol. In another aspect, the method and apparatus used for processing multimedia data includes a method or means for performing error correction of encoded multimedia data and supporting scalability of encoded multimedia data. In yet another aspect, a device used for processing multimedia data includes an error correction component for performing error correction on encoded multimedia data and a scaling component for supporting scalability of encoded multimedia data. In the method and device used in processing multimedia data, scalability can be either spatial or temporal, or both. The error correction step may comprise either a temporary error concealment step, or a spatial error concealment step, or a frame rate conversion step, or a combination of these steps.

В другом аспекте способ и устройство, используемые для обработки мультимедиа-потока, включают в себя способ или средство для приема множества потоков закодированных мультимедийных данных, выполнения устранения ошибок в ошибочной части потока и восстановления мультимедийных данных из множества потоков. В другом аспекте устройство, используемое для обработки мультимедиа-потока, включает в себя приемник для приема множества потоков закодированных мультимедийных данных, компонент устранения ошибок для выполнения устранения ошибок в ошибочной части потока и блок восстановления для восстановления мультимедийных данных из множества потоков. В способе и устройстве, используемых для обработки мультимедиа-потока, этап устранения ошибок может содержать либо этап временной маскировки ошибок, либо этап пространственной маскировки ошибок, либо этап преобразования частоты кадров, либо комбинацию этих этапов.In another aspect, the method and apparatus used to process a multimedia stream includes a method or means for receiving multiple streams of encoded multimedia data, performing error correction on an erroneous part of the stream, and recovering multimedia data from the multiple streams. In another aspect, a device used to process a multimedia stream includes a receiver for receiving multiple streams of encoded multimedia data, an error correction component for performing error correction on an erroneous part of the stream, and a recovery unit for recovering multimedia data from the multiple streams. In the method and apparatus used to process the multimedia stream, the error correction step may include either a temporary error concealment step, a spatial error concealment step, or a frame frequency conversion step, or a combination of these steps.

Следует отметить, что вышеупомянутый способ и устройство могут быть осуществлены с помощью машиночитаемой среды и/или процессора, выполненного с возможностью выполнения способа или операции устройства.It should be noted that the aforementioned method and device can be implemented using a computer-readable medium and / or processor configured to perform a method or operation of the device.

Краткое описание чертежейBrief Description of the Drawings

Фиг.1A изображает блок-схему примера системы связи для доставки потоковой передачи мультимедийных данных.1A is a block diagram of an example communication system for delivering streaming multimedia data.

Фиг.1B изображает блок-схему примера многоуровневой системы связи для доставки потоковой передачи мультимедийных данных.FIG. 1B is a block diagram of an example multilevel communication system for delivering streaming multimedia data.

Фиг.1С изображает блок-схему другого примера многоуровневой системы связи для доставки потоковой передачи мультимедийных данных.1C is a block diagram of another example of a multilevel communication system for delivering streaming multimedia data.

Фиг.2A изображает блок-схему примера структуры декодирующего устройства для декодирования потоковой передачи мультимедийных данных.Fig. 2A depicts a block diagram of an example structure of a decoding device for decoding streaming media.

Фиг.2B изображает диаграмму стека протоколов интегрированной многоуровневой системы управления, включающей в себя передатчик, и другое представление изображенной на Фиг.2A структуры декодирующего устройства.FIG. 2B is a protocol stack diagram of an integrated multi-level control system including a transmitter, and another representation of the structure of a decoding apparatus shown in FIG. 2A.

Фиг.3 изображает пример мультимедиа-символов, упорядоченных для каскадного кодирования со стиранием ошибок Рида-Соломона и турбокодирования.Figure 3 depicts an example of multimedia symbols ordered for cascading coding with erasing Reed-Solomon errors and turbo coding.

Фиг.4 изображает схему последовательности операций примера способа декодирования потоковой передачи мультимедийных данных.4 is a flowchart of an example method for decoding streaming multimedia data.

Фиг.5 изображает структуру информационного турбопакета для видеоданных.5 depicts the structure of an information turbopackage for video data.

Фиг.6 изображает блок-схему иллюстративной системы компонентов, которая может являться частью мультимедиа-приемника 24, изображенного на Фиг.1.FIG. 6 is a block diagram of an illustrative component system that may be part of the multimedia receiver 24 of FIG. 1.

Фиг.7 изображает блок-схему процесса устранения ошибок.7 depicts a flowchart of an error correction process.

Подробное описаниеDetailed description

Описывается способ и устройство для обеспечения расширенных возможностей устранения ошибок в мультимедиа-декодере. Обеспечиваются интегрированные возможности устранения ошибок, такие как обнаружение ошибки в потоке мультимедийных данных на верхнем уровне (например, на уровне связи) и выполнение устранения ошибок относительно обнаруженной ошибки на прикладном уровне (например, видео- или аудиодекодер). В одном примере представлена структура декодера, обеспечивающая информацию, маркирующую поврежденные биты, для компонентов прикладного уровня, используемую для создания обоснованных решений при выполнении различных типов методов устранения ошибок. Методы устранения ошибок используются для замены поврежденных символов предполагаемыми символами, полученными из информации, доступной для компонента прикладного уровня, такой как предварительно декодированные видеоданные, аудиоданные, текстовая и графическая информация. Для обеспечения полного понимания вариантов осуществления в следующем описании приведены характерные элементы. Однако специалистам в данной области техники будет понятно, что варианты осуществления могут быть осуществлены без этих характерных элементов. Например, на блок-схемах могут быть изображены электрические компоненты для того, чтобы не затенять варианты осуществления ненужными элементами. В других случаях подобные компоненты, другие структуры и методы можно изобразить подробно для дополнительного разъяснения вариантов осуществления. Также специалистам в данной области техники понято, что электрические компоненты, изображенные в качестве отдельных блоков, могут быть перестроены и/или объединены в один компонент.A method and apparatus for providing advanced error correction capabilities in a multimedia decoder are described. Integrated error correction capabilities are provided, such as detecting errors in the multimedia data stream at the upper level (for example, at the communication level) and performing error correction with respect to the detected errors at the application level (for example, video or audio decoder). In one example, a decoder structure is provided that provides information marking damaged bits for application layer components used to create informed decisions when performing various types of error correction methods. Error correction methods are used to replace damaged characters with prospective characters obtained from information available for the application layer component, such as pre-decoded video data, audio data, text and graphic information. In order to provide a thorough understanding of the embodiments, characteristic elements are provided in the following description. However, it will be understood by those skilled in the art that embodiments may be practiced without these characteristic elements. For example, electrical components may be shown in block diagrams so as not to obscure embodiments with unnecessary elements. In other cases, similar components, other structures and methods can be depicted in detail to further clarify embodiments. It is also understood by those skilled in the art that the electrical components depicted as separate units can be rearranged and / or combined into a single component.

Также следует отметить, что некоторые варианты осуществления могут быть описаны в качестве процесса, изображенного в виде блок-схемы, схемы последовательности операций, структурной схемы или принципиальной схемы. Несмотря на то что блок-схема может описывать операции в качестве многоэтапного процесса, многие из операций могут быть выполнены параллельно или одновременно, а процесс может быть повторен. Кроме того, порядок операций может быть перестроен. Процесс завершается в случае, если его операции завершены. Процесс может соответствовать способу, функции, процедуре, подпрограмме, части программы и т.д. Если процесс соответствует функции, то его завершение соответствует возврату функции к вызывающей функции или же к главной функции.It should also be noted that some embodiments may be described as a process depicted as a flowchart, a flowchart, a block diagram, or a circuit diagram. Although the flowchart may describe operations as a multi-stage process, many of the operations can be performed in parallel or simultaneously, and the process can be repeated. In addition, the order of operations can be rearranged. The process ends if its operations are completed. A process may correspond to a method, function, procedure, subprogram, part of a program, etc. If the process corresponds to a function, then its termination corresponds to the return of the function to the calling function or to the main function.

Фиг.1A изображает блок-схему примера системы связи для доставки потоковой передачи мультимедийных данных. Система 20 включает в себя передатчик 22 и мультимедиа-декодер 24 приемника. Передатчик 22 содержит сжатые мультимедийные данные различных форм, включающие в себя, в числе прочего, видеоданные, аудиоданные, графическую информацию, текстовую информацию и изображения. Данные могут являться сжатыми видеоданными и аудиоданными, как в стандартах MPEG-x и H.26x, сжатыми аудиоданными, как в стандартах сжатия речи или видео MPEG-4 AAC, MP3, AMR и G.723, или же любым другим видом цифровых данных.1A is a block diagram of an example communication system for delivering streaming multimedia data. System 20 includes a transmitter 22 and a multimedia receiver decoder 24. The transmitter 22 comprises compressed multimedia data of various forms, including but not limited to video data, audio data, graphic information, text information and images. The data may be compressed video and audio data, as in the MPEG-x and H.26x standards, compressed audio data, as in the speech or video compression standards MPEG-4 AAC, MP3, AMR and G.723, or any other type of digital data.

Передатчик 22 получает данные из различных источников, включающих в себя внешнюю память, сеть Интернет и оперативную подачу аудиоданных и/или видеоданных. Передатчик 22 также выполняет передачу (Tx) полученных данных по сети. Сеть может являться проводной сетью 28, например телефонной, кабельной или оптоволоконной, или же беспроводной сетью 26. В отношении системы беспроводной связи сеть 26 может содержать, например, часть системы связи с множественным доступом с кодовым разделением каналов (CDMA или CDMA2000) или поочередно система может являться системой множественного доступа с частотным разделением (FDMA), системой множественного доступа на основе ортогонального частотного разделения (OFDMA), системой множественного доступа с временным разделением (TDMA), как технология мобильной связи для индустрии обслуживания GSM/GPRS (система пакетной радиосвязи общего пользования) / EDGE (улучшенный GSM для передачи данных) или TETRA (магистральная наземная радиосвязь), широкополосного множественного доступа с кодовым разделением каналов (WCDMA), системой высокоскоростной передачи данных (1xEV-DO или 1xEV-DO Gold Multicast) или же вообще любой системой беспроводной связи, использующей комбинации методов.The transmitter 22 receives data from various sources, including external memory, the Internet and the operational supply of audio and / or video data. The transmitter 22 also transmits (Tx) the received data over the network. The network may be a wired network 28, such as a telephone, cable or fiber optic, or wireless network 26. With respect to a wireless communication system, network 26 may comprise, for example, part of a code division multiple access (CDMA or CDMA2000) communication system or alternately a system may be a frequency division multiple access (FDMA) system, orthogonal frequency division multiple access (OFDMA) system, time division multiple access (TDMA) system, as a technology mobile communications for the service industry GSM / GPRS (general packet radio system) / EDGE (advanced GSM for data transmission) or TETRA (terrestrial radio trunk communication), code division multiple access (WCDMA), high-speed data transmission system (1xEV- DO or 1xEV-DO Gold Multicast) or any wireless communication system using a combination of methods.

Декодер 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).Decoder 24 comprises means, such as a radio frequency antenna or network connection, for receiving data over a wireless network 26 and / or a wired network 28. Decoder 24 may include multiple processors containing a different combination of pre-processors (for example, any type of central processing unit (CPU) ), for example, ARM), a digital signal processor (DSP), software, firmware, and hardware such as the VideoCore multimedia processor for distributing demodulation and decoding h related to received data. Decoder 24 also contains memory components for storing received data and intermediate data at various stages of the demodulation / decoding process. In some embodiments, the ARM preprocessor performs less complex tasks, including decompressing (removing side information such as headers and messages) and demultiplexing a plurality of bit streams including audio, video, and more. The ARM pre-processor also performs bitstream parsing, error detection, masking and decoding of variable length entropy. In some such embodiments, the digital signal processor (DSP) performs VLC keyword expansion (with variable length code), reverse zigzag scan of video data to spatially determine pixel parameters, reverse AC / DC pixel parameter prediction for MPEG-4 video data (not is a feature of the H.264 standard due to context-sensitive adaptive encoding of entropy) and decoding of audio data (for example, MPEG-4 AAC, MP3, AMR or G.723). The VideoCore multimedia processor can perform more computationally complex video decoding tasks, including dequantization, inverse transform, motion compensation prediction and unlocking (a form of filtering to reduce edge distortion of an image (artifacts) between the edges of a pixel block). In communication system 20, one or more elements may be added, rearranged, or combined. With respect to a wired communication system, the network 26 may include, for example, a portion of a communication system based on the Internet Protocol (IP), with transport protocols such as Real-time Transport Protocol (RTP) or Universal Datagram Transmission Protocol (UDP).

Фиг.1B изображает блок-схему многоуровневого стека протоколов, используемого для задач деления, выполняемых на передатчике 22 и декодере 24. Компоненты 205 и 210 верхнего уровня, находящиеся в передатчике 22 и декодере 24 соответственно, могут включать в себя множество приложений, таких как, например, видео- или аудиокодеры и/или декодеры. Некоторые варианты осуществления могут включать в себя множество потоков информации, которые предназначены для одновременного декодирования. В этих случаях задачи синхронизации множества потоков также могут быть выполнены в компонентах 205 и 210 верхнего уровня. Компонент 205 верхнего уровня может обеспечить закодированную информацию о синхронизации в битовом потоке, передающемся по беспроводной сети 26 и/или проводной сети 28. Компонент 210 верхнего уровня 210 может разобрать множество потоков информации из условия, чтобы связанные приложения декодировали их приблизительно в то же самое время.FIG. 1B depicts a block diagram of a multi-level protocol stack used for division tasks performed by transmitter 22 and decoder 24. Top-level components 205 and 210 located in transmitter 22 and decoder 24, respectively, may include a variety of applications, such as, for example, video or audio encoders and / or decoders. Some embodiments may include multiple streams of information that are intended for simultaneous decoding. In these cases, synchronization tasks of multiple threads can also be performed on top-level components 205 and 210. Top-level component 205 can provide encoded synchronization information in a bitstream transmitted over wireless network 26 and / or wired network 28. Top-level component 210 can parse multiple information streams so that related applications decode them at approximately the same time .

Компоненты 215 нижнего уровня, находящиеся в передатчике 22, могут включать в себя различные схемы для обеспечения устойчивости к ошибкам. Подверженные ошибкам каналы, например беспроводная сеть 26 и/или проводная сеть 28, могут ввести ошибки в битовый поток, принимаемый декодером 24. Такие схемы устойчивости к ошибкам, обеспеченные в компонентах 215 нижнего уровня, могут включать в себя одну или несколько схем помехоустойчивого кодирования (с контролем ошибок), схем чередования и других известных специалистам в данной области техники схем. Компоненты 220 нижнего уровня, находящиеся в декодере 22, могут включать в себя соответствующие компоненты декодирования ошибок, которые допускают обнаружение и коррекцию ошибок. Некоторые ошибки, введенные по беспроводной сети 26 и/или проводной сети 28, могут являться некорректируемыми с помощью компонентов 220 нижнего уровня. Для некорректируемых ошибок решения, такие как компоненты 220 нижнего уровня, запрашивающие повторную передачу поврежденных компонентов посредством компонентов 215 нижнего уровня передатчика 22, могут быть невыполнимы в некоторых ситуациях, например, при передаче мультимедийных данных в реальном времени, например, при потоковой передаче приложений. В некоторых вариантах осуществления компоненты 215 и 220 нижнего уровня содержат компоненты уровня связи. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 24, изображенных на Фиг.1B.The lower level components 215 located in the transmitter 22 may include various circuits to provide error tolerance. Error-prone channels, such as wireless network 26 and / or wired network 28, can introduce errors into the bitstream received by decoder 24. Such error tolerance schemes provided in lower level components 215 may include one or more error-correcting coding schemes ( with error control), alternating circuits, and other circuits known to those skilled in the art. The lower level components 220 located in the decoder 22 may include corresponding error decoding components that allow for error detection and correction. Some errors introduced through wireless network 26 and / or wired network 28 may not be correctable using lower level components 220. For uncorrectable errors, decisions, such as lower-level components 220, requesting the retransmission of damaged components by lower-level components 215 of transmitter 22, may not be feasible in some situations, for example, when transmitting multimedia data in real time, for example, when streaming applications. In some embodiments, lower layer components 215 and 220 comprise communication layer components. One or more elements may be added, rearranged, or combined at transmitter 22 or decoder 24 shown in FIG. 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С.FIG. 1C is a block diagram of a more detailed example of a multi-level protocol stack used for dividing tasks in transmitter 22 and decoder 24. Top-level components 205 located in transmitter 22 are allocated to either one level from a plurality containing application layer 206 and level 207 synchronization, or in several levels. The lower level components 215 located in the transmitter 22 are allocated either to one level from a plurality containing a transport layer 216, a medium access control (MAC) layer / stream 217 / a stream layer 217, and a physical layer 218, or several levels. Similarly, the top-level components 210 located in the decoder 24 are distributed either to one level from a plurality containing the application layer 211 and the synchronization level 207, or to several levels. The lower level components 220 located in the decoder 24 are allocated either to one level from a plurality containing the transport layer 221, the medium access control (MAC) layer 222 / stream layer 222 and the physical layer 223, or into several levels. Those skilled in the art are familiar with these levels, and they are also familiar with the distribution of various tasks among them. The following discusses an example of a structure combining the various layers of the decoding device 24, as discussed above, to take advantage of the error tolerance provided by the transmitter 22. One or more elements can be added, rearranged, or combined in the transmitter 22 or decoder 24 shown in Figs.

Фиг.2A изображает блок-схему примера структуры декодирующего устройства для декодирования потоковой передачи мультимедийных данных. Фиг.2B изображает диаграмму стека протоколов примера интегрированной многоуровневой системы управления, содержащей передатчик 22, и представление стека протоколов изображенной на Фиг.2A структуры декодирующего устройства. Как показано на Фиг.2A и 2B, мультимедиа-декодер 30 содержит компонент 32 физического уровня, компонент 34 МАС-уровня, блок 39 разбора транспортного уровня (TSP) и уровня синхронизации и компонент 50 прикладного уровня. Мультимедиа-декодер 30 принимает входной битовый поток (В), содержащий схему каскадной коррекции ошибок, например, схему каскадного кодирования турбо/Рида-Соломона. Компонент 32 физического уровня может выполнять задачи демодуляции, в числе прочего, включающие в себя прием, помехоустойчивое декодирование, например декодирование с использованием турбокода, и взаимодействие с МАС-уровнем (уровнем управления доступом к среде передачи). Компонент 34 МАС-уровня может выполнять помехоустойчивое декодирование, например, обнаружение ошибок Рида-Соломона, коррекцию ошибок и маркировку некорректируемых поврежденных данных, например, группы, состоящей из одного или нескольких битов. Компонент 34 МАС-уровня взаимодействует с компонентом 39 разбора транспортного уровня и уровня синхронизации (TSP).Fig. 2A depicts a block diagram of an example structure of a decoding device for decoding streaming media. FIG. 2B is a diagram of a protocol stack of an example integrated multi-level control system comprising a transmitter 22 and a representation of a protocol stack of the structure of a decoding apparatus shown in FIG. 2A. As shown in FIGS. 2A and 2B, the multimedia decoder 30 comprises a physical layer component 32, a MAC layer component 34, a transport layer (TSP) and synchronization layer parsing unit 39, and an application layer component 50. The multimedia decoder 30 receives an input bitstream (B) comprising a cascade error correction circuit, for example, a cascade coding scheme for turbo / Reed-Solomon. The component 32 of the physical layer can perform demodulation tasks, including but not limited to, including receiving, noise-free decoding, for example, decoding using a turbo code, and interacting with the MAC layer (media access control layer). The MAC layer component 34 may perform error-correcting decoding, for example, detection of Reed-Solomon errors, error correction, and marking of uncorrectable damaged data, for example, a group of one or more bits. The MAC layer component 34 interacts with the transport layer and synchronization layer (TSP) component 39.

Компонент 39 TSP может дополнительно содержать компонент 36 демультиплексирования транспортного уровня и компонент 38 разбора уровня синхронизации. Компонент 36 демультиплексирования транспортного уровня может принять битовый поток, передающийся от компонента 34 МАС-уровня, содержащий как верные, так и поврежденные биты, и информацию, маркирующую поврежденные группы битов. Поврежденные группы битов и соответствующая маркирующая информация содержат информацию, соответствующую ошибкам 33 в контрольной циклической сумме (CRC) турбодекодера и ошибкам 35 Рида-Соломона. (В некоторых стеках протоколов компонент 36 демультиплексирования транспортного уровня также известен как подуровень потокового уровня, где подуровень МАС-уровня и подуровень потокового уровня являются подуровнями транспортного уровня.) Компонент 36 демультиплексирования транспортного уровня может демультиплексировать (de-mux) или разобрать принятый битовый поток на множество битовых потоков. Разобранные битовые потоки могут содержать битовые потоки, предназначенные для различных приложений, таких как видеодекодер, аудиодекодер, и различных комбинаций текстовых, графических приложений и приложений отображения. Компонент демультиплексирования транспортного уровня также может разобрать один битовый поток, предназначенный для отдельного приложения, такой как битовый поток видеоданных, например, на два или несколько отдельных уровней (например, используя масштабируемое кодирование), например, на основной уровень и уровень улучшения. Затем эти уровни могут быть использованы для обеспечения масштабируемости, такой как временная и/или SNR масштабируемость. Один пример масштабируемого кодирования делит кадры с внутренним кодированием (такие как I-кадры) и другие кадры с взаимным кодированием (например, P-кадры или В-кадры, полученные при использовании, например, предсказания с компенсацией движения) на различные уровни в битовом потоке. I-кадры могут быть закодированы на основном уровне, а P-кадры и/или В-кадры могут быть закодированы на уровне улучшения. Масштабируемое кодирование является полезным в динамических каналах, где масштабируемые битовые потоки могут быть адаптированы к соответствию колебаниям в пропускной способности сети. В подверженных ошибкам каналах масштабируемое кодирование может увеличить надежность с помощью защиты от неравных ошибок основного уровня и уровня улучшения. Лучшая защита от ошибок может быть применена к более важному уровню.The TSP component 39 may further comprise a transport layer demultiplexing component 36 and a synchronization level parsing component 38. The transport layer demultiplexing component 36 may receive a bitstream transmitted from the MAC layer component 34, containing both correct and damaged bits, and information marking the damaged groups of bits. The damaged bit groups and the corresponding marking information contain information corresponding to errors 33 in the turbo decoder checksum (CRC) and Reed-Solomon errors 35. (In some protocol stacks, the transport layer demultiplexing component 36 is also known as the stream layer sublayer, where the MAC layer sublayer and the stream layer sublayer are transport layer sublayer.) The transport layer demultiplexing component 36 can demultiplex (de-mux) or parse the received bitstream into many bit streams. The parsed bitstreams may comprise bitstreams for various applications, such as a video decoder, audio decoder, and various combinations of text, graphics, and display applications. The transport layer demultiplexing component can also parse a single bitstream intended for a separate application, such as a video bitstream, for example, into two or more separate layers (for example, using scalable encoding), for example, to a main layer and an enhancement layer. These levels can then be used to provide scalability, such as temporal and / or SNR scalability. One example of scalable coding divides internally encoded frames (such as I-frames) and other inter-coded frames (e.g., P-frames or B-frames obtained using, for example, motion-compensated prediction) into different levels in the bitstream . I-frames can be encoded at the main level, and P-frames and / or B-frames can be encoded at the enhancement level. Scalable coding is useful in dynamic channels where scalable bitstreams can be adapted to match fluctuations in network bandwidth. In error prone channels, scalable coding can increase reliability by protecting against unequal errors at the core and enhancement levels. Better error protection can be applied to a more important level.

Компонент 38 разбора уровня синхронизации дополнительно выполняет разбор битового потока на битовые субпотоки, связанные друг с другом на основе временной синхронизации. Мультимедийный битовый поток видеоданных может быть разобран на битовый поток видеоданных, битовый поток аудиоданных и битовый поток с соответствующей текстовой информацией скрытых титров. Компонент 38 разбора уровня синхронизации передает разобранные битовые потоки связанному приложению декодера наряду с информацией временной синхронизации. Это предоставляет связанным аудиоданным, видеоданным и текстовой информации возможность отображения и воспроизведения в соответствующее время.The synchronization level parsing component 38 further parses the bitstream into bit substreams associated with each other based on time synchronization. The multimedia video bitstream can be parsed into a video bitstream, an audio bitstream, and a bitstream with corresponding closed caption text information. The synchronization level parsing component 38 transmits the parsed bitstreams to the associated decoder application along with time synchronization information. This provides the associated audio, video and text information with the ability to display and play at the appropriate time.

В дополнение к обсуждаемому выше разбору компонент 36 демультиплексирования транспортного уровня может разобрать и переслать информацию, маркирующую повреждение (например, информацию 33 об ошибке CRC и информацию 35 об ошибке Рида-Соломона), которую он принял от компонента 34 МАС-уровня и компонента 32 физического уровня, компоненту 38 разбора уровня синхронизации и/или соответствующему процессу прикладного уровня (например, видеодекодеру или аудиодекодеру). Компонент 38 разбора уровня синхронизации может передать информацию, маркирующую повреждение, в виде информации 37 о распределении ошибок. Компонент 38 разбора уровня синхронизации также может передать рекомендованную информацию 41 о стратегии контроля ошибок. Затем процесс прикладного уровня может использовать информацию 37, маркирующую повреждение, и информацию 41 о стратегии контроля для обработки ошибок.In addition to the parsing discussed above, the transport layer demultiplexing component 36 can parse and forward information indicating damage (e.g., CRC error information 33 and Reed-Solomon error information 35) that it received from the MAC layer component 34 and the physical component 32 level, component 38 parsing the synchronization level and / or the corresponding process of the application level (for example, a video decoder or audio decoder). The synchronization level parsing component 38 may transmit information marking the damage in the form of error distribution information 37. The synchronization level parsing component 38 may also transmit recommended information 41 on the error control strategy. Then, the application layer process can use information 37, marking damage, and information 41 about the control strategy for error handling.

Компонент 50 прикладного уровня может содержать один или несколько компонентов, таких как, например, компонент 40 устранения ошибок, компонент 42 масштабирования, компонент 44 преобразования частоты кадров (FRUC), компонент 46 декодирования базового приложения и компонент 48 последующей обработки. Компонент 50 прикладного уровня использует переданную информацию 37, маркирующую повреждение, и информацию 41 о стратегии контроля для принятия решения, касающуюся способа использования компонентов устранения ошибок, масштабирования и преобразования частоты кадров (FRUC) для управления поврежденными данными, таким образом предлагая более высокое качество декодирования с использованием компонента 46 декодирования базового приложения. Например, касаемо временной масштабируемости, где некоторые мультимедийные данные принимаются на одном уровне, содержащем важную информацию, а остальная часть мультимедийных данных - на другом уровне, компонент преобразования частоты кадров (FRUC) может быть использован для восстановления недостающих мультимедийных данных в случае, если второй уровень не был принят, потерян или поврежден. После декодирования компонент 48 последующей обработки выполняет любые необходимые определенные модификации аппаратных средств для предоставления возможности отображения, воспроизведения или рендеринга видео- и аудиовыхода на устройстве отображения или динамиках соответственно. Компонент 48 последующей обработки также может выполнить операции улучшения или восстановления прежде, чем мультимедийные данные будут воспроизведены или представлены.The application layer component 50 may comprise one or more components, such as, for example, error correction component 40, scaling component 42, frame rate conversion (FRUC) component 44, base application decoding component 46, and post-processing component 48. The application layer component 50 uses the transmitted damage marking information 37 and the control strategy information 41 to make a decision regarding how to use the error correction, scaling, and frame rate conversion (FRUC) components to manage the damaged data, thereby offering higher quality decoding with using the decoding component 46 of the base application. For example, with regard to temporal scalability, where some multimedia data is received at one level containing important information, and the rest of the multimedia data at another level, the frame rate conversion component (FRUC) can be used to recover missing multimedia data in case the second level was not accepted, lost or damaged. After decoding, the subsequent processing component 48 performs any necessary specific hardware modifications to enable the display, playback, or rendering of the video and audio output on the display device or speakers, respectively. The post-processing component 48 may also perform enhancement or restoration operations before the multimedia data is reproduced or presented.

Компонент 46 декодирования базового приложения может содержать видеодекодер(ы), аудиодекодер(ы), а также текстовые и графические приложения. Посредством выполнения обработки устранения ошибок, масштабирования и преобразования частоты кадров (FRUC) битовых потоков различных приложений перед или в течение декодирования с использованием компонента 46 декодирования базового приложения могут быть сделаны улучшения для повышения качества битового потока низкого качества (закодированного с низким качеством, либо принятого с низким качеством из-за ошибок). Например, компоненты 40, 42 и 44 могут предложить улучшения стандартного исходного, совместимого со стандартом H.264, битового потока видеоданных (базовый профиль является очень простым профилем, который был спроектирован для маломощного устройства), и обеспечить некоторые элементы других профилей стандарта H.264, такие как B-кадры и разделение послойных данных, которые обязаны выполнять масштабирование, обнаружение и устойчивость к ошибкам для потока видеоданных. Элементы процессов, использующих компоненты мультимедиа-декодера 30, представлены ниже. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 30, изображенных на Фиг.2A и 2B.The decoding component 46 of the base application may comprise video decoder (s), audio decoder (s), as well as text and graphics applications. By performing error correction, scaling, and frame rate conversion (FRUC) processing of bit streams of various applications before or during decoding using the decoding component 46 of the base application, improvements can be made to improve the quality of the low quality bitstream (encoded with low quality or received with poor quality due to errors). For example, components 40, 42, and 44 can offer improvements to the standard source H.264-compliant video bitstream (the base profile is a very simple profile that was designed for a low-power device), and provide some elements of other profiles of the H.264 standard such as B-frames and separation of layered data, which are required to perform scaling, detection and error tolerance for the video stream. Elements of processes using the components of multimedia decoder 30 are presented below. One or more elements may be added, rearranged, or combined at transmitter 22 or decoder 30 shown in FIGS. 2A and 2B.

Далее представлено краткое обсуждение процесса обнаружения ошибок и коррекции ошибок. Один пример схемы обнаружения и коррекции ошибок использует каскадный код, содержащий как внутренний (канальный) код, так и внешний (канальный) код. Каскадные канальные коды состоят из турбо (внутреннего) кода на физическом уровне и корректирующего кода (внешнего) стирания ошибок Рида-Соломона, установленного на МАС-уровне. Фиг.3 изображает пример мультимедиа-символов, упорядоченных для каскадного кодирования со стиранием ошибок Рида-Соломона и турбокодирования. Что касается кодирующей стороны, то вывод символов из информационного источника, вывод двойных ключевых слов из кодера склеивается в байты 102. Каждый байт 102 считается символом в конечном поле, известном как «поле Галуа (256)», для целей внешнего (N, K) кода Рида-Соломона (RS) по полю Галуа (256) (GF). N и К соответственно обозначают размеры всего ключевого слова 104 Рида-Соломона (RS) и его исходных данных 106, содержащих в числе символов систематическую часть. Таким образом, N минус К представляет собой количество символов 108 паритета, включенных в каждое ключевое слово 104. Код Рида-Соломона (RS) (N, K) поддается исправлению N минус К стиранию ошибок.The following is a brief discussion of the error detection and error correction process. One example of an error detection and correction scheme uses a cascade code containing both an internal (channel) code and an external (channel) code. Cascading channel codes consist of a turbo (internal) code at the physical level and a correcting code of (external) error erasing of Reed-Solomon installed at the MAC level. Figure 3 depicts an example of multimedia symbols ordered for cascading coding with erasing Reed-Solomon errors and turbo coding. As for the coding side, the output of characters from an information source, the output of double keywords from an encoder is glued into bytes 102. Each byte 102 is considered a character in a final field, known as a “Galois field (256),” for external (N, K) purposes Reed-Solomon code (RS) for the Galois field (256) (GF). N and K respectively denote the sizes of the entire Reed-Solomon (RS) keyword 104 and its source data 106, containing a systematic part in the number of characters. Thus, N minus K represents the number of parity symbols 108 included in each keyword 104. The Reed-Solomon code (RS) (N, K) can be corrected for N minus Erase errors.

К верхних строк 106, по существу, содержат символы, выведенные из информационного источника, и эти символы могут быть отсканированы из К строк или изначально сканируемых строк или столбцов. Чередование достигается посредством сканирования начальных столбцов и приводит к значительно меньшим группам поврежденных битов в случае, если данная строка 112 информационного турбопакета повреждена. Длина каждой группы поврежденных битов из-за стирания ошибок информационного турбопакета может быть равна 1 байту для изначально сканируемых столбцов в отличие от длины, равной (L-1) байт, для изначально сканируемой строки. В декодере маркировка этих поврежденных групп битов, как обсуждается ниже, может требоваться для идентификации размера и позиции (в битовом потоке) этих групп битов. После этого начального этапа размещения данных источника каждый из L столбцов 104 (К байт) кодируется с помощью RS в N байт посредством добавления N-K байтов паритета и, следовательно, формируются K+1,…,N изображенных на Фиг.3 строк 108. К верхних строк состоят из данных 106 источника, упоминаемых как информационный блок RS, а целый набор N строк упоминается как блок, закодированный с помощью RS, или же просто закодированный блок 110.The top rows 106 essentially contain characters derived from an information source, and these characters can be scanned from K rows or initially scanned rows or columns. Alternation is achieved by scanning the initial columns and leads to significantly smaller groups of damaged bits in the event that this line 112 information turbopackage is damaged. The length of each group of damaged bits due to erasing errors of the information turbo packet can be equal to 1 byte for the initially scanned columns, in contrast to the length equal to (L-1) bytes for the initially scanned row. At the decoder, marking of these damaged bit groups, as discussed below, may be required to identify the size and position (in the bit stream) of these bit groups. After this initial stage of source data placement, each of the L columns 104 (K bytes) is encoded using RS in N bytes by adding NK parity bytes and, therefore, K + 1, ..., N lines 108 shown in FIG. 3 are formed. To the top lines consist of source data 106 referred to as an RS information block, and a whole set of N lines is referred to as RS encoded block, or simply encoded block 110.

К каждой строке 112 добавлена контрольная циклическая сумма (CRC) и некоторые замыкающие биты, необходимые для правильной работы турбокодера. Из-за добавления контрольной суммы к каждой строке 112 эти строки не смогут удовлетворить свои соответствующие контрольные суммы после того, как турбодекодирование может быть объявлено стертым. Каждый кодовый блок 110 за один раз вводит одну строку 112 в турбокодер и, следовательно, каждая строка упоминается как информационный турбопакет.A CRC and some trailing bits are required for each turbo encoder to work correctly on each line 112. Due to the addition of a checksum to each line 112, these lines will not be able to satisfy their respective checksums after the turbo decoding can be declared erased. Each code block 110 enters one line 112 into a turbo encoder at a time and, therefore, each line is referred to as an information turbo packet.

Процесс турбодекодирования представляет четкие данные процессу декодирования Рида-Соломона, который затем сокращает коэффициент остаточных ошибок. Способность успешной коррекции для стирания зависит от общего количества стираний внутри кодового блока и количества (N минус K) символов паритета, используемых в ключевом слове RS.The turbo decoding process provides clear data to the Reed-Solomon decoding process, which then reduces the residual error rate. The ability to successfully correct for erasure depends on the total number of erasures within the code block and the number (N minus K) of parity symbols used in the RS keyword.

В структуре канального кодирования, предназначенного для мультимедиа-декодера 30, изображенного на Фиг.2, в случае, если кодовый блок Рида-Соломона (RS) имеет стирания вне корректирующей способности, то соответствующий информационный блок RS (Фиг.3) может быть передан компонентам на транспортном уровне, уровне синхронизации или же на прикладном уровне с уведомлением, маркирующим то, какие из числа К информационных турбопакетов 112 (Фиг.3) являются поврежденными. Систематическая структура внешнего (N, K) кода Рида-Соломона (RS) по полю Галуа (256) допускает прямое использование безошибочно принятых информационных турбопакетов (не поврежденных).In the channel coding structure for the multimedia decoder 30 shown in FIG. 2, if the Reed-Solomon (RS) code block is erased outside of the correcting ability, the corresponding RS information block (FIG. 3) can be transmitted to the components at the transport level, synchronization level, or at the application level with a notification marking which of the K information turbopackages 112 (Figure 3) are damaged. The systematic structure of the external (N, K) Reed-Solomon (RS) code over the Galois field (256) allows the direct use of correctly accepted information turbopackages (not damaged).

Фиг.4 изображает схему последовательности операций примера способа декодирования потоковой передачи мультимедийных данных. Модулированные ошибочные данные (IN) принимаются и вводятся в процесс 60 декодирования и демодулируются (этап 62). Данные могут быть приняты по проводным или беспроводным сетям, например, по беспроводной сети 26 и проводной сети 28, изображенным на Фиг.1. На этапе 62 компонент 32 физического уровня, изображенный на Фиг.2, выполняет демодуляцию принятых ошибочных данных. Затем демодулированные данные передаются на этап 64, где ошибки могут быть обнаружены и откорректированы. На этапе 64 компонент 32 физического уровня, изображенный на Фиг.2, может выполнить турбодекодирование, в то время как компонент 34 МАС-уровня, изображенный на Фиг.2, может выполнить коррекцию ошибок Рида-Соломона.4 is a flowchart of an example method for decoding streaming multimedia data. Modulated error data (IN) is received and input to the decoding process 60 and demodulated (step 62). Data may be received over wired or wireless networks, for example, over wireless network 26 and wired network 28 shown in FIG. At step 62, the physical layer component 32 depicted in FIG. 2 demodulates received erroneous data. Then, the demodulated data is transmitted to step 64, where errors can be detected and corrected. In step 64, the physical layer component 32 shown in FIG. 2 can perform turbo decoding, while the MAC layer component 34 shown in FIG. 2 can perform Reed-Solomon error correction.

После того как на этапе 64 турбодекодирование и декодирование Рида-Соломона обнаружило и откорректировало все корректируемые ошибки, информационные турбопакеты и/или поврежденные байты идентифицируются на этапе 66, например, посредством маркировки. Перед передачей битового потока для выполнения разбора на этапе 68 от контрольных циклических сумм (CRC), замыкающих битов в каждом информационном турбопакете, а также от строк 108 паритета (Фиг.3) отказываются. Безошибочно принятые, принятые с ошибками, но откорректированные и помеченные поврежденные данные наряду с маркирующей информацией, идентифицирующей поврежденные данные, совместно передаются на этап 68 для разбора битового потока. На этапе 66 компонент 32 физического уровня и/или компонент 34 МАС-уровня (Фиг.2) могут выполнить идентификацию (например, посредством маркировки) поврежденных данных.After at 64, the Reed-Solomon turbo decoding and decoding detected and corrected all correctable errors, information turbo packets and / or damaged bytes are identified at 66, for example, by marking. Before transmitting the bitstream for parsing at step 68, the CRCs, trailing bits in each turbo information packet, and parity lines 108 (FIG. 3) are rejected. Faultlessly received, received with errors, but corrected and marked corrupted data along with marking information identifying the corrupted data are jointly transmitted to step 68 to parse the bitstream. At step 66, the physical layer component 32 and / or the MAC layer component 34 (FIG. 2) can identify (eg, by marking) the damaged data.

Как обсуждалось выше, компонент 36 демультиплексирования транспортного уровня и компонент 38 разбора уровня синхронизации разбирают битовый поток на множество битовых потоков, предназначенных для множества процессов прикладного уровня. В изображенном на Фиг.4 примере битовый поток разбирается (на этапе 68) на битовый поток 70 видеоданных, битовый поток 72 аудиоданных и битовый поток 74 текстовой и/или графической информации. Каждый битовый поток 70, 72 и 74 может содержать данные, идентифицирующие поврежденные группы битов в отдельных битовых потоках. Кроме того, если отдельные битовые потоки должны быть синхронными во временном отношении, то битовые потоки могут содержать информацию о синхронизации.As discussed above, the transport layer demultiplexing component 36 and the synchronization layer parsing component 38 parse the bitstream into a plurality of bit streams intended for a plurality of application layer processes. In the example shown in FIG. 4, the bitstream is parsed (at 68) into a video bitstream 70, an audio bitstream 72 and a text and / or graphic information bitstream 74. Each bit stream 70, 72 and 74 may contain data identifying damaged groups of bits in individual bit streams. In addition, if the individual bit streams must be synchronous in time, then the bit streams may contain synchronization information.

После разбора отдельных битовых потоков выполняется обработка ошибок на прикладном уровне, где на этапах 78, 82 и 86 заменяются поврежденные биты с использованием одного из нескольких методов устранения ошибок или маскировки. Компонент 40 устранения ошибок, компонент 42 масштабирования и компонент 44 преобразования частоты кадров (FRUC) компонента 50 прикладного уровня (Фиг.2) могут выполнить замену на этапах 78, 82 и 86. После замены поврежденных символов отдельные потоки видеоданных, аудиоданных и текстовой/графической информации могут быть декодированы на этапах 80, 84 и 88 соответственно. Компонент 46 декодирования базового приложения компонента 50 прикладного уровня (Фиг.2) может выполнить декодирование на этапах 80, 84 и 88. Компонент 46 декодирования базового приложения компонента 50 прикладного уровня (Фиг.2) также может заменить поврежденные биты на этапах 78, 82 и/или 86, которые могут быть помечены компонентом нижнего уровня. Один или несколько элементов могут быть добавлены, перестроены или объединены для процесса 60 обработки, изображенного на Фиг.4.After parsing the individual bit streams, error processing is performed at the application level, where the damaged bits are replaced in steps 78, 82 and 86 using one of several error correction or masking methods. The error correction component 40, the scaling component 42, and the frame rate conversion (FRUC) component 44 of the application layer component 50 (FIG. 2) can replace at steps 78, 82, and 86. After replacing the damaged characters, separate streams of video, audio, and text / graphics information can be decoded at steps 80, 84 and 88, respectively. The decoding component 46 of the base application of the application layer component 50 (FIG. 2) can perform decoding in steps 80, 84 and 88. The decoding component 46 of the base application of the application layer component 50 (FIG. 2) can also replace damaged bits in steps 78, 82 and / or 86, which may be labeled with a lower level component. One or more elements may be added, rearranged, or combined for the processing process 60 of FIG. 4.

Далее детально обсуждается пример идентификации поврежденных битов (этап 66) посредством маркировки поврежденных данных, как изображено на Фиг.4. Фиг.5 изображает структуру информационного турбопакета для видеоданных. Блок 140 представляет набор информационных турбопакетов, например К строк информационных турбопакетов 106, составляющих изображенный на Фиг.3 информационный блок RS. Кадр видеоданных может требовать кодирования нескольких информационных турбопакетов данных. Например, первый кадр (F1) берет начало в строке 142A информационного блока 148A. Оставшиеся в кадре F1 данные расположены в строках 142B, 142C, 142-D, а также в первой части строки 142E. Строка 142A также содержит заголовок 146A уровня синхронизации (SH), который содержит информацию, такую как идентификация потока, время синхронизации, идентификацию кадра (количество кадров, количество доступных уровней, в случае присутствия базового уровня и уровня улучшения) и другую информацию. Заголовок 146А уровня синхронизации служит для идентификации блока разбора уровня синхронизации (ссылочный номер 38 на Фиг.2), который (приложения которого) посылает данные, содержащиеся в следующих информационных блоках, представляющих кадр F1. В конце каждой строки присутствует контрольная циклическая сумма (CRC), как обсуждалось выше, которая используется совместно с декодированием Рида-Соломона для идентификации стертых (поврежденных) пакетов.Next, an example of identifying corrupt bits (step 66) by marking corrupt data as discussed in FIG. 4 is discussed in detail. 5 depicts the structure of an information turbopackage for video data. Block 140 represents a set of information turbopackages, for example, K lines of information turbopackages 106 constituting the RS information block shown in FIG. A video data frame may require coding of several data turbo information packets. For example, the first frame (F1) originates in line 142A of information block 148A. The data remaining in frame F1 is located in lines 142B, 142C, 142-D, as well as in the first part of line 142E. Line 142A also contains a synchronization level (SH) header 146A, which contains information such as flow identification, synchronization time, frame identification (number of frames, number of available levels, if a base level and enhancement level are present) and other information. The synchronization level header 146A is used to identify the synchronization level parsing unit (reference number 38 in FIG. 2), which (whose application) sends data contained in the following information blocks representing the F1 frame. At the end of each line is a CRC, as discussed above, which is used in conjunction with Reed-Solomon decoding to identify erased (damaged) packets.

В начале каждой строки информационного турбопакета присутствует заголовок 144 транспортного уровня (TH). Каждый заголовок 144 транспортного уровня (TH) содержит поля «Last_Flag» и «Offset_Pointer». Пометка поврежденного информационного турбопакета, выполняемая на изображенном на Фиг.4 этапе 66, может быть выполнена непосредственно с помощью значения поля «Offset_Pointer». Установка неправильного значения в поле «Offset_Pointer» может обозначить пакет в качестве поврежденного. Альтернативно, поле «Error_Flag» может быть использовано в заголовке транспортного уровня (TH). Маркировка может быть достигнута посредством установки значения поля «Error_Flag», равного единице (Error_Flag=1) в соответствующем заголовке транспортного уровня (TH). Например, если строка 142C повреждена, то значение заголовка транспортного уровня (TH) строки 142C может быть установлено равным единице. Поле «Last_Flag» используется для указания того, что текущая строка является последней строкой кадра (например, посредством установки его значения, равного единице), и если она является последней строкой, то поле «Offset_Pointer» используется для указания того, где в строке информационного турбопакета находится начало следующего кадра (в числе байтов). Например, в строке 142E значение заголовка 144В транспортного уровня (TH) может быть равным единице (значение поля «Last_Flag» равно единице), и значение поля «Offset_Pointer» может быть равным количеству байтов, содержащихся в строке до начала заголовка 144С транспортного уровня (TH) (начало кадра F3). Заголовок 146В уровня синхронизации может содержать данные, указывающие на поле «Frame_ID» и битовый поток, как обсуждалось выше. Информационный блок 148C содержит видеоданные, представляющие кадр F3. Если строка 142E была определена в качестве поврежденной, то декодер может не определить, где кончается кадр F1 и где начинается кадр F3.At the beginning of each line of the information turbopackage, a transport layer (TH) header 144 is present. Each transport layer (TH) header 144 contains the Last_Flag and Offset_Pointer fields. The marking of the damaged information turbopackage performed in step 66 shown in FIG. 4 can be performed directly using the value of the “Offset_Pointer” field. Setting the wrong value in the “Offset_Pointer” field may indicate a packet as damaged. Alternatively, the Error_Flag field may be used in the transport layer (TH) header. Marking can be achieved by setting the value of the "Error_Flag" field to one (Error_Flag = 1) in the corresponding transport layer header (TH). For example, if line 142C is damaged, then the transport layer (TH) header value of line 142C can be set to one. The Last_Flag field is used to indicate that the current line is the last line of the frame (for example, by setting its value to one), and if it is the last line, the Offset_Pointer field is used to indicate where in the line the information turbopackage is the beginning of the next frame (in bytes). For example, on line 142E, the value of the transport layer (TH) header 144B may be one (the value of the Last_Flag field is one), and the value of the Offset_Pointer field may be the number of bytes contained in the line before the transport layer header 144C (TH ) (beginning of frame F3). The header 146B synchronization level may contain data indicating the field "Frame_ID" and the bit stream, as discussed above. Information block 148C contains video data representing frame F3. If line 142E was determined to be damaged, then the decoder may not determine where frame F1 ends and where frame F3 begins.

В добавление к (или вместо) включению поля «Error_Flag» в заголовок транспортного уровня, как обсуждалось выше, таблица данных может быть создана и передана прикладному уровню с информацией, перечисленной в Таблице 1 для каждого видеокадра.In addition to (or instead of) including the “Error_Flag” field in the transport layer header, as discussed above, a data table can be created and transmitted to the application layer with the information listed in Table 1 for each video frame.

Выборочная информация, содержащаяся в таблице ошибок битового потока видеоданныхSelected information contained in the video bitstream error table

Таблица 1Table 1 Выборочная информация, содержащаяся в таблице ошибок битового потока видеоданныхSelected information contained in the video bitstream error table - Количество кадров - целое число, ограниченное набором кадров, например, 30 кадров, где после наибольшего числа нумерация возобновляется с единицы.
- B/E - указывает количество базовых уровней или уровней улучшения кадра в случае присутствия множества уровней масштабирования.
- Frame_Length - длина видеокадра в байтах.
- RAP_Flag - индикатор, указывающий на то, является ли кадр случайной точкой доступа, например, целым I-кадром с внутренним кодированием. Такой индикатор также может служить точкой повторной синхронизации при столкновении с ошибками.
- Метка времени отображения (PTS) - время в последовательности кадров, в течение которого кадр должен быть отображен.
- Кадров в секунду (FPS)
Количество информационных турбопакетов, занимаемых кадром (и полностью и частично)
- Error_Bit_Pattern - переменная, указывающая на то, какие информационные турбопакеты являются поврежденными (пять битов «00100» будут указывать на то, что третий из пяти информационных турбопакетов поврежден).
- Error_Ratio - переменная, указывающая коэффициент поврежденных информационных турбопакетов для корректирования пакетов (1/5 будет указывать на то, что один из пяти пакетов поврежден).
- Number of frames - an integer limited by the set of frames, for example, 30 frames, where after the largest number the numbering resumes from one.
- B / E - indicates the number of base levels or frame enhancement levels in the presence of multiple zoom levels.
- Frame_Length - the length of the video frame in bytes.
- RAP_Flag - an indicator indicating whether the frame is a random access point, for example, a whole I-frame with internal encoding. Such an indicator can also serve as a re-synchronization point in the event of an error.
- Display time stamp (PTS) - time in the sequence of frames during which the frame should be displayed.
- Frames per second (FPS)
The number of information turbopackages occupied by the personnel (both fully and partially)
- Error_Bit_Pattern - a variable indicating which information turbopackages are damaged (five bits “00100” will indicate that the third of the five information turbopackages is damaged).
- Error_Ratio - a variable indicating the coefficient of damaged information turbopackages for packet correction (1/5 will indicate that one of the five packets is damaged).

Также могут быть сформированы другие таблицы ошибок битового потока, подобные Таблице 1. Информация, маркирующая ошибки, содержащаяся в заголовках транспортного уровня и/или таблицах ошибок, подобных Таблице 1, может использоваться компонентами прикладного уровня, такими как компоненты 40, 42 и 44 (Фиг.2), для идентификации поврежденных символов в разобранных битовых потоках 70, 72 и 74, а также для их замены на этапах 78, 82 и 86 (Фиг.4) соответственно. Как обсуждалось выше, от пакетов стирания из кодирования Рида-Соломона (RS) не отказываются, они передаются на прикладной уровень, например видеодекодеру. Это защищает целостные пакеты, потенциально длиной в 122 байта или более для пакетов видеоданных, от потери.Other bitstream error tables, such as Table 1, may also be generated. Error marking information contained in transport layer headers and / or error tables, such as Table 1, may be used by application layer components such as components 40, 42 and 44 (FIG. .2), to identify damaged characters in the parsed bit streams 70, 72 and 74, as well as to replace them at steps 78, 82 and 86 (Figure 4), respectively. As discussed above, erase packets from Reed-Solomon (RS) coding are not discarded, they are transmitted to the application layer, for example, to a video decoder. This protects entire packets, potentially 122 bytes or more in length for video packets, from loss.

Замена поврежденных символов на этапах 78, 82 и 86 (Фиг.4) может принять две основные формы, а именно: коррекция ошибок и маскировка ошибок. Операции коррекции и маскировки ошибок на уровне битового потока выполняются на стираниях и пакетных ошибках. Ошибки декодирования (из-за ошибок в байтах) корректируются посредством использования критерия MAP (максимума апостериорной вероятности) до возможной степени. Ошибки, которые не могут быть откорректированы, маскируются посредством использования пространственной и/или временной информации из соседних макроблоков (макроблок представляет собой область пикселей, размером 16×16, которая, как правило, оперирует со стандартами сжатия видеоизображения, а также могут быть использованы меньшие по размеру субмакроблоки, например 8×8, 8×16 и другие). Временная маскировка может быть использована, например, если изображение статично свыше одного кадра. Если поврежденный маскируемый макроблок находится в области, которая осталась относительно постоянной в предыдущих кадрах, то он вероятно будет присутствовать в поврежденном кадре, а области прошедшего кадра могут быть использованы в качестве оценки для поврежденной области. Пространственная маскировка может использовать в своих интересах границы или объекты, которые существуют в соседних макроблоках одного кадра.Replacing damaged characters in steps 78, 82, and 86 (FIG. 4) can take two main forms, namely, error correction and error concealment. Error correction and concealment operations at the bitstream level are performed on erasures and packet errors. Decoding errors (due to errors in bytes) are corrected by using the MAP criterion (maximum posterior probability) to the extent possible. Errors that cannot be corrected are masked by using spatial and / or temporal information from neighboring macroblocks (a macroblock is a 16 × 16 pixel area, which, as a rule, operates with video compression standards, and smaller ones can also be used the size of sub-macroblocks, for example 8 × 8, 8 × 16 and others). Temporary masking can be used, for example, if the image is static over one frame. If the damaged masked macroblock is in an area that has remained relatively constant in previous frames, then it will probably be present in the damaged frame, and the areas of the past frame can be used as an estimate for the damaged area. Spatial masking can take advantage of boundaries or objects that exist in neighboring macroblocks of a single frame.

Как обсуждалось выше, может быть принято множество уровней закодированных данных, представляющих один битовый поток. Уровни могут включать в себя базовый уровень и один или несколько уровней улучшения, где уровень(ни) улучшения может обеспечить дополнительные кадры, которые недоступны в базовом уровне (например, предсказанные двунаправленные B-кадры), или же он может обеспечить дифференциальные усовершенствования более высокого качества для параметров пикселя базового уровня. Что касается дифференциальных усовершенствований для параметров базового уровня, если базовый уровень поврежден, то уровень улучшения может быть бесполезен, поскольку он был получен на основании значений пикселей базового уровня. Таким образом, уровень улучшения может быть освобожден от декодирования в случае, если данные базового уровня повреждены. Этот процесс называют выборочным декодированием, и он также может быть использован под сценариями малой мощности. Например, если устройство, содержащее декодер, работает в режиме малой мощности или работает от аккумулятора, декодироваться может только базовый уровень, опуская уровень улучшения, таким образом, сохраняя циклы вычисления и, в свою очередь, потребляемую мощность. Способы пространственной и/или временной маскировки могут быть использованы для замены данных объединенных уровней (базового уровня и уровня усовершенствования).As discussed above, multiple layers of encoded data representing one bit stream can be received. Levels may include a base level and one or more enhancement levels, where the enhancement level (s) may provide additional frames that are not available at the basic level (for example, predicted bidirectional B-frames), or it may provide higher quality differential enhancements for basic level pixel parameters. As for the differential enhancements for the parameters of the basic level, if the basic level is damaged, then the level of improvement can be useless, since it was obtained based on the pixel values of the basic level. In this way, the enhancement layer can be freed from decoding if the base layer data is corrupted. This process is called selective decoding, and it can also be used under low power scenarios. For example, if the device containing the decoder is in low power mode or is running on battery power, only the base level can be decoded, omitting the improvement level, thereby preserving the calculation cycles and, in turn, the power consumption. Spatial and / or temporal masking methods can be used to replace the data of the combined levels (base level and level of improvement).

Уровень улучшения (иногда трактуемый как уровень низкого приоритета) может быть передан на малой мощности в отличие от базового уровня (или уровня высокого приоритета). Это увеличивает вероятность ошибки на уровне улучшения по базовому уровню. Следовательно, если принятый базовый уровень содержит высокий процент ошибок, то уровень улучшения потенциально может быть пропущен.The improvement level (sometimes interpreted as the low priority level) can be transmitted at low power, in contrast to the base level (or the high priority level). This increases the likelihood of error at the baseline improvement level. Therefore, if the adopted baseline contains a high percentage of errors, then the improvement level could potentially be skipped.

Предсказанные двунаправленные кадры (B-кадры) предсказываются как из предыдущего кадра, так и из последующего кадра, используя предсказание с компенсацией движения. B-кадры предлагают очень высокие степени сжатия и крайне желательны для сохранения пропускной способности. B-кадры также желательны для их характеристик временной масштабируемости. Совместимые со стандартами B-кадры не используются для предсказания любых других кадров, и в связи с этим они могут быть пропущены, не затрагивая другие кадры. B-кадры также наиболее восприимчивы к распространению ошибок из-за ошибок в кадрах, от которых они зависят. В связи с этим B-кадры с наибольшей вероятностью будут находиться на уровне улучшения (или низкого приоритета). Если уровень улучшения передается на малой мощности, то B-кадры еще более восприимчивы к ошибкам.Predicted bidirectional frames (B-frames) are predicted from both the previous frame and the subsequent frame using motion-compensated prediction. B-frames offer very high compression rates and are highly desirable for maintaining bandwidth. B frames are also desirable for their temporal scalability characteristics. Standards-compatible B-frames are not used to predict any other frames, and therefore, they can be skipped without affecting other frames. B-frames are also most susceptible to error propagation due to errors in the frames on which they depend. In this regard, B-frames are most likely to be at the level of improvement (or low priority). If the improvement level is transmitted at low power, then the B-frames are even more susceptible to errors.

Если B-кадр (или любой другой тип кадра) полностью поврежден или имеет процент содержания ошибок выше порога, делающего временную или пространственную маскировку ошибок невыполнимой, то может быть использовано преобразование частоты кадров (компонент 44 FRUC, изображенный на Фиг.2). Преобразование частоты кадров (FRUC) используется для восстановления потерянного кадра. Преобразование частоты кадров (FRUC) также может быть использовано для восстановления кадра, который был освобожден от декодирования в целях, например, экономии энергии. Методы преобразования частоты кадров (FRUC) используют вектор движения и информацию пикселя из предыдущего и последующего кадров для интерполяции значений для векторов движения и пикселей. Соответствующие методы преобразования частоты кадров (FRUC) не включены в контекст настоящего обсуждения. Методы преобразования частоты кадров (FRUC) включают в себя форму «только кодер» и «только декодер». Метод преобразования частоты кадров (FRUC) «только декодер» выполняет псевдоинтерполяцию данных кадра без другой информации. Метод преобразования частоты кадров (FRUC) «только кодер» использует стороннюю информацию, переданную в сообщениях дополнительной информации улучшения (SEI) стандарта H.264 или в сообщении пользовательских данных стандарта MPEG-2.If the B-frame (or any other type of frame) is completely damaged or has a percentage of error content above a threshold that makes temporal or spatial masking of errors impossible, then frame rate conversion (FRUC component 44 shown in FIG. 2) can be used. Frame Rate Conversion (FRUC) is used to recover a lost frame. Frame rate conversion (FRUC) can also be used to restore a frame that has been freed from decoding for purposes of, for example, saving energy. Frame rate conversion (FRUC) methods use the motion vector and pixel information from the previous and subsequent frames to interpolate values for motion vectors and pixels. Appropriate frame rate conversion methods (FRUC) are not included in the context of this discussion. Frame Rate Conversion Methods (FRUC) include the “encoder only” and “decoder only” forms. The frame rate conversion method (FRUC) “decoder only” pseudo-interpolates frame data without other information. The encoder-only frame rate conversion (FRUC) method uses third-party information transmitted in H.264 standard enhancement information (SEI) messages or in an MPEG-2 user data message.

Фиг.6 изображает блок-схему примера системы компонентов, которая может являться частью мультимедиа-приемника, например, приемника 24, изображенного на Фиг.1. Система 600 является системой многоуровневой интеграции, используемой для устранения ошибок. Фиг.7 изображает блок-схему процесса устранения ошибок, который может быть использован системой 600. Что касается Фиг.6 и 7, процесс 700 на этапе 705 принимает один или несколько потоков мультимедийных данных. Потоки данных могут включать в себя видеоданные, аудиоданные и/или текстовую информацию скрытых титров и др. Принятые один или несколько потоков могут содержать закодированные данные. Закодированные данные могут являться преобразованными данными, квантованными данными, сжатыми данными или их комбинациями. Средство приема, такое как изображенный на Фиг.1А приемник 24, на этапе 705 может принять один или несколько потоков. В дополнение к приему множества потоков мультимедийных данных каждый принятый поток может содержать множество уровней, таких как базовый уровень и уровень улучшения. Приемник 24 может являться проводным или беспроводным приемником или их комбинацией.FIG. 6 depicts a block diagram of an example component system that may be part of a multimedia receiver, such as receiver 24 of FIG. 1. System 600 is a tiered integration system used to eliminate errors. 7 depicts a flowchart of an error correction process that can be used by system 600. With respect to FIGS. 6 and 7, process 700, at step 705, receives one or more media streams. Data streams may include video data, audio data and / or closed caption text information, etc. Received one or more streams may contain encoded data. The encoded data may be transformed data, quantized data, compressed data, or combinations thereof. A reception means, such as the receiver 24 shown in FIG. 1A, may receive one or more streams in step 705. In addition to receiving multiple media streams, each received stream may comprise multiple layers, such as a base layer and an enhancement layer. Receiver 24 may be a wired or wireless receiver, or a combination thereof.

Ошибки, оставшиеся в битовом потоке, обнаруживаются на этапе 710. Обнаруженные ошибки могут содержать ошибки, оставшиеся после коррекции ошибок на нижнем уровне, и протоколы обнаружения, содержащие некоторые из откорректированных ошибок, которые были введены посредством передачи по каналу, такому как беспроводный канал 26 или проводной канал 28 (Фиг.1A). Как обсуждалось выше, не все ошибки являются корректируемыми, и любой из протоколов нижнего уровня может пометить поврежденные данные и/или группы данных, которые содержат ошибки. Протоколы нижнего уровня, используемые на этапе 710 для обнаружения ошибок, могут быть осуществлены на уровне связи, как обсуждалось выше. Уровни связи могут являться одним элементом из множества, содержащего физический уровень, МАС-уровень (или потоковый уровень) и транспортный уровень, или комбинацией этих элементов. Средство обнаружения, такое как изображенный на Фиг.6 блок 605 обнаружения ошибок, на этапе 710 может выполнить обнаружение ошибок. Блок 605 обнаружения ошибок может использовать различные схемы обнаружения, известные специалистам в данной области техники, например, схемы кода Рида-Соломона и/или турбо, как обсуждалось выше. Обнаружение ошибок может произойти из-за повреждения контрольной циклической суммы (CRC) в турбодекодере. Обнаружение ошибок может произойти из-за сбоя декодера Рида-Соломона.Errors remaining in the bitstream are detected at block 710. Errors detected may include errors remaining after lower-level error correction and detection protocols containing some of the corrected errors that were introduced by transmission over a channel, such as wireless channel 26 or wired channel 28 (Fig. 1A). As discussed above, not all errors are correctable, and any of the lower layer protocols can flag damaged data and / or data groups that contain errors. The lower layer protocols used in step 710 for error detection can be implemented at the communication layer, as discussed above. Communication layers can be one element from a set containing a physical layer, a MAC layer (or a streaming layer) and a transport layer, or a combination of these elements. A detection means, such as the error detection unit 605 shown in FIG. 6, may perform error detection in step 710. The error detection unit 605 may use various detection schemes known to those skilled in the art, for example, Reed-Solomon and / or turbo code schemes, as discussed above. Error detection may occur due to damage to the CRC in the turbo decoder. Error detection may occur due to a failure of the Reed-Solomon decoder.

Над обнаруженными ошибками можно осуществлять контроль (на этапе 715) посредством нескольких способов. Этап 715 контроля может содержать этап маркировки (или пометки) поврежденных данных, как обсуждалось выше. Этап 715 контроля может содержать этап ограничения распространения ошибок посредством идентификации групп данных, например, пакетов, блоков, частей, кадров, макроблоков, субмакроблоков, которые содержат обнаруженные ошибки. Этап 715 контроля может быть основан на протоколе транспортного уровня. Такой протокол может пометить ошибки, оставшиеся после кодирования одного или нескольких битов в заголовке транспортного уровня, для использования верхними уровнями (Фиг.1B и 1С). Верхние уровни могут использовать индикаторы ошибок заголовка транспортного уровня для дополнительной идентификации и/или ограничения распространения пакетов верхнего уровня, состоящих из одного или нескольких поврежденных пакетов транспортного уровня, таким образом дополнительно ограничивая распространение ошибок в битовых потоках верхнего уровня. Средство контроля, такое как изображенный на Фиг.6 блок 610 контроля ошибок, может выполнить задачи контроля ошибок.Errors detected can be monitored (at 715) using several methods. The inspection step 715 may include the step of marking (or tagging) the corrupted data, as discussed above. Control step 715 may include the step of limiting error propagation by identifying data groups, for example, packets, blocks, parts, frames, macroblocks, submacroblocks, which contain detected errors. Control step 715 may be based on a transport layer protocol. Such a protocol may flag errors remaining after encoding one or more bits in the header of the transport layer for use by higher layers (Figs. 1B and 1C). The upper layers may use transport-level header error indicators to further identify and / or limit the propagation of upper-level packets consisting of one or more corrupted transport-layer packets, thereby further limiting the spread of errors in upper-level bitstreams. A control means, such as the error control unit 610 shown in FIG. 6, can perform error control tasks.

На этапе 720 определяется распределение ошибок. В одном аспекте распределение ошибок определяется на основе протокола уровня синхронизации. Один или несколько битовых потоков, которые были приняты на этапе 705, могут быть разобраны на уровне синхронизации. Если уровень синхронизации принимает от одного из нижних уровней, например, от уровня связи, информацию, маркирующую поврежденные данные, то она может идентифицировать поврежденные части битовых потоков. Наличие такой информации может предоставить протоколу уровня синхронизации возможность планирования маскировки ошибок на верхнем уровне (например, прикладном уровне) и/или стратегии устранения ошибок. В зависимости от размера поврежденных данных могут быть применены другие стратегии. Пакеты транспортного уровня, которые могут быть помечены как поврежденные, могут быть объединены в пакеты уровня синхронизации, которые будут переданы различным компонентам прикладного уровня, в зависимости от того, частью какого битового потока они являются. Пакеты транспортного уровня могут иметь неизменную длину, а пакеты уровня синхронизации - переменную. Уровень синхронизации может идентифицировать распределение ошибок посредством вставки данных для идентификации того, какая часть пакета синхронизации переменной длины содержит поврежденный пакет транспортного уровня. В дополнение к использованию информации о контроле ошибок (этап 715) протокол уровня синхронизации может включать в себя дополнительные способы обнаружения ошибок. Эти способы обнаружения ошибок могут включать в себя проверяющую контрольную циклическую сумму (CRC) пакетов уровня синхронизации. Определенное распределение ошибок может быть дополнительно передано компонентам прикладного уровня посредством вставки маркировок ошибок в разобранные пакеты данных. Средство определения, такое как блок 615 определения распределения ошибок, может определить распределение ошибок (этап 720).At 720, an error distribution is determined. In one aspect, the error distribution is determined based on a synchronization level protocol. One or more bitstreams that were received at block 705 may be parsed at the synchronization level. If the synchronization level receives information marking damaged data from one of the lower levels, for example, from the communication level, then it can identify damaged parts of the bit streams. The availability of such information can provide the synchronization layer protocol with the ability to plan for masking errors at the upper level (for example, the application level) and / or error correction strategies. Other strategies may be applied depending on the size of the corrupted data. Packets of the transport layer, which may be marked as damaged, can be combined into packets of the synchronization layer, which will be transmitted to various components of the application layer, depending on which part of the bitstream they are. Packets of the transport layer can have an unchanged length, and packets of the synchronization layer can have a variable. The synchronization layer can identify the distribution of errors by inserting data to identify which part of the variable length synchronization packet contains a damaged transport layer packet. In addition to using error control information (block 715), the synchronization level protocol may include additional error detection methods. These error detection methods may include a CRC check of the synchronization layer packets. A specific error distribution can be further transmitted to application layer components by inserting error markings into parsed data packets. A determination means, such as an error distribution determination unit 615, may determine an error distribution (block 720).

На этапе 725 может быть выполнено устранение ошибок в частях одного или нескольких закодированных потоков мультимедийных данных. Устранение ошибок может быть основано на протоколах прикладного уровня. Компоненты прикладного уровня могут выполнить устранение ошибок. Компоненты прикладного уровня могут определить, какой тип устранения ошибок использовать на основе информации, принятой от уровня синхронизации, как обсуждалось выше. Устранение ошибок может включать один элемент из множества, содержащего временную маскировку ошибок, пространственную маскировку ошибок, частоту преобразования кадров (FRUC) или комбинацию этих элементов, как обсуждалось выше, а также другие способы. Маскировка обнаруженных ошибок в одном или нескольких потоках мультимедийных данных может быть основана на протоколе прикладного уровня. Устранение ошибок также может поддерживать масштабируемость одного или нескольких потоков данных. Масштабируемость может включать в себя либо пространственную, либо временную масштабируемость, либо обе, как обсуждалось выше. Средство устранения ошибок, такое как изображенный на Фиг.2А компонент 40 устранения ошибок, может выполнить устранение ошибок на этапе 725. Средство маскировки ошибок, такое как блок 620 маскировки ошибок, может выполнить маскировку ошибок. Средство масштабирования, такое как изображенные на Фиг.2А и 6 компоненты 42 и 620 масштабирования, может поддерживать масштабируемость при выполнении устранения ошибок на этапе 725.At block 725, error correction can be performed on parts of one or more encoded media streams. Error recovery can be based on application layer protocols. Application layer components can perform troubleshooting. Application layer components can determine which type of error recovery to use based on information received from the synchronization layer, as discussed above. Error correction may include one element from a set comprising temporary error concealment, spatial error concealment, frame conversion frequency (FRUC), or a combination of these elements, as discussed above, as well as other methods. The masking of detected errors in one or more streams of multimedia data may be based on an application layer protocol. Troubleshooting can also support the scalability of one or more data streams. Scalability can include either spatial or temporal scalability, or both, as discussed above. An error resolver, such as the error resolver component 40 shown in FIG. 2A, can perform error correction at block 725. An error concealer, such as an error concealer 620, can mask errors. A scaling means, such as the scaling components 42 and 620 shown in FIGS. 2A and 6, can support scalability when performing error correction in step 725.

Процесс 700 может включать в себя этап 730 восстановления одного или нескольких битовых потоков. Этап 730 восстановления может содержать этап объединения безошибочно принятых данных с маскированными данными. Этап восстановления может включать в себя этап сокращения частоты кадров (форма временной масштабируемости), количество которых превышает порог ошибок в кадре. Этап восстановления может содержать принятие решения не декодировать, маскировать или корректировать уровень улучшения (форма масштабируемости SNR). Протоколы прикладного уровня могут являться базисом для этапа 730 восстановления. Средство восстановления, такое как блок 630 восстановления потока данных, может выполнить восстановление на этапе 725. Один или несколько элементов могут быть добавлены, перестроены или объединены в системе 600. Один или несколько элементов могут быть добавлены, перестроены или объединены для процесса 700.Process 700 may include a step 730 for recovering one or more bitstreams. Recovery step 730 may include the step of combining the correctly received data with the masked data. The recovery step may include the step of reducing the frame rate (a form of temporary scalability), the number of which exceeds the error threshold in the frame. The recovery step may include a decision not to decode, mask, or adjust the level of improvement (a form of SNR scalability). Application layer protocols may be the basis for recovery step 730. A recovery tool, such as a data stream recovery unit 630, may perform a recovery in step 725. One or more items may be added, rebuilt, or combined in the system 600. One or more items may be added, rebuilt, or combined for a process 700.

Примеры вышеописанных способов и устройства включают в себя нижеследующее.Examples of the above methods and devices include the following.

Способ декодирования мультимедийных данных, включающий в себя этапы приема битового потока, выполнения декодирования с контролем ошибок принятого битового потока, причем этап декодирования с контролем ошибок содержит этап идентификации поврежденных битов, которые не были откорректированы, передачи битового потока, декодированного с контролем ошибок, содержащего идентифицированные поврежденные биты декодеру, замены, по меньшей мере, одного из идентифицированных битов, и декодирования битового потока, декодированного с контролем ошибок, содержащего замененные биты. В одном аспекте способ дополнительно включает в себя этап разбора битового потока, декодированного с контролем ошибок, на один или несколько символов, а также этап разбора информации, идентифицирующей поврежденные биты, из условия, чтобы любые символы, содержащие поврежденные биты, были идентифицированы в качестве поврежденных. В другом аспекте способ дополнительно включает в себя этап построения таблицы ошибок, содержащей разобранную информацию, идентифицирующую поврежденные биты, где таблица ошибок содержит информацию, маркирующую идентифицированные биты для позиций в последовательности видеокадров. В другом аспекте способ дополнительно включает в себя этап разбора битового потока, закодированного с контролем ошибок, на первый разобранный битовый поток и второй разобранный битовый поток, где первый разобранный битовый поток является битовым потоком базового уровня, а второй разобранный битовый поток является битовым потоком уровня улучшения.A method for decoding multimedia data, including the steps of receiving a bit stream, performing decoding with error control of the received bit stream, the decoding step with error control comprising the step of identifying damaged bits that have not been corrected, transmitting the bit stream decoded with error control containing identified damaged bits to the decoder, replacing at least one of the identified bits, and decoding the bitstream decoded with error control approx containing the replaced bits. In one aspect, the method further includes the step of parsing the bitstream decoded with error control into one or more characters, as well as the step of parsing information identifying the damaged bits so that any characters containing damaged bits are identified as damaged . In another aspect, the method further includes the step of constructing an error table containing parsed information identifying the damaged bits, where the error table contains information marking the identified bits for positions in the sequence of video frames. In another aspect, the method further includes the step of parsing the error-encoded bitstream into a first parsed bitstream and a second parsed bitstream, where the first parsed bitstream is a base layer bitstream and the second parsed bitstream is an enhancement layer bitstream .

Способ декодирования мультимедийных данных, включающий в себя этапы приема битового потока, выполнения декодирования с контролем ошибок принятого битового потока, где этап декодирования с контролем ошибок содержит этап идентификации поврежденных битов, которые не были откорректированы, передачи битового потока, декодированного с контролем ошибок, содержащего идентифицированные поврежденные биты, декодеру, замены, по меньшей мере, одного из идентифицированных битов, посредством выполнения преобразования частоты кадров между первым кадром и вторым кадром, и декодирования битового потока, декодированного с контролем ошибок.A method for decoding multimedia data, including the steps of receiving a bit stream, performing decoding with error control of a received bit stream, where the step of decoding with error control comprises the step of identifying damaged bits that have not been corrected, transmitting a bit stream decoded with error control containing identified damaged bits, to the decoder, replacing at least one of the identified bits by performing frame rate conversion between the first adrom and second frame, and decoding the bit stream decoded with error control.

Специалистам в данной области техники должно быть понятно, что информация и сигналы могут быть представлены, используя любое разнообразие различных технологий и методов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные сигналы, на которые можно сослаться всюду по вышеупомянутому описанию, могут быть представлены посредством напряжений, токов, электромагнитных волн, магнитных полей или частиц, оптических полей или частиц или любой их комбинацией.Specialists in the art should understand that information and signals can be represented using any variety of different technologies and methods. For example, data, instructions, commands, information, signals, bits, symbols and chips that can be referenced throughout the above description can be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any their combination.

Специалистам в данной области техники также должно быть понятно, что различные иллюстративные логические блоки, модули и этапы алгоритма, описанные со ссылкой на раскрытые в настоящем документе примеры, могут быть осуществлены в качестве электронных аппаратных средств, встроенного программного обеспечения, программного обеспечения, микропрограммных средств, микропрограмм или их комбинации. Для четкой иллюстрации этой взаимозаменяемости аппаратных средств и программного обеспечения различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше, в целом, на основе их функциональных возможностей. Осуществлены ли такие функциональные возможности в качестве аппаратных средств или программного обеспечения зависит от конкретной цели и ограничений структуры, наложенных на всю систему. Специалисты могут осуществить описанные функциональные возможности различными способами для каждой конкретной цели, но такие решения осуществления не должны интерпретироваться в качестве отступления от объема раскрытых способов.Specialists in the art should also understand that various illustrative logical blocks, modules, and algorithm steps described with reference to the examples disclosed herein can be implemented as electronic hardware, firmware, software, firmware, microprograms or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above, in general, based on their functionality. Whether such functionality is implemented as hardware or software depends on the specific purpose and structure constraints imposed on the entire system. Skilled artisans may implement the described functionality in varying ways for each particular purpose, but such implementation decisions should not be interpreted as a departure from the scope of the disclosed methods.

Различные иллюстративные логические блоки, компоненты, модули и схемы, описанные со ссылкой на раскрытые примеры, которые в настоящем документе могут быть осуществлены или выполнены с помощью универсального процессора, цифрового сигнального процессора (DSP), специализированной интегральной схемы (ASIC), вентильной матрицы с эксплуатационным программированием (FPGA) или другого программируемого логического устройства, логического элемента на дискретных компонентах или транзисторной логики, дискретных компонентов аппаратных средств или любой их комбинации, предназначены для выполнения описанных в настоящем документе функций. Универсальный процессор может являться микропроцессором, но альтернативно, процессор может являться любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть осуществлен в качестве комбинации вычислительных устройств, например, комбинации цифрового сигнального процессора (DSP) и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров совместно с ядром цифрового сигнального процессора (DSP) или любой другой подобной конфигурации.The various illustrative logical blocks, components, modules, and circuits described with reference to the disclosed examples that can be implemented or performed using a universal processor, digital signal processor (DSP), specialized integrated circuit (ASIC), gate array with operational programming (FPGA) or other programmable logic device, logic element on discrete components or transistor logic, discrete hardware components or any oh combination thereof designed to perform the functions herein. A universal processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, for example, a combination of a digital signal processor (DSP) and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a digital signal processor (DSP) core, or any other such configuration.

Этапы способа или алгоритма, описанные со ссылкой на раскрытые в настоящем описании примеры, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, выполняемом с помощью процессора, или в их комбинации. Программный модуль может постоянно находиться в памяти оперативного запоминающего устройства (RAM), флэш-памяти, памяти постоянного запоминающего устройства (ROM), памяти стираемого программируемого запоминающего устройства (EPROM), памяти электрически стираемого программируемого запоминающего устройства (EEPROM), регистрах, на жестком диске, на съемном диске, компакт-дисковом запоминающем устройстве (CD-ROM) или в любой другой форме, известной в уровне техники носителей данных. Иллюстративный носитель данных соединяется с процессором из условия, чтобы процессор мог считывать и записывать информацию на носитель данных. Альтернативно носитель данных может являться неотъемлемой частью процессора. Процессор и носитель данных могут постоянно находиться в специализированной интегральной схеме (ASIC). Специализированная интегральная схема (ASIC) может постоянно находиться в беспроводном модеме. Альтернативно, процессор и носитель данных могут постоянно находиться в качестве дискретных компонентов в беспроводном модеме.The steps of a method or algorithm described with reference to the examples disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination thereof. The program module may reside in random access memory (RAM), flash memory, read-only memory (ROM), erasable programmable memory (EPROM), electrically erasable programmable memory (EEPROM), registers, on the hard disk , on a removable disk, a compact disk storage device (CD-ROM), or in any other form known in the art of storage media. An exemplary storage medium is connected to the processor so that the processor can read and write information to the storage medium. Alternatively, the storage medium may be an integral part of the processor. The processor and the storage medium may reside in a dedicated integrated circuit (ASIC). Specialized Integrated Circuit (ASIC) can reside in a wireless modem. Alternatively, the processor and the storage medium may reside as discrete components in a wireless modem.

Предшествующее описание раскрытых примеров обеспечено с целью предоставления любому специалисту в данной области техники возможности создания или использования раскрытых способов и устройств. Различные модификации этих примеров будут очевидны специалистам в данной области техники, кроме того, определенные в настоящем описании принципы могут быть применены к другим примерам, а также могут быть добавлены дополнительные элементы.The foregoing description of the disclosed examples is provided to provide any person skilled in the art with the ability to create or use the disclosed methods and devices. Various modifications to these examples will be apparent to those skilled in the art, in addition, the principles defined herein may be applied to other examples, and additional elements may be added.

Таким образом, были описаны способы и устройство для декодирования потоковой передачи мультимедийных данных в реальном времени с использованием информации, маркирующей поврежденные биты и поврежденные данные, в приложении декодера для выполнения интеллектуальной маскировки ошибок и коррекции ошибок поврежденных данных.Thus, methods and apparatus for decoding streaming multimedia data in real time using information marking damaged bits and damaged data have been described in a decoder application for performing intelligent error concealment and error correction of damaged data.

Claims (40)

1. Способ устранения ошибки в мультимедийных данных с использованием многоуровневой интеграции, содержащий этапы, на которых обнаруживают ошибки в мультимедийных данных посредством первого уровня на основе протокола для первого уровня; определяют распределение обнаруженной ошибки посредством второго уровня на основе протокола для второго уровня; и маскируют обнаруженные в мультимедийных данных ошибки посредством третьего уровня на основе протокола для третьего уровня и определенного распределения ошибки.1. A method for eliminating errors in multimedia data using multi-level integration, comprising the steps of detecting errors in multimedia data through a first level based on a protocol for the first level; determining the distribution of the detected error by a second level based on a protocol for the second level; and mask the errors detected in the multimedia data by a third level based on a protocol for the third level and a specific error distribution. 2. Способ по п.1, в котором первый уровень является уровнем связи.2. The method according to claim 1, in which the first level is the communication level. 3. Способ по п.2, в котором уровень связи является одним из или комбинацией физического уровня, MAC-уровня (или потокового уровня) и транспортного уровня.3. The method of claim 2, wherein the communication layer is one of or a combination of a physical layer, a MAC layer (or a streaming layer), and a transport layer. 4. Способ по п.1, содержащий также этап, на котором контролируют обнаруженную ошибку на посредством транспортного уровня на основе протокола для транспортного уровня.4. The method according to claim 1, further comprising monitoring the detected error at a transport layer based on a protocol for the transport layer. 5. Способ по п.4, в котором этап контроля обнаруженной ошибки содержит этап, на котором ограничивают распространение обнаруженной ошибки.5. The method according to claim 4, in which the step of monitoring the detected error comprises the step of restricting the spread of the detected error. 6. Способ по п.1, в котором второй уровень содержит уровень синхронизации, и в котором распределение ошибки идентифицирует, какая часть какого битового потока повреждена и обеспечивает одну или более стратегий для маскирования ошибки и исправления ошибки для третьего уровня.6. The method according to claim 1, in which the second level contains a synchronization level, and in which the error distribution identifies which part of which bitstream is damaged and provides one or more strategies for masking the error and correcting the error for the third level. 7. Способ по п.1, в котором третий уровень содержит прикладной уровень.7. The method according to claim 1, in which the third level contains the application level. 8. Способ по п.1, в котором первый уровень содержит уровень связи и транспортный уровень, второй уровень содержит уровень синхронизации, третий уровень содержит прикладной уровень, при этом способ также содержит этап, на котором контролируют обнаруженную ошибку посредством транспортного уровня на основе протокола для транспортного уровня.8. The method according to claim 1, in which the first level contains the communication level and the transport level, the second level contains the synchronization level, the third level contains the application level, the method also includes controlling the detected error by means of the transport layer based on the protocol for transport level. 9. Устройство для устранения ошибки в мультимедийных данных, с использованием многоуровневой интеграции, содержащее средство для обнаружения ошибки в мультимедийных данных на основе протокола для первого уровня, средство для определения обнаруженной ошибки на основе протокола для второго уровня; и средство для маскировки обнаруженной в мультимедийных данных ошибки на основе протокола для третьего уровня и определенного распределения ошибки.9. A device for eliminating errors in multimedia data using multi-level integration, comprising: means for detecting errors in multimedia data based on a protocol for a first level, means for determining a detected error based on a protocol for a second level; and means for masking an error detected in the multimedia data based on a protocol for a third level and a specific error distribution. 10. Устройство по п.9, в котором первый уровень является уровнем связи.10. The device according to claim 9, in which the first level is the communication level. 11. Устройство по п.10, в котором уровень связи является одним из или комбинацией физического уровня, МАС-уровня (или потокового уровня) и транспортного уровня.11. The device of claim 10, wherein the communication layer is one of or a combination of a physical layer, a MAC layer (or a streaming layer), and a transport layer. 12. Устройство по п.9, которое также содержит средство для контроля обнаруженной ошибки на основе протокола для транспортного уровня.12. The device according to claim 9, which also contains means for monitoring the detected errors based on the protocol for the transport layer. 13. Устройство по п.12, в котором средство контроля содержит средство для ограничения распространения обнаруженной ошибки.13. The device according to item 12, in which the control means comprises means for limiting the distribution of the detected error. 14. Устройство по п.9, в котором второй уровень содержит уровень синхронизации и в котором распределение ошибки идентифицирует, какая часть какого битового потока повреждена и обеспечивает одну или более стратегий для маскирования ошибки и исправления ошибки для третьего уровня.14. The device according to claim 9, in which the second level contains a synchronization level and in which the error distribution identifies which part of which bitstream is damaged and provides one or more strategies for masking errors and correcting errors for the third level. 15. Устройство по п.9, в котором третий уровень содержит прикладной уровень.15. The device according to claim 9, in which the third level contains the application level. 16. Устройство по п.9, в котором первый уровень содержит уровень связи и транспортный уровень, второй уровень содержит уровень синхронизации, третий уровень содержит прикладной уровень, при этом устройство также содержит средство для контроля обнаруженной ошибки посредством транспортного уровня на основе протокола для транспортного уровня.16. The device according to claim 9, in which the first level contains the communication level and the transport level, the second level contains the synchronization level, the third level contains the application level, and the device also contains means for monitoring the detected error through the transport layer based on the protocol for the transport layer . 17. Устройство для устранения ошибки в мультимедийных данных с использованием многоуровневой интеграции, содержащее датчик в первом уровне, который обнаруживает ошибку в мультимедийных данных на основе протокола для первого уровня; определитель распределения ошибки во втором уровне, который определяет распределение обнаруженной ошибки посредством второго уровня на основе протокола для второго уровня; и блок маскировки в третьем уровне, который маскирует обнаруженную в мультимедийных данных ошибку на основе протокола для третьего уровня и определенного распределения ошибки.17. A device for eliminating errors in multimedia data using multi-level integration, comprising a sensor in a first level that detects an error in multimedia data based on a protocol for a first level; an error distribution determinant in the second level, which determines the distribution of the detected error by the second level based on the protocol for the second level; and a masking unit in the third level, which masks the error detected in the multimedia data based on the protocol for the third level and a specific error distribution. 18. Устройство по п.17, в котором первый уровень является уровнем связи.18. The device according to 17, in which the first level is the communication level. 19. Устройство по п.18, в котором уровень связи является одним из или комбинацией физического уровня, МАС-уровня (или потокового уровня) и транспортного уровня.19. The device of claim 18, wherein the communication layer is one of or a combination of a physical layer, a MAC layer (or a streaming layer), and a transport layer. 20. Устройство по п.17, которое также содержит блок контроля в транспортном уровне, который контролирует обнаруженную ошибку на основе протокола для транспортного уровня.20. The device according to 17, which also contains a control unit in the transport layer, which controls the detected error based on the protocol for the transport layer. 21. Устройство по п.20, в котором блок контроля ограничивает распространение обнаруженной ошибки.21. The device according to claim 20, in which the control unit limits the spread of the detected error. 22. Устройство по п.17, в котором второй уровень содержит уровень синхронизации и в котором распределение ошибки идентифицирует, какая часть какого битового потока повреждена и обеспечивает одну или более стратегий для маскирования ошибки и исправления ошибки для третьего уровня.22. The device according to 17, in which the second level contains a synchronization level and in which the error distribution identifies which part of which bitstream is damaged and provides one or more strategies for masking errors and correcting errors for the third level. 23. Устройство по п.17, в котором третий уровень содержит прикладной уровень.23. The device according to 17, in which the third level contains the application level. 24. Устройство по п.17, в котором первый уровень содержит уровень связи и транспортный уровень, второй уровень содержит уровень синхронизации, третий уровень содержит прикладной уровень, при этом устройство также содержит блок контроля в транспортном уровне для контроля обнаруженной ошибки посредством транспортного уровня на основе протокола для транспортного уровня.24. The device according to 17, in which the first level contains the communication level and the transport level, the second level contains the synchronization level, the third level contains the application level, and the device also contains a control unit in the transport level to control the detected error through the transport level protocol for the transport layer. 25. Процессор для устранения ошибки в мультимедийных данных с использованием многоуровневой интеграции, сконфигурированный с возможностью обнаружения ошибки в мультимедийных данных посредством первого уровня на основе протокола для первого уровня; и определения распределения обнаруженной ошибки посредством второго уровня на основе протокола для второго уровня; и маскирования обнаруженной в мультимедийных данных ошибки посредством третьего уровня на основе протокола для третьего уровня и определенного распределения ошибки.25. A processor for eliminating errors in multimedia data using multi-level integration, configured to detect errors in multimedia data through a first layer based on a protocol for the first level; and determining a distribution of the detected error by a second layer based on a protocol for the second layer; and masking an error detected in the multimedia data by a third level based on a protocol for the third level and a specific error distribution. 26. Процессор по п.25, в котором первый уровень является уровнем связи.26. The processor of claim 25, wherein the first layer is a communication layer. 27. Процессор по п.26, в котором уровень связи является одним из или комбинацией физического уровня, МАС-уровня (или потокового уровня) и транспортного уровня.27. The processor of claim 26, wherein the communication layer is one of or a combination of a physical layer, a MAC layer (or a streaming layer), and a transport layer. 28. Процессор по п.25, также сконфигурированный с возможностью контроля обнаруженной ошибки посредством транспортного уровня на основе протокола для транспортного уровня.28. The processor according A.25, also configured to control the detected errors through the transport layer based on the protocol for the transport layer. 29. Процессор по п.28, в котором блок контроля ограничивает распространение обнаруженной ошибки.29. The processor of claim 28, wherein the control unit restricts the propagation of the detected error. 30. Процессор по п.25, в котором второй уровень содержит уровень синхронизации и в котором распределение ошибки идентифицирует, какая часть какого битового потока повреждена и обеспечивает одну или более стратегий для маскирования ошибки и исправления ошибки для третьего уровня.30. The processor according A.25, in which the second level contains the synchronization level and in which the error distribution identifies which part of which bitstream is damaged and provides one or more strategies for masking errors and error correction for the third level. 31. Процессор по п.25, в котором третий уровень содержит прикладной уровень.31. The processor of claim 25, wherein the third layer comprises an application layer. 32. Процессор по п.25, в котором первый уровень содержит уровень связи и транспортный уровень, второй уровень содержит уровень синхронизации, третий уровень содержит прикладной уровень, при этом процессор также сконфигурирован для контроля обнаруженной ошибки на основе протокола для транспортного уровня.32. The processor of claim 25, wherein the first layer comprises a communication layer and a transport layer, the second layer contains a synchronization layer, the third layer contains an application layer, and the processor is also configured to monitor a detected error based on a protocol for the transport layer. 33. Считываемый компьютерный носитель для осуществления способа устранения ошибки в мультимедийных данных, с использованием многоуровневой интеграции, содержащий этапы, на которых обнаруживают ошибку в мультимедийных данных посредством первого уровня на основе протокола для первого уровня; определяют распределение обнаруженной ошибки посредством второго уровня на основе протокола для второго уровня; и маскируют обнаруженные в мультимедийных данных ошибки посредством третьего уровня на основе протокола для третьего уровня и определенного распределения ошибки.33. A computer-readable medium for implementing a method for eliminating an error in multimedia data using multi-level integration, comprising the steps of detecting an error in multimedia data by means of a first layer based on a protocol for the first level; determining the distribution of the detected error by a second level based on a protocol for the second level; and mask the errors detected in the multimedia data by a third level based on a protocol for the third level and a specific error distribution. 34. Носитель по п.33, в котором первый уровень является уровнем связи.34. The medium of claim 33, wherein the first level is a communication level. 35. Носитель по п.34, в котором уровень связи является одним из или комбинацией физического уровня, МАС-уровня (или потокового уровня) и транспортного уровня.35. The medium of claim 34, wherein the communication layer is one of or a combination of a physical layer, a MAC layer (or a streaming layer) and a transport layer. 36. Носитель по п.33, в котором способ также содержит этап, на котором контролируют обнаруженную ошибку посредством транспортного уровня на основе протокола для транспортного уровня.36. The medium of claim 33, wherein the method further comprises monitoring a detected error by a transport layer based on a protocol for the transport layer. 37. Носитель по п.36, в котором этап контроля обнаруженной ошибки содержит этап, на котором ограничивают распространение обнаруженной ошибки.37. The medium of claim 36, wherein the step of monitoring the detected error comprises the step of restricting the spread of the detected error. 38. Носитель по п.33, в котором второй уровень содержит уровень синхронизации и в котором распределение ошибки идентифицирует, какая часть какого битового потока повреждена и обеспечивает одну или более стратегий для маскирования ошибки и исправления ошибки для третьего уровня.38. The medium of claim 33, wherein the second level comprises a synchronization level and in which the error distribution identifies which part of which bitstream is damaged and provides one or more strategies for masking the error and correcting the error for the third level. 39. Носитель по п.33, в котором третий уровень содержит прикладной уровень.39. The medium of claim 33, wherein the third level comprises an application layer. 40. Носитель по п.33, в котором первый уровень содержит уровень связи и транспортный уровень, второй уровень содержит уровень синхронизации, третий уровень содержит прикладной уровень, при этом носитель также содержит команды для контроля обнаруженной ошибки на основе протокола для транспортного уровня. 40. The medium of claim 33, wherein the first level comprises a communication layer and a transport layer, the second layer contains a synchronization layer, the third layer contains an application layer, and the medium also contains instructions for monitoring a detected error based on a protocol for the transport layer.
RU2007137484/09A 2005-03-10 2006-03-10 Structure of decoder for optimised control of error processing in multimedia data streaming RU2374787C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US66092305P 2005-03-10 2005-03-10
US66068105P 2005-03-10 2005-03-10
US60/660,923 2005-03-10
US60/660,681 2005-03-10
US60/660,867 2005-03-10

Publications (2)

Publication Number Publication Date
RU2007137484A RU2007137484A (en) 2009-04-27
RU2374787C2 true RU2374787C2 (en) 2009-11-27

Family

ID=41018392

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007137484/09A RU2374787C2 (en) 2005-03-10 2006-03-10 Structure of decoder for optimised control of error processing in multimedia data streaming

Country Status (1)

Country Link
RU (1) RU2374787C2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2579992C2 (en) * 2011-07-28 2016-04-10 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Demultiplexing packet-based transport stream
US9407932B2 (en) 2012-09-28 2016-08-02 Telefonaktiebolaget Lm Ericsson (Publ) Decoding and encoding of pictures of a video sequence using bumping of pictures from a decoded picture buffer

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116545772B (en) * 2023-07-04 2023-09-19 杭州海康威视数字技术股份有限公司 Protocol identification method, device and equipment for lightweight Internet of Things traffic

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BANSAL P. et al. Improved error detection and localization techniques for mpeg-4 video. International Conference on Image Processing. New York, vol.2, September 2002, c.693-696. BELFIORE S. et al. Spatiotemporal error concealment with optimized mode selection and application to H.264. Signal Processing: Image Communication, Amsterdam, vol.18, №10, November 2003, c.907-923. AIGN S. et al. Temporal and spatial error concealment techniques for hierarchical MPEG-2 video codec. Communications, 1995. ICC 95 Seattle, Gateway to Globalization, New York, vol.3, 18.05.1995, c.1778-1783. SUN H. et al. Error concealment algorithms for robust decoding of MPEG compressed video. Signal Processing: Image Communication, Elsevier, Amsterdam, vol.10, №4, September 1997, c.249-268. *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2579992C2 (en) * 2011-07-28 2016-04-10 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Demultiplexing packet-based transport stream
US9407932B2 (en) 2012-09-28 2016-08-02 Telefonaktiebolaget Lm Ericsson (Publ) Decoding and encoding of pictures of a video sequence using bumping of pictures from a decoded picture buffer
RU2607979C2 (en) * 2012-09-28 2017-01-11 Телефонактиеболагет Лм Эрикссон (Пабл) Encoding and decoding video sequence images
RU2623896C2 (en) * 2012-09-28 2017-06-29 Телефонактиеболагет Л М Эрикссон (Пабл) Decoding and coding video sequence pictures
US9706225B2 (en) 2012-09-28 2017-07-11 Telefonaktiebolaget L M Ericsson (Publ) Decoding and encoding of pictures of a video sequence
US9848203B2 (en) 2012-09-28 2017-12-19 Telefonaktiebolagetg L M Ericsson (Publ) Decoding and encoding of pictures of a video sequence

Also Published As

Publication number Publication date
RU2007137484A (en) 2009-04-27

Similar Documents

Publication Publication Date Title
JP5738929B2 (en) Decoder architecture for optimal error management in streaming multimedia
KR100939951B1 (en) Error recovery using in band error patterns
US6490705B1 (en) Method and apparatus for receiving MPEG video over the internet
US6317462B1 (en) Method and apparatus for transmitting MPEG video over the internet
KR101125846B1 (en) Method for transmitting image frame data based on packet system and apparatus thereof
EP1882343B1 (en) Improving error resilience using out of band directory information
RU2374787C2 (en) Structure of decoder for optimised control of error processing in multimedia data streaming
CN101176353B (en) Decoder architecture for optimized error management in streaming multimedia
US11616986B2 (en) System and method for correcting network loss of data
Liang et al. Unequal error protection techniques based on Wyner-Ziv coding
Sheng et al. Robust Video Transmission Over Packet Erasure Wireless Channels Based on Wyner-Ziv Coding of Motion Regions
Chung et al. The new Hybrid approach to protect MPEG-2 video header

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20100311

NF4A Reinstatement of patent

Effective date: 20101120

MM4A The patent is invalid due to non-payment of fees

Effective date: 20190311