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 PDFInfo
- 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
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
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
Фиг.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.
Передатчик 22 получает данные из различных источников, включающих в себя внешнюю память, сеть Интернет и оперативную подачу аудиоданных и/или видеоданных. Передатчик 22 также выполняет передачу (Tx) полученных данных по сети. Сеть может являться проводной сетью 28, например телефонной, кабельной или оптоволоконной, или же беспроводной сетью 26. В отношении системы беспроводной связи сеть 26 может содержать, например, часть системы связи с множественным доступом с кодовым разделением каналов (CDMA или CDMA2000) или поочередно система может являться системой множественного доступа с частотным разделением (FDMA), системой множественного доступа на основе ортогонального частотного разделения (OFDMA), системой множественного доступа с временным разделением (TDMA), как технология мобильной связи для индустрии обслуживания GSM/GPRS (система пакетной радиосвязи общего пользования) / EDGE (улучшенный GSM для передачи данных) или TETRA (магистральная наземная радиосвязь), широкополосного множественного доступа с кодовым разделением каналов (WCDMA), системой высокоскоростной передачи данных (1xEV-DO или 1xEV-DO Gold Multicast) или же вообще любой системой беспроводной связи, использующей комбинации методов.The
Декодер 24 содержит средство, такое как радиочастотная антенна или сетевое подключение, для приема данных по беспроводной сети 26 и/или проводной сети 28. Декодер 24 может включать в себя множество процессоров, содержащих различную комбинацию предварительных процессоров (например, любой тип центрального процессора (CPU), например, ARM), цифровой сигнальный процессор (DSP), программное обеспечение, встроенное программное обеспечение и аппаратные средства, такие как мультимедийный процессор VideoCore, для распределения демодуляции и декодирования задач, связанных с принятыми данными. Декодер 24 также содержит компоненты памяти для сохранения принятых данных и промежуточных данных на различных этапах процесса демодуляции/декодирования. В некоторых вариантах осуществления предварительный процессор ARM выполняет менее сложные задачи, включающие в себя распаковку (удаление побочной информации, такой как заголовки и сообщения) и демультиплексирование множества битовых потоков, включающих в себя аудиоданные, видеоданные и другое. Предварительный процессор ARM также выполняет разбор битового потока, обнаружение ошибок, маскировку и декодирование энтропии переменной длины. В некоторых таких вариантах осуществления цифровой сигнальный процессор (DSP) выполняет расширение ключевых слов VLC (с кодом переменной длины), обратное зигзагообразное сканирование видеоданных для пространственного определения параметров пикселя, обратное предсказание переменного тока/постоянного тока параметров пикселя для видеоданных стандарта MPEG-4 (не является особенностью стандарта H.264 из-за контекстного адаптивного кодирования энтропии) и декодирование аудиоданных (например, MPEG-4 AAC, MP3, AMR или G.723). Мультимедийный процессор VideoCore может выполнить более сложные в вычислительном отношении задачи декодирования видеоданных, содержащие деквантование, обратное преобразование, предсказание с компенсацией движения и разблокировку (форма фильтрации для сокращения краевых искажений изображения (артефактов) между краями блока пикселей). В системе 20 связи один или несколько элементов могут быть добавлены, перестроены или же объединены. В отношении системы проводной связи сеть 26 может включать в себя, например, часть системы связи, базирующейся на межсетевом протоколе (IP), с транспортными протоколами, такими как транспортный протокол реального времени (RTP) или универсальный протокол передачи дейтаграмм (UDP).
Фиг.1B изображает блок-схему многоуровневого стека протоколов, используемого для задач деления, выполняемых на передатчике 22 и декодере 24. Компоненты 205 и 210 верхнего уровня, находящиеся в передатчике 22 и декодере 24 соответственно, могут включать в себя множество приложений, таких как, например, видео- или аудиокодеры и/или декодеры. Некоторые варианты осуществления могут включать в себя множество потоков информации, которые предназначены для одновременного декодирования. В этих случаях задачи синхронизации множества потоков также могут быть выполнены в компонентах 205 и 210 верхнего уровня. Компонент 205 верхнего уровня может обеспечить закодированную информацию о синхронизации в битовом потоке, передающемся по беспроводной сети 26 и/или проводной сети 28. Компонент 210 верхнего уровня 210 может разобрать множество потоков информации из условия, чтобы связанные приложения декодировали их приблизительно в то же самое время.FIG. 1B depicts a block diagram of a multi-level protocol stack used for division tasks performed by
Компоненты 215 нижнего уровня, находящиеся в передатчике 22, могут включать в себя различные схемы для обеспечения устойчивости к ошибкам. Подверженные ошибкам каналы, например беспроводная сеть 26 и/или проводная сеть 28, могут ввести ошибки в битовый поток, принимаемый декодером 24. Такие схемы устойчивости к ошибкам, обеспеченные в компонентах 215 нижнего уровня, могут включать в себя одну или несколько схем помехоустойчивого кодирования (с контролем ошибок), схем чередования и других известных специалистам в данной области техники схем. Компоненты 220 нижнего уровня, находящиеся в декодере 22, могут включать в себя соответствующие компоненты декодирования ошибок, которые допускают обнаружение и коррекцию ошибок. Некоторые ошибки, введенные по беспроводной сети 26 и/или проводной сети 28, могут являться некорректируемыми с помощью компонентов 220 нижнего уровня. Для некорректируемых ошибок решения, такие как компоненты 220 нижнего уровня, запрашивающие повторную передачу поврежденных компонентов посредством компонентов 215 нижнего уровня передатчика 22, могут быть невыполнимы в некоторых ситуациях, например, при передаче мультимедийных данных в реальном времени, например, при потоковой передаче приложений. В некоторых вариантах осуществления компоненты 215 и 220 нижнего уровня содержат компоненты уровня связи. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 24, изображенных на Фиг.1B.The
Фиг.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
Фиг.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
Компонент 39 TSP может дополнительно содержать компонент 36 демультиплексирования транспортного уровня и компонент 38 разбора уровня синхронизации. Компонент 36 демультиплексирования транспортного уровня может принять битовый поток, передающийся от компонента 34 МАС-уровня, содержащий как верные, так и поврежденные биты, и информацию, маркирующую поврежденные группы битов. Поврежденные группы битов и соответствующая маркирующая информация содержат информацию, соответствующую ошибкам 33 в контрольной циклической сумме (CRC) турбодекодера и ошибкам 35 Рида-Соломона. (В некоторых стеках протоколов компонент 36 демультиплексирования транспортного уровня также известен как подуровень потокового уровня, где подуровень МАС-уровня и подуровень потокового уровня являются подуровнями транспортного уровня.) Компонент 36 демультиплексирования транспортного уровня может демультиплексировать (de-mux) или разобрать принятый битовый поток на множество битовых потоков. Разобранные битовые потоки могут содержать битовые потоки, предназначенные для различных приложений, таких как видеодекодер, аудиодекодер, и различных комбинаций текстовых, графических приложений и приложений отображения. Компонент демультиплексирования транспортного уровня также может разобрать один битовый поток, предназначенный для отдельного приложения, такой как битовый поток видеоданных, например, на два или несколько отдельных уровней (например, используя масштабируемое кодирование), например, на основной уровень и уровень улучшения. Затем эти уровни могут быть использованы для обеспечения масштабируемости, такой как временная и/или SNR масштабируемость. Один пример масштабируемого кодирования делит кадры с внутренним кодированием (такие как I-кадры) и другие кадры с взаимным кодированием (например, P-кадры или В-кадры, полученные при использовании, например, предсказания с компенсацией движения) на различные уровни в битовом потоке. I-кадры могут быть закодированы на основном уровне, а P-кадры и/или В-кадры могут быть закодированы на уровне улучшения. Масштабируемое кодирование является полезным в динамических каналах, где масштабируемые битовые потоки могут быть адаптированы к соответствию колебаниям в пропускной способности сети. В подверженных ошибкам каналах масштабируемое кодирование может увеличить надежность с помощью защиты от неравных ошибок основного уровня и уровня улучшения. Лучшая защита от ошибок может быть применена к более важному уровню.The
Компонент 38 разбора уровня синхронизации дополнительно выполняет разбор битового потока на битовые субпотоки, связанные друг с другом на основе временной синхронизации. Мультимедийный битовый поток видеоданных может быть разобран на битовый поток видеоданных, битовый поток аудиоданных и битовый поток с соответствующей текстовой информацией скрытых титров. Компонент 38 разбора уровня синхронизации передает разобранные битовые потоки связанному приложению декодера наряду с информацией временной синхронизации. Это предоставляет связанным аудиоданным, видеоданным и текстовой информации возможность отображения и воспроизведения в соответствующее время.The synchronization
В дополнение к обсуждаемому выше разбору компонент 36 демультиплексирования транспортного уровня может разобрать и переслать информацию, маркирующую повреждение (например, информацию 33 об ошибке CRC и информацию 35 об ошибке Рида-Соломона), которую он принял от компонента 34 МАС-уровня и компонента 32 физического уровня, компоненту 38 разбора уровня синхронизации и/или соответствующему процессу прикладного уровня (например, видеодекодеру или аудиодекодеру). Компонент 38 разбора уровня синхронизации может передать информацию, маркирующую повреждение, в виде информации 37 о распределении ошибок. Компонент 38 разбора уровня синхронизации также может передать рекомендованную информацию 41 о стратегии контроля ошибок. Затем процесс прикладного уровня может использовать информацию 37, маркирующую повреждение, и информацию 41 о стратегии контроля для обработки ошибок.In addition to the parsing discussed above, the transport
Компонент 50 прикладного уровня может содержать один или несколько компонентов, таких как, например, компонент 40 устранения ошибок, компонент 42 масштабирования, компонент 44 преобразования частоты кадров (FRUC), компонент 46 декодирования базового приложения и компонент 48 последующей обработки. Компонент 50 прикладного уровня использует переданную информацию 37, маркирующую повреждение, и информацию 41 о стратегии контроля для принятия решения, касающуюся способа использования компонентов устранения ошибок, масштабирования и преобразования частоты кадров (FRUC) для управления поврежденными данными, таким образом предлагая более высокое качество декодирования с использованием компонента 46 декодирования базового приложения. Например, касаемо временной масштабируемости, где некоторые мультимедийные данные принимаются на одном уровне, содержащем важную информацию, а остальная часть мультимедийных данных - на другом уровне, компонент преобразования частоты кадров (FRUC) может быть использован для восстановления недостающих мультимедийных данных в случае, если второй уровень не был принят, потерян или поврежден. После декодирования компонент 48 последующей обработки выполняет любые необходимые определенные модификации аппаратных средств для предоставления возможности отображения, воспроизведения или рендеринга видео- и аудиовыхода на устройстве отображения или динамиках соответственно. Компонент 48 последующей обработки также может выполнить операции улучшения или восстановления прежде, чем мультимедийные данные будут воспроизведены или представлены.The
Компонент 46 декодирования базового приложения может содержать видеодекодер(ы), аудиодекодер(ы), а также текстовые и графические приложения. Посредством выполнения обработки устранения ошибок, масштабирования и преобразования частоты кадров (FRUC) битовых потоков различных приложений перед или в течение декодирования с использованием компонента 46 декодирования базового приложения могут быть сделаны улучшения для повышения качества битового потока низкого качества (закодированного с низким качеством, либо принятого с низким качеством из-за ошибок). Например, компоненты 40, 42 и 44 могут предложить улучшения стандартного исходного, совместимого со стандартом H.264, битового потока видеоданных (базовый профиль является очень простым профилем, который был спроектирован для маломощного устройства), и обеспечить некоторые элементы других профилей стандарта H.264, такие как B-кадры и разделение послойных данных, которые обязаны выполнять масштабирование, обнаружение и устойчивость к ошибкам для потока видеоданных. Элементы процессов, использующих компоненты мультимедиа-декодера 30, представлены ниже. Один или несколько элементов могут быть добавлены, перестроены или объединены в передатчике 22 или декодере 30, изображенных на Фиг.2A и 2B.The
Далее представлено краткое обсуждение процесса обнаружения ошибок и коррекции ошибок. Один пример схемы обнаружения и коррекции ошибок использует каскадный код, содержащий как внутренний (канальный) код, так и внешний (канальный) код. Каскадные канальные коды состоят из турбо (внутреннего) кода на физическом уровне и корректирующего кода (внешнего) стирания ошибок Рида-Соломона, установленного на МАС-уровне. Фиг.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
К верхних строк 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
К каждой строке 112 добавлена контрольная циклическая сумма (CRC) и некоторые замыкающие биты, необходимые для правильной работы турбокодера. Из-за добавления контрольной суммы к каждой строке 112 эти строки не смогут удовлетворить свои соответствующие контрольные суммы после того, как турбодекодирование может быть объявлено стертым. Каждый кодовый блок 110 за один раз вводит одну строку 112 в турбокодер и, следовательно, каждая строка упоминается как информационный турбопакет.A CRC and some trailing bits are required for each turbo encoder to work correctly on each
Процесс турбодекодирования представляет четкие данные процессу декодирования Рида-Соломона, который затем сокращает коэффициент остаточных ошибок. Способность успешной коррекции для стирания зависит от общего количества стираний внутри кодового блока и количества (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
Фиг.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
После того как на этапе 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
Как обсуждалось выше, компонент 36 демультиплексирования транспортного уровня и компонент 38 разбора уровня синхронизации разбирают битовый поток на множество битовых потоков, предназначенных для множества процессов прикладного уровня. В изображенном на Фиг.4 примере битовый поток разбирается (на этапе 68) на битовый поток 70 видеоданных, битовый поток 72 аудиоданных и битовый поток 74 текстовой и/или графической информации. Каждый битовый поток 70, 72 и 74 может содержать данные, идентифицирующие поврежденные группы битов в отдельных битовых потоках. Кроме того, если отдельные битовые потоки должны быть синхронными во временном отношении, то битовые потоки могут содержать информацию о синхронизации.As discussed above, the transport
После разбора отдельных битовых потоков выполняется обработка ошибок на прикладном уровне, где на этапах 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
Далее детально обсуждается пример идентификации поврежденных битов (этап 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.
В начале каждой строки информационного турбопакета присутствует заголовок 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)
В добавление к (или вместо) включению поля «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
- 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
Замена поврежденных символов на этапах 78, 82 и 86 (Фиг.4) может принять две основные формы, а именно: коррекция ошибок и маскировка ошибок. Операции коррекции и маскировки ошибок на уровне битового потока выполняются на стираниях и пакетных ошибках. Ошибки декодирования (из-за ошибок в байтах) корректируются посредством использования критерия MAP (максимума апостериорной вероятности) до возможной степени. Ошибки, которые не могут быть откорректированы, маскируются посредством использования пространственной и/или временной информации из соседних макроблоков (макроблок представляет собой область пикселей, размером 16×16, которая, как правило, оперирует со стандартами сжатия видеоизображения, а также могут быть использованы меньшие по размеру субмакроблоки, например 8×8, 8×16 и другие). Временная маскировка может быть использована, например, если изображение статично свыше одного кадра. Если поврежденный маскируемый макроблок находится в области, которая осталась относительно постоянной в предыдущих кадрах, то он вероятно будет присутствовать в поврежденном кадре, а области прошедшего кадра могут быть использованы в качестве оценки для поврежденной области. Пространственная маскировка может использовать в своих интересах границы или объекты, которые существуют в соседних макроблоках одного кадра.Replacing damaged characters in
Как обсуждалось выше, может быть принято множество уровней закодированных данных, представляющих один битовый поток. Уровни могут включать в себя базовый уровень и один или несколько уровней улучшения, где уровень(ни) улучшения может обеспечить дополнительные кадры, которые недоступны в базовом уровне (например, предсказанные двунаправленные 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 (
Фиг.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
Ошибки, оставшиеся в битовом потоке, обнаруживаются на этапе 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
Над обнаруженными ошибками можно осуществлять контроль (на этапе 715) посредством нескольких способов. Этап 715 контроля может содержать этап маркировки (или пометки) поврежденных данных, как обсуждалось выше. Этап 715 контроля может содержать этап ограничения распространения ошибок посредством идентификации групп данных, например, пакетов, блоков, частей, кадров, макроблоков, субмакроблоков, которые содержат обнаруженные ошибки. Этап 715 контроля может быть основан на протоколе транспортного уровня. Такой протокол может пометить ошибки, оставшиеся после кодирования одного или нескольких битов в заголовке транспортного уровня, для использования верхними уровнями (Фиг.1B и 1С). Верхние уровни могут использовать индикаторы ошибок заголовка транспортного уровня для дополнительной идентификации и/или ограничения распространения пакетов верхнего уровня, состоящих из одного или нескольких поврежденных пакетов транспортного уровня, таким образом дополнительно ограничивая распространение ошибок в битовых потоках верхнего уровня. Средство контроля, такое как изображенный на Фиг.6 блок 610 контроля ошибок, может выполнить задачи контроля ошибок.Errors detected can be monitored (at 715) using several methods. The
На этапе 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
На этапе 725 может быть выполнено устранение ошибок в частях одного или нескольких закодированных потоков мультимедийных данных. Устранение ошибок может быть основано на протоколах прикладного уровня. Компоненты прикладного уровня могут выполнить устранение ошибок. Компоненты прикладного уровня могут определить, какой тип устранения ошибок использовать на основе информации, принятой от уровня синхронизации, как обсуждалось выше. Устранение ошибок может включать один элемент из множества, содержащего временную маскировку ошибок, пространственную маскировку ошибок, частоту преобразования кадров (FRUC) или комбинацию этих элементов, как обсуждалось выше, а также другие способы. Маскировка обнаруженных ошибок в одном или нескольких потоках мультимедийных данных может быть основана на протоколе прикладного уровня. Устранение ошибок также может поддерживать масштабируемость одного или нескольких потоков данных. Масштабируемость может включать в себя либо пространственную, либо временную масштабируемость, либо обе, как обсуждалось выше. Средство устранения ошибок, такое как изображенный на Фиг.2А компонент 40 устранения ошибок, может выполнить устранение ошибок на этапе 725. Средство маскировки ошибок, такое как блок 620 маскировки ошибок, может выполнить маскировку ошибок. Средство масштабирования, такое как изображенные на Фиг.2А и 6 компоненты 42 и 620 масштабирования, может поддерживать масштабируемость при выполнении устранения ошибок на этапе 725.At
Процесс 700 может включать в себя этап 730 восстановления одного или нескольких битовых потоков. Этап 730 восстановления может содержать этап объединения безошибочно принятых данных с маскированными данными. Этап восстановления может включать в себя этап сокращения частоты кадров (форма временной масштабируемости), количество которых превышает порог ошибок в кадре. Этап восстановления может содержать принятие решения не декодировать, маскировать или корректировать уровень улучшения (форма масштабируемости SNR). Протоколы прикладного уровня могут являться базисом для этапа 730 восстановления. Средство восстановления, такое как блок 630 восстановления потока данных, может выполнить восстановление на этапе 725. Один или несколько элементов могут быть добавлены, перестроены или объединены в системе 600. Один или несколько элементов могут быть добавлены, перестроены или объединены для процесса 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)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66068105P | 2005-03-10 | 2005-03-10 | |
US66092305P | 2005-03-10 | 2005-03-10 | |
US60/660,867 | 2005-03-10 | ||
US60/660,681 | 2005-03-10 | ||
US60/660,923 | 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)
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)
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 |
-
2006
- 2006-03-10 RU RU2007137484/09A patent/RU2374787C2/en not_active IP Right Cessation
Non-Patent Citations (1)
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)
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 |