RU2440670C2 - Динамическое перемежение потоков и доставка на основе подпотоков - Google Patents
Динамическое перемежение потоков и доставка на основе подпотоков Download PDFInfo
- Publication number
- RU2440670C2 RU2440670C2 RU2009141988/08A RU2009141988A RU2440670C2 RU 2440670 C2 RU2440670 C2 RU 2440670C2 RU 2009141988/08 A RU2009141988/08 A RU 2009141988/08A RU 2009141988 A RU2009141988 A RU 2009141988A RU 2440670 C2 RU2440670 C2 RU 2440670C2
- Authority
- RU
- Russia
- Prior art keywords
- stream
- content
- interleaving
- receiver
- content stream
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2789—Interleaver providing variable interleaving, e.g. variable block sizes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/353—Adaptation to the channel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
Изобретение предоставляет способы динамического перемежения потоков, включая способы для динамического введения больших величин перемежения по мере того, как поток передается, независимо от структуры исходных блоков, чтобы распределять потери или ошибки в канале по гораздо большему периоду времени в пределах первоначального потока, чем если бы перемежение не вводилось, предоставлять превосходную защиту от потери пакетов или повреждения пакетов при использовании с FEC-кодированием, предоставлять превосходную защиту от нарушения синхронизации в сети. Потоки могут быть секционированы на подпотоки, реализуется доставка подпотоков в приемники по различным трактам через сеть и прием одновременно различных подпотоков в приемнике, отправляемых от потенциально различных серверов. При использовании вместе с FEC-кодированием способы включают в себя доставку частей кодирования каждого исходного блока от потенциально различных серверов. Технический результат - обеспечение возможности сокращения времени на переключение содержимого и времени на смену содержимого до минимальных и наименьших времен на смену содержимого. 4 н. и 13 з.п. ф-лы, 16 ил.
Description
Перекрестная ссылка на родственные заявки
Данная заявка испрашивает приоритет предварительной заявки на патент США номер 60/912145, озаглавленной "Dynamic Stream Interleaving and Sub-Stream Based Delivery", поданной 16 апреля 2007 года. Содержимое этой заявки полностью включено в данном документе посредством ссылки для всех целей.
Настоящее раскрытие сущности изобретения также включает в себя посредством ссылки, как если бы они были полностью изложены в этом документе, для всех целей, следующие совместно переуступленные заявки/патенты:
Патент США №6307487 на имя Luby (в дальнейшем "Luby I");
Патент США №7068729 на имя Shokrollahi и др. (в дальнейшем "Shokrollahi I");
Патентная заявка США №11/423391, поданная 9 июня 2006 и озаглавленная "Forward Error-Correcting (FEC) Coding and Streaming", на имя Luby и др. (в дальнейшем "Luby II"); и
Патентная заявка США №11/674625, поданная 13 февраля 2007 года, озаглавленная "Streaming and Buffering Using Variable FEC Overhead and Protection Periods", на имя Watson и др. (в дальнейшем "Watson").
Область техники, к которой относится изобретение
Настоящее изобретение относится к повышению качества потоковой доставки, времени на переключение содержимого, масштабированной распределенной доставке потоков и использованию FEC-кодирования во всех аспектах, чтобы совершенствовать решения по потоковой передаче. Потоковая передача содержит потоковую передачу аудио, видео и данных, на постоянной скорости или переменной скорости передачи битов, для воспроизведения содержимого в форме списков воспроизведения по запросу или прямого воспроизведения.
Уровень техники
Доставка потокового мультимедиа становится все более важной, поскольку становится все более распространенным, что высококачественное аудио и видео доставляется по сетям с коммутацией пакетов, таким как Интернет, сотовые и беспроводные сети, линии электросети и многие другие сети. Качество доставляемого потокового мультимедиа зависит от ряда факторов, в том числе качества исходного содержимого, качества кодирования исходного содержимого, возможностей приемников декодировать и отображать видео, своевременности и качества сигнала, принимаемого в приемниках, и т.д. Чтобы создавать высококачественное восприятие потокового мультимедиа, транспортировка и своевременность сигнала, принимаемого в приемниках, являются особенно важными. Хороший транспорт предоставляет точность воспроизведения потока, принимаемого в приемнике, по сравнению с тем, что отправляется от передатчика, тогда как своевременность представляет то, как быстро приемник может начинать воспроизведение содержимого после начального запроса этого содержимого.
В последнее время стало установившейся практикой рассматривать использование кодов прямой коррекции ошибок (FEC) для защиты потокового мультимедиа во время передачи. Когда отправляется по пакетной сети, примеры которой включают в себя Интернет и беспроводные сети, такие как стандартизированные посредством таких групп, как 3GPP, 3GPP2 и DVB, исходный поток помещается в пакеты по мере того, как он формируется или становится доступным, и тем самым пакеты используются для того, чтобы переносить исходный поток или поток содержимого в том порядке, в котором он формируется или становится доступным, в приемники.
В нетипичном варианте применения FEC-кодов для этих видов сценариев кодер использует FEC-код при создании исправляющих пакетов, которые затем отправляются в дополнение к первоначальным исходным пакетам, содержащим исходный поток. Исправляющие пакеты имеют такое свойство, что, когда возникает потеря исходных пакетов, принимаемые исправляющие пакеты могут использоваться для того, чтобы восстанавливать данные, содержащиеся в потерянных исходных пакетах. Исправляющие пакеты могут использоваться для того, чтобы восстанавливать содержимое потерянных исходных пакетов, которые потеряны полностью, но также могут использоваться для восстановления после того, как возникает частичная потеря пакетов, либо за счет полностью принимаемых исправляющих пакетов, либо даже за счет частично принимаемых исправляющих пакетов. Таким образом, полностью или частично принимаемые исправляющие пакеты могут использоваться для того, чтобы восстанавливать полностью или частично потерянные исходные пакеты.
В других примерах другие типы повреждения могут возникать для отправляемых данных, к примеру, значения битов могут быть инвертированы, и, таким образом, исправляющие пакеты могут использоваться для того, чтобы корректировать это повреждение и предоставлять максимально точное восстановление исходных пакетов. В других примерах исходный поток не обязательно отправляется в дискретных пакетах, а вместо этого может отправляться, например, как непрерывный поток битов.
Имеется много примеров FEC-кодов, которые могут использоваться для того, чтобы предоставлять защиту исходного потока. Коды Рида-Соломона - это известные коды для коррекции ошибок и стирания в системах связи. Для коррекции стирания, например, в сетях пакетной передачи данных известная эффективная реализация кодов Рида-Соломона использует матрицы Коши или Вандермонда, как описано в L. Rizzo, "Effective Erasure Codes for Reliable Computer Communication Protocols", Computer Communication Review, 27 (2): 24-36 (апрель 1997 года) (в дальнейшем "Rizzo") и Bloemer и др., "An XOR-Based Erasure-Resilient Coding Scheme", Technical Report TR-95-48, International Computer Science Institute, Berkeley, California (1995) (в дальнейшем "XOR-Reed-Solomon"), или в других источниках.
Другие примеры FEC-кодов включают в себя LDPC-коды, коды цепной реакции, такие как описанные в Luby I, и коды многостадийной цепной реакции, такие как в Shokrollahi I.
Примеры процесса FEC-декодирования для разновидностей кодов Рида-Соломона описываются в Rizzo и XOR-Reed-Solomon. В этих примерах декодирование применяется после того, как принято достаточно исходных и исправляющих пакетов данных. Процесс декодирования может требовать большого объема вычислений, и, в зависимости от доступных ресурсов CPU, его выполнение может отнимать большое количество времени относительно длительности времени, охватываемой посредством мультимедиа в блоке. Приемник должен принимать во внимание эту длительность времени, требуемую для декодирования, при вычислении задержки, требуемой между началом приема медиапотока и воспроизведением медиа. Эта задержка, обусловленная декодированием, воспринимается пользователем как задержка между его запросом на предмет конкретного медиапотока и началом воспроизведения. Таким образом, желательно минимизировать эту задержку.
Во многих вариантах применения пакеты дополнительно подразделяются на символы, к которым применяется FEC-процесс. Пакет может содержать один или более символов (или менее одного символа, но обычно символы не разбиваются между пакетами). Символ может иметь любой размер, но зачастую размер символа самое большее равен размеру пакета. Исходные символы - это символы, которые кодируют данные, которые должны быть переданы. Исправляющие символы - это символы, сформированные из исходных символов, которые прямо или косвенно являются в дополнение к исходным символам (т.е. данные, которые должны быть переданы, могут быть полностью восстановлены, если все исходные символы доступны, и ни один из исправляющих символов недоступен).
Некоторые FEC-коды основаны на блоках в том, что операции кодирования зависят от символа(ов), которые находятся в блоке, и могут быть независимыми от символов не в этом блоке. При блочном кодировании FEC-кодер может формировать исправляющие символы для блока из исходных символов в этом блоке, затем переходить к следующему блоку и не обязательно должен обращаться к исходным символам, отличным от символов для текущего кодированного блока. При передаче исходный блок, содержащий исходные символы, может представляться посредством кодированного блока, содержащего кодированные символы (которые могут быть несколькими исходными символами, несколькими исправляющими символами или и тем, и другим). При наличии исправляющих символов не все исходные символы требуются в каждом кодированном блоке.
Для некоторых FEC-кодов, а именно кодов Рида-Соломона, время кодирования и декодирования становится непрактичным по мере того, как число кодированных символов на исходный блок возрастает. Таким образом, на практике зачастую предусмотрена целесообразная верхняя граница (255 - это приблизительное целесообразное ограничение для некоторых приложений) для общего числа кодированных символов, которые могут быть сформированы на исходный блок, в частности, в типичном случае, где процесс кодирования и декодирования по Риду-Соломону выполняется посредством специализированных аппаратных средств, к примеру, MPE-FEC-процессы, которые используют коды Рида-Соломона, включенные как часть DVB-H-стандарта, для защиты потоков от потери пакетов, реализуются в специализированных аппаратных средствах в сотовом телефоне, который ограничен всего 255 кодированными символами Рида-Соломона на исходный блок. Поскольку символы зачастую должны помещаться в отдельные рабочие данные пакета, это задает целесообразную верхнюю границу на максимальную длину кодированного исходного блока. Например, если рабочие данные пакета ограничены 1024 байтами или менее и каждый пакет переносит один кодированный символ, то кодированный исходный блок может составлять самое большее 255 Кбайт (килобайт), и это, разумеется, также является верхней границей размера самого исходного блока.
Другие проблемы, к примеру, возможность декодировать исходные блоки достаточно быстро, чтобы не отставать от скорости исходной потоковой передачи, чтобы минимизировать время задержки на декодирование, вводимое посредством FEC-декодирования, и использовать только небольшую часть доступной мощности CPU в приемнике в любой момент времени во время FEC-декодирования, представляют сложность в решении.
Другие проблемы включают в себя возможность начинать воспроизведение потока, например, декодирование и подготовку посредством рендеринга принимаемых аудио- и видеопотоков с использованием персонального компьютера и отображение видео на экране компьютера и воспроизведение аудио через встроенные динамики, или, в качестве еще одного примера, декодирование и подготовку посредством рендеринга принимаемых аудио- и видеопотоков с использованием абонентской приставки и отображение видео на телевизионном дисплее, и воспроизведение аудио через стереосистему. Первоочередная задача заключается в том, чтобы минимизировать задержку между тем, когда пользователь решает просматривать новое содержимое, доставляемое как поток, и когда содержимое начинает воспроизведение, в дальнейшем называемую "временем на переключение содержимого". Примером переключения содержимого является, когда пользователь просматривает первое содержимое, доставляемое через первый поток, и затем пользователь решает просматривать второе содержимое, доставляемое через второй поток, и инициирует действие, чтобы начинать просмотр второго содержимого. Второй поток может отправляться из того же набора или другого набора серверов по сравнению с первым потоком. Другим примером переключения содержимого является, когда пользователь посещает веб-узел и решает начинать просмотр первого содержимого, доставляемого через первый поток, посредством щелчка ссылки в окне обозревателя. Еще одним примером переключения содержимого является, когда пользователю желательно находить и начинать просмотр в новой позиции, вперед или назад, в этом же потоке содержимого. Минимизация времени на переключение содержимого является важной для просмотра видео, чтобы предоставлять пользователям высококачественную быструю навигацию по содержимому при поиске и выборке широкого диапазона доступного содержимого. Высококачественная быстрая навигация по содержимому зачастую положительно коррелирована с объемом содержимого, которое используют пользователи.
Зачастую имеет место то, что основным фактором времени на переключение содержимого является базовая структура FEC. Другая задача заключается в минимизации временного промежутка между окончанием воспроизведения одного фрагмента содержимого и началом воспроизведения другого фрагмента содержимого, который предпочтительно идет следом с небольшой паузой или без нее. Например, если один фрагмент содержимого - это широковещательная телевизионная передача, а следующий фрагмент содержимого - это реклама, или наоборот, длительный промежуток (в данном документе называемый "временем на смену содержимого") между их воспроизведением нежелателен.
Безусловно, желательна минимизация времени на смену содержимого при одновременной минимизации скорости потоковой передачи в приемник в течение периодов времени, окружающих переход.
Другая задача заключается в том, чтобы максимизировать качество доставляемого потока при использовании сети доставки на основе принципа максимальной эффективности, такой как Интернет, которая может отбрасывать пакеты и которая может вызывать глобальные изменения количества времени, которое занимает доставка пакетов, при одновременной минимизации использования сетевых ресурсов, таких как полоса пропускания.
Другая задача заключается в том, чтобы предоставлять отказоустойчивое и масштабируемое решение по доставке потоковой передачи, которое дает возможность компонентам системы отказывать без негативного влияния на качество потоков, доставляемых в приемники.
Перемежение может использоваться для того, чтобы предоставлять превосходную защиту от дефектов в канале, таких как скачкообразная потеря пакетов. Например, потеря пакетов зачастую является в некоторой степени пульсирующей, и тем самым распределение исходного блока по более длительным периодам времени может быть преимущественным. Для некоторых FEC-кодов собственное использование больших исходных блоков целесообразно, но для других FEC-кодов, таких как коды Рида-Соломона, зачастую имеются целесообразные ограничения на размер исходного блока, который может использоваться. Таким образом, чтобы распределять передачу пакетов, ассоциированных с исходным блоком, по более длительному интервалу времени, может быть преимущественным перемежать отправку пакетов, содержащих кодированные символы для различных исходных блоков.
Ранее появились способы, которые разрешают некоторые из задач, описанных выше. Например, некоторые новые способы формирования исходных FEC-блоков и перемежения описываются в Luby II. Некоторые способы перемежения являются статическими в том смысле, что величина перемежения является фиксированной для всего потока. Таким образом, иногда предусматривается компромисс между величиной перемежения, которая влияет на качество защиты, предлагаемое посредством таких способов, и временем на переключение содержимого, т.е. большие величины перемежения предоставляют лучшую защиту потоков, но задают более длительное время на переключение содержимого, и этот компромисс определяется фиксированным способом для всей длительности потоковой передачи в приемник.
Имеются некоторые способы, которые предоставляют небольшое время на переключение содержимого и большие величины перемежения в течение значительной части процесса отправки потока, например некоторые способы, описанные в Watson. Некоторые из способов, описанных в Watson, динамически переходят от коротких начальных исходных блоков ко все более длинным исходным блокам и в течение переходного периода отправляются на немного большей скорости, чем скорость потоковой передачи содержимого. Эти способы предоставляют небольшое время на переключение содержимого при одновременном предоставлении возможности повышения качества защиты, предоставляемой по мере того, как продолжается прохождение потока. Например, один способ применения некоторых из способов, описанных в Watson, состоит в том, чтобы определять структуру исходных блоков и выполнять FEC-кодирование в то время, когда поток отправляется, т.е. структура исходных блоков "от коротких к длинным" определяется и FEC-кодируется по мере того, как они отправляются в каждой точке, где к ним осуществляется доступ, в отдельные приемники, и тем самым формирование структуры исходных блоков и FEC-кодирование выполняются уникально для каждого приемника, и поток, отправляемый в каждый приемник, является уникальным. Тем не менее, иногда желательно иметь структуру исходных блоков потока содержимого, определяемую независимо от доставки потока, к примеру независимо от приемников, независимо от того, когда содержимое просматривается, и где в потоке содержимого начинается просмотр, и независимо от того, в каком порядке доставляются данные в рамках потока. Это особенно важно, если поток содержимого должен быть доставлен из нескольких серверов в один приемник.
Таким образом, желательно совершенствовать процессы и устройство.
Сущность изобретения
Варианты осуществления кодеров, декодеров и системы связи согласно аспектам настоящего изобретения предусматривают способы динамического перемежения потоков, в том числе способы для динамического введения больших величин перемежения по мере того, как поток передается, независимо от структуры исходных блоков. Некоторые преимущества этих способов заключаются в том, что они распределяют потери или ошибки в канале по гораздо большему периоду времени в рамках первоначального потока, чем если бы перемежение не вводилось, они предоставляют превосходную защиту от потери пакетов или повреждения пакетов при использовании с FEC-кодированием, они предоставляют превосходную защиту от нарушения синхронизации в сети, и они дают возможность снижения времени на переключение содержимого и времени на смену содержимого до минимума. Некоторые дополнительные преимущества этих способов включают в себя сглаживание скорости потоковой передачи, в том числе через смены от потоковой передачи одного содержимого на другое содержимое, и минимальное время на смену содержимого.
Варианты осуществления кодеров, декодеров и системы связи согласно аспектам настоящего изобретения также могут предусматривать секционирование потока данных на подпотоки, доставку подпотоков в приемники по различным трактам через сеть и прием одновременно различных подпотоков в приемнике, отправляемых от потенциально различных серверов. При использовании вместе с FEC-кодированием способы включают в себя доставку частей кодирования каждого исходного блока от потенциально различных серверов. Некоторые преимущества этих способов включают в себя улучшение времени на переключение содержимого, повышение устойчивости к сбоям сервера и сбоям в тракте, повышение устойчивости к дисковым сбоям, повышение устойчивости к потере и/или повреждению пакетов, улучшение масштабируемости общего решения по доставке потоковой передачи и улучшение хранения содержимого и баланса скорости потоковой передачи между серверами.
Варианты осуществления кодеров, декодеров и системы связи согласно аспектам настоящего изобретения также могут предусматривать комбинирование динамического перемежения с доставкой подпотоков. Например, с помощью динамического перемежения структура исходных блоков и FEC-кодирование могут быть определены, кодированный поток может быть секционирован на подпотоки, и комбинации подпотоков могут доставляться в приемники с использованием динамического перемежения, чтобы предоставлять отказоустойчивую систему доставки потоковой передачи, которая предоставляет минимальные времена на переключение содержимого. Преимущества этих комбинированных способов - это комбинация преимуществ динамического перемежения и доставки подпотоков.
Следующее подробное описание вместе с прилагаемыми чертежами предоставляет лучшее понимание характера и преимуществ настоящего изобретения.
Краткое описание чертежей
Фиг.1 - блок-схема системы связи согласно одному варианту осуществления настоящего изобретения.
Фиг.2 - схема, иллюстрирующая время на переключение содержимого.
Фиг.3A - чертеж, иллюстрирующий компоненты времени на переключение содержимого.
Фиг.3B - чертеж, иллюстрирующий использование CPU для FEC во время декодирования.
Фиг.4 - чертеж, иллюстрирующий структуру исходных блоков потока содержимого и представление соответствующей скорости передачи потока содержимого для каждого исходного блока.
Фиг.5 - чертеж, иллюстрирующий структуру кодированных блоков, соответствующих потоку содержимого по фиг.4.
Фиг.6 - чертеж, иллюстрирующий приемник и время на переключение содержимого, соответствующее базовому способу отправки.
Фиг.7 - чертеж, иллюстрирующий ленточный способ отправки потока.
Фиг.8 - чертеж, иллюстрирующий статическое перемежение согласно ленточному способу отправки потока.
Фиг.9 - чертеж, иллюстрирующий приемник и время на переключение содержимого, соответствующее способу отправки со статическим перемежением.
Фиг.10 - чертеж, иллюстрирующий способ отправки с динамическим перемежением, когда новый поток отправляется в приемник.
Фиг.11 - чертеж, иллюстрирующий время на переключение содержимого и период долгосрочной защиты, испытываемые на приемнике для способа отправки с динамическим перемежением.
Фиг.12 - чертеж, иллюстрирующий смену содержимого между двумя последовательными сегментами содержимого для способа отправки с динамическим перемежением.
Фиг.13 - чертеж, иллюстрирующий смену содержимого между двумя непоследовательными сегментами содержимого для способа отправки с динамическим перемежением.
Фиг.14 - чертеж, иллюстрирующий поток кодированного содержимого, распределяемый из центрального сервера в различные распределенные серверы, который должен использоваться в способе доставки на основе подпотоков.
Фиг.15 - чертеж, иллюстрирующий приемник, запрашивающий поток содержимого из различных распределенных серверов и принимающий потоки кодированного содержимого от некоторых из этих серверов в способе доставки на основе подпотоков.
Подробное описание
Варианты осуществления представляют новые способы динамического перемежения потоков, включая способы для динамического введения больших величин перемежения по мере того, как поток передается независимо от структуры исходных блоков, где передача осуществляется по сети и т.п. Варианты осуществления также представляют новые способы секционирования потока данных на подпотоки, доставки подпотоков в приемники по различным трактам через сеть и прием одновременно различных подпотоков в приемнике, отправляемых от потенциально различных серверов. При использовании вместе с FEC-кодированием способы включают в себя доставку частей кодирования каждого исходного блока от потенциально различных серверов. Варианты осуществления также представляют новые способы комбинирования динамического перемежения с доставкой подпотоков.
Далее предполагается, что сеть, переносящая данные, является сетью с коммутацией пакетов, чтобы упрощать описание в данном документе, с пониманием того, что специалисты в данной области техники могут легко видеть то, как процессы и способы, описанные в данном документе, могут применяться к другим типам сетей передачи, таких как сети с непрерывным потоком битов. Далее предполагается, что FEC-коды предоставляют защиту от потерянных пакетов или потерянных частичных данных в рамках пакетов, чтобы упрощать описание в данном документе, с пониманием того, что специалисты в данной области техники могут легко видеть то, как процессы и способы, описанные в данном документе, могут применяться к другим типам повреждений при передаче данных, таким как инвертирование битов. В этом описании предполагается, что данные, которые должны быть кодированы (исходные данные), разбиваются на "символы" равной длины, которые могут иметь любую длину (вплоть до одного бита минимум), но которые могут иметь различную длину для различных частей данных.
Символы могут переноситься по сети передачи данных в пакетах, при этом целое число символов явно переносится или подразумевается в каждом пакете. В некоторых случаях возможно, что исходный пакет не является кратным длине символа, в этом случае последний символ в пакете может усекаться. В этом случае, в целях FEC-кодирования неявно предполагается, что этот последний символ дополняется до конца фиксированной комбинацией битов, к примеру битов с нулевым значением, так что даже если эти биты не переносятся в пакете, приемник по-прежнему может заполнять этот последний усеченный символ до полного символа. В других вариантах осуществления фиксированная комбинация битов может быть помещена в пакет, тем самым фактически дополняя символы до длины, равной длине пакета. Размер символа зачастую может измеряться в битах, при этом символ имеет размер M битов и символ выбирается из алфавита в 2^M (два в степени M) символов. Недвоичные цифры также рассматриваются, но биты предпочтительны, поскольку они чаще всего используются.
FEC-коды, рассматриваемые для использования с потоковой передачей, типично являются систематическими FEC-кодами, т.е. исходные символы исходного блока включаются как часть кодирования исходного блока, и тем самым исходные символы передаются. Специалистам в данной области техники должно быть понятно, что способы и процессы, описанные в данном документе, применяются с равным успехом к FEC-кодам, которые не являются систематическими. Систематический FEC-кодер формирует из исходного блока исходных символов некоторое число исправляющих символов, причем комбинация, по меньшей мере, некоторых из исходных и исправляющих символов - это кодированные символы, которые отправляются по каналу, представляющему исходный блок. Некоторые FEC-коды полезны для эффективного формирования точно необходимого числа исправляющих символов, например "информационные аддитивные коды" или "фонтанные коды", и примеры этих кодов включают в себя "коды с цепной реакцией" и "коды с многостадийной цепной реакцией". Другие FEC-коды, такие как коды Рида-Соломона, фактически могут формировать только ограниченное число исправляющих символов для каждого исходного блока.
Предусмотрено множество других способов для переноса символов, и, хотя нижеприведенное описание использует способ пакетов для простоты, оно не имеет намерение быть ограничивающим или исчерпывающим. В контексте нижеприведенного описания термин "пакет" не имеет намерение быть ограниченным так, чтобы означать буквально то, что отправляется как одна единица данных. Наоборот, он имеет намерение включать в себя более широкое понятие задания логического группирования символов и частичных символов, которые могут отправляться или могут не отправляться как одна единица данных.
Имеются также формы повреждения данных, отличные от потери символов, к примеру, символы, которые при передаче изменяют свое значение или повреждаются другими способами, к которым способы, описанные ниже, применимы в равной степени. Таким образом, хотя нижеприведенное описание зачастую описывает потерю символов, способы с равным успехом применяются к другим типам повреждения и к другим типам FEC-кодов, помимо FEC-кодов со стиранием ошибок, таких как FEC-коды с коррекцией ошибок.
Пример FEC-кода
Фиг.1 - это блок-схема системы 100 связи, которая использует FEC-кодирование с цепной реакцией. В системе 100 связи входной файл 101 или входной поток 105 предоставляется в формирователь 110 входных символов. Формирователь 110 входных символов формирует последовательность из одного или более входных символов (IS(0), IS(1), IS(2), …) из входного файла или потока, при этом каждый входной символ имеет значение и позицию (обозначаемые на фиг.1 как целое число в скобках). Возможные значения для входных символов, т.е. их алфавит, - это типично алфавит из двух миллионов символов, так что каждый входной символ кодирует M битов входного файла. Значение M, в общем, определяется при помощи системы 100 связи, но система общего назначения может включать в себя ввод размера символа для формирователя 110 входных символов так, чтобы M могло варьироваться каждый раз. Вывод формирователя 110 входных символов предоставляется в кодер 115.
Формирователь 120 ключей формирует ключ для каждого выходного символа, который должен формироваться посредством кодера 115. Каждый ключ может быть сформирован согласно одному из способов, описанных в Luby I или в Shokrollahi I, или любому сравнимому способу, который обеспечивает то, что значительная часть ключей, формируемых для одного входного файла или блока данных в потоке, является уникальной, независимо от того, формируются ли они посредством этого или другого формирователя ключей. Например, формирователь 120 ключей может использовать комбинацию вывода счетчика 125, уникального идентификатора 130 потока и/или вывода случайного формирователя 135, чтобы формировать каждый ключ. Вывод формирователя 120 ключей предоставляется в кодер 115. В других примерах, например в некоторых приложениях потоковой передачи, набор ключей может быть фиксированным и повторно использованным для каждого блока данных в потоке. В типичном варианте осуществления число ключей, которые могут быть сформированы, диктуется посредством разрешения формирователя ключей, а не размера или другой характеристики входного файла или потока. Например, если, как ожидается, ввод составляет зачастую порядка тысячи символов или менее, ключевое разрешение может составлять 32 бита, обеспечивая до 4 миллиардов уникальных ключей. Один результат этих относительных чисел состоит в том, что кодер, который кодирует согласно ключам, может допускать формирование 4 миллиардов уникальных выходных символов для четырех тысяч символов ввода. На практике большинство систем связи не должны терять 0,999999 части символов, так что нигде не потребуется формировать порядка 4 миллиардов выходных символов, и поэтому число возможных ключей может трактоваться как фактически неограниченное и не обязательно должно повторяться, и вероятность, что два независимых выбора ключей захватят одинаковый ключ, является незначительно малой. Тем не менее, если это произошло по какой-либо причине, разрешение формирователя ключей может быть увеличено так, что процессы, которые используют ключи, могут действовать, как если бы ключи предоставлялись бесконечно.
Из каждого ключа I, предоставляемого посредством формирователя 120 ключей, кодер 115 формирует выходной символ со значением B(I) из входных символов, предоставляемых посредством формирователя входных символов.
Значение каждого выходного символа формируется на основе его ключа и некоторой функции от одного или более из входных символов, упоминаемых в данном документе как "ассоциированные входные символы" выходного символа или просто его "ассоциирования". Как правило, но не всегда, M является идентичным для входных символов и выходных символов, т.е. они оба кодируют идентичное число битов. В некоторых вариантах осуществления число K входных символов используется посредством кодера для того, чтобы выбирать ассоциирование. Если K не известно заранее, например, когда ввод - это поток, и K может варьироваться между каждым блоком в потоке, K может быть просто оценкой. Значение K также может использоваться посредством кодера 115 для того, чтобы выделять память под хранение входных символов.
Кодер 115 предоставляет выходные символы в передающий модуль 140, и формирователь 120 ключей предоставляет ключ каждого такого выходного символа в передающий модуль 140. Передающий модуль 140 передает выходные символы, и, в зависимости от используемого способа манипуляции, передающий модуль 140 также может передавать некоторые данные о ключах передаваемых выходных символов по каналу 145 в приемный модуль 150. Предполагается, что канал 145 является каналом со стиранием, но это необязательно для надлежащей работы системы 100 связи. Модули 140, 145 и 150 могут быть любыми подходящими аппаратными компонентами, программными компонентами, физическими средами или любой комбинацией вышеозначенного, до тех пор пока передающий модуль 140 выполнен с возможностью передавать выходные символы и все необходимые данные о своих ключах в канал 145, а приемный модуль 150 выполнен с возможностью принимать символы и потенциально некоторые данные о своих ключах от канала 145. Значение K, если используется для того, чтобы определять ассоциирование, может отправляться по каналу 145 или оно может задаваться заранее в соответствии с согласованием кодера 115 и декодера 155.
Канал 145 может быть каналом реального времени, таким как тракт через Интернет или широковещательная линия связи от телевизионного передающего устройства в телевизионный приемник, или телефонное соединение от одной точки к другой, либо канал 145 может быть каналом с памятью, таким как CD-ROM, накопитель, веб-узел и т.п. Канал 145 даже может быть комбинацией канала реального времени и канала с памятью, такой как канал, формируемый, когда один пользователь передает входной файл из персонального компьютера поставщику Интернет-услуг (ISP) по телефонной линии связи, входной файл сохраняется на веб-сервере и впоследствии передается получателю по Интернету.
Если канал 145 содержит пакетную сеть, система 100 связи может не иметь возможности допускать, что относительный порядок любых двух или больше пакетов сохраняется в пути через канал 145. Следовательно, ключ выходных символов определяется с использованием одной или более из схем манипуляции, описанных выше и не обязательно определяемых в соответствии с порядком, в котором выходные символы выходят из приемного модуля 150.
Приемный модуль 150 предоставляет выходные символы в декодер 155, и все данные, которые приемный модуль 150 принимает о ключах этих выходных символов, предоставляются в повторный формирователь 160 ключей. Повторный формирователь 160 ключей восстанавливает ключи для принимаемых выходных символов и предоставляет эти ключи в декодер 155. Декодер 155 использует ключи, предоставляемые посредством повторного формирователя 160 ключей, вместе с соответствующими выходными символами для того, чтобы восстанавливать входные символы (снова IS(0), IS(1), IS(2), …). Декодер 155 предоставляет восстановленные входные символы в повторный сборщик 165 входных файлов, который формирует копию 170 входного файла 101 или копию 175 входного потока 105.
Приложения потоковой передачи мультимедиа
При использовании в приложениях потоковой передачи мультимедиа исходные пакеты, формирующие исходный мультимедийный поток, иногда собираются в группы, называемые исходными блоками. Например, исходный блок может быть группой исходных пакетов, охватывающих фиксируемую продолжительность, и, например, код со стиранием Рида-Соломона может применяться независимо к этим исходным блокам, чтобы формировать исправляющие пакеты, которые отправляются вместе с первоначальными исходными пакетами исходного блока в приемники.
В передатчике исходный поток может непрерывно секционироваться на исходные блоки по мере того, как исходные пакеты поступают, и исправляющие пакеты формируются для каждого исходного блока и отправляются. Иногда предпочтительно минимизировать полную сквозную задержку, добавляемую посредством использования FEC-кодов, в частности, для приложений прямой или интерактивной потоковой передачи, и таким образом иногда предпочтительно, если общая разработка решения FEC такова, что исходные пакеты задерживаются как можно меньше в передатчике перед отправкой и все исходные и исправляющие пакеты для исходного блока отправляются с минимально возможной полной задержкой. Также предпочтительно, если скорость FEC-кодированного потока является максимально плавной, т.е. имеется минимально возможная изменчивость скорости FEC-кодированного потока или, по меньшей мере, нет усиления изменчивости, которая уже существует в первоначальном исходном потоке, поскольку это делает использование полосы пропускания FEC-кодированного потока более прогнозируемым и минимизирует воздействие на сеть и на другие возможно конкурирующие потоки. Также предпочтительно, если данные, отправляемые в пакетах для исходного блока, распределяются максимально равномерно по периоду, когда пакеты отправляются для этого исходного блока, поскольку это предоставляет лучшую защиту от потерь пакетов. Также предпочтительно, чтобы исходные блоки составлялись таким образом, чтобы минимизировать время на переключение содержимого и время на смену содержимого. Также предпочтительно, чтобы логика в приемнике была максимально простой.
В приемнике, если пакеты теряются или принимаются с ошибками (что может обнаруживаться и отвергаться, например, с использованием CRC-контроля), то при условии, что принято достаточно исправляющих пакетов, исправляющие пакеты могут использоваться для того, чтобы восстанавливать потерянные исходные пакеты.
В некоторых вариантах применения пакеты дополнительно подразделяются на символы, к которым применяется FEC-процесс. Для некоторых FEC-кодов, а именно кодов Рида-Соломона, время кодирования и декодирования становится непрактичным по мере того, как число кодированных символов на исходный блок возрастает, и зачастую имеется верхняя граница на общее число кодированных символов, которые могут быть сформированы на исходный блок. Поскольку символы размещаются в различных рабочих данных пакета, это задает целесообразную верхнюю границу на максимальную длину при кодировании исходного блока, а также, конечно, задает верхнюю границу на размер самого исходного блока.
Во многих приложениях, когда защита должна предоставляться в течение длительного периода времени или когда скорость потоковой передачи медиа является высокой, может быть предпочтительным предоставлять защиту для данных, которые превышают максимальный размер исходного блока. В этих случаях применение исходных блоков, которые короче максимального размера исходного блока, и последующее перемежение исходных пакетов из различных исходных блоков предоставляет решение, когда исходные пакеты от отдельного отправляемого исходного блока распределяются по большим периодам времени. В других приложениях, когда желательно небольшое время на переключение содержимого и когда структура исходных блоков определяется независимо от способов перемежения, желательно использовать меньшие исходные блоки и отправлять их последовательно первоначально, когда к содержимому осуществляется доступ посредством приемника, и затем увеличивать величину перемежения по мере того, как потоковая передача содержимого продолжается, чтобы распределять отправку исходных блоков по более длительным интервалам времени, чтобы повышать уровень защиты от потери пакетов. Другая задача заключается в том, чтобы иметь возможность декодировать исходные блоки достаточно быстро, чтобы не отставать от скорости исходной потоковой передачи, чтобы минимизировать время задержки на декодирование, вводимое посредством FEC-декодирования, и использовать только небольшую часть доступной мощности CPU в приемном устройстве в любой момент времени во время FEC-декодирования. Таким образом, желательно использовать перемежение исходных блоков, которое дает возможность распределения FEC-декодирования каждого исходного блока максимально равномерно во времени и минимизирует время задержки FEC-декодирования.
Различные варианты осуществления, описанные в данном документе, предоставляют одно или более из этих преимуществ.
Потоковая передача и FEC-коды
В целях предоставления защиты FEC исходного потока исходный поток может быть комбинацией одного или более логических потоков, примерами которых являются комбинация RTP-потока аудио и RTP-потока видео, комбинация MIKEY-потока и RTP-потока, комбинация двух или более видеопотоков и комбинация RTCP-трафика управления и RTP-потока. По мере того как исходный поток поступает в передатчик в формате, который, например, является потоком исходных битов, потоком исходных символов или потоком исходных пакетов, передатчик может буферизовать поток в исходные блоки и формировать исправляющий поток из исходных блоков. Передатчик может планировать и отправлять исходный поток и исправляющий поток, например, в пакетах, которые должны отправляться по пакетной сети. FEC-кодированный поток - это комбинированный исходный и исправляющий поток. FEC-приемник принимает FEC-кодированный поток, который, возможно, поврежден, например, вследствие потерь или инвертирования битов. FEC-приемник пытается восстанавливать первоначальные исходные блоки исходного потока и планирует и делает доступным первоначальный исходный поток в приемнике.
Во многих вариантах применения структура исходных блоков определяется вместе со структурой базовых потоков, к примеру GOP-структурой и/или структурой кадра видеопотока по стандарту H.264 AVC. В некоторых из этих вариантов применения структура исходных блоков определяется до и/или независимо от порядка отправки потока пакетов, причем порядок отправки потока пакетов может зависеть от того, когда и где к потоку осуществляется доступ посредством приемников, чтобы принимать поток. В этих вариантах применения предпочтительно, чтобы структура исходных блоков определялась таким образом, что каждый исходный блок содержит последовательный набор исходных пакетов из потока, чтобы обеспечивать минимизацию времени на переключение содержимого и времени на смену содержимого.
В некоторых вариантах применения формирование структуры исходных блоков и FEC-кодирование потока предпочтительно выполняются до отправки потока. Одна причина этого заключается в том, что поток может отправляться во множество приемников, и таким образом формирование структуры исходных блоков и FEC-кодирование выполняется один раз для всех приемников, что дает некоторые преимущества по масштабируемости.
Для приложения потоковой передачи предусмотрено несколько основных параметров, которые являются вводами в шаблон того, как использовать FEC-коды для того, чтобы защищать исходный поток, и несколько ключевых показателей, которые типично важно оптимизировать.
Один возможный ключевой входной параметр при разработке структуры исходных блоков - это длительность исходного блока. Длительность исходного блока для исходного блока может быть задана как продолжительность времени, в течение которого символы, сформированные из этого исходного блока, должны отправляться, если исходные блоки отправляются последовательно, т.е. неперемеженными, и если они отправляются на обычной скорости, т.е., по существу, на обычной скорости воспроизведения. Альтернативно, длительность исходного блока может быть задана так, чтобы быть временем воспроизведения видео, представляемого посредством исходного блока. В некоторых случаях эти два определения совпадают, но они могут не совпадать. Тем не менее, для простоты в описании в данном документе используется длительность исходного блока без указания того, какое определение является целевым, делая упрощающее допущение о том, что эти два определения совпадают. Специалистам в данной области техники должно быть ясно, что способы и процессы, описанные в данном документе, относятся к любому определению длительности исходного блока, даже если эти два определения не совпадают, и даже в некоторых случаях исходный блок может отправляться гораздо быстрее, чем его скорость воспроизведения. Кроме того, специалистам в данной области техники должно быть ясно, что имеются другие способы указания размера или времени воспроизведения исходного блока, к примеру, посредством указания числа символов в исходном блоке и размера символа для исходного блока.
Период защиты для исходного блока - это период времени, в течение которого исходный блок отправляется, независимо от того, перемежает или нет отправка исходных блоков отправку пакетов из некоторых исходных блоков с отправкой пакетов из других исходных блоков. Отметим, что период защиты, в общем, равен длительности исходного блока, если перемежение исходных блоков не используется, но период защиты может быть более длительным и иногда существенно более длительным, чем длительность исходного блока при использовании перемежения.
Величина защиты для исходного блока - это число исправляющих символов FEC, отправляемых для исходного блока, выраженное как часть или процент от числа исходных символов в исходном блоке. Например, если величина защиты составляет 20% и имеется 10000 исходных символов в исходном блоке, то имеется 2000 исправляющих символов, сформированных из исходного блока. Величина защиты является относительным понятием, т.е. величина защиты для одного исходного блока может варьироваться в зависимости от того, откуда отправляется исходный блок и куда отправляется исходный блок. Например, исходный блок может отправляться из первого сервера в другой сервер с величиной защиты 50%, тогда как этот же исходный блок может отправляться из второго сервера в приемник с величиной защиты 10%.
Как длительность исходного блока, так и величина защиты на исходный блок могут варьироваться от одного исходного блока до следующего. Например, когда исходный блок предпочтительно не охватывает определенные исходные пакеты в исходном потоке, к примеру, когда первый пакет - это последний пакет группы изображений (GOP) в видеопотоке MPEG2, а второй последовательный пакет - это первый пакет следующей GOP, то исходный блок может быть завершен после первого пакета, и новый исходный блок начат во втором пакете. Это дает возможность совмещения FEC-кодированного блока с блоком кодирования видео, что может иметь множество преимуществ, включая преимущество того, что время задержки приемника или время на переключение каналов могут быть минимизированы вследствие возможности минимизации комбинации буферизации видео и FEC-буферизации в приемнике. В других приложениях может быть предпочтительным по множеству причин всегда сохранять неизменную длительность исходного блока и/или размер исходного блока для каждого последовательного исходного блока. В некоторых из нижеприведенных описаний для простоты предполагается, что длительность исходного блока и величина защиты являются одинаковыми для каждого последующего исходного блока. Для специалистов в данной области техники должно быть понятным на основе этого раскрытия сущности изобретения, что это не является ограничением, поскольку можно легко определить на основе этого раскрытия, как применяются процессы и способы, описанные в данном документе, когда либо величина защиты, либо длительность исходного блока, либо и то, и другое варьируются от одного исходного блока к следующему и когда размеры исходного блока варьируются от одного к следующему.
Для упрощения некоторых из последующих пояснений, иногда предполагается, что исходные символы первоначального потока поступают на установившейся скорости в передатчик, который должен выполнять формирование исходных блоков и FEC-кодирование, и что как только FEC-приемник сначала делает исходные символы доступными в приемнике, то последующие исходные символы делаются доступными посредством FEC-приемника на той же установившейся скорости, при условии, что в первом исходном блоке, из которого принимается исходный символ, нет потери исходных символов, и что в каждом последующем исходном блоке потеря кодированных символов составляет, самое большее, максимум, возможный для того, чтобы обеспечивать успешное FEC-декодирование. Это упрощающее допущение не присутствует при работе или разработке процессов и описанных ниже способов, и нет намерения ограничивать эти процессы таким допущением каким-либо образом, а оно вводится просто как средство для упрощения некоторых из описаний свойств процессов и способов. Например, для потоков с переменной скоростью соответствующее условие состоит в том, что исходные символы делаются доступными посредством FEC-приемника на той же или практически той же скорости, на которой они поступают в передатчик. В некоторых вариантах применения предпочтительно доставлять декодированные исходные символы в приемнике в видеопроигрыватель как можно быстрее, чтобы минимизировать время на переключение содержимого, и в таких случаях исходные символы могут доставляться в пакетах исходных блоков. В некоторых вариантах применения желательно разделять этапы формирования исходных блоков, FEC-кодирования и отправки на два или более различных этапов. Например, как описано ниже, формирование исходных блоков и FEC-кодирование могут выполняться в одном сервере, и кодированный поток затем секционируется на подпотоки, а затем подпотоки отправляются в один или более распределенных серверов и кэшируются локально, и после этого некоторые или все из подпотоков отправляются в приемник от некоторых из одного или более распределенных серверов.
Некоторые ключевые важные для минимизации показатели включают в себя время задержки в передатчике, которое является временем задержки, вводимой передатчиком. Минимизация времени задержки в передатчике желательна для некоторых приложений, таких как прямая потоковая передача видео или интерактивные приложения, такие как видеоконференц-связь. Один аспект общей разработки для передатчика, помогающей минимизировать время задержки в передатчике, состоит в том, чтобы отправлять кодированные символы для начального исходного блока или блоков для потока в приемник в последовательном порядке. Другие аспекты разработки, которые минимизируют время задержки в передатчике, описываются ниже.
Другой важный показатель - это время на переключение содержимого. Как показано на фиг.2, это время между моментом, когда приемник присоединяется или запрашивает поток, до момента, когда FEC-приемник первый раз делает доступными исходные символы из потока. В общем, желательно минимизировать время на переключение содержимого, поскольку это минимизирует время между тем, когда к потоку присоединяется приемник и когда поток первый раз становится доступным в приемнике, например, для воспроизведения видеопотока. Один важный аспект минимизации времени на переключение содержимого заключается в том, чтобы передатчик сохранял первоначальный порядок отправки кодированных символов для начальных исходных блоков, но, как описано ниже, есть много других важных аспектов разработки, которые оказывают большое влияние на время переключения содержимого.
Время на переключение содержимого типично содержит несколько компонентов. Пример этих компонентов для потока, который секционируется на последовательные исходные блоки, показан на фиг.3A и 3B, где перемежение не используется. Фиг.3A показывает один исходный блок на период защиты, и пример показывает случай, когда приемник присоединяется к потоку в начале исходного блока. Два компонента времени на переключение содержимого в этом примере - это период защиты и время задержки на FEC-декодирование. Период защиты приемника для исходного блока - это время, в течение которого приемник буферизует принимаемые кодированные символы из исходного блока. Отметим, что период защиты передатчика и период защиты приемника являются идентичными, если канал между передатчиком и приемником не имеет отклонения с точки зрения интервала времени, которое занимает то, чтобы каждый бит, байт, символ или пакет переместился от передатчика в приемник. Таким образом, на практике период защиты передатчика может отличаться от периода защиты приемника для одного и того же исходного блока вследствие изменений синхронизации в сети при доставке.
Для упрощения приводимых здесь иллюстраций предполагается, что период защиты передатчика и период защиты приемника являются идентичными для каждого исходного блока (и "период защиты" используется синонимично для периода защиты передатчика и периода защиты приемника), но это не всегда имеет место. Другими словами, имеется допущение о том, что время доставки в сети является одинаковым для всех данных. Специалисты в данной области техники, после прочтения этого раскрытия сущности, могут производить необходимые изменения в способах и устройствах, описанных в данном документе, чтобы учитывать различия периодов защиты передатчика и приемника вследствие колебаний времени доставки в сети.
Компонент периода защиты времени на переключение содержимого является неисключаемым, поскольку даже если в первом исходном блоке нет потери каких-либо исходных символов, по-прежнему требуется задерживать задание исходных символов доступными в течение, по меньшей мере, периода защиты, чтобы обеспечивать плавную доставку исходных символов по всем последующим исходным символам, когда есть потери кодированных символов в последующих исходных блоках. В течение периода защиты часть, или большая часть, или все FEC-декодирование исходного блока может осуществляться одновременно с приемом кодированных символов. В конце периода защиты может быть дополнительное FEC-декодирование, которое осуществляется до того, как первый исходный символ исходного блока доступен из FEC-приемника, и этот период времени помечается как время задержки на FEC-декодирование на фиг.3A. Помимо этого, даже после того, как первый исходный символ доступен, может быть дополнительное FEC-декодирование, которое осуществляется до того, как второй и последующие исходные символы исходного блока доступны. Для простоты это дополнительное FEC-декодирование не показано на фиг.3A, и в этом примере предполагается, что имеется достаточно доступных ресурсов CPU для того, чтобы декодировать все исходные символы после первого на достаточно высокой скорости.
Другой возможный компонент времени на переключение содержимого может быть временем между тем, когда приемник запрашивается, чтобы присоединяться к потоку, и когда первые пакеты для того потока поступают в приемник. Эта величина времени может быть переменной и зависеть от времени двустороннего распространения между приемником и одним или более передатчиками пакетов для потока. Этот компонент времени на переключение содержимого не описан подробно в данном документе, но специалистам в данной области техники должно быть ясно, что иногда это может быть важным вкладом во время переключения содержимого, который должен приниматься во внимание, и что способы и процессы, описанные в данном документе, могут легко модифицироваться, чтобы принимать во внимание этот потенциальный вклад во время переключения содержимого.
Фиг.3B показывает две потенциальные кривые использования CPU для FEC-декодирования, которые могут соответствовать примеру, показанному на фиг.3A. Для одной из двух кривых, показанных на фиг.3B, использование CPU, применяемое для FEC-декодирования, является одинаковым в каждой точке во времени, т.е. использование CPU распределяется равномерно. Это желательная кривая использования CPU, поскольку она очевидно использует одинаковую величину ресурсов CPU в каждой точке во времени и минимизирует максимальные ресурсы CPU при условии, что одинаковая величина полных ресурсов CPU требуется для того, чтобы декодировать весь исходный блок. Для другой из двух кривых, показанных на фиг.3B, использование CPU, применяемого для FEC-декодирования, не является одинаковым в каждой точке во времени, и в частности, использование CPU при и сразу после окончания приема кодированных символов для исходного блока значительно выше, чем в другие моменты времени. Это нежелательная кривая использования CPU, поскольку использование ресурсов CPU дает выброс в определенных точках во времени, которые могут быть точками во времени, когда другие процессы, такие как видеопроигрыватель, также отправляют запросы в CPU и тем самым повышают возможность возникновения, например, сбоя при воспроизведении видеопотока. Таким образом, разработка решения FEC по защите потоков состоит в том, чтобы предоставлять решение, в котором FEC-декодер использует CPU максимально плавно и равномерно во времени. В качестве примера, расчетные критерии могут заключаться в том, что максимальное использование CPU в любой момент времени в процессе FEC-декодирования при наихудшем случае потери кодированных символов находится ниже определенного порога, к примеру, использует самое большее 10% мощности CPU в каждом интервале 100 миллисекунд.
В некоторых приложениях потоковой передачи, когда приемник присоединяется к потоку в середине исходного блока, время на переключение содержимого может быть столь же малым, как длительность исходного блока плюс время задержки на декодирование, когда нет потери исходных символов из того первого частичного исходного блока, пока первоначальный порядок отправки и скорость доставки исходных пакетов сохраняются на начальном уровне передатчиком. В других приложениях потоковой передачи видеопередатчик всегда начинает отправку потока в приемник с начала GOP, причем предпочтительно начало исходного блока совмещается с началом GOP. Таким образом, чтобы минимизировать задержку переключения содержимого, желательно, чтобы передатчик сохранял первоначальный порядок отправки исходных символов для начальных исходных блоков.
Решение по потоковой передаче FEC также может использоваться для того, чтобы минимизировать сквозное время задержки на FEC, которое для приложения прямой потоковой передачи составляет полное время задержки для сценария наихудшего случая, вводимое за счет использования FEC, между моментом, когда исходный пакет готов к потоковой передаче в передатчике до применения FEC-кодирования, и моментом, когда он доступен для воспроизведения в приемнике, после применения FEC-декодирования. Для других типов приложений потоковой передачи, таких как потоковая передача по запросу или потоковая передача содержимого по списку воспроизведения, сквозное время задержки на FEC не является основной проблемой.
В приложениях потоковой передачи всех типов важно минимизировать время на переключение содержимого и время на смену содержимого. Вместе с тем важно минимизировать скорость отправки потока, т.е. ограничивать скорость отправки так, чтобы она всегда немного превышала скорость потоковой передачи содержимого, в том числе в ходе переключения содержимого и смен содержимого.
Решение по потоковой передаче FEC также может использоваться для того, чтобы минимизировать колебания скорости отправки при использовании FEC. Одно преимущество этого заключается в том, что в пакетных сетях потоки с колеблющейся скоростью отправки более подвержены потере пакетов вследствие перегрузки или переполнения буфера, когда пики скорости отправки потока совпадают с пиками другого трафика в точках сети с ограниченной пропускной способностью. Как минимум, колебания скорости FEC-кодированного потока должны быть не хуже колебаний скорости первоначального исходного потока, и предпочтительно, чем большая защита FEC применяется к первоначальному исходному потоку, тем колебания скорости FEC-кодированного потока становятся меньше. Как частный случай, если первоначальный поток отправляется на постоянной скорости, предпочтительно, чтобы FEC-кодированный поток отправлялся на скорости, которая максимально возможно близка к постоянной.
Свойство, состоящее в том, что время, когда последний кодированный символ для каждого последующего исходного блока принимается, распределяется во времени максимально возможно равномерно, является желательным свойством. Время, когда последний кодированный символ принимается для исходного блока, является временем, когда вся информация для декодирования исходного блока доступна FEC-декодеру, и типично является временем в условиях потерь по сценарию наихудшего случая, которое FEC-декодер должен работать с наибольшей интенсивностью, чтобы завершать декодирование в рамках заданного бюджета времени задержки на декодирование. Таким образом, равномерное распределение приема последнего кодированного символа для исходных блоков дает возможность более плавного использования CPU для FEC-декодирования.
Решение по потоковой передаче FEC должно предоставлять максимально простую логику в FEC-приемнике. Это важно во многих контекстах, поскольку FEC-приемник может быть встроен в устройство с ограниченными вычислительными характеристиками, характеристиками по памяти и другими ресурсами. Кроме того, в некоторых случаях может быть значительная потеря или повреждение символов при передаче, и, таким образом, FEC-приемнику, вероятно, придется восстанавливаться после сценариев фатальной потери или повреждений, при этом, когда условия улучшаются, есть небольшой или вообще отсутствует контекст, чтобы понимать, с какого момента в потоке продолжается прием. Таким образом, чем проще и более отказоустойчива логика в FEC-приемнике, тем быстрее и надежнее FEC-приемник сможет начинать восстановление и задание снова доступными исходных символов исходного потока из приема FEC-кодированного потока.
Исправляющие пакеты для исходного блока могут отправляться до, после или смешанными с исходными пакетами для исходного блока, и, как поясняется в данном документе, различные стратегии имеют свои преимущества.
Некоторые из всех желательных признаков решения по потоковой передаче FEC включают в себя:
1. Небольшое время на переключение содержимого.
2. Небольшое время на смену содержимого.
3. Скорость отправки потоков всегда должна быть ограничена, т.е. немного превышать скорость передачи потока содержимого.
4. Скорость отправки потоков должна быть плавной и должна быть, по меньшей мере, настолько плавной, что и скорость передачи потока содержимого.
5. Когда FEC-кодирование используется, формирование исходных блоков и FEC-кодирование могут выполняться для потока и идентичный кодированный поток может отправляться в возможно различные моменты времени во множество приемников.
6. Когда FEC-кодирование используется, защита от потери пакетов должна интенсивно использовать небольшую длительность исходного блока с минимальными необходимыми величинами защиты, в частности, когда потери являются немного пульсирующими по характеру.
7. Когда FEC-кодирование используется, исходные блоки должны содержать смежные части потока.
8. При FEC-кодировании для приложений прямой потоковой передачи сквозное время задержки на FEC должно быть небольшим.
9. Когда FEC-кодирование используется, FEC-декодирование должно плавно распределять использование CPU.
Основная отправка FEC-кодированного потока
В этом разделе описываются основные способы и процессы для передатчика, чтобы распределять по времени отправку пакетов потока, который может быть FEC-кодирован. Пусть k - число исходных символов в исходном блоке, T - длительность исходного блока для исходного блока, p - величина защиты, выражаемой как доля, и, таким образом, p*k исправляющих символов должно отправляться для исходного блока. Значения k, T и p могут определяться динамически, по мере того как каждый исходный блок формируется, и, таким образом, значения k и T для исходного блока могут быть известны процессу формирования исходных блоков, только когда большинство или все исходные символы для того исходного блока поступили в процесс, и значение p может быть определено после того, как все исходные символы для исходного блока поступили в процесс формирования исходных блоков, или посредством отдельного процесса. Кроме того, процесс формирования исходных блоков может варьировать размер символа для различных исходных блоков. Таким образом, многие или все эти параметры для конкретного исходного блока могут быть хорошо известны процессу формирования исходных блоков при приеме данных для этого исходного блока.
Следующий процесс описывает основной передатчик, который не использует перемежение. Для простоты для этого основного передатчика предполагается, что процесс формирования исходных блоков уже применялся к потоку, и что он секционирован на последовательные исходные блоки, при этом каждый такой исходный блок содержит k исходных символов и с длительностью исходного блока в T секунд, и что для каждого такого исходного блока p*k исправляющих символов уже сформированы.
Когда приемник запрашивает поток, начинающийся в конкретном исходном блоке (или поток проактивно отправляется с явным запросом на начало от приемника), основной передатчик начинает отправку (1+p)*k кодированных символов для запрашиваемого исходного блока за период в T секунд и после этого отправляет кодированные символы для следующего исходного блока после запрашиваемого исходного блока и т.д.
Основной передатчик имеет следующие свойства:
1. Период защиты равен T, что равно длительности исходного блока.
2. Символы, отправляемые для исходного блока, распределяются равномерно за период T секунд. Это подразумевает, что уровень защиты, предоставляемой против потерь, когда есть перебой в передаче пакета фиксированной длительности, не зависит от того, когда перебой возникает во время передачи символов, что желательно.
3. Передатчик не вводит колебания в общую скорость отправки символов. В частности, если первоначальная скорость отправки исходных символов является постоянной, то скорость отправки всех символов по-прежнему является постоянной, а если первоначальная скорость поступления исходных символов в передатчике является переменной, то, по меньшей мере, постоянная скорость отправки символов на исходный блок гасит колебания. Это является желательным свойством.
4. Время на переключение содержимого может составлять всего T. Это подразумевает минимальную буферизацию (1+p)*k символов (при условии, что все исходные блоки содержат k исходных символов), что является минимально возможным в течение данного периода защиты и таким образом желательно.
Одно свойство, которое имеет основной передатчик, заключается в том, что время на переключение содержимого составляет, по меньшей мере, время в течение периода защиты, и период защиты напрямую связан с качеством защиты от потерь при передаче пакетов. Таким образом, иногда должен быть компромисс между периодом защиты и временем на переключение содержимого. Например, желательно иметь время на переключение содержимого менее одной секунды, при этом также желательно иметь периоды защиты, которые охватывают несколько секунд, чтобы предоставлять лучшую защиту от временных перебоев в работе сети или других типов проблем неустойчивости сети, которые вызывают потерю при передаче пакетов, которая может длиться порядка десятков или сотен миллисекунд, а в некоторых случаях и целых секунд, при этом одновременно используя достаточно небольшую величину защиты, к примеру 10%. Должно быть желательным иметь возможность определять период защиты, который гораздо больше, чем время на переключение содержимого, и это одно из многих преимуществ, которые предоставляют способы перемежения, описанные в следующем разделе.
Перемежение потоков
Этот раздел описывает новые способы и процессы обработки потока данных и применения различных временных задержек к различным частям потока данных таким образом, чтобы некоторые части задерживались больше в процессе отправки, чем другие части. Одним из более важных аспектов этих способов и процессов является средство для динамического регулирования величин задержки, вызываемой в различных частях потока по мере того, как поток данных отправляется.
Зачастую предпочтительно совмещать исходные блоки со структурой группы изображений (GOP) или другой структурой кадра видеопотока, чтобы минимизировать время на переключение содержимого и предоставлять лучшую защиту потока. В некоторых приложениях желательно, чтобы процесс перемежения мог осуществляться независимо от процесса формирования исходных блоков, возможно, выполняемого в другое время или возможно выполняемого в другом месте. В некоторых случаях, возможно, желателен процесс перемежения, например, чтобы распределять ошибки пакетной передачи более равномерно по потоку, даже если процесс формирования исходных блоков не используется, например, поскольку не используется FEC-кодирование. Способы, описанные в данном документе, применяются, даже когда формирование исходных блоков и FEC-кодирование не используется, как должны признавать специалисты в данной области техники.
В некоторых случаях могут быть преимущества предоставления возможности передатчику перемежать отправку символов из различных исходных блоков так, чтобы символы для каждого исходного блока могли распределяться по более длительному периоду защиты, чем длительность исходного блока. Одна причина для этого состоит в том, что предоставляется лучшая защита от потерь с временной зависимостью (к примеру, потерь пакетов), т.е. меньшая величина защиты требуется для того, чтобы предоставлять защиту от потерь пакетов фиксированной длительности, поскольку период защиты для исходного блока возрастает. Хотя длительность исходного блока может составлять t секунд, требуемый период защиты для исходного блока может составлять p секунд, где p>>t. Другие желательные свойства передатчика, который использует перемежение, включают в себя: (1) исходные пакеты отправляются в своем первоначальном порядке в рамках исходного блока, и (2) время, когда последний кодированный символ для каждого последующего исходного блока принимается, распределяется во времени максимально возможно равномерно.
При использовании FEC-кодирования вводятся способы, которые статически перемежают отправку кодированных символов для исходных блоков, и вводятся способы, которые динамически регулируют величину перемежения по мере того, как поток отправляется, типично с небольшим перемежением или без перемежения в начале отправки потока и тем самым с периодами защиты, приблизительно равными длительности исходного блока, и плавно введя все большую величину перемежения по мере того, как продолжается отправка потока, и тем самым периоды защиты возрастают так, чтобы быть гораздо более продолжительными, чем длительность исходного блока. Это дает возможность минимизации времени на переключение содержимого в приемнике, при этом в то же время все больше защиты от потерь пакетов или повреждения достигается по мере того, как продолжается отправка. Другое преимущество описанных способов состоит в возможности постепенно защищать от постоянно возрастающего нарушения синхронизации в сети по мере того, как продолжается отправка потока.
Чтобы упрощать нижеприведенное описание, предполагается, что процессы формирования исходных блоков и FEC-кодирования осуществляются до отправки потока. Это не ограничение способов, поскольку специалисты в данной области техники должны признавать, что процессы формирования исходных блоков и выполнения FEC-кодирования для этих исходных блоков и отправки потоков, описанные ниже, могут выполняться одновременно, и в некоторых случаях это является предпочтительным. Кроме того, для некоторых приложений формирование исходных блоков, процесс FEC-кодирования и способы, описанные ниже для перемежаемой отправки потоков, могут быть динамически взаимозависимыми, т.е. то, как исходные блоки формируются и FEC-кодируются, может зависеть в некоторых случаях от стратегии отправки потока.
Ленточный способ отправки потока
Чтобы описывать новые способы перемежения, полезно вводить следующий ленточный способ отправки потока. Фиг.4 - это иллюстративный чертеж потока содержимого, для которого уже определена структура исходных блоков. Для каждого исходного блока 405(1), 405(2), …, ширина 410(1), 410(2), …, показывает длительность воспроизведения содержимого этого исходного блока, а высота каждого исходного блока 415(1), 415(2) показывает среднюю скорость воспроизведения каждого исходного блока потока содержимого, причем в этом примере различные исходные блоки имеют различные скорости воспроизведения.
Фиг.5 показывает соответствующую структуру кодированных блоков, соответствующую фиг.4, т.е. FEC-кодирование применено к каждому исходному блоку, чтобы формировать дополнительные исправляющие данные 510(1), 510(2), …, для каждого исходного блока, чтобы формировать кодированные блоки. Высота 515(1), 515(2), …, для 510(1), 510(2), …, указывает объем дополнительных исправляющих данных, формируемых для каждого исходного блока в каждом кодированном блоке, т.е. если кодированный блок отправляется в течение такой же длительности, как соответствующий исходный блок, то высота указывает среднюю скорость отправки кодированного исходного блока. Этот чертеж является только иллюстративным, а не ограничивающим, поскольку, например, величина исправляющих данных, сформированных для каждого кодированного блока, может значительно превышать величину, отправляемую для каждого кодированного блока, и величина, отправляемая для каждого кодированного блока, может варьироваться от приемника к приемнику. Кроме того, фиг.5 не имеет намерения предлагать представление упорядочения исходных и исправляющих символов в рамках кодированного исходного блока.
Фиг.6 - это иллюстративный чертеж, показывающий время на переключение содержимого, испытываемое на приемнике, соответствующего базовому способу отправки. Некоторые из компонентов времени 605 на переключение содержимого содержат время 610, которое у приемника требует прием достаточных данных из первого кодированного блока потока для того, чтобы декодировать первый исходный блок, время, которое у приемника требует декодирование первого исходного блока из принимаемых частей первого кодированного блока 620, и время 630 буфера резервирования, зарезервированного для поглощения нарушения синхронизации в сети, изменений длительности исходного блока и времени декодирования исходных блоков из частей принимаемых кодированных блоков во время приема потока.
Описан ленточный способ отправки потоков, но специалистам в данной области техники должно быть ясно, что есть много эквивалентных описаний, формирующих аналогичные способы, и разновидностей этого описания, формирующих разновидности способов, описанных здесь. Фиг.7 показывает пример ленточного способа, соответствующего структуре кодированных блоков, показанной на фиг.5. В ленточном способе отправка потока данных указывается посредством представления потока, который должен отправляться, как лента 705, где каждая позиция 710 вдоль X-оси ленты соответствует различной точке во времени в структуре кодированных блоков и где высота ленты всегда неизменна, к примеру, номинально высотой в единицу независимо от скорости кодированного исходного блока в этой точке времени в ленте. Отправка потока, представляемого посредством ленты, может указываться посредством перемещающейся линии 720(1), 720(2), которая идет сверху ленты 725 к низу ленты 730. В одном представлении перемещение линии 720(1), 720(2) во времени представляет порядок отправки данных из кодированных блоков потока. Каждая точка в ленте 740(1), 740(2), …, представляет фрагмент потоковых данных, который должен отправляться, например, каждая точка может представлять пакет кодированных символов для кодированного блока, или каждая точка может представлять отдельный кодированный символ для кодированного блока. Точки, которые находятся внутри области, соответствующей кодированному блоку 750(1), 750(2), …, представляют данные, которые ассоциированы с этим кодированным блоком.
Процесс отправки согласно ленточному способу отправки потоков представляется посредством перемещения линии 720(1), 720(2) через ленту во времени по мере того, как поток отправляется, и каждый раз, когда линия проходит через точку, данные потока, соответствующие этой точке, отправляются. Фиг.7 показывает линию в два различных момента времени в процессе отправки, где линия 720(1) является своей конфигурацией в первый момент времени, когда и линия 720(2) является своей конфигурацией во второй момент времени. Таким образом, процесс отправки отправляет все данные, ассоциированные с точками внутри области, ограниченной посредством 720(1), 720(2), 725 и 730, в течение интервала времени между первым моментом времени и вторым моментом времени. Распределение точек в рамках каждого кодированного блока предпочтительно равномерно распределяется в рамках ленточной области для этого кодированного блока согласно их весовому коэффициенту, к примеру распределяется произвольно или распределяется псевдослучайно, или распределяется детерминированно посредством процесса, который обеспечивает то, что точки распределяются равномерно согласно весовому коэффициенту каждой точки, где весовой коэффициент точки - это объем данных, представляемый посредством этой точки.
Как описано выше, линия 720 является прямой, но специалистам в данной области техники должно быть ясно, что есть много вариантов, к примеру линия может быть изогнутой или содержать последовательность последовательных линейных сегментов, и линия может изменять свою форму по мере того, как она перемещается в ходе процесса отправки. Также имеются другие варианты способа ленточной отправки, в том числе представление ленты так, что лента не имеет одинаковую высоту, а вместо этого ее высота варьируется согласно скорости потока в этой позиции 710 ленты.
Предусмотрены различные способы задания перемещения линии по ленте в ходе процесса отправки, как подробнее описано ниже.
Способы статического перемежения
Ленточный способ отправки потоков может использоваться для того, чтобы достигать статического перемежения любой глубины для любого типа потока содержимого или потока кодированного содержимого независимо от того, используется или нет FEC-кодирование и используется или нет структура исходных блоков. В качестве иллюстрации предполагается, что структура исходных блоков уже задана и что используется FEC-кодирование.
Один способ достижения статического перемежения данной величины с использованием ленточного способа отправки потоков описывается в качестве примера со ссылкой на фиг.7. В этом примере каждый кодированный блок перемежается на количество времени D с другими соседними кодированными блоками, т.е. глубина перемежения равна D. В этом примере при запрашивании потока приемник передает позицию X и значение для D. Затем процесс отправки в передатчике описывается посредством конфигурирования линии 720 так, что первоначально линия 720 пересекает нижнюю часть ленты 730 в позиции X-D, первоначально линия 720 пересекает верхнюю часть ленты 725 в позиции X, и затем процесс отправки перемещает линию 720 вперед во времени на такой же скорости, как скорость воспроизведения потока, т.е. во время t после начала процесса отправки линия 720 переместилась таким образом, что она пересекает нижнюю часть ленты 730 в позиции X-D+t, и линия 720 пересекает верхнюю часть ленты 725 в позиции X+t.
В этом описании способа статического перемежения, если способ используется для отправки нового запрашиваемого потока в приемник, то является предпочтительным, чтобы X находилось в позиции в потоке, где воспроизведение должно начинаться в приемнике, к примеру, X - это позиция начала кодированного блока, или X - это позиция начала GOP в видеопотоке, и начало кодированного блока совмещено с началом GOP. Кроме того, в этих случаях для передатчика предпочтительно вообще не отправлять данные до позиции X вдоль ленты в приемник, поскольку, в общем, приемник должен принимать только часть кодированных блоков и наиболее вероятно недостаточно полностью декодировать частично принимаемые кодированные блоки.
Фиг.8 - это иллюстративный чертеж, иллюстрирующий форму отправляемого потока, когда передатчик использует вышеописанный способ статического перемежения. В этом случае способ статического перемежения применяется к ленте, показанной на фиг.7, которая соответствует кодированному потоку, показанному на фиг.5. В этом примере приемник указывает значение X как позицию начала первого кодированного блока 750(1) на фиг.7, и, таким образом, в этом примере нет данных, которые должны отправляться, т.е. вдоль ленты до позиции X. В этом примере приемник также указывает значение для D, которое может быть таким значением, как 10 секунд. Результирующий поток, который отправляется посредством передатчика согласно этому процессу, выглядит так, как показано на фиг.8, где область 850(1), 850(2), …, является такой же, как область 405(1) плюс 510(1), 405(2) плюс 510(2), …, по фиг.5 соответственно. Отметим, что скорость отправки, как показано на фиг.8, является сглаженной версией скорости исходного содержимого, как показано на фиг.5.
Фиг.9 - это иллюстративный чертеж, показывающий время на переключение содержимого, испытываемое приемником, соответственно способу статического перемежения, описанному выше. Некоторые из компонентов времени 905 на переключение содержимого содержат время 910, которое приемнику требуется, чтобы принимать достаточно из первого кодированного блока потока для декодирования первого исходного блока, которое является суммой длительности исходного блока и глубины перемежения D, время, которое требуется приемнику, чтобы декодировать первый исходный блок из принимаемых частей первого кодированного блока 920, и время 930 буфера резервирования, зарезервированного для ожидаемой задержки из-за нарушения синхронизации в сети, изменений длительности исходного блока и времени декодирования исходных блоков из частей принимаемых кодированных блоков во время приема потока. Отметим, что, поскольку период защиты, который в данном случае составляет длительность исходного блока плюс глубина перемежения D, может быть гораздо большим, чем длительность исходного блока, время 905 на переключение содержимого может быть гораздо большим, чем длительность исходного блока, при использовании этого описанного способа.
Способы динамического перемежения
Ленточный способ отправки потоков может использоваться для того, чтобы достигать динамического перемежения в любом темпе любой глубины перемежения для любого типа потока содержимого или потока кодированного содержимого независимо от того, используется или нет FEC-кодирование и используется или нет структура исходных блоков. В качестве иллюстрации предполагается, что структура исходных блоков уже задана и что используется FEC-кодирование.
Один способ достижения динамического перемежения, начинающегося при отсутствии перемежения и идущего вплоть до данной глубины перемежения с использованием ленточного способа отправки потоков, описан в качестве примера со ссылкой на фиг.7. В типичном использовании этого способа первый кодированный блок отправляется с небольшим перемежением, и затем постепенно во времени последующие кодированные блоки плавно перемежаются все больше до тех пор, пока глубина перемежения D не достигается с другими соседними кодированными блоками. Другое использование этого способа также раскрывается ниже, и как понятно специалистам в данной области техники, также имеется множество других разновидностей. При этом примерном способе выражения параметров для способа, при запрашивании потока приемник передает начальную верхнюю позицию UL для линии 720, начальную нижнюю позицию LI для линии 720, конечную верхнюю позицию UF для линии 720, конечную нижнюю позицию LF для линии 720 и значение времени T. Для простоты далее предполагается, что UF≥UI, LF≥LI, UF≥LF, UI≥LI, T≥0. Как правило, предпочтительно иметь UF≥UI+T и LF≥LI+T, чтобы обеспечивать то, что данные в приемнике всегда доступны при необходимости. Как поясняется в примерах ниже, эти значения для UF, UI, LF, LI и T могут давать возможность плавного увеличения буфера резервирования содержимого в приемнике, поскольку перемежение динамически регулируется.
Способ отправки в передатчике реализует ленточный способ с использованием параметров LI, UI, LF, UF и T следующим образом. Во-первых, линия 720 по фиг.7 первоначально сконфигурирована во время отправки t=0 так, что первоначально линия 720 пересекает нижнюю часть ленты 730 в позиции LI, и первоначально линия 720 пересекает верхнюю часть ленты 725 в позиции UI, затем в течение времени отправки от t=0 до t=T линия 720 перемещается по ленте так, что во время t линия 720 пересекает нижнюю часть ленты 730 в позиции t*(LF-LI)/T+LI, и во время t линия 720 пересекает верхнюю часть ленты 725 в позиции t*(UF-UI)/T+UI. Затем, для всех времен отправки t>T, линия 720 перемещается через ленту так, что во время t линия 720 пересекает нижнюю часть ленты 730 в позиции t-T+LF, и во время t линия 720 пересекает верхнюю часть ленты 725 в позиции t-T+UF, т.е. для t>T перемежение является статическим, причем используется глубина перемежения D=UF-LF.
Способы динамического перемежения для новых запрашиваемых потоков
Одно примерное применение способа динамического перемежения состоит в том, чтобы отправлять новый запрашиваемый поток в приемник. В качестве примера, как показано на фиг.10, все начальные значения могут быть заданы равными одинаковому значению I=UI=LI, т.е. первоначально нет перемежения, и для позиции S, в которой приемник должен начинать воспроизведение потока содержимого, удовлетворяется S=I. Это обеспечивает то, что приемник отправил всю ленту содержимого с позиции S и далее. Как показано на фиг.10, предпочтительно S=UI=LI, где S - это позиция в потоке содержимого, в которой он может воспроизводиться, к примеру, S - это начало кодированного блока, начало которого совмещено с началом GOP. Кроме того, преимущественно, что T≤LF-S. Это обеспечивает то, что если приемник воспроизводит содержимое на скорости содержимого, то отправка содержимого выполняется на скорости, которая, по меньшей мере, не меньше скорости воспроизведения содержимого в приемнике, и время буфера резервирования R=LF-S-T секунд плавно увеличивается и длится по мере того, как статическое перемежение достигается во время отправки T с начала отправки в приемник, причем буфер резервирования может поглощать нарушение синхронизации в сети, варьирование длительностей исходных блоков и времени декодирования. Величина перемежения плавно возрастает от отсутствия перемежения до D=UF-LF секунд перемежения.
В качестве конкретного примера способа динамического перемежения предположим, что приемник осуществляет доступ к содержимому с самого начала, и что в установившемся режиме достигает 5-секундного буфера резервирования, и что глубина перемежения в 10 секунд требуется в установившемся режиме, и скорость отправки должна быть приблизительно на 10% больше скорости кодированного потока в течение периода времени, когда перемежение и буфер резервирования увеличиваются. В таком случае, возможные настройки для параметров следующие: S=UI=LI - требуемая начальная позиция, T=100 секунд, LF=S+T+5 секунд, и UF=LF+10 секунд. Таким образом, если скорость передачи потока содержимого равна 1 Мбит/с для этого примера и используется 10%-ная величина защиты, то скорость кодированного потока должна составлять 1,1 Мбит/с. Затем в течение первых 100 секунд отправки с помощью способа динамического перемежения с использованием настроек параметров, поясненных выше, скорость отправки должна составлять приблизительно 1,21 Мбит/с, поскольку 100+(5+15)/2=110 секунд потока отправляется в течение первых 100 секунд. После 100 секунд отправки буфер резервирования должен составлять 5 секунд, и глубина перемежения должна составлять 10, и в таком случае скорость отправки далее должна составлять 1,1 Мбит/с. За несколько секунд непосредственно перед тем, как будут достигнуты 100 секунд потоковой передачи, скорость отправки должна плавно переходить от скорости 1,21 Мбит/с к скорости 1,1 Мбит/с. Также следует отметить, что вначале скорость отправки следует скорости кодированного потока и плавно по мере того, как глубина перемежения и буфер резервирования увеличиваются, скорость отправки сглаживается и все более точно совпадает со средней скоростью кодированного потока.
Время на переключение содержимого, испытываемое на приемнике, соответственно способу динамического перемежения, описанному выше, описывается со ссылкой на фиг.11. Некоторые из компонентов времени 1105 на переключение содержимого содержат время 1110, которое требуется приемнику, чтобы принимать достаточно из первого кодированного блока потока для того, чтобы декодировать первый исходный блок, время, которое требуется приемнику, чтобы декодировать первый исходный блок из принимаемых частей первого кодированного блока 1120, и начальное время 1130 буфера резервирования, зарезервированное для ожидаемой задержки из-за нарушения синхронизации в сети, изменений длительности исходного блока и времен декодирования исходных блоков из частей принимаемых кодированных блоков во время приема потока.
Поскольку буфер резервирования увеличивается со временем при использовании динамического перемежения, начальное время 1130 буфера резервирования может быть гораздо меньшим при использовании динамического перемежения, чем имеет место, когда размер буфера резервирования является фиксированным для всей длительности отправки потока. Например, при использовании основного потокового передатчика размер буфера резервирования может быть задан равным двум секундам, чтобы буферизовать от долговременного нарушения синхронизации в сети вплоть до двух секунд, тогда как для способа отправки с динамическим перемежением начальное время 1130 буфера резервирования может быть гораздо меньшим, к примеру 200 миллисекунд, поскольку, вероятно, будет небольшое нарушение синхронизации в сети в течение первых нескольких секунд отправки потока и к тому времени буфер резервирования существенно увеличился.
Поскольку период защиты для каждого исходного блока постепенно увеличивается при использовании динамического перемежения, начальная длительность исходного блока может быть гораздо меньшей при использовании динамического перемежения, чем когда период защиты - это длительность исходного блока для всей длительности отправки потока. Например, при использовании основного потокового передатчика длительность исходного блока может быть задана равной пяти секундам, а величина защиты может быть задана равной 20%, чтобы защищать от коротких потерь при передаче пакетов в 500 миллисекунд, тогда как при способе отправки с динамическим перемежением длительность исходного блока может быть гораздо короче, к примеру 500 миллисекунд, и величина защиты может быть задана гораздо меньшей, к примеру 5%, чтобы предоставлять такой же уровень защиты от таких пакетов, поскольку маловероятно, что этот пакет возникает в течение первых нескольких секунд отправки потока, и к тому времени период защиты существенно увеличился, например, до первоначальной длительности исходного блока плюс 10 секунд глубины перемежения, чтобы защищать от таких пакетов.
Таким образом, в целом, при использовании способа динамического перемежения время на переключение содержимого может быть небольшим, к примеру, время на переключение содержимого менее чем 1 секунда, в сравнении с несколькими секундами при использовании основного способа отправки потока при тех же самых характеристиках сети, и при этом способы динамического перемежения могут предоставлять превосходную долговременную защиту от нарушения синхронизации в сети и потерь при пакетной передаче.
Предусмотрено множество вариантов того, как могут задаваться параметры. Например, вместо этого можно указывать начальную исходную позицию на ленте, начальную величину перемежения, конечную величину перемежения и период времени, за который следует плавно переходить от начального перемежения к конечному перемежению. Альтернативно, вместо задания периода времени, за который следует плавно переходить от начального перемежения к конечному перемежению, можно указывать скорость относительно скорости потоковой передачи содержимого, на которой выполнять переход. В качестве еще одного примера варианта дополнительные параметры могут быть известны передатчику или указываться посредством приемника, к примеру, приемник может явно передавать в служебных сигналах начальную позицию S, с которой приемник должен начинать воспроизведение содержимого.
Предусмотрено множество вариантов способов динамического перемежения, как должно быть понятно специалистам в данной области техники. Например, передатчик может решать, отфильтровывать и не отправлять некоторые из кодированных данных из некоторых или всех кодированных блоков в отдельные приемники, например, поскольку эти приемники не испытывают существенные потери. В качестве еще одного варианта структура исходных блоков может быть заранее определенной, но по мере того как процесс отправки осуществляется, FEC-кодирование осуществляется, чтобы формировать кодированные блоки для отдельных приемников или иногда формировать большое количество исправляющих символов для некоторых кодированных блоков, поскольку встречены приемники, которые требуют больших величин защиты, чем предшествующие приемники.
В качестве еще одного варианта, который зачастую является более предпочтительным, приемник может управлять заданием начальных параметров для способов динамического перемежения, и сервер или набор серверов может определять конечные целевые параметры для способов динамического перемежения. Например, приемник может указывать, что поток содержимого должен запускаться с глубиной перемежения в 2 секунды и буфером резервирования в 1 секунду, и сервер затем может определять, что он должен выполнять отправку таким образом, что глубина перемежения в 20 секунд с буфером резервирования в 10 секунд достигается за первые 2 минуты отправки. Одно преимущество управления посредством сервера или серверов конечными параметрами для способов динамического перемежения состоит в том, что гораздо проще поддерживать прямую потоковую передачу, когда части потока содержимого за рамками текущего времени недоступны, и таким образом сервер может управлять параметрами динамического перемежения до конечного значения, которое работает при данных ограничениях. В качестве еще одного примера преимущества наличия серверов, задающих конечные параметры в том, что сервер может в некоторых случаях регулировать параметры для нескольких клиентов, обслуживаемых согласно одному потоку содержимого фактически с одной позиции в рамках потока, таким образом, что в конечном счете множество из приемников управляются до достижения одних и тех же конечных параметров, что приводит к эффективной отправке пакетов посредством сервера в эти приемники, поскольку в одной точке во времени один пакет должен отправляться из потока содержимого во все эти приемники.
Способы динамического перемежения для смен сегментов содержимого
Одно примерное использование способа динамического перемежения - это когда приемник переходит от одного сегмента содержимого к следующему сегменту содержимого в списке сегментов содержимого, например, когда переходит от сегмента эпизода шоу к рекламе и затем обратно к следующему сегменту шоу, причем все переходы осуществляются вообще без взаимодействия с приемником. Различные сегменты содержимого могут отправляться посредством различных передатчиков, к примеру сегменты эпизода шоу могут отправляться в приемник посредством сервера содержимого, тогда как промежуточные рекламные ролики могут отправляться в приемник посредством рекламных серверов.
Первый пример - это когда приемник просматривал первый сегмент содержимого, который отправляется посредством первого передатчика с помощью способов динамического перемежения, описанных выше, и первый передатчик отправлял в течение достаточно длительного времени для того, чтобы достигались полная глубина перемежения D и время буфера резервирования R. Далее плавный переход ко второму сегменту содержимого может осуществляться следующим образом при использовании способа динамического перемежения:
1. За D+R секунд перед окончанием отправки первого сегмента содержимого, скорость отправки для первого сегмента должна линейно снижаться со скорости кодированного потока до нуля за период в D секунд, и в этой точке первый передатчик должен прекращать отправку первого сегмента.
2. За D+R секунд перед тем, как первый сегмент содержимого завершает воспроизведение, приемник запрашивает второй сегмент содержимого из второго сервера с параметрами UL=0, LI=-D, UF=0, LF=-D, T=0. При условии отсутствия времени задержки в сети второй сервер должен начинать отправку потока для второго сегмента содержимого, увеличивая скорость линейно в течение первых D секунд отправки, и после этого отправка выполняется на скорости кодированного потока.
3. Когда первый сегмент содержимого заканчивает воспроизведение, буфер резервирования для второго содержимого увеличился до R секунд и глубина перемежения увеличилась до D секунд. В данный момент воспроизведение второго содержимого может быть запущено.
Таким образом, переход от первого сегмента содержимого ко второму сегменту содержимого поддерживает скорость приема в приемнике равной скорости кодированного потока, т.е. в то время, когда скорость отправки для первого сегмента содержимого линейно снижается, скорость отправки для второго сегмента содержимого линейно повышается таким образом, что комбинированная скорость в ходе перехода такова, как если бы отправлялся один сегмент содержимого непрерывно. Кроме того, защита буфера резервирования и защита перемежения для второго потока является такой же, как для первого потока в установившемся режиме. На Фиг.12 приведена иллюстрация этого.
Даже если время немного сдвинуто при начале отправки потока для второго сегмента содержимого по сравнению с окончанием отправки первого сегмента содержимого, поскольку снижающиеся скорости и повышающиеся скорости являются плавно линейными, чистая ошибка скорости потоковой передачи незначительна. Например, если имеется ошибка на 500 миллисекунд в синхронизации перехода между двумя потоками и глубина перемежения составляет 10 секунд, то ошибка в скорости потоковой передачи самое большее равна 5%. Это также означает, что параметры для второго сегмента содержимого могут быть заданы немного более консервативно, чем описано выше, т.е. таким образом, что они пытаются немного больше увеличивать буфер резервирования и время перемежения вместо простой попытки сохранять эти значения такими же, как для первого потока, и последующее увеличение комбинированной скорости потоковой передачи в течение смены сегмента содержимого будет незначительным.
Второй пример смены сегмента содержимого соответствует тому, когда приемник просматривал первый сегмент содержимого, который отправляется посредством первого передатчика с использованием способов динамического перемежения, описанных выше, но первый передатчик не отправлял в течение достаточно длительного времени для того, чтобы достигались полная глубина перемежения D и время буфера резервирования R. Далее плавный переход ко второму сегменту содержимого может осуществляться следующим образом при использовании способа динамического перемежения, причем в этом случае то, что делает приемник, это задает параметры и запрашивает второй поток таким образом, что переход от первого потока ко второму потоку выполняется, как если бы эти два сегмента содержимого конкатенировались вместе и отправлялись посредством одного сервера. Специалистам в данной области техники могут быть понятны подробности того, как достичь этого типа перехода с использованием способов динамического перемежения.
Третий пример смены сегмента содержимого соответствует тому, когда приемник просматривал первый сегмент содержимого, который отправляется посредством первого передатчика с использованием способов динамического перемежения, описанных выше, и затем есть интервал между периодом времени между тем, когда воспроизведение первого сегмента содержимого завершается в приемнике и воспроизведение второго сегмента содержимого должно начинаться. Например, это может быть желательным режимом, когда есть первый сегмент эпизода передачи, который завершает воспроизведение, за которым следует непотоковая реклама, например, длительностью в 30 секунд, за которой следует мгновенное воспроизведение второго сегмента содержимого эпизода передачи. В этом случае способы динамического перемежения могут использоваться следующим образом, для простоты предполагая, что первый сегмент содержимого отправлялся в приемник довольно долго для того, чтобы достигались полная глубина перемежения D и время буфера резервирования R. В этом случае, как имело место для первого примера выше, приемник отправляет запрос на предмет второго сегмента содержимого за D+R секунд до окончания воспроизведения первого сегмента содержимого с параметрами UI=0, LI=-D, UF=0, LF=-D, T=0. Это заставляет второй сервер начинать отправку второго сегмента содержимого на такой скорости, что, когда комбинируется со скоростью первого сегмента содержимого, отправляемого из первого сервера, полная скорость - это скорость отправки одного потока. Затем, только в то время, когда первый сегмент содержимого заканчивает воспроизведение в приемнике, приемник сигнализирует второму серверу завершать отправку потока для второго сегмента содержимого и скорость отправки в приемник сразу снижается до нуля. Затем возникает промежуток, например, в течение 30 секунд. В конце промежутка приемник сразу начинает воспроизведение второго сегмента содержимого и одновременно отправляет запрос на начало отправки во второй сервер на предмет второго содержимого с параметрами UI=D+R, LI=R, UF=D+R, LF=R, T=0. Это заставляет второй сервер продолжать отправку второго содержимого с момента, где он закончил непосредственно перед промежутком. Общим эффектом является мгновенное воспроизведение второго содержимого в назначенное время, при этом одновременно комбинированная скорость отправки в приемник во всех точках в течение перехода является такой же, как скорость одного кодированного потока в ходе воспроизведения этих двух сегментов содержимого, и скорость отправки равна нулю, когда ни один из этих двух сегментов содержимого не воспроизводится. Фиг.13 иллюстрирует данный случай.
Предусмотрено множество других применений и вариантов способов динамического перемежения, описанных выше, как должны признавать специалисты в данной области техники.
Способы доставки на основе подпотоков
Доставка на основе подпотоков - это способы для взятия FEC-кодированного потока и секционирования его на подпотоки так, что, например, приблизительно равное количество каждого кодированного блока включается в каждый подпоток. Например, кодированный поток может быть секционирован на 40 подпотоков, при этом каждый подпоток состоит приблизительно из 5% каждого исходного блока, и тем самым в этом примере величина исправляющих данных, формируемых для каждого исходного блока при использовании FEC-кодирования, приблизительно равна размеру исходного блока. Если обобщить, когда FEC-кодирование применяется к каждому исходному блоку и затем применяется доставка на основе подпотоков, то полные кодированные данные для каждого исходного блока секционируются на подпотоки так, что приблизительно равная величина кодирования каждого исходного блока включается в каждый подпоток, при этом кодированные данные каждого исходного блока содержат первоначальные данные каждого исходного блока плюс сформированные исправляющие данные, если FEC-кодирование является систематическим, и при этом кодированные данные каждого исходного блока могут содержать исправляющие данные, если FEC-кодирование не является систематическим.
Одна из основных идей доставки на основе подпотоков состоит в том, чтобы отправлять подпотоки для потока по потенциально различным трактам и через потенциально различные серверы, чтобы достигать ряда желательных целей. В качестве примера, может быть предусмотрен сервер, далее называемый центральным сервером (HES), который захватывает поток содержимого в систему доставки на основе подпотоков, при этом некоторые из процессов, которые выполняет HES, заключаются в том, чтобы создавать структуру исходных блоков для потока содержимого, FEC-кодировать поток, секционировать кодированный поток на подпотоки и затем отправлять подпотоки в другие серверы, далее называемые распределенными серверами (DS), которые могут быть распределены в пределах различных центров обработки и хранения данных или в пределах различных сетевых пунктов. Пример этого можно видеть на фиг.14. На фиг.14, каждый из DS 1430 принимает различный сегмент потока 1420 кодированного содержимого от HES 1410. Некоторые из процессов, которые выполняет DS, включают в себя кэширование подпотоков потоков содержимого по мере того, как они проходят на пути в приемники, чтобы принимать запрос на подпотоки из конкретных потоков содержимого от приемников и отправлять подпотоки в приемники, например, на основе запросов приемника на предмет конкретных подпотоков или на основе подписок приемника. Частный случай передачи подпотоков содержит первоначальный кодированный поток, который не секционируется дополнительно.
Приемники в системе доставки на основе подпотоков могут запрашивать и принимать подпотоки для одного сегмента содержимого, начинающегося в одной начальной позиции, при этом запросы могут отправляться в различные DS для различных подпотоков, и в этом случае несколько различных подпотоков для одного кодированного потока с одной начальной позицией могут отправляться из различных DS в один приемник. Пример этого можно видеть на фиг.15. На фиг.15, приемник 1530 запрашивает поток содержимого из различных DS 1510, 1520. В этом случае один из DS 1520 не реагирует на запрос от приемника, тогда как другие DS 1510 отправляют подпотоки в приемник. Может быть возможным для приемника полностью восстанавливать поток содержимого с использованием FEC-кодирования, если реагирующие DS передают достаточно данных в приемник, чтобы сделать это.
В качестве примера первоначальный поток содержимого в 1 Мбит/с может быть захвачен в HES, HES формирует структуру исходных блоков по мере того, как поток содержимого проходит, и добавляет столько исправляющих данных, сколько имеется исходных данных в первоначальном потоке (100%-ное исправление), секционирует кодированный поток в 2 Мбит/с на подпотоки по 100 кбит/с и отправляет результирующие 20 подпотоков в 20 различных DS. Приемник, который хочет воспроизводить поток содержимого, начиная с конкретной позиции внутри потока, может отправлять запрос в 12 из этих 20 DS, запрашивая подпоток, который DS имеет для содержимого, начинающегося в указанной исходной позиции. В ответ все 12 из DS одновременно отправляют подпоток, который они имеют для кодированного потока, в приемник, начиная с указанной начальной точки, и таким образом каждый из этих 12 DS отправляет на скорости 100 кбит/с в приемник, так что полная скорость составляет 1,2 Мбит/с.
Есть несколько преимуществ системы доставки на основе подпотоков, описанной выше, некоторые или все из которых могут быть найдены в вариантах осуществления настоящего изобретения, включая 1) естественную компенсацию нагрузки содержимого, смешивая популярное и не очень популярное, с преимуществами естественной компенсации нагрузки для обслуживания пропускной способности и емкости хранения на серверах, 2) устойчивость к сбоям в тракте, т.е. один тракт выходит из строя, и при этом есть достаточно данных, которые приемник принимает из других трактов, так что поток содержимого по-прежнему может полностью восстанавливаться с помощью FEC-декодирования, 3) устойчивость к сбоям DS, сбоям дисков DS и т.д., 4) отправка данных из нескольких DS в сравнении с одним сервером предоставляет большую вероятность того, что совокупная скорость отправки сохранится в приемнике и не будет зависания буфера в приемнике. Это, в частности, имеет место, если TCP или HTTP используются для того, чтобы отправлять подпотоки в приемник из DS, но правда даже в том случае, если UDP используется для того, чтобы отправлять подпоток в приемник из DS, и 5) элементы, отказы которых приводят к отказу всей системы, располагаются на входе в HES и в приемник, а не в другом месте.
Комбинирование способов динамического перемежения и способов доставки на основе подпотоков
Способы динамического перемежения и способы доставки на основе подпотоков, описанные в данном документе, могут быть комбинированы для существенной выгоды, т.е. все преимущества обоих способов находятся в комбинированном решении. Например, при использовании способов динамического перемежения структура исходных блоков и FEC-кодирование для потока содержимого могут выполняться посредством HES по мере того, как поток содержимого захватывается в систему. Способы подпотока могут использоваться для того, чтобы формировать подпотоки FEC-кодированного потока в HES, и эти подпотоки затем могут отправляться в различные DS для хранения. Когда приемник хочет принимать поток содержимого с конкретной позиции внутри потока, приемник может отправлять соответствующие параметры динамического перемежения во все DS, отправляющие подпоток в приемник, и DS должны отправлять подпотоки согласно этим параметрам в приемник. Приемник может объединять пакеты из подпотоков для исходных блоков, чтобы воссоздавать поток исходного содержимого для воспроизведения. Способы динамического перемежения дают возможность буферу резервирования и глубине перемежения увеличиваться в ходе потоковой передачи, предоставляя превосходную защиту от потерь при пакетной передаче и нарушения синхронизации в сети, при этом одновременно предоставляя для приемника малое время на переключение каналов. DS в этом примерном решении не должны выполнять FEC-кодирование, и тем не менее они могут доставлять поток содержимого в приемник по распределенным трактам из различных частей сети, таким образом повышая диверсификацию серверов и диверсификацию трактов доставки, тем самым увеличивая надежность и устойчивость к сбоям серверов и сети.
Кроме того, величина защиты для каждого исходного блока может быть существенно выше между HES и DS в этом примере, чем между DS и приемником. Например, 20 подпотоков могут быть сформированы и отправлены из HES в 20 DS, тогда как только 10 подпотоков могут быть необходимы для того, чтобы восстанавливать поток исходного содержимого (величина защиты 100%), тогда как приемник может запрашивать только, например, 12 подпотоков от 12 из этих 20 DS, т.е. 20%-ная величина защиты, которая дает возможность приемнику по-прежнему иметь возможность восстанавливать поток исходного содержимого, даже если один из DS выходит из строя, и возникает до 10% потерь пакетов в целом по всем трактам из оставшихся 11 DS, из которых приемник принимает подпотоки.
Примерное решение, поясненное выше, имеет дополнительное свойство, состоящее в том, что с помощью надлежащей логики, включенной в приемник, который имеет список более 12 из 20 DS, когда один из 12 DS, из которых приемник принимает подпоток, выходит из строя, приемник может автоматически обнаруживать это и запрашивать другой подпоток из одного из других DS, из которых приемник в настоящий момент не принимает подпоток, тем самым повышая надежность потока от приема 11 подпотоков снова до приема 12 подпотоков из 12 различных DS.
Изменения в способах, требуемые для того, чтобы комбинировать способы динамического перемежения и способы подпотока, являются относительно незначительными. Например, способы для распределения точек данных в пределах кодированного блока для определения времени отправки для способов динамического перемежения должны быть дополнены таким образом, чтобы каждый DS мог принимать решения относительно того, как распределять данные, которые он имеет для каждого подпотока в рамках кодированного блока, равномерно по области кодированного блока в пределах ленты кодированного потока (см. фиг.7). Решения, принимаемые посредством DS, чтобы равномерно распределять данные, могут осуществляться независимо от решений, принимаемых посредством других DS, так чтобы совокупное распределение данных из всех подпотоков в рамках кодированного блока от всех DS, отправляющих в приемник, являлось достаточно равномерным в области кодированных блоков в пределах ленты кодированного потока (см. фиг.7).
В качестве еще одного примера изменений способов, требуемых для их комбинирования, является предпочтительным расширять информацию, отправляемую с каждым пакетом так, что, когда приемник указывает конкретную позицию в рамках потока для DS, которые должны отправлять его подпотоки, все DS могут интерпретировать конкретную позицию для подпотока, который они должны отправлять в приемник способом, согласованным с интерпретацией всех других DS, отправляющих подпоток для того же самого содержимого в приемник. Как должны признавать специалисты в данной области техники, эти и потенциально еще несколько других незначительных изменений дают возможность комбинировать способы перемежаемой потоковой передачи и способы доставки на основе подпотоков для существенной выгоды.
Хотя изобретение описано относительно примерных вариантов осуществления, специалистам в данной области техники должно быть понятно, что возможны многочисленные модификации на основе данного раскрытия сущности изобретения. Например, процессы, описанные в данном документе, могут реализовываться с помощью аппаратных компонентов, программных компонентов и/или любой комбинации вышеозначенного. Таким образом, хотя изобретение описано относительно примерных вариантов осуществления, следует принимать во внимание, что изобретение имеет намерение охватывать все модификации и эквиваленты в рамках объема прилагаемой формулы изобретения.
Claims (17)
1. Способ передачи потока содержимого в системе связи, включающей в себя, по меньшей мере, один передатчик и, по меньшей мере, один приемник, причем способ содержит этапы, на которых:
формируют соединение между приемником и первым передатчиком;
принимают в приемнике первый поток содержимого, передаваемый от первого передатчика, при этом первый поток содержимого содержит начальную величину перемежения; и
регулируют величину перемежения, содержащегося в первом потоке содержимого, во время передачи первого потока содержимого, независимо от структуры исходных блоков первого потока содержимого, увеличивая величину перемежения от начальной величины перемежения, на основании текущей позиции передачи в первом потоке содержимого.
формируют соединение между приемником и первым передатчиком;
принимают в приемнике первый поток содержимого, передаваемый от первого передатчика, при этом первый поток содержимого содержит начальную величину перемежения; и
регулируют величину перемежения, содержащегося в первом потоке содержимого, во время передачи первого потока содержимого, независимо от структуры исходных блоков первого потока содержимого, увеличивая величину перемежения от начальной величины перемежения, на основании текущей позиции передачи в первом потоке содержимого.
2. Способ по п.1, в котором начальная величина перемежения в первом потоке содержимого сконфигурирована так, что в первом потоке содержимого нет начального перемежения.
3. Способ по п.1, в котором величина перемежения в первом потоке содержимого регулируется от начальной величины до величины установившегося режима.
4. Способ по п.3, в котором перемежение в первом потоке содержимого линейно переходит между начальной величиной и величиной установившегося режима.
5. Способ по п.1, в котором величина перемежения, содержащегося в первом потоке содержимого, регулируется как функция от времени.
6. Способ по п.1, в котором величина перемежения, содержащегося в первом потоке содержимого, регулируется как функция от разности между скоростью воспроизведения первого потока содержимого и скоростью передачи первого потока содержимого.
7. Способ по п.1, в котором величина перемежения, содержащегося в первом потоке содержимого, регулируется как функция от величины потери данных, испытываемой в приемнике.
8. Способ по п.1, в котором структура исходных блоков первого потока содержимого не изменяется во время передачи первого потока содержимого.
9. Способ по п.1, дополнительно содержащий этап, на котором:
компонуют буфер резервирования содержимого из первого потока содержимого.
компонуют буфер резервирования содержимого из первого потока содержимого.
10. Способ по п.9, в котором буфер резервирования компонуется одновременно с любыми регулированиями, выполняемыми для величины перемежения в первом потоке содержимого.
11. Способ по п.1, дополнительно содержащий этапы, на которых:
формируют второе соединение между приемником и вторым передатчиком;
принимают в приемнике второй поток содержимого, передаваемый от второго передатчика, соединенного с приемником, при этом второй поток содержимого содержит начальную величину перемежения;
регулируют величину перемежения, содержащегося во втором потоке содержимого, доставляемом в приемник, во время передачи второго потока содержимого, независимо от структуры исходных блоков второго потока содержимого; и
переходят между первым потоком содержимого и вторым потоком содержимого таким образом, что сохраняется примерный уровень совокупной скорости передачи потоков содержимого.
формируют второе соединение между приемником и вторым передатчиком;
принимают в приемнике второй поток содержимого, передаваемый от второго передатчика, соединенного с приемником, при этом второй поток содержимого содержит начальную величину перемежения;
регулируют величину перемежения, содержащегося во втором потоке содержимого, доставляемом в приемник, во время передачи второго потока содержимого, независимо от структуры исходных блоков второго потока содержимого; и
переходят между первым потоком содержимого и вторым потоком содержимого таким образом, что сохраняется примерный уровень совокупной скорости передачи потоков содержимого.
12. Способ по п.11, в котором переход между первым потоком содержимого и вторым потоком содержимого выполняется во времени как функция от величины перемежения, содержащегося в этих двух потоках.
13. Способ передачи потока содержимого в передатчике, который передает данные по каналу, причем способ содержит этапы, на которых:
формируют соединение между передатчиком и приемником;
отправляют в приемник поток содержимого, при этом поток содержимого содержит начальную величину перемежения; и
регулируют величину перемежения, содержащегося в потоке содержимого, во время передачи потока содержимого, независимо от структуры исходных блоков потока содержимого, увеличивая величину перемежения от начальной величины перемежения, на основании текущей позиции передачи в потоке содержимого.
формируют соединение между передатчиком и приемником;
отправляют в приемник поток содержимого, при этом поток содержимого содержит начальную величину перемежения; и
регулируют величину перемежения, содержащегося в потоке содержимого, во время передачи потока содержимого, независимо от структуры исходных блоков потока содержимого, увеличивая величину перемежения от начальной величины перемежения, на основании текущей позиции передачи в потоке содержимого.
14. Способ приема потока содержимого в приемнике, который принимает данные по каналу, причем способ содержит этапы, на которых:
формируют соединение между приемником и передатчиком;
принимают поток содержимого, передаваемый от передатчика, при этом поток содержимого содержит начальную величину перемежения, которая может регулироваться во время передачи потока содержимого независимо от структуры исходных блоков потока содержимого,
увеличивают величину перемежения от начальной величины перемежения на основании текущей позиции передачи в потоке содержимого.
формируют соединение между приемником и передатчиком;
принимают поток содержимого, передаваемый от передатчика, при этом поток содержимого содержит начальную величину перемежения, которая может регулироваться во время передачи потока содержимого независимо от структуры исходных блоков потока содержимого,
увеличивают величину перемежения от начальной величины перемежения на основании текущей позиции передачи в потоке содержимого.
15. Способ передачи потока содержимого в системе связи, включающей в себя, по меньшей мере, один передатчик и, по меньшей мере, один приемник, причем способ содержит этапы, на которых:
формируют соединение между приемником и множеством передатчиков;
принимают в приемнике поток содержимого, передаваемый от множества передатчиков, при этом каждый передатчик передает различный подпоток содержимого в потоке содержимого в приемник, и каждый подпоток содержимого содержит начальную величину перемежения; и
регулируют величину перемежения, содержащегося в каждом подпотоке содержимого во время передачи подпотоков содержимого, независимо от структуры исходных блоков подпотоков содержимого, увеличивая величину перемежения в каждом подпотоке содержимого от начальной величины перемежения, на основании текущей позиции передачи в каждом подпотоке содержимого.
формируют соединение между приемником и множеством передатчиков;
принимают в приемнике поток содержимого, передаваемый от множества передатчиков, при этом каждый передатчик передает различный подпоток содержимого в потоке содержимого в приемник, и каждый подпоток содержимого содержит начальную величину перемежения; и
регулируют величину перемежения, содержащегося в каждом подпотоке содержимого во время передачи подпотоков содержимого, независимо от структуры исходных блоков подпотоков содержимого, увеличивая величину перемежения в каждом подпотоке содержимого от начальной величины перемежения, на основании текущей позиции передачи в каждом подпотоке содержимого.
16. Способ по п.15, в котором структура исходных блоков подпотоков содержимого не изменяется во время передачи подпотоков содержимого.
17. Способ по п.15, в котором величина перемежения, содержащегося в каждом подпотоке содержимого, является независимой от величины перемежения, содержащегося в других подпотоках содержимого.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US91214507P | 2007-04-16 | 2007-04-16 | |
US60/912,145 | 2007-04-16 | ||
US12/103,605 | 2008-04-15 | ||
US12/103,605 US9178535B2 (en) | 2006-06-09 | 2008-04-15 | Dynamic stream interleaving and sub-stream based delivery |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009141988A RU2009141988A (ru) | 2011-05-27 |
RU2440670C2 true RU2440670C2 (ru) | 2012-01-20 |
Family
ID=39854876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009141988/08A RU2440670C2 (ru) | 2007-04-16 | 2008-04-16 | Динамическое перемежение потоков и доставка на основе подпотоков |
Country Status (13)
Country | Link |
---|---|
US (1) | US9178535B2 (ru) |
EP (1) | EP2145390B1 (ru) |
JP (3) | JP5096560B2 (ru) |
KR (2) | KR101290965B1 (ru) |
CN (1) | CN101675594B (ru) |
AU (1) | AU2008242911B2 (ru) |
BR (1) | BRPI0810142A2 (ru) |
CA (1) | CA2681730A1 (ru) |
IL (1) | IL201147A0 (ru) |
MX (1) | MX2009011094A (ru) |
RU (1) | RU2440670C2 (ru) |
UA (1) | UA94811C2 (ru) |
WO (1) | WO2008131023A1 (ru) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
JP4546246B2 (ja) | 2002-10-05 | 2010-09-15 | デジタル ファウンテン, インコーポレイテッド | 連鎖的暗号化反応の系統的記号化および復号化 |
CN1954501B (zh) | 2003-10-06 | 2010-06-16 | 数字方敦股份有限公司 | 通过通信信道接收从源发射的数据的方法 |
EP1743431A4 (en) | 2004-05-07 | 2007-05-02 | Digital Fountain Inc | SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES |
CN101686107B (zh) | 2006-02-13 | 2014-08-13 | 数字方敦股份有限公司 | 使用可变fec开销和保护周期的流送和缓冲 |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
US7971129B2 (en) | 2006-05-10 | 2011-06-28 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9209934B2 (en) * | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9237101B2 (en) | 2007-09-12 | 2016-01-12 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
US20100042885A1 (en) * | 2008-08-15 | 2010-02-18 | Srinivasa Dharmaji | Method and Apparatus for Maximizing Wireless Bandwidth During Ad Transmission with Forward Error Correction (FEC) |
US7818445B2 (en) * | 2008-10-15 | 2010-10-19 | Patentvc Ltd. | Methods and devices for obtaining a broadcast-like streaming content |
US20100094971A1 (en) * | 2008-10-15 | 2010-04-15 | Patentvc Ltd. | Termination of fragment delivery services from data centers participating in distributed streaming operations |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US8296624B2 (en) | 2009-06-30 | 2012-10-23 | Comcast Cable Communications, Llc | Variable interleave data transmission |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
CN102088331B (zh) * | 2009-12-03 | 2015-01-14 | 株式会社Ntt都科摩 | 一种数据传输方法及网络节点 |
CN102195743B (zh) * | 2010-03-17 | 2013-08-21 | 清华大学 | 动态实时喷泉码编码方案 |
US8228817B2 (en) * | 2010-04-06 | 2012-07-24 | Via Telecom, Inc. | Quality of service control of reverse traffic channel for a mobile communication device |
US20110280311A1 (en) | 2010-05-13 | 2011-11-17 | Qualcomm Incorporated | One-stream coding for asymmetric stereo video |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups for network streaming of coded multimedia data |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US9276989B2 (en) * | 2012-03-30 | 2016-03-01 | Adobe Systems Incorporated | Buffering in HTTP streaming client |
KR101983032B1 (ko) | 2012-05-07 | 2019-05-30 | 삼성전자주식회사 | 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 |
US9136958B2 (en) * | 2012-06-22 | 2015-09-15 | Qualcomm Incorporated | Methods and apparatus for providing hybrid unicast broadcast services |
CN102869003A (zh) * | 2012-08-28 | 2013-01-09 | 中兴通讯股份有限公司 | 一种异构网络下业务内容分发的方法、业务管理平台 |
US10735486B2 (en) | 2012-12-28 | 2020-08-04 | Qualcomm Incorporated | Device timing adjustments and methods for supporting dash over broadcast |
US9037679B2 (en) * | 2012-12-31 | 2015-05-19 | Futurewei Technologies, Inc. | Efficient high availability storage systems |
US9673841B2 (en) * | 2013-03-15 | 2017-06-06 | Quanta Computer, Inc. | Error-correcting code |
US9363131B2 (en) | 2013-03-15 | 2016-06-07 | Imagine Communications Corp. | Generating a plurality of streams |
US9596281B2 (en) * | 2014-03-18 | 2017-03-14 | Qualcomm Incorporated | Transport accelerator implementing request manager and connection manager functionality |
US10692111B1 (en) * | 2014-04-25 | 2020-06-23 | Google Llc | Systems and methods for reducing online content delivery latency |
CN105338376A (zh) * | 2014-08-15 | 2016-02-17 | 中国电信股份有限公司 | 一种流媒体码率的控制方法、系统及流媒体服务器 |
US9923970B2 (en) * | 2014-08-22 | 2018-03-20 | Nexenta Systems, Inc. | Multicast collaborative erasure encoding and distributed parity protection |
EP4318466A3 (en) * | 2014-09-04 | 2024-03-13 | Sony Group Corporation | Transmission device, transmission method, reception device and reception method |
KR101678743B1 (ko) * | 2014-11-26 | 2016-11-22 | 건국대학교 산학협력단 | 분산 멀티미디어 스트리밍 서비스 제공 시스템 및 이의 동작 방법 |
US20160248829A1 (en) * | 2015-02-23 | 2016-08-25 | Qualcomm Incorporated | Availability Start Time Adjustment By Device For DASH Over Broadcast |
US10033483B2 (en) | 2015-05-18 | 2018-07-24 | Microsoft Technology Licensing, Llc | Adjustable interleaving for communication data |
EP3185455A1 (en) * | 2015-12-21 | 2017-06-28 | Thomson Licensing | Method and apparatus for detecting packet loss in staggercasting |
DE102016004172B4 (de) * | 2016-04-11 | 2018-06-14 | Exaring Ag | Verfahren zum Umschalten zwischen digitalen Fernsehsignalen |
US9825801B1 (en) | 2016-07-22 | 2017-11-21 | Spotify Ab | Systems and methods for using seektables to stream media items |
US10296265B2 (en) * | 2016-12-09 | 2019-05-21 | International Business Machines Corporation | Reduced data access time on tape with data redundancy |
US10291783B2 (en) * | 2016-12-30 | 2019-05-14 | Akamai Technologies, Inc. | Collecting and correlating microphone data from multiple co-located clients, and constructing 3D sound profile of a room |
US11019123B2 (en) | 2018-06-22 | 2021-05-25 | International Business Machines Corporation | Multi-bitrate component sharding |
US11083961B2 (en) | 2018-12-21 | 2021-08-10 | Universal City Studios Llc | Scalable interactive video systems and methods |
JP7482098B2 (ja) | 2021-09-30 | 2024-05-13 | Kddi株式会社 | 複数のストリームを使用してデータを送受信する通信装置及びプログラム |
Family Cites Families (551)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3909721A (en) | 1972-01-31 | 1975-09-30 | Signatron | Signal processing system |
US4365338A (en) | 1980-06-27 | 1982-12-21 | Harris Corporation | Technique for high rate digital transmission over a dynamic dispersive channel |
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US4589112A (en) | 1984-01-26 | 1986-05-13 | International Business Machines Corporation | System for multiple error detection with single and double bit error correction |
US4901319A (en) * | 1988-03-18 | 1990-02-13 | General Electric Company | Transmission system with adaptive interleaving |
GB8815978D0 (en) | 1988-07-05 | 1988-08-10 | British Telecomm | Method & apparatus for encoding decoding & transmitting data in compressed form |
US5136592A (en) | 1989-06-28 | 1992-08-04 | Digital Equipment Corporation | Error detection and correction system for long burst errors |
US5421031A (en) | 1989-08-23 | 1995-05-30 | Delta Beta Pty. Ltd. | Program transmission optimisation |
US7594250B2 (en) | 1992-04-02 | 2009-09-22 | Debey Henry C | Method and system of program transmission optimization using a redundant transmission sequence |
US5701582A (en) | 1989-08-23 | 1997-12-23 | Delta Beta Pty. Ltd. | Method and apparatus for efficient transmissions of programs |
US5329369A (en) | 1990-06-01 | 1994-07-12 | Thomson Consumer Electronics, Inc. | Asymmetric picture compression |
US5455823A (en) | 1990-11-06 | 1995-10-03 | Radio Satellite Corporation | Integrated communications terminal |
US5164963A (en) | 1990-11-07 | 1992-11-17 | At&T Bell Laboratories | Coding for digital transmission |
US5465318A (en) | 1991-03-28 | 1995-11-07 | Kurzweil Applied Intelligence, Inc. | Method for generating a speech recognition model for a non-vocabulary utterance |
US5379297A (en) | 1992-04-09 | 1995-01-03 | Network Equipment Technologies, Inc. | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
EP0543070A1 (en) | 1991-11-21 | 1993-05-26 | International Business Machines Corporation | Coding system and method using quaternary codes |
US5371532A (en) | 1992-05-15 | 1994-12-06 | Bell Communications Research, Inc. | Communications architecture and method for distributing information services |
US5425050A (en) | 1992-10-23 | 1995-06-13 | Massachusetts Institute Of Technology | Television transmission system using spread spectrum and orthogonal frequency-division multiplex |
US5372532A (en) | 1993-01-26 | 1994-12-13 | Robertson, Jr.; George W. | Swivel head cap connector |
EP0613249A1 (en) | 1993-02-12 | 1994-08-31 | Altera Corporation | Custom look-up table with reduced number of architecture bits |
DE4316297C1 (de) | 1993-05-14 | 1994-04-07 | Fraunhofer Ges Forschung | Frequenzanalyseverfahren |
AU665716B2 (en) | 1993-07-05 | 1996-01-11 | Mitsubishi Denki Kabushiki Kaisha | A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame |
US5590405A (en) | 1993-10-29 | 1996-12-31 | Lucent Technologies Inc. | Communication technique employing variable information transmission |
JP2576776B2 (ja) | 1993-11-10 | 1997-01-29 | 日本電気株式会社 | パケット伝送方法・パケット伝送装置 |
US5517508A (en) | 1994-01-26 | 1996-05-14 | Sony Corporation | Method and apparatus for detection and error correction of packetized digital data |
CA2140850C (en) | 1994-02-24 | 1999-09-21 | Howard Paul Katseff | Networked system for display of multimedia presentations |
US5566208A (en) | 1994-03-17 | 1996-10-15 | Philips Electronics North America Corp. | Encoder buffer having an effective size which varies automatically with the channel bit-rate |
US5432787A (en) | 1994-03-24 | 1995-07-11 | Loral Aerospace Corporation | Packet data transmission system with adaptive data recovery method |
US5757415A (en) | 1994-05-26 | 1998-05-26 | Sony Corporation | On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means |
US5802394A (en) | 1994-06-06 | 1998-09-01 | Starlight Networks, Inc. | Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof |
US5739864A (en) | 1994-08-24 | 1998-04-14 | Macrovision Corporation | Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal |
US5568614A (en) | 1994-07-29 | 1996-10-22 | International Business Machines Corporation | Data streaming between peer subsystems of a computer system |
US5668948A (en) | 1994-09-08 | 1997-09-16 | International Business Machines Corporation | Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports |
US5926205A (en) | 1994-10-19 | 1999-07-20 | Imedia Corporation | Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program |
US5659614A (en) | 1994-11-28 | 1997-08-19 | Bailey, Iii; John E. | Method and system for creating and storing a backup copy of file data stored on a computer |
US5617541A (en) | 1994-12-21 | 1997-04-01 | International Computer Science Institute | System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets |
JP3614907B2 (ja) | 1994-12-28 | 2005-01-26 | 株式会社東芝 | データ再送制御方法及びデータ再送制御システム |
US6079042A (en) | 1995-04-27 | 2000-06-20 | The Trustees Of The Stevens Institute Of Technology | High integrity transport for time critical multimedia networking applications |
US5835165A (en) | 1995-06-07 | 1998-11-10 | Lsi Logic Corporation | Reduction of false locking code words in concatenated decoders |
US5805825A (en) | 1995-07-26 | 1998-09-08 | Intel Corporation | Method for semi-reliable, unidirectional broadcast information services |
US6079041A (en) | 1995-08-04 | 2000-06-20 | Sanyo Electric Co., Ltd. | Digital modulation circuit and digital demodulation circuit |
US5754563A (en) | 1995-09-11 | 1998-05-19 | Ecc Technologies, Inc. | Byte-parallel system for implementing reed-solomon error-correcting codes |
KR0170298B1 (ko) | 1995-10-10 | 1999-04-15 | 김광호 | 디지탈 비디오 테이프의 기록 방법 |
US5751336A (en) | 1995-10-12 | 1998-05-12 | International Business Machines Corporation | Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems |
JP3305183B2 (ja) | 1996-01-12 | 2002-07-22 | 株式会社東芝 | ディジタル放送受信端末装置 |
US6012159A (en) | 1996-01-17 | 2000-01-04 | Kencast, Inc. | Method and system for error-free data transfer |
US5852565A (en) | 1996-01-30 | 1998-12-22 | Demografx | Temporal and resolution layering in advanced television |
US5936659A (en) | 1996-01-31 | 1999-08-10 | Telcordia Technologies, Inc. | Method for video delivery using pyramid broadcasting |
US5903775A (en) | 1996-06-06 | 1999-05-11 | International Business Machines Corporation | Method for the sequential transmission of compressed video information at varying data rates |
US5745504A (en) | 1996-06-25 | 1998-04-28 | Telefonaktiebolaget Lm Ericsson | Bit error resilient variable length code |
US5940863A (en) | 1996-07-26 | 1999-08-17 | Zenith Electronics Corporation | Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators |
US5936949A (en) | 1996-09-05 | 1999-08-10 | Netro Corporation | Wireless ATM metropolitan area network |
KR100261706B1 (ko) | 1996-12-17 | 2000-07-15 | 가나이 쓰도무 | 디지탈방송신호의 수신장치와 수신 및 기록재생장치 |
US6011590A (en) | 1997-01-03 | 2000-01-04 | Ncr Corporation | Method of transmitting compressed information to minimize buffer space |
US6044485A (en) | 1997-01-03 | 2000-03-28 | Ericsson Inc. | Transmitter method and transmission system using adaptive coding based on channel characteristics |
US6141053A (en) | 1997-01-03 | 2000-10-31 | Saukkonen; Jukka I. | Method of optimizing bandwidth for transmitting compressed video data streams |
US5983383A (en) | 1997-01-17 | 1999-11-09 | Qualcom Incorporated | Method and apparatus for transmitting and receiving concatenated code data |
US5946357A (en) | 1997-01-17 | 1999-08-31 | Telefonaktiebolaget L M Ericsson | Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal |
EP0854650A3 (en) | 1997-01-17 | 2001-05-02 | NOKIA TECHNOLOGY GmbH | Method for addressing a service in digital video broadcasting |
US6014706A (en) | 1997-01-30 | 2000-01-11 | Microsoft Corporation | Methods and apparatus for implementing control functions in a streamed video display system |
WO1998039927A1 (en) | 1997-03-07 | 1998-09-11 | Sanyo Electric Co., Ltd. | Digital broadcast receiver and display |
US6115420A (en) | 1997-03-14 | 2000-09-05 | Microsoft Corporation | Digital video signal encoder and encoding method |
DE19716011A1 (de) | 1997-04-17 | 1998-10-22 | Abb Research Ltd | Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen |
US6226259B1 (en) | 1997-04-29 | 2001-05-01 | Canon Kabushiki Kaisha | Device and method for transmitting information device and method for processing information |
US5970098A (en) | 1997-05-02 | 1999-10-19 | Globespan Technologies, Inc. | Multilevel encoder |
US5844636A (en) | 1997-05-13 | 1998-12-01 | Hughes Electronics Corporation | Method and apparatus for receiving and recording digital packet data |
WO1998053454A1 (fr) | 1997-05-19 | 1998-11-26 | Sanyo Electric Co., Ltd. | Modulation et demodulation numeriques |
JPH1141211A (ja) | 1997-05-19 | 1999-02-12 | Sanyo Electric Co Ltd | ディジタル変調回路と変調方法、ディジタル復調回路と復調方法 |
JP4110593B2 (ja) | 1997-05-19 | 2008-07-02 | ソニー株式会社 | 信号記録方法及び信号記録装置 |
US6128649A (en) | 1997-06-02 | 2000-10-03 | Nortel Networks Limited | Dynamic selection of media streams for display |
US6081907A (en) | 1997-06-09 | 2000-06-27 | Microsoft Corporation | Data delivery system and method for delivering data and redundant information over a unidirectional network |
US5917852A (en) | 1997-06-11 | 1999-06-29 | L-3 Communications Corporation | Data scrambling system and method and communications system incorporating same |
KR100240869B1 (ko) | 1997-06-25 | 2000-01-15 | 윤종용 | 이중 다이버서티 시스템을 위한 데이터 전송 방법 |
US6175944B1 (en) | 1997-07-15 | 2001-01-16 | Lucent Technologies Inc. | Methods and apparatus for packetizing data for transmission through an erasure broadcast channel |
US5933056A (en) | 1997-07-15 | 1999-08-03 | Exar Corporation | Single pole current mode common-mode feedback circuit |
US6047069A (en) | 1997-07-17 | 2000-04-04 | Hewlett-Packard Company | Method and apparatus for preserving error correction capabilities during data encryption/decryption |
US6904110B2 (en) | 1997-07-31 | 2005-06-07 | Francois Trans | Channel equalization system and method |
US6178536B1 (en) | 1997-08-14 | 2001-01-23 | International Business Machines Corporation | Coding scheme for file backup and systems based thereon |
FR2767940A1 (fr) | 1997-08-29 | 1999-02-26 | Canon Kk | Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre |
EP0903955A1 (en) | 1997-09-04 | 1999-03-24 | STMicroelectronics S.r.l. | Modular architecture PET decoder for ATM networks |
US6088330A (en) | 1997-09-09 | 2000-07-11 | Bruck; Joshua | Reliable array of distributed computing nodes |
US6134596A (en) | 1997-09-18 | 2000-10-17 | Microsoft Corporation | Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates |
US6272658B1 (en) | 1997-10-27 | 2001-08-07 | Kencast, Inc. | Method and system for reliable broadcasting of data files and streams |
US6081918A (en) | 1997-11-06 | 2000-06-27 | Spielman; Daniel A. | Loss resilient code with cascading series of redundant layers |
US6195777B1 (en) | 1997-11-06 | 2001-02-27 | Compaq Computer Corporation | Loss resilient code with double heavy tailed series of redundant layers |
US6163870A (en) | 1997-11-06 | 2000-12-19 | Compaq Computer Corporation | Message encoding with irregular graphing |
US6073250A (en) | 1997-11-06 | 2000-06-06 | Luby; Michael G. | Loss resilient decoding technique |
US6081909A (en) | 1997-11-06 | 2000-06-27 | Digital Equipment Corporation | Irregularly graphed encoding technique |
JP3472115B2 (ja) | 1997-11-25 | 2003-12-02 | Kddi株式会社 | マルチチャンネルを用いるビデオデータ伝送方法及びその装置 |
US5870412A (en) | 1997-12-12 | 1999-02-09 | 3Com Corporation | Forward error correction system for packet based real time media |
US6243846B1 (en) | 1997-12-12 | 2001-06-05 | 3Com Corporation | Forward error correction system for packet based data and real time media, using cross-wise parity calculation |
US6849803B1 (en) | 1998-01-15 | 2005-02-01 | Arlington Industries, Inc. | Electrical connector |
US6097320A (en) | 1998-01-20 | 2000-08-01 | Silicon Systems, Inc. | Encoder/decoder system with suppressed error propagation |
US6226301B1 (en) | 1998-02-19 | 2001-05-01 | Nokia Mobile Phones Ltd | Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system |
US6141788A (en) | 1998-03-13 | 2000-10-31 | Lucent Technologies Inc. | Method and apparatus for forward error correction in packet networks |
US6278716B1 (en) | 1998-03-23 | 2001-08-21 | University Of Massachusetts | Multicast with proactive forward error correction |
WO1999052282A1 (en) | 1998-04-02 | 1999-10-14 | Sarnoff Corporation | Bursty data transmission of compressed video data |
US6185265B1 (en) | 1998-04-07 | 2001-02-06 | Worldspace Management Corp. | System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload |
US6067646A (en) * | 1998-04-17 | 2000-05-23 | Ameritech Corporation | Method and system for adaptive interleaving |
US6018359A (en) | 1998-04-24 | 2000-01-25 | Massachusetts Institute Of Technology | System and method for multicast video-on-demand delivery system |
US6445717B1 (en) | 1998-05-01 | 2002-09-03 | Niwot Networks, Inc. | System for recovering lost information in a data stream |
US6421387B1 (en) | 1998-05-15 | 2002-07-16 | North Carolina State University | Methods and systems for forward error correction based loss recovery for interactive video transmission |
US6937618B1 (en) | 1998-05-20 | 2005-08-30 | Sony Corporation | Separating device and method and signal receiving device and method |
US6333926B1 (en) | 1998-08-11 | 2001-12-25 | Nortel Networks Limited | Multiple user CDMA basestation modem |
BR9913277A (pt) | 1998-09-04 | 2001-09-25 | At & T Corp | Codificação de bloco-espaço e codificação de canal combinado em um arranjo de multi-antenas |
US6415326B1 (en) | 1998-09-15 | 2002-07-02 | Microsoft Corporation | Timeline correlation between multiple timeline-altered media streams |
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US6320520B1 (en) | 1998-09-23 | 2001-11-20 | Digital Fountain | Information additive group code generator and decoder for communications systems |
US7243285B2 (en) | 1998-09-23 | 2007-07-10 | Digital Fountain, Inc. | Systems and methods for broadcasting information additive codes |
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US6704370B1 (en) | 1998-10-09 | 2004-03-09 | Nortel Networks Limited | Interleaving methodology and apparatus for CDMA |
IT1303735B1 (it) | 1998-11-11 | 2001-02-23 | Falorni Italia Farmaceutici S | Acidi ialuronici reticolati e loro usi medici. |
US6408128B1 (en) | 1998-11-12 | 2002-06-18 | Max Abecassis | Replaying with supplementary information a segment of a video |
US6483736B2 (en) | 1998-11-16 | 2002-11-19 | Matrix Semiconductor, Inc. | Vertically stacked field programmable nonvolatile memory and method of fabrication |
JP2000151426A (ja) | 1998-11-17 | 2000-05-30 | Toshiba Corp | インターリーブ・デインターリーブ回路 |
US6166544A (en) | 1998-11-25 | 2000-12-26 | General Electric Company | MR imaging system with interactive image contrast control |
US6876623B1 (en) | 1998-12-02 | 2005-04-05 | Agere Systems Inc. | Tuning scheme for code division multiplex broadcasting system |
AU1966699A (en) | 1998-12-03 | 2000-07-03 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and method for transmitting information and apparatus and method for receiving information |
US6637031B1 (en) | 1998-12-04 | 2003-10-21 | Microsoft Corporation | Multimedia presentation latency minimization |
US6496980B1 (en) | 1998-12-07 | 2002-12-17 | Intel Corporation | Method of providing replay on demand for streaming digital multimedia |
US6223324B1 (en) | 1999-01-05 | 2001-04-24 | Agere Systems Guardian Corp. | Multiple program unequal error protection for digital audio broadcasting and other applications |
JP3926499B2 (ja) | 1999-01-22 | 2007-06-06 | 株式会社日立国際電気 | 畳み込み符号軟判定復号方式の受信装置 |
US6618451B1 (en) | 1999-02-13 | 2003-09-09 | Altocom Inc | Efficient reduced state maximum likelihood sequence estimator |
US6041001A (en) | 1999-02-25 | 2000-03-21 | Lexar Media, Inc. | Method of increasing data reliability of a flash memory device without compromising compatibility |
EP1083496A1 (en) | 1999-03-03 | 2001-03-14 | Sony Corporation | Transmitter, receiver, transmitter/receiver system, transmission method and reception method |
US6785323B1 (en) | 1999-11-22 | 2004-08-31 | Ipr Licensing, Inc. | Variable rate coding for forward link |
US6466698B1 (en) | 1999-03-25 | 2002-10-15 | The United States Of America As Represented By The Secretary Of The Navy | Efficient embedded image and video compression system using lifted wavelets |
US6609223B1 (en) | 1999-04-06 | 2003-08-19 | Kencast, Inc. | Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter |
JP3256517B2 (ja) | 1999-04-06 | 2002-02-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 符号化回路、回路、パリティ生成方法及び記憶媒体 |
US6535920B1 (en) | 1999-04-06 | 2003-03-18 | Microsoft Corporation | Analyzing, indexing and seeking of streaming information |
US6804202B1 (en) | 1999-04-08 | 2004-10-12 | Lg Information And Communications, Ltd. | Radio protocol for mobile communication system and method |
US7885340B2 (en) | 1999-04-27 | 2011-02-08 | Realnetworks, Inc. | System and method for generating multiple synchronized encoded representations of media data |
FI113124B (fi) | 1999-04-29 | 2004-02-27 | Nokia Corp | Tiedonsiirto |
DE60028120T2 (de) | 1999-05-06 | 2006-12-28 | Sony Corp. | Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien |
KR100416996B1 (ko) | 1999-05-10 | 2004-02-05 | 삼성전자주식회사 | 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법 |
AU5140200A (en) | 1999-05-26 | 2000-12-18 | Enounce, Incorporated | Method and apparatus for controlling time-scale modification during multi-media broadcasts |
US6229824B1 (en) | 1999-05-26 | 2001-05-08 | Xm Satellite Radio Inc. | Method and apparatus for concatenated convolutional endcoding and interleaving |
US6154452A (en) | 1999-05-26 | 2000-11-28 | Xm Satellite Radio Inc. | Method and apparatus for continuous cross-channel interleaving |
JP2000353969A (ja) | 1999-06-11 | 2000-12-19 | Sony Corp | デジタル音声放送の受信機 |
US6577599B1 (en) | 1999-06-30 | 2003-06-10 | Sun Microsystems, Inc. | Small-scale reliable multicasting |
IL141800A0 (en) | 1999-07-06 | 2002-03-10 | Samsung Electronics Co Ltd | Rate matching device and method for a data communication system |
US6643332B1 (en) | 1999-07-09 | 2003-11-04 | Lsi Logic Corporation | Method and apparatus for multi-level coding of digital signals |
US6279072B1 (en) | 1999-07-22 | 2001-08-21 | Micron Technology, Inc. | Reconfigurable memory with selectable error correction storage |
JP3451221B2 (ja) | 1999-07-22 | 2003-09-29 | 日本無線株式会社 | 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体 |
US6453440B1 (en) | 1999-08-04 | 2002-09-17 | Sun Microsystems, Inc. | System and method for detecting double-bit errors and for correcting errors due to component failures |
JP2001060934A (ja) | 1999-08-20 | 2001-03-06 | Matsushita Electric Ind Co Ltd | Ofdm通信装置 |
US6430233B1 (en) | 1999-08-30 | 2002-08-06 | Hughes Electronics Corporation | Single-LNB satellite data receiver |
US6332163B1 (en) | 1999-09-01 | 2001-12-18 | Accenture, Llp | Method for providing communication services over a computer network system |
JP4284774B2 (ja) | 1999-09-07 | 2009-06-24 | ソニー株式会社 | 送信装置、受信装置、通信システム、送信方法及び通信方法 |
JP2001094625A (ja) | 1999-09-27 | 2001-04-06 | Canon Inc | データ通信装置、データ通信方法及び記憶媒体 |
US7529806B1 (en) | 1999-11-04 | 2009-05-05 | Koninklijke Philips Electronics N.V. | Partitioning of MP3 content file for emulating streaming |
EP1131930B1 (en) | 1999-09-27 | 2007-01-17 | Koninklijke Philips Electronics N.V. | Partitioning of file for emulating streaming |
US20050160272A1 (en) | 1999-10-28 | 2005-07-21 | Timecertain, Llc | System and method for providing trusted time in content of digital data files |
US6523147B1 (en) | 1999-11-11 | 2003-02-18 | Ibiquity Digital Corporation | Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system |
US6748441B1 (en) | 1999-12-02 | 2004-06-08 | Microsoft Corporation | Data carousel receiving and caching |
US6678855B1 (en) | 1999-12-02 | 2004-01-13 | Microsoft Corporation | Selecting K in a data transmission carousel using (N,K) forward error correction |
US6798791B1 (en) | 1999-12-16 | 2004-09-28 | Agere Systems Inc | Cluster frame synchronization scheme for a satellite digital audio radio system |
US6487692B1 (en) | 1999-12-21 | 2002-11-26 | Lsi Logic Corporation | Reed-Solomon decoder |
US20020009137A1 (en) | 2000-02-01 | 2002-01-24 | Nelson John E. | Three-dimensional video broadcasting system |
US6965636B1 (en) | 2000-02-01 | 2005-11-15 | 2Wire, Inc. | System and method for block error correction in packet-based digital communications |
IL140504A0 (en) | 2000-02-03 | 2002-02-10 | Bandwiz Inc | Broadcast system |
US7304990B2 (en) | 2000-02-03 | 2007-12-04 | Bandwiz Inc. | Method of encoding and transmitting data over a communication medium through division and segmentation |
WO2001057667A1 (en) | 2000-02-03 | 2001-08-09 | Bandwiz, Inc. | Data streaming |
JP2001251287A (ja) | 2000-02-24 | 2001-09-14 | Geneticware Corp Ltd | ハードウエア保護内部秘匿鍵及び可変パスコードを利用する機密データ伝送方法 |
DE10009443A1 (de) | 2000-02-29 | 2001-08-30 | Philips Corp Intellectual Pty | Empfänger und Verfahren zum Detektieren und Dekodieren eines DQPSK-modulierten und kanalkodierten Empfangssignals |
US6765866B1 (en) | 2000-02-29 | 2004-07-20 | Mosaid Technologies, Inc. | Link aggregation |
US6384750B1 (en) | 2000-03-23 | 2002-05-07 | Mosaid Technologies, Inc. | Multi-stage lookup for translating between signals of different bit lengths |
US6510177B1 (en) | 2000-03-24 | 2003-01-21 | Microsoft Corporation | System and method for layered video coding enhancement |
JP2001274776A (ja) | 2000-03-24 | 2001-10-05 | Toshiba Corp | 情報データ伝送システムとその送信装置及び受信装置 |
WO2001076077A2 (en) | 2000-03-31 | 2001-10-11 | Ted Szymanski | Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link |
US6473010B1 (en) | 2000-04-04 | 2002-10-29 | Marvell International, Ltd. | Method and apparatus for determining error correction code failure rate for iterative decoding algorithms |
US8572646B2 (en) | 2000-04-07 | 2013-10-29 | Visible World Inc. | System and method for simultaneous broadcast for personalized messages |
US7073191B2 (en) | 2000-04-08 | 2006-07-04 | Sun Microsystems, Inc | Streaming a single media track to multiple clients |
US6631172B1 (en) | 2000-05-01 | 2003-10-07 | Lucent Technologies Inc. | Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels |
US6742154B1 (en) | 2000-05-25 | 2004-05-25 | Ciena Corporation | Forward error correction codes for digital optical network optimization |
US6694476B1 (en) | 2000-06-02 | 2004-02-17 | Vitesse Semiconductor Corporation | Reed-solomon encoder and decoder |
US6738942B1 (en) | 2000-06-02 | 2004-05-18 | Vitesse Semiconductor Corporation | Product code based forward error correction system |
GB2366159B (en) | 2000-08-10 | 2003-10-08 | Mitel Corp | Combination reed-solomon and turbo coding |
US6834342B2 (en) | 2000-08-16 | 2004-12-21 | Eecad, Inc. | Method and system for secure communication over unstable public connections |
KR100447162B1 (ko) | 2000-08-19 | 2004-09-04 | 엘지전자 주식회사 | 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법 |
JP2002073625A (ja) | 2000-08-24 | 2002-03-12 | Nippon Hoso Kyokai <Nhk> | 放送番組に同期した情報提供の方法、サーバ及び媒体 |
US7340664B2 (en) * | 2000-09-20 | 2008-03-04 | Lsi Logic Corporation | Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving |
US6486803B1 (en) | 2000-09-22 | 2002-11-26 | Digital Fountain, Inc. | On demand encoding with a window |
US7151754B1 (en) | 2000-09-22 | 2006-12-19 | Lucent Technologies Inc. | Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding |
US7031257B1 (en) | 2000-09-22 | 2006-04-18 | Lucent Technologies Inc. | Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol |
US7490344B2 (en) | 2000-09-29 | 2009-02-10 | Visible World, Inc. | System and method for seamless switching |
US6411223B1 (en) | 2000-10-18 | 2002-06-25 | Digital Fountain, Inc. | Generating high weight encoding symbols using a basis |
US7613183B1 (en) | 2000-10-31 | 2009-11-03 | Foundry Networks, Inc. | System and method for router data aggregation and delivery |
US6694478B1 (en) | 2000-11-07 | 2004-02-17 | Agere Systems Inc. | Low delay channel codes for correcting bursts of lost packets |
US6732325B1 (en) | 2000-11-08 | 2004-05-04 | Digeo, Inc. | Error-correction with limited working storage |
US20020133247A1 (en) | 2000-11-11 | 2002-09-19 | Smith Robert D. | System and method for seamlessly switching between media streams |
US7072971B2 (en) | 2000-11-13 | 2006-07-04 | Digital Foundation, Inc. | Scheduling of multiple files for serving on a server |
US7240358B2 (en) | 2000-12-08 | 2007-07-03 | Digital Fountain, Inc. | Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources |
CA2429827C (en) | 2000-12-15 | 2009-08-25 | British Telecommunications Public Limited Company | Transmission and reception of audio and/or video material |
EP2071827A3 (en) | 2000-12-15 | 2010-08-25 | BRITISH TELECOMMUNICATIONS public limited company | Transmission and reception of audio and/or video material |
US6850736B2 (en) | 2000-12-21 | 2005-02-01 | Tropian, Inc. | Method and apparatus for reception quality indication in wireless communication |
US7143433B1 (en) | 2000-12-27 | 2006-11-28 | Infovalve Computing Inc. | Video distribution system using dynamic segmenting of video data files |
US20020085013A1 (en) | 2000-12-29 | 2002-07-04 | Lippincott Louis A. | Scan synchronized dual frame buffer graphics subsystem |
NO315887B1 (no) | 2001-01-04 | 2003-11-03 | Fast Search & Transfer As | Fremgangsmater ved overforing og soking av videoinformasjon |
US20080059532A1 (en) | 2001-01-18 | 2008-03-06 | Kazmi Syed N | Method and system for managing digital content, including streaming media |
DE10103387A1 (de) | 2001-01-26 | 2002-08-01 | Thorsten Nordhoff | Windkraftanlage mit einer Einrichtung zur Hindernisbefeuerung bzw. Nachtkennzeichnung |
FI118830B (fi) | 2001-02-08 | 2008-03-31 | Nokia Corp | Tietovirran toisto |
US6868083B2 (en) | 2001-02-16 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Method and system for packet communication employing path diversity |
US20020129159A1 (en) | 2001-03-09 | 2002-09-12 | Michael Luby | Multi-output packet server with independent streams |
KR100464360B1 (ko) | 2001-03-30 | 2005-01-03 | 삼성전자주식회사 | 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법 |
US20020143953A1 (en) | 2001-04-03 | 2002-10-03 | International Business Machines Corporation | Automatic affinity within networks performing workload balancing |
US6785836B2 (en) | 2001-04-11 | 2004-08-31 | Broadcom Corporation | In-place data transformation for fault-tolerant disk storage systems |
US6820221B2 (en) | 2001-04-13 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method for detecting process and network failures in a distributed system |
US7010052B2 (en) | 2001-04-16 | 2006-03-07 | The Ohio University | Apparatus and method of CTCM encoding and decoding for a digital communication system |
US7035468B2 (en) | 2001-04-20 | 2006-04-25 | Front Porch Digital Inc. | Methods and apparatus for archiving, indexing and accessing audio and video data |
TWI246841B (en) | 2001-04-22 | 2006-01-01 | Koninkl Philips Electronics Nv | Digital transmission system and method for transmitting digital signals |
US20020191116A1 (en) | 2001-04-24 | 2002-12-19 | Damien Kessler | System and data format for providing seamless stream switching in a digital video recorder |
US6497479B1 (en) | 2001-04-27 | 2002-12-24 | Hewlett-Packard Company | Higher organic inks with good reliability and drytime |
US7962482B2 (en) | 2001-05-16 | 2011-06-14 | Pandora Media, Inc. | Methods and systems for utilizing contextual feedback to generate and modify playlists |
US6633856B2 (en) | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US7076478B2 (en) | 2001-06-26 | 2006-07-11 | Microsoft Corporation | Wrapper playlists on streaming media services |
US6745364B2 (en) | 2001-06-28 | 2004-06-01 | Microsoft Corporation | Negotiated/dynamic error correction for streamed media |
JP2003018568A (ja) | 2001-06-29 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 再生システム、サーバ装置及び再生装置 |
US6895547B2 (en) | 2001-07-11 | 2005-05-17 | International Business Machines Corporation | Method and apparatus for low density parity check encoding of data |
US6928603B1 (en) | 2001-07-19 | 2005-08-09 | Adaptix, Inc. | System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system |
US6961890B2 (en) | 2001-08-16 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Dynamic variable-length error correction code |
US7110412B2 (en) | 2001-09-18 | 2006-09-19 | Sbc Technology Resources, Inc. | Method and system to transport high-quality video signals |
FI115418B (fi) | 2001-09-20 | 2005-04-29 | Oplayo Oy | Adaptiivinen mediavirta |
US6990624B2 (en) | 2001-10-12 | 2006-01-24 | Agere Systems Inc. | High speed syndrome-based FEC encoder and decoder and system using same |
US7480703B2 (en) | 2001-11-09 | 2009-01-20 | Sony Corporation | System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user |
US7363354B2 (en) | 2001-11-29 | 2008-04-22 | Nokia Corporation | System and method for identifying and accessing network services |
US7003712B2 (en) | 2001-11-29 | 2006-02-21 | Emin Martinian | Apparatus and method for adaptive, multimode decoding |
JP2003174489A (ja) | 2001-12-05 | 2003-06-20 | Ntt Docomo Inc | ストリーミング配信装置、ストリーミング配信方法 |
FI114527B (fi) | 2002-01-23 | 2004-10-29 | Nokia Corp | Kuvakehysten ryhmittely videokoodauksessa |
EP1670259A3 (en) | 2002-01-23 | 2010-03-03 | Nokia Corporation | Grouping of image frames in video coding |
EP1472847A1 (en) | 2002-01-30 | 2004-11-03 | Koninklijke Philips Electronics N.V. | Streaming multimedia data over a network having a variable bandwidth |
AU2003211057A1 (en) | 2002-02-15 | 2003-09-09 | Digital Fountain, Inc. | System and method for reliably communicating the content of a live data stream |
JP4126928B2 (ja) | 2002-02-28 | 2008-07-30 | 日本電気株式会社 | プロキシサーバ及びプロキシ制御プログラム |
JP4116470B2 (ja) | 2002-03-06 | 2008-07-09 | ヒューレット・パッカード・カンパニー | メディア・ストリーミング配信システム |
FR2837332A1 (fr) | 2002-03-15 | 2003-09-19 | Thomson Licensing Sa | Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants |
WO2003090391A1 (en) | 2002-04-15 | 2003-10-30 | Nokia Corporation | Rlp logical layer of a communication station |
US6677864B2 (en) | 2002-04-18 | 2004-01-13 | Telefonaktiebolaget L.M. Ericsson | Method for multicast over wireless networks |
JP3629008B2 (ja) | 2002-04-19 | 2005-03-16 | 松下電器産業株式会社 | データ受信装置及びデータ配信システム |
JP3689063B2 (ja) | 2002-04-19 | 2005-08-31 | 松下電器産業株式会社 | データ受信装置及びデータ配信システム |
WO2003092305A1 (en) | 2002-04-25 | 2003-11-06 | Sharp Kabushiki Kaisha | Image encodder, image decoder, record medium, and image recorder |
US20030204602A1 (en) | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US7177658B2 (en) | 2002-05-06 | 2007-02-13 | Qualcomm, Incorporated | Multi-media broadcast and multicast service (MBMS) in a wireless communications system |
US7200388B2 (en) | 2002-05-31 | 2007-04-03 | Nokia Corporation | Fragmented delivery of multimedia |
US7570665B2 (en) | 2002-06-11 | 2009-08-04 | Telefonaktiebolaget L M Ericsson (Publ) | Generation of mixed media streams |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
ES2445761T3 (es) | 2002-06-11 | 2014-03-05 | Digital Fountain, Inc. | Descodificación de códigos de reacción en cadena mediante inactivación |
US6956875B2 (en) | 2002-06-19 | 2005-10-18 | Atlinks Usa, Inc. | Technique for communicating variable bit rate data over a constant bit rate link |
JP4154569B2 (ja) | 2002-07-10 | 2008-09-24 | 日本電気株式会社 | 画像圧縮伸長装置 |
JP4120461B2 (ja) | 2002-07-12 | 2008-07-16 | 住友電気工業株式会社 | 伝送データ生成方法及び伝送データ生成装置 |
AU2003251964A1 (en) | 2002-07-16 | 2004-02-02 | Nokia Corporation | A method for random access and gradual picture refresh in video coding |
EP1526659A4 (en) | 2002-07-31 | 2010-12-01 | Sharp Kk | DATA COMMUNICATION DEVICE, ITS CONTINUOUS COMMUNICATION PROCEDURE, ITS PROCESSING PROGRAM, AND RECORDING MEDIUM ON WHICH THE PROGRAM IS RECORDED |
JP2004070712A (ja) | 2002-08-07 | 2004-03-04 | Nippon Telegr & Teleph Corp <Ntt> | データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム |
US7620111B2 (en) | 2002-08-13 | 2009-11-17 | Nokia Corporation | Symbol interleaving |
US6985459B2 (en) | 2002-08-21 | 2006-01-10 | Qualcomm Incorporated | Early transmission and playout of packets in wireless communication systems |
JP3836858B2 (ja) | 2002-09-27 | 2006-10-25 | 富士通株式会社 | データ配信方法、システム、伝送方法及びプログラム |
JP3534742B1 (ja) | 2002-10-03 | 2004-06-07 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像復号方法、動画像復号装置、及び動画像復号プログラム |
JP4546246B2 (ja) | 2002-10-05 | 2010-09-15 | デジタル ファウンテン, インコーポレイテッド | 連鎖的暗号化反応の系統的記号化および復号化 |
JP2004135013A (ja) | 2002-10-10 | 2004-04-30 | Matsushita Electric Ind Co Ltd | 伝送装置及び伝送方法 |
FI116816B (fi) | 2002-10-14 | 2006-02-28 | Nokia Corp | Median suoratoisto |
US8320301B2 (en) | 2002-10-25 | 2012-11-27 | Qualcomm Incorporated | MIMO WLAN system |
US7289451B2 (en) | 2002-10-25 | 2007-10-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Delay trading between communication links |
JP4460455B2 (ja) | 2002-10-30 | 2010-05-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 適応的順方向誤り制御スキーム |
JP2004165922A (ja) | 2002-11-12 | 2004-06-10 | Sony Corp | 情報処理装置および方法、並びにプログラム |
GB0226872D0 (en) | 2002-11-18 | 2002-12-24 | British Telecomm | Video transmission |
KR101044213B1 (ko) | 2002-11-18 | 2011-06-29 | 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 | 비디오 전송 방법 |
KR100502609B1 (ko) | 2002-11-21 | 2005-07-20 | 한국전자통신연구원 | Ldpc 코드를 이용한 부호화기 및 부호화 방법 |
US7086718B2 (en) | 2002-11-23 | 2006-08-08 | Silverbrook Research Pty Ltd | Thermal ink jet printhead with high nozzle areal density |
JP2004192140A (ja) | 2002-12-09 | 2004-07-08 | Sony Corp | データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム |
JP2004193992A (ja) | 2002-12-11 | 2004-07-08 | Sony Corp | 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム |
US8135073B2 (en) | 2002-12-19 | 2012-03-13 | Trident Microsystems (Far East) Ltd | Enhancing video images depending on prior image enhancements |
US7164882B2 (en) | 2002-12-24 | 2007-01-16 | Poltorak Alexander I | Apparatus and method for facilitating a purchase using information provided on a media playing device |
WO2004068715A2 (en) | 2003-01-29 | 2004-08-12 | Digital Fountain, Inc. | Systems and processes for fast encoding of hamming codes |
US7756002B2 (en) | 2003-01-30 | 2010-07-13 | Texas Instruments Incorporated | Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer |
US7525994B2 (en) | 2003-01-30 | 2009-04-28 | Avaya Inc. | Packet data flow identification for multiplexing |
US7231404B2 (en) | 2003-01-31 | 2007-06-12 | Nokia Corporation | Datacast file transmission with meta-data retention |
US7062272B2 (en) | 2003-02-18 | 2006-06-13 | Qualcomm Incorporated | Method and apparatus to track count of broadcast content recipients in a wireless telephone network |
EP1455504B1 (en) | 2003-03-07 | 2014-11-12 | Samsung Electronics Co., Ltd. | Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method |
JP4173755B2 (ja) | 2003-03-24 | 2008-10-29 | 富士通株式会社 | データ伝送サーバ |
US7610487B2 (en) | 2003-03-27 | 2009-10-27 | Microsoft Corporation | Human input security codes |
US7266147B2 (en) | 2003-03-31 | 2007-09-04 | Sharp Laboratories Of America, Inc. | Hypothetical reference decoder |
JP2004343701A (ja) | 2003-04-21 | 2004-12-02 | Matsushita Electric Ind Co Ltd | データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム |
US7408486B2 (en) | 2003-04-21 | 2008-08-05 | Qbit Corporation | System and method for using a microlet-based modem |
US20050041736A1 (en) | 2003-05-07 | 2005-02-24 | Bernie Butler-Smith | Stereoscopic television signal processing method, transmission system and viewer enhancements |
KR100492567B1 (ko) | 2003-05-13 | 2005-06-03 | 엘지전자 주식회사 | 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법 |
US7113773B2 (en) | 2003-05-16 | 2006-09-26 | Qualcomm Incorporated | Reliable reception of broadcast/multicast content |
JP2004348824A (ja) | 2003-05-21 | 2004-12-09 | Toshiba Corp | Eccエンコード方法、eccエンコード装置 |
US8161116B2 (en) | 2003-05-23 | 2012-04-17 | Kirusa, Inc. | Method and system for communicating a data file over a network |
JP2004362099A (ja) | 2003-06-03 | 2004-12-24 | Sony Corp | サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
AU2004246532B2 (en) | 2003-06-07 | 2008-03-13 | Samsung Electronics Co., Ltd. | Apparatus and method for organization and interpretation of multimedia data on a recording medium |
KR101003413B1 (ko) | 2003-06-12 | 2010-12-23 | 엘지전자 주식회사 | 이동통신 단말기의 전송데이터 압축/해제 방법 |
US7603689B2 (en) | 2003-06-13 | 2009-10-13 | Microsoft Corporation | Fast start-up for digital video streams |
RU2265960C2 (ru) | 2003-06-16 | 2005-12-10 | Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" | Способ передачи информации с использованием адаптивного перемежения |
US7391717B2 (en) | 2003-06-30 | 2008-06-24 | Microsoft Corporation | Streaming of variable bit rate multimedia content |
US20050004997A1 (en) | 2003-07-01 | 2005-01-06 | Nokia Corporation | Progressive downloading of timed multimedia content |
US8149939B2 (en) | 2003-07-07 | 2012-04-03 | Samsung Electronics Co., Ltd. | System of robust DTV signal transmissions that legacy DTV receivers will disregard |
US7254754B2 (en) | 2003-07-14 | 2007-08-07 | International Business Machines Corporation | Raid 3+3 |
KR100532450B1 (ko) | 2003-07-16 | 2005-11-30 | 삼성전자주식회사 | 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들 |
US20050028067A1 (en) | 2003-07-31 | 2005-02-03 | Weirauch Charles R. | Data with multiple sets of error correction codes |
CN1868157B (zh) | 2003-08-21 | 2011-07-27 | 高通股份有限公司 | 无线链路控制层上的前向纠错编码方法和相关装置 |
US8694869B2 (en) | 2003-08-21 | 2014-04-08 | QUALCIMM Incorporated | Methods for forward error correction coding above a radio link control layer and related apparatus |
IL157885A0 (en) | 2003-09-11 | 2004-03-28 | Bamboo Mediacasting Ltd | Iterative forward error correction |
IL157886A0 (en) | 2003-09-11 | 2009-02-11 | Bamboo Mediacasting Ltd | Secure multicast transmission |
JP4183586B2 (ja) | 2003-09-12 | 2008-11-19 | 三洋電機株式会社 | 映像表示装置 |
US7555006B2 (en) | 2003-09-15 | 2009-06-30 | The Directv Group, Inc. | Method and system for adaptive transcoding and transrating in a video network |
KR100608715B1 (ko) | 2003-09-27 | 2006-08-04 | 엘지전자 주식회사 | QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법 |
DE60307852D1 (de) | 2003-09-30 | 2006-10-05 | Ericsson Telefon Ab L M | In-place Entschachtelung von Daten |
US7559004B1 (en) | 2003-10-01 | 2009-07-07 | Sandisk Corporation | Dynamic redundant area configuration in a non-volatile memory system |
CN1954501B (zh) | 2003-10-06 | 2010-06-16 | 数字方敦股份有限公司 | 通过通信信道接收从源发射的数据的方法 |
US7614071B2 (en) | 2003-10-10 | 2009-11-03 | Microsoft Corporation | Architecture for distributed sending of media data |
US7516232B2 (en) | 2003-10-10 | 2009-04-07 | Microsoft Corporation | Media organization for distributed sending of media data |
DE602004028849D1 (de) | 2003-10-14 | 2010-10-07 | Panasonic Corp | Datenumsetzer |
US7650036B2 (en) | 2003-10-16 | 2010-01-19 | Sharp Laboratories Of America, Inc. | System and method for three-dimensional video coding |
US7168030B2 (en) | 2003-10-17 | 2007-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Turbo code decoder with parity information update |
US8132215B2 (en) | 2003-10-27 | 2012-03-06 | Panasonic Corporation | Apparatus for receiving broadcast signal |
JP2005136546A (ja) | 2003-10-29 | 2005-05-26 | Sony Corp | 送信装置および方法、記録媒体、並びにプログラム |
DE602004011445T2 (de) * | 2003-11-03 | 2009-01-15 | Broadcom Corp., Irvine | FEC-Dekodierung mit dynamischen Parametern |
US20050102371A1 (en) | 2003-11-07 | 2005-05-12 | Emre Aksu | Streaming from a server to a client |
KR101041762B1 (ko) | 2003-12-01 | 2011-06-17 | 디지털 파운튼, 인크. | 통신 채널을 통해 소스로부터 목적지로 데이터를 송신 및 인코딩하는 방법 |
US7428669B2 (en) | 2003-12-07 | 2008-09-23 | Adaptive Spectrum And Signal Alignment, Inc. | Adaptive FEC codeword management |
US7574706B2 (en) | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7590118B2 (en) | 2003-12-23 | 2009-09-15 | Agere Systems Inc. | Frame aggregation format |
JP4536383B2 (ja) | 2004-01-16 | 2010-09-01 | 株式会社エヌ・ティ・ティ・ドコモ | データ受信装置およびデータ受信方法 |
KR100770902B1 (ko) | 2004-01-20 | 2007-10-26 | 삼성전자주식회사 | 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법 |
KR100834750B1 (ko) | 2004-01-29 | 2008-06-05 | 삼성전자주식회사 | 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법 |
JP4321284B2 (ja) | 2004-02-03 | 2009-08-26 | 株式会社デンソー | ストリーミングデータ送信装置、および情報配信システム |
US7599294B2 (en) | 2004-02-13 | 2009-10-06 | Nokia Corporation | Identification and re-transmission of missing parts |
KR100596705B1 (ko) | 2004-03-04 | 2006-07-04 | 삼성전자주식회사 | 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템 |
KR100586883B1 (ko) | 2004-03-04 | 2006-06-08 | 삼성전자주식회사 | 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법 |
US7609653B2 (en) | 2004-03-08 | 2009-10-27 | Microsoft Corporation | Resolving partial media topologies |
US20050207392A1 (en) | 2004-03-19 | 2005-09-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Higher layer packet framing using RLP |
US7240236B2 (en) | 2004-03-23 | 2007-07-03 | Archivas, Inc. | Fixed content distributed data storage using permutation ring encoding |
JP4433287B2 (ja) | 2004-03-25 | 2010-03-17 | ソニー株式会社 | 受信装置および方法、並びにプログラム |
US8842175B2 (en) | 2004-03-26 | 2014-09-23 | Broadcom Corporation | Anticipatory video signal reception and processing |
US20050216472A1 (en) | 2004-03-29 | 2005-09-29 | David Leon | Efficient multicast/broadcast distribution of formatted data |
JP2007531199A (ja) | 2004-03-30 | 2007-11-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ディスクベースのマルチメディアコンテンツのための改良されたトリックモード実行をサポートするシステムおよび方法 |
TW200534875A (en) | 2004-04-23 | 2005-11-01 | Lonza Ag | Personal care compositions and concentrates for making the same |
FR2869744A1 (fr) | 2004-04-29 | 2005-11-04 | Thomson Licensing Sa | Methode de transmission de paquets de donnees numeriques et appareil implementant la methode |
US7633970B2 (en) | 2004-05-07 | 2009-12-15 | Agere Systems Inc. | MAC header compression for use with frame aggregation |
EP1743431A4 (en) | 2004-05-07 | 2007-05-02 | Digital Fountain Inc | SYSTEM FOR DOWNLOADING AND RECORDING AND CONTINUOUS READING OF FILES |
US20050254575A1 (en) | 2004-05-12 | 2005-11-17 | Nokia Corporation | Multiple interoperability points for scalable media coding and transmission |
US20060037057A1 (en) | 2004-05-24 | 2006-02-16 | Sharp Laboratories Of America, Inc. | Method and system of enabling trick play modes using HTTP GET |
US8331445B2 (en) | 2004-06-01 | 2012-12-11 | Qualcomm Incorporated | Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques |
US20070110074A1 (en) | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US7139660B2 (en) | 2004-07-14 | 2006-11-21 | General Motors Corporation | System and method for changing motor vehicle personalization settings |
US8112531B2 (en) | 2004-07-14 | 2012-02-07 | Nokia Corporation | Grouping of session objects |
US8544043B2 (en) | 2004-07-21 | 2013-09-24 | Qualcomm Incorporated | Methods and apparatus for providing content information to content servers |
US7409626B1 (en) * | 2004-07-28 | 2008-08-05 | Ikanos Communications Inc | Method and apparatus for determining codeword interleaver parameters |
US7376150B2 (en) | 2004-07-30 | 2008-05-20 | Nokia Corporation | Point-to-point repair response mechanism for point-to-multipoint transmission systems |
US7590922B2 (en) | 2004-07-30 | 2009-09-15 | Nokia Corporation | Point-to-point repair request mechanism for point-to-multipoint transmission systems |
US7930184B2 (en) | 2004-08-04 | 2011-04-19 | Dts, Inc. | Multi-channel audio coding/decoding of random access points and transients |
WO2006020826A2 (en) | 2004-08-11 | 2006-02-23 | Digital Fountain, Inc. | Method and apparatus for fast encoding of data symbols according to half-weight codes |
JP4405875B2 (ja) | 2004-08-25 | 2010-01-27 | 富士通株式会社 | エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体 |
JP2006074335A (ja) | 2004-09-01 | 2006-03-16 | Nippon Telegr & Teleph Corp <Ntt> | 伝送方法、伝送システム及び伝送装置 |
JP4576936B2 (ja) | 2004-09-02 | 2010-11-10 | ソニー株式会社 | 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム |
JP2006115104A (ja) | 2004-10-13 | 2006-04-27 | Daiichikosho Co Ltd | 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置 |
US7529984B2 (en) | 2004-11-16 | 2009-05-05 | Infineon Technologies Ag | Seamless change of depth of a general convolutional interleaver during transmission without loss of data |
US7751324B2 (en) | 2004-11-19 | 2010-07-06 | Nokia Corporation | Packet stream arrangement in multimedia transmission |
CN101061718B (zh) | 2004-11-22 | 2010-10-13 | 汤姆森研究基金有限公司 | 用于数字订户线路系统中的频道改变的方法和设备 |
EP1817859A1 (en) * | 2004-12-02 | 2007-08-15 | THOMSON Licensing | Adaptive forward error correction |
KR20060065482A (ko) | 2004-12-10 | 2006-06-14 | 마이크로소프트 코포레이션 | 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스 |
JP2006174045A (ja) | 2004-12-15 | 2006-06-29 | Ntt Communications Kk | 画像配信装置、プログラム及び方法 |
JP2006174032A (ja) | 2004-12-15 | 2006-06-29 | Sanyo Electric Co Ltd | 画像データ伝送システム、画像データ受信装置及び画像データ送信装置 |
US7398454B2 (en) | 2004-12-21 | 2008-07-08 | Tyco Telecommunications (Us) Inc. | System and method for forward error correction decoding using soft information |
JP4391409B2 (ja) | 2004-12-24 | 2009-12-24 | 株式会社第一興商 | 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置 |
EP1847087A1 (en) | 2005-02-08 | 2007-10-24 | Telefonaktiebolaget LM Ericsson (publ) | On-demand multi-channel streaming session over packet-switched networks |
US7925097B2 (en) | 2005-02-18 | 2011-04-12 | Sanyo Electric Co., Ltd. | Image display method, image coding apparatus, and image decoding apparatus |
CN100466724C (zh) * | 2005-02-25 | 2009-03-04 | 华为技术有限公司 | 一种移动视频广播系统及移动视频广播方法 |
US7822139B2 (en) | 2005-03-02 | 2010-10-26 | Rohde & Schwarz Gmbh & Co. Kg | Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence |
US20090222873A1 (en) | 2005-03-07 | 2009-09-03 | Einarsson Torbjoern | Multimedia Channel Switching |
US8028322B2 (en) | 2005-03-14 | 2011-09-27 | Time Warner Cable Inc. | Method and apparatus for network content download and recording |
US7418649B2 (en) | 2005-03-15 | 2008-08-26 | Microsoft Corporation | Efficient implementation of reed-solomon erasure resilient codes in high-rate applications |
US7219289B2 (en) | 2005-03-15 | 2007-05-15 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
US7450064B2 (en) | 2005-03-22 | 2008-11-11 | Qualcomm, Incorporated | Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system |
JP4487028B2 (ja) | 2005-03-31 | 2010-06-23 | ブラザー工業株式会社 | 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム |
US7715842B2 (en) | 2005-04-09 | 2010-05-11 | Lg Electronics Inc. | Supporting handover of mobile terminal |
CA2604203A1 (en) | 2005-04-13 | 2006-10-19 | Nokia Corporation | Coding, storage and signalling of scalability information |
JP4515319B2 (ja) | 2005-04-27 | 2010-07-28 | 株式会社日立製作所 | コンピュータシステム |
US8683066B2 (en) | 2007-08-06 | 2014-03-25 | DISH Digital L.L.C. | Apparatus, system, and method for multi-bitrate content streaming |
US7961700B2 (en) | 2005-04-28 | 2011-06-14 | Qualcomm Incorporated | Multi-carrier operation in data transmission systems |
JP2006319743A (ja) | 2005-05-13 | 2006-11-24 | Toshiba Corp | 受信装置 |
US8228994B2 (en) | 2005-05-20 | 2012-07-24 | Microsoft Corporation | Multi-view video coding based on temporal and view decomposition |
JP2008543142A (ja) | 2005-05-24 | 2008-11-27 | ノキア コーポレイション | デジタル放送における階層的な送受信のための方法および装置 |
US7676735B2 (en) | 2005-06-10 | 2010-03-09 | Digital Fountain Inc. | Forward error-correcting (FEC) coding and streaming |
US7644335B2 (en) | 2005-06-10 | 2010-01-05 | Qualcomm Incorporated | In-place transformations with applications to encoding and decoding various classes of codes |
JP2007013436A (ja) | 2005-06-29 | 2007-01-18 | Toshiba Corp | 符号化ストリーム再生装置 |
JP2007013675A (ja) | 2005-06-30 | 2007-01-18 | Sanyo Electric Co Ltd | ストリーミング配信システム及びサーバ |
US20070006274A1 (en) | 2005-06-30 | 2007-01-04 | Toni Paila | Transmission and reception of session packets |
US7725593B2 (en) | 2005-07-15 | 2010-05-25 | Sony Corporation | Scalable video coding (SVC) file format |
US20070022215A1 (en) | 2005-07-19 | 2007-01-25 | Singer David W | Method and apparatus for media data transmission |
EP1755248B1 (en) | 2005-08-19 | 2011-06-22 | Hewlett-Packard Development Company, L.P. | Indication of lost segments across layer boundaries |
WO2007029443A1 (ja) | 2005-09-09 | 2007-03-15 | Matsushita Electric Industrial Co., Ltd. | 画像処理方法、画像記録方法、画像処理装置および画像ファイルフォーマット |
US7924913B2 (en) | 2005-09-15 | 2011-04-12 | Microsoft Corporation | Non-realtime data transcoding of multimedia content |
US20070067480A1 (en) | 2005-09-19 | 2007-03-22 | Sharp Laboratories Of America, Inc. | Adaptive media playout by server media processing for robust streaming |
US8879856B2 (en) | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Content driven transcoder that orchestrates multimedia transcoding using content information |
US20070078876A1 (en) | 2005-09-30 | 2007-04-05 | Yahoo! Inc. | Generating a stream of media data containing portions of media files using location tags |
US7720062B2 (en) | 2005-10-05 | 2010-05-18 | Lg Electronics Inc. | Method of processing traffic information and digital broadcasting system |
US7164370B1 (en) | 2005-10-06 | 2007-01-16 | Analog Devices, Inc. | System and method for decoding data compressed in accordance with dictionary-based compression schemes |
CN100442858C (zh) | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
AU2006300881B2 (en) | 2005-10-11 | 2011-03-17 | Nokia Technologies Oy | System and method for efficient scalable stream adaptation |
US7720096B2 (en) | 2005-10-13 | 2010-05-18 | Microsoft Corporation | RTP payload format for VC-1 |
EP1946563A2 (en) | 2005-10-19 | 2008-07-23 | Thomson Licensing | Multi-view video coding using scalable video coding |
JP4727401B2 (ja) | 2005-12-02 | 2011-07-20 | 日本電信電話株式会社 | 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法 |
FR2894421B1 (fr) | 2005-12-07 | 2008-01-18 | Canon Kk | Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique |
JP4456064B2 (ja) | 2005-12-21 | 2010-04-28 | 日本電信電話株式会社 | パケット送信装置、受信装置、システム、およびプログラム |
US20070157267A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Techniques to improve time seek operations |
ES2383230T3 (es) | 2006-01-05 | 2012-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Gestión de archivos contenedores de medios |
US8214516B2 (en) | 2006-01-06 | 2012-07-03 | Google Inc. | Dynamic media serving infrastructure |
TWI432035B (zh) | 2006-01-11 | 2014-03-21 | Nokia Corp | 可縮放視訊編碼之圖像反向相容聚合技術 |
JP5199124B2 (ja) | 2006-01-12 | 2013-05-15 | エルジー エレクトロニクス インコーポレイティド | 多視点ビデオの処理 |
WO2007086654A1 (en) | 2006-01-25 | 2007-08-02 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
RU2290768C1 (ru) | 2006-01-30 | 2006-12-27 | Общество с ограниченной ответственностью "Трафиклэнд" | Система медиавещания в инфраструктуре оператора мобильной связи |
US7262719B2 (en) | 2006-01-30 | 2007-08-28 | International Business Machines Corporation | Fast data stream decoding using apriori information |
GB0602314D0 (en) | 2006-02-06 | 2006-03-15 | Ericsson Telefon Ab L M | Transporting packets |
US8990153B2 (en) | 2006-02-07 | 2015-03-24 | Dot Hill Systems Corporation | Pull data replication model |
EP1985022B1 (en) | 2006-02-08 | 2011-06-08 | Thomson Licensing | Decoding of raptor codes |
CN101686107B (zh) | 2006-02-13 | 2014-08-13 | 数字方敦股份有限公司 | 使用可变fec开销和保护周期的流送和缓冲 |
US20070200949A1 (en) | 2006-02-21 | 2007-08-30 | Qualcomm Incorporated | Rapid tuning in multimedia applications |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
JP2007228205A (ja) | 2006-02-23 | 2007-09-06 | Funai Electric Co Ltd | ネットワークサーバ |
US8320450B2 (en) | 2006-03-29 | 2012-11-27 | Vidyo, Inc. | System and method for transcoding between scalable and non-scalable video codecs |
WO2007127741A2 (en) | 2006-04-24 | 2007-11-08 | Sun Microsystems, Inc. | Media server system |
US20080010153A1 (en) | 2006-04-24 | 2008-01-10 | Pugh-O'connor Archie | Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application |
US7640353B2 (en) | 2006-04-27 | 2009-12-29 | Microsoft Corporation | Guided random seek support for media streaming |
US7971129B2 (en) | 2006-05-10 | 2011-06-28 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
US7525993B2 (en) | 2006-05-24 | 2009-04-28 | Newport Media, Inc. | Robust transmission system and method for mobile television applications |
US20100211690A1 (en) | 2009-02-13 | 2010-08-19 | Digital Fountain, Inc. | Block partitioning for a data stream |
TWM302355U (en) | 2006-06-09 | 2006-12-11 | Jia-Bau Jeng | Fixation and cushion structure of knee joint |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
JP2008011404A (ja) | 2006-06-30 | 2008-01-17 | Toshiba Corp | コンテンツ処理装置及びコンテンツ処理方法 |
JP4392004B2 (ja) | 2006-07-03 | 2009-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | パケット回復のための符号化および復号化技術 |
CN102148857A (zh) | 2006-07-20 | 2011-08-10 | 桑迪士克股份有限公司 | 内容分布系统 |
US7711797B1 (en) | 2006-07-31 | 2010-05-04 | Juniper Networks, Inc. | Optimizing batch size for prefetching data over wide area networks |
US8209736B2 (en) | 2006-08-23 | 2012-06-26 | Mediatek Inc. | Systems and methods for managing television (TV) signals |
US20080066136A1 (en) | 2006-08-24 | 2008-03-13 | International Business Machines Corporation | System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues |
AU2007287222A1 (en) | 2006-08-24 | 2008-02-28 | Nokia Corporation | System and method for indicating track relationships in media files |
JP2008109637A (ja) | 2006-09-25 | 2008-05-08 | Toshiba Corp | 動画像符号化装置及びその方法 |
WO2008054112A2 (en) | 2006-10-30 | 2008-05-08 | Lg Electronics Inc. | Methods of performing random access in a wireless communication system |
JP2008118221A (ja) | 2006-10-31 | 2008-05-22 | Toshiba Corp | 復号装置及び復号方法 |
WO2008054100A1 (en) | 2006-11-01 | 2008-05-08 | Electronics And Telecommunications Research Institute | Method and apparatus for decoding metadata used for playing stereoscopic contents |
AU2007319261B2 (en) | 2006-11-14 | 2010-12-16 | Qualcomm Incorporated | Systems and methods for channel switching |
US8027328B2 (en) | 2006-12-26 | 2011-09-27 | Alcatel Lucent | Header compression in a wireless communication network |
CN103559165B (zh) | 2007-01-05 | 2016-08-17 | 索尼克知识产权股份有限公司 | 包含连续播放的视频分配系统 |
US20080168516A1 (en) | 2007-01-08 | 2008-07-10 | Christopher Lance Flick | Facilitating Random Access In Streaming Content |
WO2008084348A1 (en) | 2007-01-09 | 2008-07-17 | Nokia Corporation | Method for supporting file versioning in mbms file repair |
US20080172430A1 (en) | 2007-01-11 | 2008-07-17 | Andrew Thomas Thorstensen | Fragmentation Compression Management |
CA2656144A1 (en) | 2007-01-11 | 2008-07-17 | Panasonic Corporation | Method for trick playing on streamed and encrypted multimedia |
CN101543018B (zh) | 2007-01-12 | 2012-12-26 | 庆熙大学校产学协力团 | 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置 |
KR20080066408A (ko) | 2007-01-12 | 2008-07-16 | 삼성전자주식회사 | 3차원 영상 처리 장치 및 방법 |
US8126062B2 (en) | 2007-01-16 | 2012-02-28 | Cisco Technology, Inc. | Per multi-block partition breakpoint determining for hybrid variable length coding |
US7721003B2 (en) | 2007-02-02 | 2010-05-18 | International Business Machines Corporation | System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client |
US7805456B2 (en) | 2007-02-05 | 2010-09-28 | Microsoft Corporation | Query pattern to enable type flow of element types |
US20080192818A1 (en) | 2007-02-09 | 2008-08-14 | Dipietro Donald Vincent | Systems and methods for securing media |
US20080232357A1 (en) | 2007-03-19 | 2008-09-25 | Legend Silicon Corp. | Ls digital fountain code |
JP4838191B2 (ja) | 2007-05-08 | 2011-12-14 | シャープ株式会社 | ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体 |
JP2008283571A (ja) | 2007-05-11 | 2008-11-20 | Ntt Docomo Inc | コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法 |
WO2008140261A2 (en) | 2007-05-14 | 2008-11-20 | Samsung Electronics Co., Ltd. | Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service |
BRPI0811117A2 (pt) | 2007-05-16 | 2014-12-23 | Thomson Licensing | Aparelho e método para codificar e decodificar sinais |
FR2917262A1 (fr) | 2007-06-05 | 2008-12-12 | Thomson Licensing Sas | Dispositif et procede de codage d'un contenu video sous la forme d'un flux scalable. |
US8487982B2 (en) | 2007-06-07 | 2013-07-16 | Reald Inc. | Stereoplexing for film and video applications |
US8274551B2 (en) | 2007-06-11 | 2012-09-25 | Samsung Electronics Co., Ltd. | Method and apparatus for generating header information of stereoscopic image data |
CN101690118B (zh) | 2007-06-20 | 2013-08-28 | 艾利森电话股份有限公司 | 用于改进的媒体会话管理的方法和设备 |
KR20100030648A (ko) | 2007-06-26 | 2010-03-18 | 노키아 코포레이션 | 시간 레이어 스위칭 포인트들을 표시하는 시스템 및 방법 |
US7917702B2 (en) | 2007-07-10 | 2011-03-29 | Qualcomm Incorporated | Data prefetch throttle |
JP2009027598A (ja) | 2007-07-23 | 2009-02-05 | Hitachi Ltd | 映像配信サーバおよび映像配信方法 |
US8327403B1 (en) | 2007-09-07 | 2012-12-04 | United Video Properties, Inc. | Systems and methods for providing remote program ordering on a user device via a web server |
US9237101B2 (en) | 2007-09-12 | 2016-01-12 | Digital Fountain, Inc. | Generating and communicating source identification information to enable reliable communications |
US8233532B2 (en) | 2007-09-21 | 2012-07-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal |
US8346959B2 (en) | 2007-09-28 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Client-controlled adaptive streaming |
EP2046044B1 (en) | 2007-10-01 | 2017-01-18 | Cabot Communications Ltd | A method and apparatus for streaming digital media content and a communication system |
WO2009048277A2 (en) | 2007-10-09 | 2009-04-16 | Samsung Electronics Co., Ltd. | Apparatus and method for generating and parsing mac pdu in a mobile communication system |
WO2009054907A2 (en) | 2007-10-19 | 2009-04-30 | Swarmcast, Inc. | Media playback point seeking using data range requests |
US8706907B2 (en) | 2007-10-19 | 2014-04-22 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US20090125636A1 (en) | 2007-11-13 | 2009-05-14 | Qiong Li | Payload allocation methods for scalable multimedia servers |
EP2215595B1 (en) | 2007-11-23 | 2012-02-22 | Media Patents S.L. | A process for the on-line distribution of audiovisual contents with advertisements, advertisement management system, digital rights management system and audiovisual content player provided with said systems |
WO2009075766A2 (en) | 2007-12-05 | 2009-06-18 | Swarmcast, Inc. | Dynamic bit rate scaling |
TWI355168B (en) | 2007-12-07 | 2011-12-21 | Univ Nat Chiao Tung | Application classification method in network traff |
JP5385598B2 (ja) | 2007-12-17 | 2014-01-08 | キヤノン株式会社 | 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム |
US9313245B2 (en) | 2007-12-24 | 2016-04-12 | Qualcomm Incorporated | Adaptive streaming for on demand wireless services |
KR101506217B1 (ko) | 2008-01-31 | 2015-03-26 | 삼성전자주식회사 | 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치 |
EP2086237B1 (en) | 2008-02-04 | 2012-06-27 | Alcatel Lucent | Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions |
US8151174B2 (en) | 2008-02-13 | 2012-04-03 | Sunrise IP, LLC | Block modulus coding (BMC) systems and methods for block coding with non-binary modulus |
US20090219985A1 (en) | 2008-02-28 | 2009-09-03 | Vasanth Swaminathan | Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File |
US7984097B2 (en) | 2008-03-18 | 2011-07-19 | Media Patents, S.L. | Methods for transmitting multimedia files and advertisements |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US20090257508A1 (en) | 2008-04-10 | 2009-10-15 | Gaurav Aggarwal | Method and system for enabling video trick modes |
JP5221753B2 (ja) | 2008-04-14 | 2013-06-26 | エルジー エレクトロニクス インコーポレイティド | ランダムアクセス手順を行う方法及び装置 |
WO2009127961A1 (en) | 2008-04-16 | 2009-10-22 | Nokia Corporation | Decoding order recovery in session multiplexing |
WO2009130561A1 (en) | 2008-04-21 | 2009-10-29 | Nokia Corporation | Method and device for video coding and decoding |
US20100017686A1 (en) | 2008-05-07 | 2010-01-21 | Michael Luby | Fast channel zapping and high quality streaming protection over a broadcast channel |
US7979570B2 (en) | 2008-05-12 | 2011-07-12 | Swarmcast, Inc. | Live media delivery over a packet-based computer network |
JP5022301B2 (ja) | 2008-05-19 | 2012-09-12 | 株式会社エヌ・ティ・ティ・ドコモ | プロキシサーバおよび通信中継プログラム、並びに通信中継方法 |
CN101287107B (zh) | 2008-05-29 | 2010-10-13 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US20100011274A1 (en) | 2008-06-12 | 2010-01-14 | Qualcomm Incorporated | Hypothetical fec decoder and signalling for decoding control |
US8775566B2 (en) | 2008-06-21 | 2014-07-08 | Microsoft Corporation | File format for media distribution and presentation |
US8387150B2 (en) | 2008-06-27 | 2013-02-26 | Microsoft Corporation | Segmented media content rights management |
US8468426B2 (en) | 2008-07-02 | 2013-06-18 | Apple Inc. | Multimedia-aware quality-of-service and error correction provisioning |
US8539092B2 (en) | 2008-07-09 | 2013-09-17 | Apple Inc. | Video streaming using multiple channels |
US20100153578A1 (en) | 2008-07-16 | 2010-06-17 | Nokia Corporation | Method and Apparatus for Peer to Peer Streaming |
US8638796B2 (en) | 2008-08-22 | 2014-01-28 | Cisco Technology, Inc. | Re-ordering segments of a large number of segmented service flows |
KR101019634B1 (ko) | 2008-09-04 | 2011-03-07 | 에스케이 텔레콤주식회사 | 미디어 전송 시스템 및 방법 |
US8325796B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
US8370520B2 (en) | 2008-11-24 | 2013-02-05 | Juniper Networks, Inc. | Adaptive network content delivery system |
US20100169303A1 (en) | 2008-12-31 | 2010-07-01 | David Biderman | Playlists for real-time or near real-time streaming |
US8743906B2 (en) | 2009-01-23 | 2014-06-03 | Akamai Technologies, Inc. | Scalable seamless digital video stream splicing |
WO2010085361A2 (en) | 2009-01-26 | 2010-07-29 | Thomson Licensing | Frame packing for video coding |
JP5406942B2 (ja) | 2009-01-29 | 2014-02-05 | ドルビー ラボラトリーズ ライセンシング コーポレイション | 立体画像である複数の画像をサブサンプリング及びインタリーブする方法及び装置 |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US8909806B2 (en) | 2009-03-16 | 2014-12-09 | Microsoft Corporation | Delivering cacheable streaming media presentations |
US8621044B2 (en) | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
EP2420068A4 (en) | 2009-04-13 | 2012-08-08 | Reald Inc | ENCRYPTION, DECOMPOSITION AND DISTRIBUTION OF STEREOSCOPIC VIDEO CONTENT WITH REINFORCED RESOLUTION |
US9807468B2 (en) | 2009-06-16 | 2017-10-31 | Microsoft Technology Licensing, Llc | Byte range caching |
US8903895B2 (en) | 2009-07-22 | 2014-12-02 | Xinlab, Inc. | Method of streaming media to heterogeneous client devices |
US8355433B2 (en) | 2009-08-18 | 2013-01-15 | Netflix, Inc. | Encoding video streams for adaptive video streaming |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US20120151302A1 (en) | 2010-12-10 | 2012-06-14 | Qualcomm Incorporated | Broadcast multimedia storage and access using page maps when asymmetric memory is used |
CN102835150B (zh) | 2009-09-02 | 2015-07-15 | 苹果公司 | 用于无线系统的mac分组数据单元构造 |
US20110096828A1 (en) | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US9438861B2 (en) | 2009-10-06 | 2016-09-06 | Microsoft Technology Licensing, Llc | Integrating continuous and sparse streaming data |
JP2011087103A (ja) | 2009-10-15 | 2011-04-28 | Sony Corp | コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供 |
BR112012011581A2 (pt) | 2009-11-04 | 2017-09-19 | Huawei Tech Co Ltd | sistema e método para streaming de conteúdo de mídia |
KR101786050B1 (ko) | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 전송 방법 및 장치 |
KR101786051B1 (ko) | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치 |
CN101729857A (zh) | 2009-11-24 | 2010-06-09 | 中兴通讯股份有限公司 | 一种接入视频服务的方法及视频播放系统 |
CA2783592A1 (en) | 2009-12-11 | 2011-06-16 | Nokia Corporation | Apparatus and methods for describing and timing representations in streaming media files |
KR101624013B1 (ko) | 2010-02-19 | 2016-05-24 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치 |
RU2690755C2 (ru) | 2010-02-19 | 2019-06-05 | Телефонактиеболагет Л М Эрикссон (Пабл) | Способ и устройство для переключения воспроизведений в потоковой передаче по протоколу передачи гипертекста |
JP5071495B2 (ja) | 2010-03-04 | 2012-11-14 | ウシオ電機株式会社 | 光源装置 |
ES2845643T3 (es) | 2010-03-11 | 2021-07-27 | Electronics & Telecommunications Res Inst | Método y aparato de emisión y recepción de datos en un sistema MIMO |
US20110280311A1 (en) | 2010-05-13 | 2011-11-17 | Qualcomm Incorporated | One-stream coding for asymmetric stereo video |
US9497290B2 (en) | 2010-06-14 | 2016-11-15 | Blackberry Limited | Media presentation description delta file for HTTP streaming |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
KR20120010089A (ko) | 2010-07-20 | 2012-02-02 | 삼성전자주식회사 | Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치 |
US9131033B2 (en) | 2010-07-20 | 2015-09-08 | Qualcomm Incoporated | Providing sequence data sets for streaming video data |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US8711933B2 (en) | 2010-08-09 | 2014-04-29 | Sony Computer Entertainment Inc. | Random access point (RAP) formation using intra refreshing technique in video coding |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups for network streaming of coded multimedia data |
KR101737325B1 (ko) | 2010-08-19 | 2017-05-22 | 삼성전자주식회사 | 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치 |
US8615023B2 (en) | 2010-10-27 | 2013-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for transmitting/receiving data in communication system |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US20120208580A1 (en) | 2011-02-11 | 2012-08-16 | Qualcomm Incorporated | Forward error correction scheduling for an improved radio link protocol |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
-
2008
- 2008-04-15 US US12/103,605 patent/US9178535B2/en not_active Expired - Fee Related
- 2008-04-16 CA CA002681730A patent/CA2681730A1/en not_active Abandoned
- 2008-04-16 KR KR1020127016782A patent/KR101290965B1/ko not_active IP Right Cessation
- 2008-04-16 JP JP2010504224A patent/JP5096560B2/ja not_active Expired - Fee Related
- 2008-04-16 UA UAA200911612A patent/UA94811C2/ru unknown
- 2008-04-16 BR BRPI0810142-6A2A patent/BRPI0810142A2/pt not_active IP Right Cessation
- 2008-04-16 RU RU2009141988/08A patent/RU2440670C2/ru not_active IP Right Cessation
- 2008-04-16 KR KR1020097023766A patent/KR101275432B1/ko active IP Right Grant
- 2008-04-16 EP EP08746007.7A patent/EP2145390B1/en not_active Not-in-force
- 2008-04-16 MX MX2009011094A patent/MX2009011094A/es active IP Right Grant
- 2008-04-16 WO PCT/US2008/060510 patent/WO2008131023A1/en active Application Filing
- 2008-04-16 AU AU2008242911A patent/AU2008242911B2/en not_active Ceased
- 2008-04-16 CN CN200880012335.8A patent/CN101675594B/zh not_active Expired - Fee Related
-
2009
- 2009-09-23 IL IL201147A patent/IL201147A0/en unknown
-
2012
- 2012-07-23 JP JP2012162857A patent/JP5763019B2/ja not_active Expired - Fee Related
- 2012-07-23 JP JP2012162865A patent/JP5635040B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20100007876A (ko) | 2010-01-22 |
CN101675594B (zh) | 2014-10-08 |
RU2009141988A (ru) | 2011-05-27 |
AU2008242911A1 (en) | 2008-10-30 |
EP2145390A1 (en) | 2010-01-20 |
JP5763019B2 (ja) | 2015-08-12 |
US20080256418A1 (en) | 2008-10-16 |
UA94811C2 (ru) | 2011-06-10 |
JP5635040B2 (ja) | 2014-12-03 |
WO2008131023A1 (en) | 2008-10-30 |
BRPI0810142A2 (pt) | 2014-11-25 |
MX2009011094A (es) | 2009-12-11 |
IL201147A0 (en) | 2010-05-17 |
EP2145390B1 (en) | 2014-06-11 |
KR101290965B1 (ko) | 2013-07-30 |
KR20120099741A (ko) | 2012-09-11 |
JP2010535435A (ja) | 2010-11-18 |
US9178535B2 (en) | 2015-11-03 |
EP2145390A4 (en) | 2012-11-07 |
JP5096560B2 (ja) | 2012-12-12 |
AU2008242911B2 (en) | 2011-05-26 |
KR101275432B1 (ko) | 2013-06-14 |
JP2013031173A (ja) | 2013-02-07 |
CA2681730A1 (en) | 2008-10-30 |
CN101675594A (zh) | 2010-03-17 |
JP2013042487A (ja) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2440670C2 (ru) | Динамическое перемежение потоков и доставка на основе подпотоков | |
JP5847577B2 (ja) | より低いレベルのパケット構造から導かれる記号識別子を用いた放送チャネル上の高品質ストリーム保護 | |
US9350488B2 (en) | Content delivery system with allocation of source data and repair data among HTTP servers | |
US7751324B2 (en) | Packet stream arrangement in multimedia transmission | |
TW560189B (en) | Methods and apparatus for scheduling, serving, receiving media-on-demand for clients, servers arranged according to constraints on resources | |
EP1514378B1 (en) | Multimedia server with simple adaptation to dynamic network loss conditions | |
US20120151302A1 (en) | Broadcast multimedia storage and access using page maps when asymmetric memory is used | |
EP2774347A2 (en) | Content delivery system with allocation of source data and repair data among http servers | |
Nazir et al. | Application layer systematic network coding for sliced H. 264/AVC video streaming | |
Nazir et al. | Research Article Application Layer Systematic Network Coding for Sliced H. 264/AVC Video Streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20180517 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190417 |