KR20100007876A - 동적 스트림 인터리빙 및 서브-스트림 기반 전달 - Google Patents

동적 스트림 인터리빙 및 서브-스트림 기반 전달 Download PDF

Info

Publication number
KR20100007876A
KR20100007876A KR1020097023766A KR20097023766A KR20100007876A KR 20100007876 A KR20100007876 A KR 20100007876A KR 1020097023766 A KR1020097023766 A KR 1020097023766A KR 20097023766 A KR20097023766 A KR 20097023766A KR 20100007876 A KR20100007876 A KR 20100007876A
Authority
KR
South Korea
Prior art keywords
stream
content
receiver
interleaving
content stream
Prior art date
Application number
KR1020097023766A
Other languages
English (en)
Other versions
KR101275432B1 (ko
Inventor
마이클 루비
페이얌 파크자드
마크 왓슨
로렌조 비키사노
조단 제이 클리쉬
Original Assignee
디지털 파운튼, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디지털 파운튼, 인크. filed Critical 디지털 파운튼, 인크.
Publication of KR20100007876A publication Critical patent/KR20100007876A/ko
Application granted granted Critical
Publication of KR101275432B1 publication Critical patent/KR101275432B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/35Unequal 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/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding 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

Abstract

통신 시스템은, 인터리빙이 도입되지 않은 경우보다 본래의 스트림내의 훨씬 더 큰 시간 주기에 걸쳐 채널에서 손실들 또는 에러들을 확산시키기 위해 스트림이 임의의 소스 블록 구조와 독립하여 송신될 경우, 더 큰 양의 인터리빙을 동적으로 도입하기 위한 방법을 포함하는, 스트림들을 동적으로 인터리빙하기 위한 방법을 제공할 수 있고, FEC 코딩과 함께 사용될 경우 패킷 손실 또는 패킷 손상에 대해 우수한 보호를 제공하고, 네트워크 지터에 대해 우수한 보호를 제공하며, 콘텐츠 재핑 시간 및 콘텐츠 천이 시간이 최소값 및 최소의 콘텐츠 천이 시간으로 감소되게 할 수 있다. 스트림들은 서브 스트림들로 분할될 수도 있으며, 네트워크 전반에 걸친 상이한 경로들에 따라 수신기들에 그 서브 스트림들을 전달하고, 잠재적으로 상이한 서버들로부터 전송된 상이한 서브 스트림들을 수신기에서 동시에 수신한다. FEC 인코딩과 함께 사용될 경우, 방법들은, 잠재적으로 상이한 서버들로부터 각각의 소스 블록의 인코딩의 일부를 전달하는 단계를 포함한다.
콘텐츠 재핑 시간, 콘텐츠 천이 시간

Description

동적 스트림 인터리빙 및 서브-스트림 기반 전달{DYNAMIC STREAM INTERLEAVING AND SUB-STREAM BASED DELIVERY}
관련 출원에 대한 상호-참조
본 특허 출원은, 발명의 명칭이 "동적 스트림 인터리빙 및 서브-스트림 기반 전달 (DYNAMIC STREAM INTERLEAVING AND SUB-STREAM BASED DELIVERY)" 로 2007년 4월 16일자로 출원된 미국 가출원 제 60/912,145 호의 이점을 주장한다. 이 출원의 내용은 모든 목적을 위해 그 전체가 참조로서 여기에 포함된다.
또한, 본 발명은, 다음의 공동-양수된 출원/특허를 모든 목적을 위해, 본 명세서에 개시된 바와 같이 참조로서 포함한다.
Luby 등의 미국 특허 제 6,307,487호 (이하, "Luby I");
Shokrollahi 등의 미국 특허 제 7,068,729호 (이하, "Shokrollahi I");
발명의 명칭이 "순방향-에러 정정 (FEC) 코딩 및 스트리밍 (Forward Error-Correcting (FEC) Coding and Streaming)" 으로 2006년 6월 9일자로 출원된 Luby 등의 미국 특허 출원 제 11/423,391호 (이하, "Luby II"); 및
발명이 명칭이 "가변 FEC 오버헤드 및 보호 주기를 사용한 스트리밍 및 버퍼링 (Streaming and Buffering Using Variable FEC Overhead and Protection Periods)" 로 2007년 2월 13일자로 출원된 Watson 등의 미국 특허 출원 제 11/674,625호 (이하, "Watson").
발명의 분야
본 발명은, 스트리밍 솔루션들을 개선시키기 위해 모든 양태에서, 스트리밍 품질 전달, 콘텐츠 재핑 (zapping) 시간, 스트림들의 스케일러블한 분산식 전달, 및 FEC 코딩의 사용을 개선시키는 것에 관한 것이다. 스트리밍은, 플레이-리스트 컨텐츠 또는 라이브 제공을 위해 요구 (on-demand) 에 따라 일정한 또는 가변 비트 레이트 중 어느 하나에서의 오디오, 비디오, 및 데이터의 스트리밍을 포함한다.
발명의 배경
고품질의 오디오 및 비디오가 인터넷, 셀룰러 및 무선 네트워크, 전력선 네트워크, 및 많은 다른 네트워크들과 같은 패킷 기반 네트워크를 통해 전달되는 것이 더욱 더 일반적으로 되어 감에 따라, 스트리밍 미디어 전달이 더욱 더 중요해지고 있다. 전달된 스트리밍 미디어의 품질은, 본래의 콘텐츠의 품질, 본래의 콘텐츠의 인코딩 품질, 비디오를 디코딩 및 디스플레이하기 위한 수신 디바이스들의 능력들, 수신기들에서 수신된 신호의 적시성 (timeliness) 및 품질 등을 포함하는 다수의 인자들에 의존한다. 지각된 양호한 스트리밍 미디어 경험을 생성하기 위해, 수신기들에서 수신된 신호의 전송 및 적시성이 특히 중요하다. 양호한 전송은, 전송기로부터 전송된 것과 비교하여 수신기에서 수신된 스트림의 충실도 (fidelity) 를 제공하며, 적시성은 콘텐츠에 대한 초기 요청 이후에 수신기가 얼마나 신속하게 그 콘텐츠를 재생하기 시작할 수 있는지를 나타낸다.
최근에, 송신 동안 스트리밍 미디어의 보호를 위해 순방향 에러 정정 (FEC) 코드들을 사용할 것을 고려하는 것이 일반적인 프랙티스가 되어 가고 있다. 패킷 네트워크를 통해 전송될 경우, 소스 스트림은 생성되거나 이용가능하게 될 경우 패킷들에 배치되고, 따라서, 그 소스 스트림이 생성되거나 이용가능하게 되기 위해, 그 패킷들은 소스 또는 콘텐츠 스트림을 수신기들에 운반하는데 사용되며, 그 패킷 네트워크의 예들은, 3GPP, 3GPP2, 및 DVB와 같은 그룹들에 의해 표준화된 것과 같은 무선 네트워크들 및 인터넷을 포함한다.
이들 타입들의 시나리오들에 대한 FEC 코드들의 통상적인 애플리케이션에서, 인코더는 리페어 (repair) 패킷들의 생성시에 FEC 코드를 사용하며, 그 후, 그 리페어 패킷들은 소스 스트림을 포함하는 본래의 소스 패킷들에 부가하여 전송된다. 리페어 패킷들은, 소스 패킷 손실이 발생할 경우, 수신된 리페어 패킷들이 그 손실된 소스 패킷들에 포함된 데이터를 복원하는데 사용될 수 있다는 특성을 갖는다. 리페어 패킷들은, 전체가 손실된 손실 소스 패킷들의 콘텐츠를 복원하는데 사용될 수 있지만, 또한, 부분적인 패킷 손실이 발생한 경우, 전체로 수신된 리페어 패킷들 또는 심지어 부분적으로 수신된 리페어 패킷들로부터 복원하는데 사용될 수도 있다. 따라서, 전체 또는 부분적으로 수신된 리페어 패킷들은 전체 또는 부분적으로 손실된 소스 패킷들을 복원하는데 사용될 수 있다.
또 다른 예에서, 예를 들어, 비트값들이 플립 (flip) 될 수도 있는 다른 타입의 손상이 전송된 데이터에 대해 발생할 수 있으며, 따라서, 리페어 패킷들은 그러한 손상을 정정하고, 가능한 정확하게 소스 패킷들의 복원을 제공하기 위해 사용 될 수도 있다. 다른 예에서, 소스 스트림이 별개의 패킷들에서 반드시 전송될 필요는 없지만, 대신, 예를 들어, 연속하는 비트-스트림으로서 전송될 수도 있다.
소스 스트림의 보호를 제공하는데 사용될 수 있는 FEC 코드들의 많은 예들이 존재한다. 리드-솔로몬 코드들은 통신 시스템에서 에러 및 소거 정정을 위한 주지된 코드이다. 예를 들어, 패킷 데이터 네트워크 상에서의 소거 정정에 있어서, 리드-솔로몬 코드들의 주지된 효율적인 구현은, L. Rizzo 의 "Effective Erasure Codes for Reliable Computer Communication Protocols", Computer Communication Review, 27(2): 24-36 (1997년 4월) (이하, "Rizzo") 및 Bloemer 등의 "An XOR-Based Erasure-Resilient Coding Scheme", Technical Report TR-95-48, International Computer Science Institute, Berkeley, California (1995) (이하, "XOR-리드-솔로몬) 등에서 설명된 바와 같은 코시 (Cauchy) 또는 방데르몽데 (Vandermonde) 매트릭스들을 사용한다.
FEC 코드들의 다른 예들은, LDPC 코드들, Luby I에 설명된 것과 같은 체인 리액션 코드들, 및 Shokrollahi I에서와 같은 멀티-스테이지 체인 리액션 코드들을 포함한다.
리드-솔로몬 코드들의 변형에 대한 FEC 디코딩 프로세스의 예들이 Rizzo 및 XOR-리드-솔로몬에 설명되어 있다. 이들 예에서, 충분한 소스 및 리페어 데이터 패킷들이 수신된 이후 디코딩이 적용된다. 디코딩 프로세스는 계산 집약적일 수도 있으며, 이용가능한 CPU 리소스들에 의존하여, 그 디코딩 프로세스는, 블록내의 미디어에 걸쳐 있는 시간 길이에 관해 완료하는데 상당한 시간이 걸릴 수도 있다. 수신기는, 미디어 스트림의 수신 시작과 그 미디어의 재생 사이에서 요구되는 지연을 계산할 경우, 디코딩을 위해 요구되는 이러한 시간 길이를 고려해야 한다. 디코딩으로 인한 이러한 지연은, 특정한 미디어 스트림에 대한 요청과 재생 시작 사이의 지연으로서 사용자에 의해 지각된다. 따라서, 이러한 지연을 최소화시키는 것이 바람직하다.
많은 애플리케이션들에서, 패킷들은, FEC 프로세스가 적용되는 심볼로 추가적으로 세분된다. 패킷은 하나 이상의 심볼 (또는 1 이하의 심볼, 하지만 일반적으로 심볼들은 패킷들에 걸쳐 분할되지 않음) 을 포함할 수 있다. 심볼은 임의의 사이즈를 가질 수 있지만, 종종 심볼의 사이즈는, 최대, 패킷의 사이즈와 동일하다. 소스 심볼들은, 송신될 데이터를 인코딩한 심볼들이다. 리페어 심볼들은, 소스 심볼들에 부가한 소스 심볼들로부터 직접 또는 간접적으로 생성된 심볼들이다 (즉, 모든 소스 심볼들이 이용가능하고 어느 리페어 심볼들도 이용가능하지 않으면, 송신될 데이터가 전체적으로 복원될 수 있다).
몇몇 FEC 코드들은, 인코딩 동작들이 블록에 존재하는 심볼(들)에 의존하고, 그 블록에 존재하지 않는 심볼들과 독립적일 수 있다는 점에서 블록-기반이다. 블록-기반 인코딩에 관하여, FEC 인코더는 블록내의 소스 심볼들로부터 그 블록에 대한 리페어 심볼들을 생성할 수 있으며, 그 후, 다음 블록으로 이동하지만, 인코딩될 현재 블록에 대한 소스 심볼들 이외의 소스 심볼들을 참조할 필요는 없다. 송신에서, 소스 심볼들을 포함하는 소스 블록은, (일부 소스 심볼들, 일부 리페어 심볼들, 또는 그 양자일 수도 있는) 인코딩된 심볼들을 포함하는 인코딩된 블록에 의해 표현될 수 있다. 리페어 심볼들의 존재로, 모든 소스 심볼들이 모든 인코딩된 블록에서 요구되지는 않는다.
몇몇 FEC 코드들, 특히, 리드-솔로몬 코드들에 있어서, 인코딩 및 디코딩 시간은, 소스 블록 당 인코딩된 심볼들의 수가 증가함에 따라 비실용적이 된다. 따라서, 실제로, 소스 블록 당 생성될 수 있는 인코딩된 심볼들의 총 수에 대해 실용적인 상한 (몇몇 애플리케이션에 있어서, 255 가 대략적인 실용적 제한임) 이 종종 존재하며, 특히, 리드-솔로몬 인코딩 또는 디코딩 프로세스가 커스텀 하드웨어에 의해 수행되는 통상적인 경우, 예를 들어, 패킷 손실에 대해 스트림들을 보호하기 위한 DVB-H 표준의 일부로서 포함된 리드-솔로몬 코드들을 사용하는 MPE-FEC 프로세스들은, 소스 블록 당 총 255개의 리드-솔로몬 전체 인코딩된 심볼들로 제한된 셀 전화기 내의 특수화된 하드웨어로 구현된다. 종종, 심볼들이 별개의 패킷 페이로드에 배치되도록 요구되므로, 이는 인코딩될 소스 블록의 최대 길이에 실용적인 상한을 둔다. 예를 들어, 패킷 페이로드가 1024 바이트 이하로 제한되고 각각의 패킷이 하나의 인코딩된 심볼을 운반하면, 인코딩된 소스 블록은 최대 255KB (킬로바이트) 일 수 있으며, 물론, 이것 역시 그 자체가 소스 블록의 사이즈에 대한 상한이다.
FEC 디코딩에 의해 도입된 디코딩 레이턴시를 최소화시키 위해, 소스 스트리밍 레이트를 유지하기에 충분히 고속으로 소스 블록들을 디코딩할 수 있는 것, 및 FEC 디코딩 동안 임의의 시점에 수신 디바이스 상에서 이용가능한 CPU의 작은 비율만을 사용할 수 있는 것과 같은 다른 관심사들이 이슈이다.
다른 관심사들은 스트림을 재생하는 것, 예를 들어, 개인용 컴퓨터를 사용하여 수신 오디오 및 비디오 스트림들을 디코딩 및 렌더링하고, 컴퓨터 스크린 상에서 비디오를 디스플레이하고 내장형 (built in) 스피커들을 통해 오디오를 플레이하는 것, 또는 또 다른 예로서, 셋톱 박스를 사용하여 수신 오디오 및 비디오 스트림들을 디코딩 및 렌더링하고, 텔레비전 디스플레이 디바이스 상에서 비디오를 디스플레이하고 스테레오 시스템을 통해 오디오를 재생하는 것을 시작하는 능력을 포함한다. 주요 관심사는, 사용자가 스트림으로서 전달된 신규한 콘텐츠를 워칭하는 (watch) 시간과 그 콘텐츠가 플레이하기 시작하는 시간 사이의 지연을 최소화시키는 것이며, 그 지연은, 이하, "콘텐츠 재핑 시간" 으로 지칭된다. 콘텐츠 재핑의 예는, 사용자가 제 1 스트림을 통해 전달된 제 1 콘텐츠를 워칭하고 있으며, 그 후, 제 2 스트림을 통해 전달된 제 2 콘텐츠를 워칭하길 원하여, 그 제 2 콘텐츠를 워칭하기 시작하는 액션을 개시하는 경우이다. 제 2 스트림은 제 1 스트림과 동일한 세트 또는 상이한 세트의 서버들로부터 전송될 수도 있다. 콘텐츠 재핑의 또 다른 예는, 사용자가 웹사이트를 방문하고 있고, 브라우저 윈도우내의 링크를 클릭함으로써 제 1 스트림을 통해 전달된 제 1 콘텐츠를 워칭하기 시작하길 원하는 경우이다. 콘텐츠 재핑의 또 다른 예는, 사용자가 동일한 콘텐츠 스트림 내의 신규한 위치에서, 앞 또는 뒤로 뷰잉을 탐색하고 뷰잉을 시작하길 원하는 경우이다. 콘텐츠 재핑 시간을 최소화시키는 것은, 사용자가 광범위한 이용가능 콘텐츠들을 탐색 및 샘플링할 경우 고품질의 신속한 콘텐츠 서핑 경험을 허용하기 위해 비디오 워칭에 중요하다. 종종, 고품질의 신속한 콘텐츠 서핑 경험은 사용자가 소비하는 콘텐츠의 양과 포지티브하게 상관된다.
콘텐츠 재핑 시간에 대한 주요 기여자가 하부 (underlying) FEC 구조인 경우가 종종 존재한다. 또 다른 관심사는, 콘텐츠의 일 부분의 재생의 종료와 콘텐츠의 또 다른 부분의 재생의 시작 사이의 시간 갭을 최소화시키는 것이며, 일시 정지가 거의 없거나 일시 정지가 전혀 없이 연속적인 것이 바람직하다. 예를 들어, 콘텐츠의 일 부분이 브로드캐스트 쇼이고 콘텐츠의 다음 부분이 광고이거나, 콘텐츠의 일 부분이 광고이고 콘텐츠의 다음 부분이 브로드캐스트 쇼일 경우, 그들의 재생 사이의 긴 갭 (이하, "콘텐츠 천이 시간" 으로서 지칭됨) 은 바람직하지 않다.
명확하게, 천이를 둘러싸는 시간 주기 동안 수신기로의 스트리밍 레이트를 최소화하면서, 동시에 콘텐츠 천이 시간을 최소화시키는 것이 바람직하다.
또 다른 관심사는, 패킷을 드롭시킬 수 있고, 패킷들이 전달되는데 걸리는 시간의 양에서 큰 변화를 초래할 수 있는 인터넷과 같은 베스트 에포트 (best effort) 전달 네트워크를 사용할 경우, 전달된 스트림의 품질을 최대화시키면서, 동시에, 대역폭과 같은 네트워크 리소스의 이용도를 최소화시키는 것이다.
또 다른 관심사는, 시스템의 컴포넌트들이 수신기들에 전달된 스트림들의 품질에 악영향을 주지 않으면서 실패하게 하는 강인하고 스케일러블한 스트리밍 전달 솔루션을 제공하는 것이다.
인터리빙은, 간헐적인 패킷 손실과 같은 채널 불완전성에 대한 우수한 보호를 제공하는데 사용될 수 있다. 예를 들어, 패킷 손실은 종종 다소 버스트적이 며, 따라서, 더 긴 시간 주기에 걸쳐 소스 블록을 확산시키는 것이 바람직할 수 있다. 몇몇 FEC 코드들에 있어서, 큰 소스 블록의 고유의 사용 (native use) 이 실용적이지만, 리드-솔로몬 코드와 같은 다른 FEC 코드들에 있어서, 사용될 수 있는 소스 블록 사이즈의 실용적인 제한이 종종 존재한다. 따라서, 소스 블록과 관련된 패킷들의 송신을 더 긴 시간 간격에 걸쳐 확산시키기 위해, 상이한 소스 블록들에 대한 인코딩된 심볼들을 포함하는 패킷들의 전송을 인터리빙하는 것이 바람직할 수 있다.
이전에, 상기 표현된 관심사들 중 몇몇을 해결하는 방법이 도입되었다. 예를 들어, 몇몇 신규한 FEC 소스 블록 포메이션 및 인터리빙 방법들이 Luby II에 설명되어 있다. 몇몇 인터리빙 방법들은, 인터리빙의 양이 전체 스트림에 대해 고정적이라는 점에서 정적이다. 따라서, 그러한 방법들에 의해 제공된 보호의 품질에 영향을 주는 인터리빙의 양과 콘텐츠 재핑 시간 사이에 트래이드-오프가 종종 존재하며, 즉, 더 많은 양의 인터리빙은 더 양호한 스트림 보호를 제공하지만 더 긴 콘텐츠 재핑 시간들을 제공하고, 이러한 트래이드-오프는 수신기로의 스트리밍의 전체 지속기간 동안 고정된 방식으로 결정된다.
스트림 전송 프로세스의 대부분 동안 더 짧은 콘텐츠 재핑 시간들 및 더 큰 양의 인터리빙을 제공하는 몇몇 방법들, 예를 들어, Watson에 설명된 몇몇 방법들이 존재한다. Watson에 설명된 방법들 중 몇몇은 짧은 초기 소스 블록들로부터 점점 더 긴 소스 블록들로 동적으로 천이하며, 천이 주기 동안, 콘텐츠 스트리밍 레이트보다 약간 더 빠른 레이트로 전송한다. 그러한 방법들은 더 짧은 콘텐츠 재핑 시간을 제공하면서, 동시에, 스트림이 진행함에 따라 제공된 보호의 품질의 강화 (build up) 를 허용한다. 예를 들어, Watson에 설명된 방법들 중 몇몇을 적용하는 일 방식은 소스 블록 구조를 결정하고, 스트림이 전송되고 있는 동안 FEC 인코딩을 수행하는 것이며, 즉, 짧은 소스 블록 구조 내지 긴 소스 블록 구조가 결정되고, 그들이 개별 수신기들에 액세스하는 각각의 포인트에서 그들이 전송될 경우 FEC 인코딩되며, 따라서, 소스 블록 구조 포메이션 및 FEC 인코딩은 각각의 수신기에 대해 고유하게 수행되고, 각각의 수신기에 전송된 스트림은 고유하다. 그러나, 스트림의 전달과 독립적으로, 예를 들어, 콘텐츠가 뷰잉되는 시간 및 콘텐츠 스트림에서 뷰잉이 개시되는 위치와 독립적으로, 및 스트림내의 데이터가 전달되는 순서와 독립적으로 결정되는 콘텐츠 스트림의 소스 블록 구조를 갖는 것이 종종 바람직하다. 특히, 이는, 콘텐츠 스트림이 다수의 서버들로부터 단일 수신기로 전달될 경우 중요하다.
따라서, 프로세스들 및 장치를 개선시키는 것이 바람직하다.
발명의 간단한 요약
본 발명의 양태들에 따른 인코더, 디코더 및 통신 시스템의 실시형태들은, 스트림이 임의의 소스 블록 구조와 독립적으로 송신될 경우 더 많은 양의 인터리빙을 동적으로 도입하기 위한 방법을 포함하는, 스트림들을 동적으로 인터리빙하는 방법들을 제공한다. 이들 방법들의 몇몇 이점은, 그 방법들이 인터리빙이 도입되지 않았던 경우보다 본래의 스트림내에서 훨씬 더 큰 시간 주기에 걸쳐 채널에서 손실들 또는 에러들을 확산시키고, FEC 코딩과 함께 이용될 경우, 패킷 손실 또는 패킷 손상에 대한 우수한 보호를 제공하고, 네트워크 지터에 대한 우수한 보호를 제공하며, 콘텐츠 재핑 시간 및 콘텐츠 천이 시간이 최소로 감소되게 한다는 것이다. 이들 방법들의 몇몇 부가적인 이점은, 일 콘텐츠로부터 또 다른 콘텐츠로의 스트리밍으로부터의 천이에 걸친 송신 스트리밍 레이트의 평활화, 및 최소의 콘텐츠 천이 시간들을 포함한다.
또한, 본 발명의 양태들에 따른 인코더, 디코더 및 통신 시스템의 실시형태들은, 데이터의 스트림을 서브-스트림들로 분할하는 것, 네트워크를 통하여 상이한 경로들에 따라 그 서브-스트림들을 수신기들에 전달하는 것, 및 잠재적으로 상이한 서버들로부터 전송된 상이한 서브-스트림들을 수신기에서 동시에 수신하는 것을 제공할 수도 있다. FEC 인코딩과 함께 사용될 경우, 그 방법들은, 잠재적으로 상이한 서버들로부터의 각각의 소스 블록의 인코딩의 부분을 전달하는 것을 포함한다. 이들 방법들의 몇몇 이점은, 개선된 콘텐츠 재핑 시간, 서버 실패 및 경로 실패에 대한 강인성, 디스크 실패에 대한 강인성, 패킷들의 손실 및/또는 손상에 대한 개선된 강인성, 전체 스트리밍 전달 솔루션의 개선된 스케일러빌러티 (scalability), 및 서버들 사이에서의 개선된 콘텐츠 저장 및 스트리밍 레이트 밸런싱을 포함한다.
또한, 본 발명의 양태들에 따른 인코더, 디코더 및 통신 시스템의 실시형태들은, 서브-스트림 전달과 동적 인터리빙을 결합시키는 것을 제공할 수도 있다. 예를 들어, 동적 인터리밍을 사용하여, 소스 블록 구조 및 FEC 인코딩이 결정될 수 있고, 인코딩된 스트림은 서브-스트림들로 분할될 수 있으며, 최소의 콘텐츠 재 핑 시간을 제공하는 강인한 스트리밍 전달 시스템을 제공하기 위해, 서브-스트림들의 결합들은 동적 인터리빙을 사용하여 수신기에 전달될 수 있다. 이들 결합된 방법들의 이점은 동적 인터리빙 및 서브-스트림 전달의 이점들의 결합이다.
첨부한 도면 및 다음의 상세한 설명은 본 발명의 본질 및 이점들에 대한 양호한 이해를 제공할 것이다.
도면의 간단한 설명
도 1은 본 발명의 일 실시형태에 따른 통신 시스템의 블록도이다.
도 2는 콘텐츠 재핑 시간을 도시한 다이어그램이다.
도 3a는 콘텐츠 재핑 시간의 컴포넌트들을 예시한 도면이다.
도 3b는 디코딩 동안의 FEC에 대한 CPU 이용도를 예시한 도면이다.
도 4는 콘텐츠 스트림의 소스 블록 구조, 및 각각의 소스 블록에 대한 대응하는 콘텐츠 스트림 레이트의 표현을 예시한 도면이다.
도 5는 도 4의 콘텐츠 스트림에 대응하는 인코딩된 블록 구조를 예시한 도면이다.
도 6은 기본적인 전송기 방법에 대응하는 콘텐츠 재핑 시간 및 수신기를 예시한 도면이다.
도 7은 스트림 전송의 테이프 방법을 예시한 도면이다.
도 8은 스트림 전송의 테이프 방법에 따른 정적 인터리빙을 예시한 도면이다.
도 9는 정적 인터리빙 전송기 방법에 대응하는 콘텐츠 재핑 시간 및 수신기 를 예시한 도면이다.
도 10은, 신규한 스트림이 수신기로 전송될 경우의 동적 인터리빙 전송기 방법을 예시한 도면이다.
도 11은 동적 인터리빙 전송기 방법에 대하여 수신기에 의해 경험된 콘텐츠 재핑 시간 및 롱-텀 (long-term) 보호 주기를 예시한 도면이다.
도 12는 동적 인터리빙 전송기 방법에 대해 2개의 연속하는 콘텐츠 세그먼트들 사이에서의 콘텐츠 천이를 예시한 도면이다.
도 13은 동적 인터리빙 전송기 방법에 대해 2개의 연속하지 않은 콘텐츠 세그먼트들 사이에서의 콘텐츠 천이를 예시한 도면이다.
도 14는 서브-스트림 기반 전달 방법에서 사용될 헤드-엔드 서버로부터 다양한 분산된 서버들로 분산되는 인코딩된 콘텐츠 스트림을 예시한 도면이다.
도 15는 서브-스트림 기반 전달 방법에서, 다양한 분산된 서버들로부터 콘텐츠 스트림을 요청하고, 이들 서버들 중 몇몇으로부터 인코딩된 콘텐츠 스트림들을 수신하는 수신기를 예시한 도면이다.
발명의 상세한 설명
실시형태들은, 스트림이 임의의 소스 블록 구조와 독립하여 송신되는 경우 더 많은 양의 인터리빙을 동적으로 도입하기 위한 방법들을 포함하는, 스트림들을 동적으로 인터리빙하는 신규한 방법들을 제공하며, 여기서, 그 송신은 네트워크 등을 통한다. 또한, 실시형태들은, 데이터의 스트림을 서브-스트림들로 분할하고, 네트워크를 통해 상이한 경로들에 따라 수신기들로 그 서브-스트림들을 전달하 며, 잠재적으로 상이한 서버들로부터 전송된 상이한 서브-스트림들을 수신기에서 동시에 수신하는 신규한 방법들을 제공한다. FEC 인코딩과 함께 사용될 경우, 그 방법들은, 잠재적으로 상이한 서버들로부터의 각각의 소스 블록의 인코딩의 부분을 전달하는 것을 포함한다. 또한, 실시형태들은, 동적 인터리빙을 서브-스트림 전달과 결합시키는 신규한 방법들을 제공한다.
이하, 여기에 설명된 프로세스들 및 방법들이 연속하는 비트-스트림 네트워크와 같은 다른 타입의 송신 네트워크에 적용될 수 있는 방법을 당업자가 용이하게 관측할 수 있다는 인식으로, 여기에서의 설명을 간략화하기 위해, 데이터를 운반하는 네트워크는 패킷-기반인 것으로 가정된다. 이하, 여기에 설명된 프로세스들 및 방법들이 비트-플립과 같은 다른 타입의 데이터 송신물 손상에 적용될 수 있는 방법을 당업자가 용이하게 관측할 수 있다는 인식으로, 여기에서의 설명을 간략화하기 위해, 패킷내의 손실된 패킷들 또는 손실된 부분 데이터에 대한 보호를 제공하도록 FEC 코드들이 가정된다. 본 설명에서, 인코딩될 데이터 (소스 데이터) 가 임의의 길이일 수 있는 동일한 길이의 "심볼" 로 (단일 비트까지) 분할되지만, 데이터의 상이한 부분들에 대해 상이한 길이일 수 있다고 가정한다.
심볼들은 데이터 네트워크를 통해 패킷 단위로 운반될 수 있으며, 전체 개수의 심볼들은 명시적으로 운반되거나 각각의 패킷에 내포된다. 몇몇 경우, 소스 패킷이 심볼 길이의 배수가 아닌 것이 가능하며, 이러한 경우, 패킷에서의 최종 심볼은 절단될 수도 있다. 이러한 경우에서, FEC 코딩의 목적을 위해, 이러한 최종 심볼은 고정된 패턴의 비트들, 예를 들어, 제로-값 비트들로 패딩된다고 묵시적 으로 가정되므로, 이들 비트들이 패킷에서 운반되지 않더라도, 여전히 수신기는 이러한 최종 절단된 심볼을 전체 심볼에 채울 수 있다. 다른 실시형태에서, 고정된 패턴의 비트들은 패킷에 배치될 수 있으며, 그에 의해, 패킷의 길이와 동일한 길이로 심볼들을 효율적으로 패딩한다. 종종, 심볼의 사이즈는 비트 단위로 측정될 수 있으며, 여기서, 심볼은 M 비트의 사이즈를 갖고, 그 심볼은 2^M (2 내지 M의 거듭제곱) 심볼들의 알파벳으로부터 선택된다. 또한, 넌-바이너리 디지트가 고려되지만, 바이너리 비트들이 더 일반적으로 사용되므로 선호된다.
스트리밍과 함께 사용하기 위해 고려되는 FEC 코드들은 통상적으로 시스템매틱 (systematic) FEC 코드들이며, 즉, 소스 블록의 소스 심볼들이 소스 블록의 인코딩의 일부로서 포함되고, 따라서, 소스 심볼들이 송신된다. 당업자가 인식할 바와 같이, 여기에 설명된 방법들 및 프로세스들은 시스템매틱이 아닌 FEC 코드들에 또한 동일하게 적용된다. 시스템매틱 FEC 인코더는 소스 심볼들의 소스 블록으로부터 몇몇 수의 리페어 심볼들을 생성하고, 소스 및 리페어 심볼들의 적어도 일부의 결합은, 소스 블록을 나타내는, 채널을 통해 전송된 인코딩된 심볼들이다. "정보 가산 코드" 또는 "파운틴 코드 (fountain code)" 와 같은 몇몇 FEC 코드들은 필요한 만큼 많은 리페어 심볼들을 효율적으로 생성하는데 유용하며, 이들 코드들의 예들은 "체인 리액션 코드" 및 "멀티-스테이지 체인 리액션 코드" 를 포함한다. 실제로, 리드-솔로몬 코드와 같은 다른 FEC 코드들은 각각의 소스 블록에 대해 제한된 수의 리페어 심볼들만을 생성할 수 있다.
심볼들을 운반하기 위한 많은 다른 방법들이 존재하며, 아래의 설명이 간략 화를 위해 패킷들에 대한 방법을 사용하지만, 제한하거나 포괄적인 것으로 의미되지는 않는다. 아래의 설명의 콘텍스트에서, "패킷" 이라는 용어는, 문자 그대로 데이터의 단일 유닛으로서 전송되는 것을 의미하도록 제한하려는 의미가 아니다. 대신, 데이터의 단일 유닛으로서 전송될 수도 있거나 전송되지 않을 수도 있는 심볼들 및 부분 심볼들의 논리적인 그룹화를 정의하는 더 넓은 의미를 포함하는 것을 의미한다.
또한, 후술되는 방법들이 동일하게 적용되는, 심볼들의 손실 이외에 데이터의 손상 형태, 예를 들어, 송신에서 그들의 값을 변경시키거나 다른 방식으로 손상되는 심볼들이 존재한다. 따라서, 아래의 설명이 종종 심볼들의 손실을 설명할 것이지만, 그 방법들은 다른 타입의 손상 및 FEC 에러-정정 코드와 같이 FEC 소거 코드보다 뛰어난 다른 타입의 FEC 코드들에 또한 동일하게 적용된다.
FEC 코드 실시예
도 1은 체인 리액션 FEC 코딩을 사용하는 통신 시스템 (100) 의 블록도이다. 통신 시스템 (100) 에서, 입력 파일 (101), 또는 입력 스트림 (105) 가 입력 심볼 생성기 (110) 에 제공된다. 입력 심볼 생성기 (110) 는 입력 파일 또는 스트림으로부터 하나 이상의 입력 심볼들의 시퀀스 (IS(0), IS(1), IS(2), ...) 를 생성하며, 각각의 입력 심볼은 (괄호로 묶인 정수로서 도 1에 도시된) 일 값 및 일 위치를 갖는다. 통상적으로, 입력 심볼들에 대한 가능한 값들, 즉, 그의 알파벳은 2백만 심볼들의 알파벳이므로, 각각의 입력 심볼은 입력 파일의 M 비트에 대해 코딩된다. 일반적으로 M의 값은 통신 시스템 (100) 의 사용에 의해 결정되 지만, 범용 시스템은, M이 사용에 따라 변경될 수 있도록 입력 심볼 생성기 (110) 에 대해 입력된 심볼 사이즈를 포함할 수도 있다. 입력 심볼 생성기 (110) 의 출력은 인코더 (115) 에 제공된다.
키 생성기 (120) 는 인코더 (115) 에 의해 생성될 각각의 출력 심볼에 대한 키를 생성한다. 이러한 또는 또 다른 키 생성기에 의해 생성되든지 간에, 각각의 키는, Luby I 또는 Shokrollahi I 에 설명된 방법들 중 하나, 또는 스트림내의 데이터 블록 또는 동일한 입력 파일에 대해 생성된 키들의 큰 부분이 고유하다는 것을 보장하는 임의의 비교가능한 방법에 따라 생성될 수 있다. 예를 들어, 키 생성기 (120) 는 카운터 (125) 의 출력, 고유한 스트림 식별자 (130), 및/또는 랜덤 생성기 (135) 의 출력의 조합을 사용하여, 각각의 키를 생성할 수도 있다. 키 생성기 (120) 의 출력은 인코더 (115) 에 제공된다. 다른 예, 예를 들어, 몇몇 스트리밍 애플리케이션에서, 키들의 세트는 스트림내의 각각의 데이터 블록에 대해 고정될 수도 있고 다시 재사용될 수도 있다. 통상적인 실시형태에서, 생성될 수 있는 키들의 수는, 입력 파일 또는 스트림의 사이즈 또는 다른 특징보다는 키 생성기의 레졸루션 (resolution) 에 의해 지시된다. 예를 들어, 종종, 입력이 약 1000 심볼 이하인 것으로 기대되면, 키 레졸루션은, 최대 4십억개의 고유 키들을 허용하는 32-비트일 수도 있다. 이들 상대적인 수들의 일 결과는, 키들에 따라 인코딩하는 인코더가 4천개의 입력 심볼들에 대해 4십억개의 고유한 출력 심볼들을 생성할 수 있을 수도 있다는 것이다. 실제로, 대부분의 통신 시스템들은 심볼들의 0.999999 부분을 손실하지 않을 것이므로, 4십억개의 출력 심볼들이 생성될 필요는 없을 것이며, 따라서, 가능한 키들의 수는, 사실상 제한되지 않고 반복될 필요가 없는 것으로 처리될 수 있고, 키들의 2개의 독립적인 선택이 동일한 키를 잡을 확률은 매우 작아진다. 그러나, 그것이 몇몇 원인에 대한 경우이면, 키 생성기의 레졸루션은, 키들을 사용하는 프로세스들이 키의 무한 공급이 존재하는 것처럼 작동할 수 있도록 증가될 수 있다.
키 생성기 (120) 에 의해 제공된 각각의 키 I 로부터, 인코더 (115) 는, 입력 심볼 생성기에 의해 제공된 입력 심볼들로부터 값 B(I) 를 갖는 출력 심볼을 생성한다.
각각의 출력 심볼의 값은, 그의 키, 및 여기에서 출력 심볼의 "관련 입력 심볼" 또는 단지 그의 "관련자 (associate)" 으로서 지칭되는 입력 심볼들 중 하나 이상의 몇몇 함수 (function) 에 기초하여 생성된다. 항상 그렇하지는 않지만 통상적으로, 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) 은, 임의의 2개 이상의 패킷들의 상대적인 순서가 채널 (145) 을 통한 통로 (transit) 에서 유지된다고 가정할 수 없을 수도 있다. 따라서, 출력 심볼들의 키는 상술된 키 잉 방식들 중 하나 이상을 사용하여 결정되며, 출력 심볼들이 수신 모듈 (150) 을 퇴장하는 순서에 의해 결정될 필요는 없다.
수신 모듈 (150) 은 디코더 (155) 에 출력 심볼들을 제공하며, 이들 출력 심볼들의 키들에 관해 수신 모듈 (150) 이 수신한 임의의 데이터는 키 재생성기 (160) 에 제공된다. 키 재생성기 (160) 는 수신 출력 심볼들에 대한 키들을 재생성하고, 이들 키들을 디코더 (155) 에 제공한다. 디코더 (155) 는, 키 재생성기 (160) 에 의해 제공된 키들을 대응하는 출력 심볼들과 함께 사용하여, 입력 심볼들 (또한, IS(0), IS(1), IS(2), ...) 을 복원한다. 디코더 (155) 는, 입력 파일 (101) 의 카피 (170) 또는 입력 스트림 (105) 의 카피 (175) 를 생성하는 입력 파일 리어셈블러 (165) 에 복원된 입력 심볼들을 제공한다.
미디어 스트리밍 애플리케이션
미디어 스트리밍 애플리케이션에서 사용될 경우, 소스 미디어 스트림을 형성하는 소스 패킷들은 소스 블록으로 지칭되는 그룹에서 종종 수집된다. 예를 들어, 소스 블록은 고정된 시간 길이만큼 이격된 소스 패킷들의 그룹일 수 있으며, 예를 들어, 리드-솔로몬 소거 코드는, 소스 블록의 본래의 소스 패킷들과 함께 수신기들에 전송된 리페어 패킷들을 생성하기 위해, 이들 소스 블록들과 독립하여 적용될 수 있다.
전송기에서, 소스 스트림은, 소스 패킷들이 도달할 때마다 소스 블록들로 연속적으로 분할될 수 있으며, 리페어 패킷들은 각각의 소스 블록들에 대해 생성되어 전송된다. 특히 라이브 또는 인터랙티브 (interactive) 스트리밍 애플리케이션 에 있어서, FEC 코드들의 사용에 의해 부가된 총 엔드-투-엔드 (end-to-end) 지연을 최소화시키는 것이 종종 바람직하며, 따라서, 전송되기 전에 전송기에서 소스 패킷들이 가능한 적게 지연되도록 FEC 솔루션의 전체 설계가 행해지는 것이 종종 바람직하고, 소스 블록에 대한 모든 소스 및 리페어 패킷들은 가능한 적은 총 지연으로 전송된다. 또한, FEC 인코딩된 스트림 대역폭 이용도를 더 예측가능하게 만들고, 네트워크 및 다른 가능한 경쟁 스트림들에 대한 영향을 최소화시키기 때문에, FEC 인코딩된 스트림의 레이트가 가능한 평활한 것이 바람직하며, 즉, FEC 인코딩된 스트림 레이트에서 가능한 적은 가변성이 존재하거나, 적어도, 본래의 소스 스트림에 이미 존재하는 임의의 가변성의 증폭이 존재하지 않는 것이 바람직하다. 또한, 버스트 손실에 대해 가장 양호한 보호를 제공하므로, 소스 블록에 대해 패킷들에서 전송된 데이터가, 패킷들이 그 소스 블록에 대해 전송되는 주기에 걸쳐 가능한 균일하게 확산되는 것이 바람직하다. 또한, 콘텐츠 재핑 시간 및 콘텐츠 천이 시간을 최소화시키는 방식으로 소스 블록들이 구성되는 것이 바람직하다. 또한, 수신기에서의 로직이 가능한 간단한 것이 바람직하다.
수신기에서, 패킷들이 손실되거나 (예를 들어, CRC 체크를 사용하여 검출 및 폐기될 수 있는) 에러를 갖고 수신될 경우, 충분한 리페어 패킷들이 수신된다고 가정하면, 그 리페어 패킷들은 손실된 소스 패킷들을 복원하는데 사용될 수도 있다.
몇몇 애플리케이션에서, 패킷들은, FEC 프로세스가 적용되는 심볼들로 추가적으로 세분된다. 몇몇 FEC 코드, 특히, 리드-솔로몬 코드에 있어서, 소스 블록 당 인코딩된 심볼들의 수가 증가함에 따라, 인코딩 및 디코딩 시간이 비실용적 으로 증가하며, 종종, 소스 블록 당 생성될 수 있는 인코딩된 심볼들의 총 수에 대한 상한이 존재한다. 심볼들이 상이한 패킷 페이로드에 배치되므로, 이것은 소스 블록의 인코딩에 대한 최대 길이에 실용적인 상한을 두며, 또한 물론, 소스 블록의 사이즈 그 자체에 상한을 둔다.
많은 애플리케이션에 있어서, 긴 시간 주기에 걸쳐 보호가 제공되는 경우 또는 미디어 스트리밍 레이트가 높은 경우, 최대 소스 블록 사이즈를 초과하는 데이터에 대해 보호를 제공하는 것이 바람직할 수 있다. 이들 경우에서, 최대 소스 블록 사이즈보다 짧은 소스 블록을 사용하고, 그 후, 상이한 소스 블록들로부터의 소스 패킷들을 인터리빙하는 것은, 전송된 개별 소스 블록으로부터의 소스 패킷들이 더 큰 시간 주기에 걸쳐 확산되는 솔루션을 제공한다. 다른 애플리케이션에 있어서, 짧은 콘텐츠 재핑 시간이 바람직할 경우 및 소스 블록 구조가 인터리빙 방법과 독립하여 결정될 경우, 더 짧은 소스 블록들을 사용하고, 콘텐츠가 수신기에 의해 액세스될 경우 그 소스 블록들을 초기에 순차적으로 전송하며, 그 후, 버스트 손실에 대한 보호 레벨을 증가시키도록 더 긴 시간 간격에 걸쳐 소스 블록들의 전송을 확산시키기 위해, 콘텐츠 스트리밍이 계속될 경우 인터리빙 양을 증가시키는 것이 바람직하다.
또 다른 관심사는, 소스 스트리밍 레이트를 유지하기에 충분히 고속으로 소스 블록들을 디코딩할 수 있는 것, FEC 디코딩에 의해 도입된 디코딩 레이턴시를 최소화시킬 수 있는 것, 및 FEC 디코딩 동안 임의의 시점에 수신 디바이스 상에서 이용가능한 CPU의 작은 비율만을 사용하는 것이다. 따라서, 각각의 소스 블록 의 FEC 디코딩이 시간이 걸쳐 가능한 동등하게 확산되게 하고 FEC 디코딩 레이턴시를 최소화시키는 소스 블록 인터리빙을 사용하는 것이 바람직하다.
여기에 설명된 다양한 실시형태들은 이들 이점들 중 하나 이상을 제공한다.
스트리밍 및 FEC 코드들
소스 스트림의 FEC 보호를 제공하는 목적을 위해, 소스 스트림은 하나 이상의 논리 스트림들의 결합일 수도 있으며, 그 결합의 예들은, 오디오 RTP 스트림과 비디오 RTP 스트림의 결합, MIKEY 스트림과 RTP 스트림의 결합, 2개 이상의 비디오 스트림들의 결합, 및 제어 RTCP 트래픽과 RTP 스트림의 결합이다. 예를 들어, 소스 비트 스트림, 소스 심볼 스트림, 또는 소스 패킷 스트림인 포맷으로 소스 스트림이 전송기에 도달할 경우, 전송기는 그 스트림을 소스 블록들에 버퍼링하고, 그 소스 블록들로부터 리페어 스트림을 생성할 수도 있다. 전송기는, 예를 들어, 패킷 네트워크를 통해 전송될 패킷들에서 소스 스트림 및 리페어 스트림을 스케줄링 및 전송할 수 있다. FEC 인코딩된 스트림은, 결합된 소스 및 리페어 스트림이다. FEC 수신기는, 예를 들어, 손실 또는 비트-플립으로 인해 손상될 수도 있는 FEC 인코딩된 스트림을 수신한다. FEC 수신기는, 소스 스트림의 본래의 소스 블록들을 재구성하길 시도하고, 수신기에서 본래의 소스 스트림을 스케줄링하며, 그 스트림을 이용가능하게 한다.
많은 애플리케이션들에 있어서, 소스 블록 구조는 하부 스트림들의 구조, 예를 들어, GOP 구조 및/또는 H.264 AVC 비디오 스트림의 프레임 구조와 함께 결정된다. 이들 애플리케이션들 중 몇몇에 있어서, 소스 블록 구조는 패킷들의 스트 림 전송 순서 이전에 및/또는 그 순서와 독립하여 결정되며, 여기서, 그 패킷들의 스트림 전송 순서는 그 스트림을 수신하기 위해 그 스트림이 수신기들에 의해 액세스되는 시간 및 장소에 의존할 수도 있다. 그러한 애플리케이션들에 있어서, 콘텐츠 재핑 시간 및 콘텐츠 천이 시간의 최소화를 허용하기 위해, 각각의 소스 블록이 스트림으로부터의 소스 패킷들의 연속하는 세트를 포함하는 방식으로 소스 블록 구조가 결정되는 것이 바람직하다.
몇몇 애플리케이션들에 있어서, 소스 블록 구조 포메이션 및 스트림의 FEC 인코딩은 스트림의 전송 이전에 수행되는 것이 바람직하다. 이에 대한 일 이유는, 스트림이 많은 수신기들로 전송될 수도 있고, 따라서, 소스 블록 구조 포메이션 및 FEC 인코딩이 모든 수신기들에 대해 한번 행해진다는 것이며, 이는 몇몇 스케일러빌러티 이점들을 제공한다.
스트리밍 애플리케이션에 있어서, 소스 스트림을 보호하기 위해 FEC 코드들을 사용하는 방법의 설계에 대한 입력들인 몇몇 키 파라미터들, 및 통상적으로 최적화하는데 중요한 몇몇 키 메트릭들이 존재한다.
소스 블록 구조의 설계에서 하나의 가능한 키 입력 파라미터는 소스 블록 지속기간이다. 소스 블록에 대한 소스 블록 지속기간은, 소스 블록들이 순차적으로 전송되었고, 즉, 인터리빙되지 않았고, 그들이 노멀 속도로, 즉, 본질적으로 노멀 재생 속도로 전송되었다면, 그 소스 블록으로부터 생성된 심볼들이 전송될 시간 지속기간으로서 정의될 수 있다. 다른 방법으로, 소스 블록 지속기간은, 소스 블록에 의해 표현된 비디오의 재생 시간이도록 정의될 수 있다. 몇몇 경우에 서, 이들 2개의 정의는 일치하지만, 일치하지 않을 수도 있다. 그러나, 여기에서의 설명에서 간략화를 위해, 2개의 정의들이 일치한다는 간략화 가정을 이용하여, 어느 정의가 의미되는지를 특정하지 않으면서 소스 블록 지속기간을 사용한다. 당업자는, 2개의 정의들이 일치하지 않더라도, 여기에 설명된 방법들 및 프로세스들이 소스 블록 지속기간 정의 중 어느 하나에 관한 것이며, 심지어 몇몇 경우에서, 소스 블록이 그의 재생 레이트보다 훨씬 더 빠르게 전송될 수도 있다는 것을 인식할 것이다. 또한, 당업자는, 예를 들어, 소스 블록내의 심볼들의 수 및 소스 블록에 대한 심볼 사이즈를 특정함으로써, 소스 블록의 사이즈 또는 재생 시간을 특정하는 다른 방식이 존재한다는 것을 인식할 것이다.
소스 블록 전송이 몇몇 소스 블록들로부터의 패킷들의 전송을 다른 소스 블록들로부터의 패킷들의 전송과 인터리빙하는지 간에, 소스 블록에 대한 보호 주기는 그 소스 블록이 전송되는 시간 주기이다. 소스 블록 인터리빙이 사용되지 않으면, 보호 주기가 일반적으로 소스 블록 지속기간과 동일하지만, 인터리빙이 사용된 경우, 보호 주기는 소스 블록 지속기간보다 더 길 수 있고, 종종 실질적으로 더 길다는 것을 유의한다.
소스 블록에 대한 보호량은 그 소스 블록에 대해 전송된 FEC 리페어 심볼들의 수이며, 그 소스 블록내의 소스 블록들의 수의 비율 또는 퍼센티지로서 표현된다. 예를 들어, 보호량이 20% 이고 소스 블록내에 10,000 개의 소스 심볼들이 존재하면, 소스 블록으로부터 생성된 2,000 개의 리페어 심볼들이 존재한다. 보호량은 상대적인 개념이며, 즉, 동일한 소스 블록에 대한 보호량은, 소스 블록이 어디로부터 전송되는지 및 소스 블록이 어디로 전송되는지에 의존하여 변할 수도 있다. 예를 들어, 소스 블록이 제 1 서버로부터 또 다른 서버에 50% 의 보호양으로 전송될 수도 있지만, 동일한 소스 블록이 제 2 서버로부터 수신기에 10% 의 보호량으로 전송될 수도 있다.
소스 블록 지속기간 및 소스 블록 당 보호량 양자는 일 소스 블록으로부터 다음의 소스 블록까지 변할 수 있다. 예를 들어, 소스 블록이 소스 스트림내의 특정한 소스 패킷들 사이에 걸쳐 있지 않는 것이 바람직한 경우, 예를 들어, 제 1 패킷이 MPEG2 비디오 스트림에서 GOP (Group of Picutre) 의 최종 패킷이고, 연속하는 제 2 패킷이 다음의 GOP의 첫번째 패킷일 경우, 소스 패킷은 그 제 1 패킷 이후 종료될 수도 있으며, 신규한 소스 블록이 그 제 2 패킷에서 시작할 수도 있다. 이것은 FEC 인코딩된 블록이 비디오 코딩 블록으로 정렬되게 하며, 이는, 수신기에서 비디오 버퍼링 및 FEC 버퍼링의 결합을 최소화시키는 가능성으로 인해 수신기 레이턴시 또는 채널 재핑 시간이 최소화될 수 있는 이점을 포함하는 많은 이점들을 가질 수 있다. 다른 애플리케이션에서, 다양한 원인들에 대해, 각각의 연속하는 소스 블록에 대해 동일한 소스 블록 지속기간 및/또는 소스 블록 사이즈를 항상 유지하는 것이 바람직할 수 있다. 아래의 설명 중 일부에서, 간략화를 위해, 소스 블록 지속기간 및 보호량 양자는 각각의 후속 소스 블록에 대해 동일한 것으로 가정된다. 당업자에 대하여, 본 명세서를 판독한 이후, 보호량 또는 소스 블록 지속기간 중 어느 하나 또는 양자가 일 소스 블록으로부터 다음의 소스 블록까지 변할 경우, 및 소스 블록 사이즈가 일 소스 블록으로부터 다음의 소스 블록 까지 변할 경우, 여기에 설명된 프로세스들 및 방법들이 적용되는 방법을 본 명세서를 판독할 시에 용이하게 결정할 수 있으므로, 본 발명이 제한이 아님이 명백할 것이다.
후속 설명들 중 일부를 간략화하기 위해, 종종, 소스 심볼이 수신된 제 1 소스 블록에서 소스 심볼 손실이 존재하지 않고, 각각의 후속 소스 블록에서 인코딩된 심볼 손실이, 최대, 성공적인 FEC 디코딩을 허용하는데 가능한 최대값이라고 가정하여, 소스 블록 포메이션 및 FEC 인코딩을 수행하는 전송기에서 본래의 스트림의 소스 심볼들이 정상 레이트로 도달한다고 가정하고, 일단 먼저 FEC 수신기가 그 수신기에서 소스 심볼들을 이용가능하게 하면, 후속 소스 심볼들이 동일한 정상 레이트로 FEC 수신기에 의해 이용가능하게 된다고 가정한다. 이러한 간략화 가정은 후속하여 설명되는 프로세스들 및 방법들의 동작 또는 설계에서 고유하지 않으며, 이들 프로세스들을 임의의 방식으로 이러한 가정에 제한하는 것을 의미하는 것이 아니라, 프로세스들 및 방법들의 특성들에 대한 설명들 중 일부를 간략화하기 위한 툴로서만 도입된다. 예를 들어, 가변 레이트 스트림들에 있어서, 대응하는 조건은, 소스 심볼들이 전송기에 도달하는 레이트와 동일한 또는 근접한 레이트로 FEC 수신기에 의해 이용가능하게 되는 것이다. 몇몇 애플리케이션들에 있어서, 수신기에서, 콘텐츠 재핑 시간을 최소화시키기 위해 디코딩된 소스 심볼들을 비디오 플레이어에 가능한 신속하게 전달하는 것이 바람직하며, 그러한 경우, 소스 심볼들은 소스 블록들의 버스트로 전달될 수도 있다. 몇몇 애플리케이션들에서, 소스 블록 포메이션, FEC 인코딩 및 전송 단계들을 2개 이상의 상이한 단계들 로 분리시키는 것이 바람직하다. 예를 들어, 후술될 바와 같이, 소스 블록 포메이션 및 FEC 인코딩은 하나의 서버에서 수행될 수도 있으며, 그 후, 인코딩된 스트림은 서브-스트림들로 분할되고, 그 후, 그 서브-스트림들은 하나 이상의 분산된 서버들에 전송되고 로컬적으로 캐시되며, 그 후, 서브-스트림들 중 몇몇 또는 전부가 그 하나 이상의 분산된 서버들 중 몇몇으로부터 수신기로 전송된다.
최소화하는데 중요한 몇몇 키 메트릭들은, 전송기에 의해 도입된 레이턴시인 전송기 레이턴시를 포함한다. 전송기 레이턴시를 최소화시키는 것은, 라이브 비디오 스트리밍과 같은 몇몇 애플리케이션들 또는 비디오 화상회의와 같은 쌍방향 애플리케이션들에 대해 바람직하다. 전송기 레이턴시를 최소화시키는 것을 보조하는 전체 설계의 일 양태는, 전송기가 스트림에 관한 초기 소스 블록 또는 블록들에 대한 인코딩된 심볼들을 수신기에 연속하는 순서로 전송하는 것이다. 전송기 레이턴시를 최소화시키는 다른 설계 양태들이 후술된다.
또 다른 중요한 메트릭은 콘텐츠 재핑 시간이다. 도 2에 도시된 바와 같이, 이러한 콘텐츠 재핑 시간은 수신기가 스트림을 조인 (join) 하거나 요청하는 시간과 FEC 수신기가 먼저 스트림으로부터의 소스 심볼들을 이용가능하게 하는 시간 사이의 시간이다. 일반적으로, 콘텐츠 재핑 시간을 최소화시키는 것이 바람직하며, 이는, 스트림이 수신기에 의해 조인되는 시간과, 예를 들어, 비디오 스트림의 재생을 위해 먼저 스트림이 수신기에서 이용가능하게 되기 시작하는 시간 사이의 시간량을 최소화시킨다. 콘텐츠 재핑 시간을 최소화시키는 중요한 일 양태는, 전송기가 초기 소스 블록들에 대한 인코딩된 심볼들의 본래의 전송 순서를 유지하는 것이지만, 후술될 바와 같이, 콘텐츠 재핑 시간에 큰 영향을 주는 많은 다른 중요한 설계 양태들이 존재한다.
통상적으로, 콘텐츠 재핑 시간은 다수의 컴포넌트들을 포함한다. 순차적인 소스 블록들로 분할되는 스트림에 대한 이들 컴포넌트들의 예들이 도 3a 및 도 3b에 도시되어 있으며, 그 도면에서, 인터리빙은 사용되지 않는다. 도 3a는 보호 주기 당 단일 소스 블록을 도시하며, 그 예는, 수신기가 소스 블록의 시작부에서 스트림을 조인하는 경우를 도시한다. 이러한 예에서, 콘텐츠 재핑 시간의 2개의 컴포넌트들은 보호 주기 및 FEC 디코드 레이턴시이다. 소스 블록에 대한 수신기 보호 주기는, 수신기가 소스 블록으로부터의 수신되는 인코딩된 심볼들을 버퍼링하는 시간이다. 전송기로부터 수신기로 이동하는데 걸리는 각각의 비트, 바이트, 심볼 또는 패킷 단위의 시간량의 관점에서 그 전송기와 그 수신기 사이의 채널이 임의의 변화를 갖지 않으면, 전송기 보호 주기 및 수신기 보호 주기가 동일함을 유의한다. 따라서, 실제로, 전송기 보호 주기는, 전달에서의 네트워크 타이밍 변화로 인해 동일한 소스 블록에 대해 수신기 보호 주기와는 상이할 수도 있다.
여기에서 도면을 간략화하기 위해, 전송기 보호 주기 및 수신기 보호 주기는 각각의 소스 블록에 대해 동일한 것으로 가정되지만 (그리고, "보호 주기" 는 전송기 보호 주기 및 수신기 보호 주기에 대해 동의어로 사용됨), 항상 그러한 경우일 필요는 없다. 즉, 네트워크 전달 시간이 모든 데이터에 대해 동일하다는 가정이 존재한다. 당업자는, 본 명세서를 판독한 이후, 네트워크 전달 변동으로 인 한 전송기 및 수신기 보호 주기에서의 차이들을 고려하기 위해, 여기에 설명된 방법들 및 장치에 필요한 변경들을 행할 수 있다.
제 1 소스 블록에서 임의의 소스 심볼들의 손실이 존재하지 않더라도, 후속 소스 블록들에서 인코딩된 심볼들의 손실이 존재할 경우, 모든 후속 소스 심볼들의 평활한 소스 심볼 전달을 보장하기 위해, 적어도 보호 주기 동안 소스 심볼들을 이용가능하게 하는 것을 여전히 지연시켜야 하기 때문에, 콘텐츠 재핑 시간의 보호 주기 컴포넌트가 불가피하다. 보호 주기 동안, 소스 블록의 FEC 디코딩의 일부 또는 대부분 또는 모두는 인코딩된 심볼들의 수신과 동시에 발생할 수 있다. 보호 주기의 말단부에서, 소스 블록의 제 1 소스 심볼이 FEC 수신기로부터 이용가능하기 전에 발생하는 부가적인 FEC 디코딩이 존재할 수도 있으며, 이러한 시간 주기는 도 3a에 FEC 디코드 레이턴시로서 라벨링되어 있다. 또한, 제 1 소스 심볼이 이용가능하게 된 이후라도, 소스 블록의 제 2 및 후속 소스 심볼들이 이용가능하기 전에 발생하는 부가적인 FEC 디코딩이 존재할 수도 있다. 간략화를 위해, 이러한 부가적인 FEC 디코딩은 도 3a에 도시되어 있지 않으며, 이러한 예에서, 제 1 소스 심볼 이후 충분히 빠른 레이트로 모든 소스 심볼들을 디코딩하는데 충분히 이용가능한 CPU 리소스들이 존재한다고 가정한다.
콘텐츠 재핑 시간의 또 다른 가능한 컴포넌트는, 수신기가 스트림을 조인하도록 요청하는 시간과 그 스트림에 대한 제 1 패킷들이 그 수신기에 도달하는 시간 사이의 시간일 수 있다. 이러한 시간의 양은 변할 수 있으며, 수신기와 스트림에 대한 패킷들의 하나 이상의 전송기들 사이의 라운드-트립 시간(들)에 의존할 수 있다. 콘텐츠 재핑 시간의 이러한 컴포넌트는 여기에 상세히 설명되지는 않지만, 종종 이것이 고려되어야 하는 콘텐츠 재핑 시간에 대한 중요한 기여자일 수 있고, 여기에 설명된 방법들 및 프로세스들이 콘텐츠 재핑 시간에 대한 이러한 잠재적인 기여자를 고려하도록 용이하게 변형될 수 있다는 것을 당업자는 인식할 것이다.
도 3b는, 도 3a에 도시된 예에 대응할 수 있는 2개의 잠재적인 FEC 디코딩 CPU 이용도 커브들을 도시한다. 도 3b에 도시된 2개의 커브들 중 하나의 커브에서, FEC 디코딩에 사용된 CPU 이용도는 각각의 시점에서 동일하며, 즉, CPU 이용도는 균일하게 분포되어 있다. 각각의 시점에서 동일한 양의 CPU 리소스들을 예측가능하게 사용하며, 전체 소스 블록을 디코딩하는데 동일한 양의 총 CPU 리소스들이 필요하다는 것을 가정하여 최대 CPU 리소스들을 최소화시키므로, 이것은 바람직한 CPU 이용도 커브이다. 도 3b에 도시된 2개의 커브들 중 다른 커브에서, FEC 디코딩에 사용되는 CPU 이용도는 각각의 시점에서 동일하지 않으며, 특히, 소스 블록에 대한 인코딩된 심볼들의 수신의 종료 근방 및 그 직후, CPU 이용도는 다른 시점보다 현저히 더 높다. 비디오 플레이어와 같은 다른 프로세스들이 또한 CPU에 요구들을 배치하는 시점일 수도 있는 특정한 시점에서 CPU 리소스 이용도가 스파이크되고, 따라서, 예를 들어, 비디오 스트림의 재생에서 글리치 (glitch) 를 야기할 가능성이 증가하므로, 이것은 바람직한 CPU 이용도 커브가 아니다. 따라서, 스트림들을 보호하기 위한 FEC 솔루션의 설계는, FEC 디코더가 시간에 걸쳐 가능한 평활하고 균일하게 CPU를 사용하는 솔루션을 제공할 것이다. 일 예로 서, 설계 기준은, 인코딩된 심볼 손실의 최악의 경우의 패턴하에서 FEC 디코딩 프로세스의 임의의 시점에서의 최대 CPU 이용도가 특정한 임계값보다 작으며, 예를 들어, 100 밀리초의 각각의 간격에 걸쳐 최대 CPU의 10% 를 사용하는 것일 수도 있다.
몇몇 스트리밍 애플리케이션들에서, 수신기가 소스 블록의 중앙에서 스트림을 조인하는 것이 발생할 경우, 콘텐츠 재핑 시간은, 소스 패킷들의 본래의 전송 순서 및 전달 속도가 전송기에 의해 초기에 유지되는 한, 그 제 1 부분 소스 블록으로부터의 소스 심볼들의 손실이 존재하지 않을 경우 소스 블록 지속기간 플러스 디코드 레이턴시만큼 작을 수 있다. 다른 비디오 스트리밍 애플리케이션들에서, 전송기는 항상 GOP의 시작부로부터 수신기로 스트림을 전송하기 시작하며, 여기서, 소스 블록의 시작부가 GOP의 시작부로 정렬되는 것이 바람직하다. 따라서, 콘텐츠 재핑 지연을 최소화시키기 위해, 전송기가 초기 소스 블록들에 대한 소스 심볼들의 본래의 전송 순서를 유지하는 것이 바람직하다.
또한, 라이브 스트리밍 애플리케이션에 대하여, FEC 인코딩이 적용되기 전에 소스 패킷이 전송기에서 스트리밍하도록 준비되는 시간과 FEC 디코딩이 적용된 이후 수신기에서 재생하기 위해 이용가능하게 되는 시간 사이의 FEC 의 사용에 의해 도입되는 최악의-경우의 전체 레이턴시인 FEC 엔드-투-엔드 레이턴시를 최소화시키기 위해 FEC 스트리밍 솔루션이 사용될 수 있다. 온-디멘드 (on-demand) 스트리밍 또는 플레이-리스트 콘텐츠 스트리밍과 같은 다른 타입의 스트리밍 애플리케이션들에 있어서, FEC 엔드-투-엔드 레이턴시는 주요한 관심사가 아니다.
모든 타입의 스트리밍 애플리케이션들에서, 콘텐츠 재핑 시간 및 콘텐츠 천이 시간을 최소화시키는 것이 중요하다. 동시에, 스트림의 전송 레이트를 최소화시키는 것이 중요하며, 즉, 콘텐츠 재핑 및 콘텐츠 천이 동안을 포함하여, 콘텐츠 스트리밍 레이트 이상의 작은 비율이도록 모든 시간들에서 전송 레이트를 제약하는 것이 중요하다.
또한, FEC 스트리밍 솔루션은, FEC 가 사용될 경우 전송 레이트에서의 변동들을 최소화시키는데 사용될 수 있다. 이것의 일 이점은, 패킷 네트워크 내에서, 스트림의 전송 레이트에서의 피크들이 제한된 용량을 갖는 네트워크의 포인트들의 다른 트래픽에서의 피크들과 일치할 경우, 전송 레이트가 변하는 스트림들이 정체 또는 버퍼 오버플로우로 인해 패킷 손실에 더 민감하게 된다는 것이다. 최소로서, FEC 인코딩된 스트림의 레이트에서의 변동들은 본래의 소스 스트림의 레이트에서의 변동들보다 더 불량하지 않을 것이며, 더 많은 FEC 보호가 본래의 소스 스트림에 적용될수록, FEC 인코딩된 스트림의 레이트에서의 변동들이 더 작아지게 된다. 특수한 경우로서, 본래의 스트림이 일정한 레이트로 전송되면, FEC 인코딩된 스트림이 가능한 상수에 근접한 레이트로 전송되는 것이 바람직하다.
각각의 후속 소스 블록에 대한 최종 인코딩된 심볼이 수신되는 시간이 시간에 걸쳐 가능한 균일하게 확산되는 특성은 바람직한 특성이다. 최종 인코딩된 심볼이 소스 블록에 대해 수신되는 시간은, 그 소스 블록을 디코딩하기 위한 모든 정보가 FEC 디코더에 이용가능한 시간이며, 통상적으로, 이것은, FEC 디코더가 규정된 디코딩 레이턴시 버짓 (budget) 내에서 디코딩을 종료하는데 작동하기 매우 어려운 최악의 경우의 손실 조건하에서의 시간이다. 따라서, 소스 블록들에 대한 최종 인코딩된 심볼의 수신을 균일하게 확산시키는 것은, FEC 디코딩을 위한 CPU의 더 평활한 사용을 허용한다.
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 개의 리페어 심볼들이 이미 생성되었다는 것을 가정하며, 여기서, 각각의 그러한 소스 블록은 k개의 소스 블록들을 포함하고 T 초의 소스 블록 지속기간을 갖는다.
수신기가 특정한 소스 블록에서의 스트리밍 시작을 요청할 경우 (또는 수신기로부터의 명시적인 시작 요청으로 스트림을 프로액티브하게 (proactively) 전송할 경우), 기본적인 전송기는 T 초의 주기에 걸쳐 그 요청된 소스 블록에 대한 (1+p)*k 개의 인코딩된 심볼들을 전송하기 시작하며, 그 후, 그 요청된 소스 블록 등 이후, 다음의 소스 블록에 대한 인코딩된 심볼들을 순차적으로 전송한다.
기본적인 전송기는 다음의 특성을 갖는다.
1. 보호 주기는 소스 블록 지속기간과 동일한 T이다.
2. 소스 블록에 대해 전송된 심볼들은 T초의 주기에 걸쳐 균등하게 확산된다. 이것은, 고정된 지속기간의 버스트 아웃티지 (burst outage) 가 존재할 경우 손실에 대해 제공된 보호 레벨이 그 아웃티지가 심볼들의 송신 동안 발생할 시간에 의존하지 않는다는 것을 암시하며, 이는 바람직하다.
3. 전송기는 심볼들의 전체 전송 레이트에서의 변동을 도입하지 않는다. 특히, 소스 심볼들의 본래의 전송 레이트가 일정하면, 모든 심볼들의 전송 레이트가 여전히 일정하며, 전송기에서의 소스 심볼들의 본래의 도달 레이트가 가변이면, 소스 블록 당 심볼들의 적어도 일정한 전송 레이트가 변동을 둔화시킨다. 이것은 바람직한 특성이다.
4. 콘텐츠 재핑 시간은 T만큼 작을 수 있다. 이것은, 소정의 보호 주기 동안 최소로 가능성있는 (모든 소스 블록들이 k개의 소스 심볼들을 포함한다고 가정하여) (1+p)*k 개의 심볼들의 최소 버퍼링을 암시하며, 따라서 바람직하다.
기본적인 전송기가 갖는 일 특성은, 적어도 콘텐츠 재핑 시간이 보호 주기 동안의 시간이라는 것이며, 그 보호 주기는 버스트 손실에 대한 보호 품질에 직접 관련된다. 따라서, 종종, 보호 주기와 콘텐츠 재핑 시간 사이에서 협상이 행해질 필요가 있다. 예를 들어, 1초 아래의 콘텐츠 재핑 시간을 갖는 것이 바람직하지만, 또한, 임시적인 네트워크 아웃티지, 또는 약 수십 또는 수백 밀리초 및 몇 몇 경우에서는 초 동안 유지할 수 있는 버스트 패킷 손실을 초래하는 다른 타입의 간헐적인 네트워크 이슈들에 대해 양호한 보호를 제공하기 위하여, 10% 와 같은 합리적으로 작은 보호량을 사용하면서, 동시에, 수 초에 걸쳐있는 보호 주기를 갖는 것이 바람직하다. 콘텐츠 재핑 시간보다 훨씬 더 크며, 다음의 섹션에서 설명되는 인터리빙 방법들이 제공하는 많은 이점들 중 하나인 보호 주기를 가질 수 있다는 것이 바람직할 것이다.
스트림 인터리빙
이러한 섹션은, 데이터의 스트림을 취하며, 몇몇 부분들이 다른 부분들보다 전송 프로세스에서 더 많이 지연되는 방식으로 그 데이터 스트림의 상이한 부분들에 차동 시간 지연들을 적용하기 위한 신규한 방법들 및 프로세스들을 설명한다. 이들 방법들 및 프로세스들의 더 중요한 양태들 중 하나는, 데이터 스트림이 전송될 때마다 스트림의 상이한 부분에서 유도되는 지연의 양을 동적으로 조정하는 수단이다.
콘텐츠 재핑 시간을 최소화시키고 스트림의 더 양호한 보호를 제공하기 위해, 비디오 스트림의 GOP (Group of Picture) 구조 또는 다른 프레임 구조로 소스 블록들을 정렬시키는 것이 종종 바람직하다. 몇몇 애플리케이션들에서, 인터리빙 프로세스가 소스 블록 포메이션 프로세스와 독립하여 발생할 수 있는 것이 바람직하며, 그 프로세스들은 상이한 시간에 수행될 수도 있거나 상이한 위치에서 수행될 수도 있다. 몇몇 경우, 예를 들어, 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), ...,) 를 생성하도록 각각의 소스 블록에 적용된다. 도면부호 (510(1), 510(2), ...,) 의 높이 (515(1), 515(2), ...,) 는 각각의 인코딩된 블록의 각각의 소스 블록에 대해 생성된 부가적인 리페어 데이터의 양을 나타내며, 즉, 인코딩된 블록이 대응하는 소스 블록과 동일한 시간 지속기간에 걸쳐 전송되면, 그 높이는 인코딩된 소스 블록의 평균 전송 레이트를 나타낸다. 예를 들어, 각각의 인코딩된 블록에 대해 생성된 리페어 데이터의 양이 각각의 인코딩된 블록에 대해 전송된 양보다 훨씬 더 클 수도 있고, 각각의 인코딩된 블록에 대해 전송된 양이 수신기에 따라 변할 수도 있는 바와 같이, 이러한 도면은 제한이 아닌 예시일 뿐이다. 또한, 도 5는 인코딩된 소스 블록내의 소스 및 리페어 심볼들의 순서화의 표현을 제안하는 것으로 의미되지는 않는다.
도 6은 기본 전송기 방법에 대응하는 수신기에 의해 경험된 콘텐츠 재핑 시간을 나타내는 예시적인 도면이다. 콘텐츠 재핑 시간 (605) 의 컴포넌트들 중 몇몇은, 수신기가 제 1 소스 블록을 디코딩하기에 충분한 스트림의 제 1 인코딩된 블록을 수신하는데 걸릴 시간 (610), 수신기가 제 1 인코딩된 블록의 수신 부분들로부터 제 1 소스 블록을 디코딩하는데 걸리는 시간 (620), 및 네트워크 지터, 소스 블록 지속기간에서의 변화들, 및 스트림의 수신 동안의 수신되는 인코딩된 블록들의 일부로부터의 소스 블록들의 디코드 시간들을 흡수하기 위해 예약된 예약 버 퍼 시간 (630) 을 포함한다.
스트림들을 전송하는 테이프 방법이 설명되며, 당업자는, 유사한 방법들을 생성하는 많은 동등한 설명들, 및 여기에 설명될 방법들의 변형들을 생성하는 이러한 설명에 대한 변형들이 존재함을 인식할 것이다. 도 7은, 도 5에 도시되어 있는 인코딩된 블록 구조에 대응하는 테이프 방법의 일 예를 도시한다. 테이프 방법에서, 데이터 스트림의 전송은 전송될 스트림을 테이프 (705) 로서 표현함으로써 표시되며, 여기서, 테이프의 X-축을 따른 각각의 위치 (710) 는 인코딩된 블록 구조에서 상이한 시점에 대응하고, 테이프에 따른 그 시점에서의 인코딩된 소스 블록의 레이트와 독립적으로, 테이프의 높이는 항상 동일하며, 예를 들어, 공칭적으로 높이가 1 이다. 테이프에 의해 표현된 스트림의 전송은, 테이프의 상단 (725) 으로부터 테이프의 하단 (730) 까지 이동하는 이동선 (720(1), 720(2)) 에 의해 표시될 수 있다. 일 표현에서, 시간에 걸친 이동선 (720(1), 720(2)) 은 스트림의 인코딩된 블록들로부터의 데이터 전송 순서를 나타낸다. 테이프 (740(1), 740(2), ...,) 내의 각각의 포인트는 전송될 스트림 데이터의 부분을 표현하며, 예를 들어, 각각의 포인트는 인코딩된 블록에 대한 인코딩된 심볼들의 패킷을 표현할 수도 있거나, 각각의 포인트는 인코딩된 블록에 대한 개별 인코딩된 심볼을 나타낼 수도 있다. 인코딩된 블록 (750(1), 750(2), ...,) 에 대응하는 영역내에 존재하는 포인트들은, 그 인코딩된 블록과 관련된 데이터를 표현한다.
스트림들을 전송하는 테이프 방법에 따른 전송 프로세스는, 스트림이 전송되는 시간에 걸쳐 테이프를 가로질러 라인 (720(1), 720(2)) 을 스윕 (sweep) 함으로 써 표현되며, 일 포인트를 통하여 그 포인트에 대응하는 스트림의 데이터를 스윕하는 각각의 시간이 전송된다. 도 7은 전송 프로세스에서 2개의 상이한 시간들에서의 라인을 도시하며, 여기서, 라인 (720(1)) 은 제 1 시간에서의 그의 구성이고, 라인 (720(2)) 은 제 2 시간에서의 그의 구성이다. 따라서, 전송 프로세스는, 그 제 1 시간과 그 제 2 시간 사이의 시간 간격 동안, 도면부호 (720(1), 720(2), 725 및 730) 에 의해 경계가 지어진 영역내의 포인트들과 관련된 모든 데이터를 전송한다. 각각의 인코딩된 블록내의 포인트들의 분포가, 그들의 가중치에 따라 그 인코딩된 블록에 대한 테이프 영역내에 균일하게 분산되는 것이 바람직하며, 예를 들어, 포인트들이 각각의 포인트의 가중치에 따라 균일하게 분산되는 것을 보장하는 프로세스에 의해 랜덤하게 분산되거나, 의사-랜덤하게 분산되거나, 결정론적으로 분산되고, 여기서, 그 포인트의 가중치는 그 포인트에 의해 표현된 데이터의 양이다.
상술된 바와 같이, 라인 (720) 은 직선이지만, 당업자는 많은 변경들이 존재한다는 것을 인식할 것이며, 예를 들어, 라인은 커브일 수도 있거나 연속하는 라인 세그먼트들의 시퀀스를 포함할 수도 있고, 라인은, 전송 프로세스 동안 그 라인이 스윕하는 바와 같이 그의 형상을 변경시킬 수도 있다. 또한, 테이프가 동일한 높이가 아니지만, 대신 그의 높이가 테이프의 그 포인트 (710) 에서의 스트림의 레이트에 따라 변하도록 그 테이프를 표현하는 것을 포함하는, 테이프 전송 방법의 다른 변형들이 존재한다.
더 상세히 후술될 바와 같이, 전송 프로세스 동안 테이프를 가로지른 라인의 이동을 특정하기 위한 다양한 방법들이 존재한다.
정적 인터리빙 방법들
FEC 코딩이 사용되는지, 및 소스 블록 구조가 사용되든지 간에, 스트림들을 전송하는 테이프 방법은, 임의의 타입의 콘텐츠 스트림 또는 인코딩된 콘텐츠 스트림에 대한 임의의 깊이의 정적 인터리빙을 획득하기 위해 사용될 수 있다. 예시적인 목적을 위해, 소스 블록 구조가 이미 정의되었고 FEC 코딩이 사용된다고 가정한다.
스트림들을 전송하는 테이프 방법을 사용하여 소정량의 정적 인터리빙을 달성하는 일 방식이 도 7을 참조하여 일 예로서 설명된다. 이러한 예에서, 각각의 인코딩된 블록은 시간의 양 D에 의해 다른 이웃한 인코딩된 블록들과 인터리빙되며, 즉, 그 인터리빙 깊이는 D이다. 이러한 예에서, 스트림을 요청할 경우, 수신기는 포인트 X 및 D에 대한 값을 전달한다. 그 후, 전송기에서의 전송 프로세스는, 초기에 라인 (720) 이 위치 X-D 에서 테이프의 하단 (730) 과 교차하고, 초기에 라인 (720) 이 위치 X 에서 테이프의 상단 (725) 과 교차하고, 그 후, 그 전송 프로세스가 스트림의 재생 레이트와 동일한 레이트로 시간에서 앞으로 라인 (720) 을 스윕하며, 즉, 전송 프로세스의 시작 이후의 시간 t에서, 라인 (720) 이 위치 X-D+t 에서 테이프의 하단 (730) 과 교차하고, 라인 (720) 이 위치 X+t 에서 테이프의 상단 (725) 과 교차하도록 라인 (720) 이 스윕하기 위해 라인 (720) 을 구성함으로써 설명된다.
정적 인터리빙 방법의 이러한 설명에서, 방법이 신규하게 요청된 스트림을 수신기에 전송하는데 사용되고 있다면, 수신기에서 재생이 시작되는 스트림내의 일 위치에 X가 존재하는 것이 바람직하며, 예를 들어, X는 인코딩된 블록의 시작부의 위치이거나, X는 비디오 스트림의 GOP의 시작부의 위치이며, 그 인코딩된 블록의 시작부는 그 GOP의 시작부로 정렬된다. 또한, 이들의 경우, 일반적으로 수신기가 인코딩된 블록들의 일부만을 수신할 것이고, 부분적으로 수신되는 인코딩된 블록들을 완전히 디코딩하기에는 매우 충분치 않을 수도 있기 때문에, 테이프에 따른 위치 X 이전에 전송기가 임의의 데이터를 수신기에 전송하지 않는 것이 바람직하다.
도 8은, 전송기가 이전에 설명된 정적 인터리빙 방법을 사용하고 있는 경우, 전송된 스트림의 형상을 예시하는 예시적인 도면이다. 이러한 경우, 정적 인터리빙 방법은, 도 5에 도시되어 있는 인코딩된 스트림에 대응하는 도 7에 도시된 테이프에 적용된다. 이러한 예에서, 수신기는 도 7의 제 1 인코딩된 블록 (750(1)) 의 시작 위치로서 X의 값을 특정하며, 따라서, 이러한 예에서, 위치 X 전에 테이프를 따른 전송될 데이터는 존재하지 않는다. 이러한 예에서, 수신기는, 10초와 같은 값일 수 있는 D에 대한 값을 또한 특정한다. 이러한 프로세스에 따라 전송기에 의해 전송된 결과적인 스트림은 도 8에 도시된 바와 같으며, 여기서, 도면부호 (850(1), 850(2), ...,) 의 영역은, 각각, 도 5의 도면부호 (405(1) 플러스 510(1), 405(2) 플러스 510(2), ...,) 와 동일하다. 도 8에 도시된 바와 같은 전송 레이트가 도 5에 도시된 바와 같은 본래의 콘텐츠 레이트의 평활화된 버전이라는 것을 유의한다.
도 9는, 상술된 정적 인터리빙 방법에 대응하는 수신기에 의해 경험된 콘텐츠 재핑 시간을 나타낸 예시적인 도면이다. 콘텐츠 재핑 시간 (905) 의 컴포넌트들 중 몇몇은, 소스 블록 지속기간과 인터리빙 깊이 D의 합산인, 수신기가 제 1 소스 블록을 디코딩하기에 충분한 스트림의 제 1 인코딩된 블록을 수신하는데 걸릴 시간 (910), 수신기가 제 1 인코딩된 블록의 수신 부분들로부터 제 1 소스 블록을 디코딩하는데 걸리는 시간 (920), 및 기대되는 네트워크 지터 지연, 소스 블록 지속기간에서의 변화들, 및 스트림의 수신 동안의 수신되는 인코딩된 블록들의 일부로부터의 소스 블록들의 디코드 시간들에 대해 예약된 예약 버퍼 시간 (930) 을 포함한다. 이러한 경우 소스 블록 지속기간 플러스 인터리빙 깊이 D인 보호 주기가 소스 블록 지속기간보다 훨씬 더 클 수 있으므로, 콘텐츠 재핑 시간 (905) 은, 설명된 바와 같은 이러한 방법을 사용하는 소스 블록 지속기간보다 훨씬 더 클 수 있다.
동적 인터리빙 방법들
FEC 코딩이 사용되는지 및 소스 블록 구조가 사용되는지 간에, 스트림들을 전송하는 테이프 방법은, 임의의 타입의 콘텐츠 스트림 또는 인코딩된 콘텐츠 스트림에 대한 임의의 인터리빙 깊이의 임의의 페이스 (pace) 에서 동적 인터리빙을 달성하기 위해 사용될 수 있다. 예시적인 목적을 위해, 소스 블록 구조가 이미 정의되었고 FEC 코딩이 사용된다고 가정한다.
스트림들을 전송하는 테이프 방법을 사용하여, 인터리빙 없이 시작하고 소정의 인터리빙 깊이까지 진행하는 동적 인터리빙을 달성하는 일 방식이 도 7을 참조 하여 일 예로서 설명된다. 이러한 방법의 통상적인 사용에서, 제 1 인코딩된 블록은 인터리빙이 거의 없이 전송되고, 그 후, 인터리빙 깊이 D가 다른 이웃한 인코딩된 블록들로 달성될 때까지, 시간에 걸쳐 점진적으로, 후속하는 인코딩된 블록들은 더욱 더 평활하게 인터리빙된다. 그러나, 이러한 방법의 다른 사용들이 또한 아래에 개시되며, 당업자는 또한 다양한 다른 변형들이 존재한다는 것을 인식할 것이다. 그 방법에 대한 파라미터들을 표현하는 이러한 예시적인 방식에서, 스트림을 요청할 경우, 수신기는, 라인 (720) 에 대한 초기 상부 위치 UI, 라인 (720) 에 대한 초기 하부 위치 LI, 라인 (720) 에 대한 최종 상부 위치 UF, 라인 (720) 에 대한 최종 하부 위치 LF, 및 시간값 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 을 사용하여 다음과 같이 테이프 방법을 수행한다. 먼저, 초기에 도 7의 라인 (720) 은, 라인 (720) 이 초기에 위치 LI 에서 테이프의 하단 (730) 과 교차하고, 라인 (720) 이 초기에 위치 UI 에서 테이프의 상단 (725) 과 교차하도록 전송 시간 t=0 에서 구성되며, 그 후, 전송 시간 t=0 내지 t=T 동안, 시간 t에서 라인 (720) 이 위치 t*(LF-LI)/T + LI 에서 테이프의 하단 (730) 과 교차하고, 시간 t 에서 라인 (720) 이 위치 t*(UF-UI)/T + UI 에서 테이프의 상단 (725) 과 교차하도록 라인 (720) 이 테이프를 가로질러 스윕된다. 그 후, 모든 전송 시간들 t>T 동안, 시간 t에서 라인 (720) 이 위치 t-T+LF 에서 테이프의 하단 (730) 과 교차하고, 시간 t에서 라인 (720) 이 위치 t-T+UF 에서 테이프의 상단 (725) 과 교차하도록 라인 (720) 이 테이프를 가로질러 스윕되며, 즉, 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=UL 이 원하는 시작 위치이고, T=100 초이고, LF=S+T+5 초이며, UF=LF+10 초 라는 것이다. 따라서, 콘텐츠 스트림 레이트가 이러한 예에 대해 1Mbps 였고, 10% 의 보호량이 사용되었으면, 인코딩된 스트림 레이트는 1.1Mbps 가 될 것이다. 그 후, 상술된 파라미터 셋팅들을 사용하는 동적 인터리빙 방법을 사용하여 전송하는 처음 100초 동안, 스트림의 100+(5+15)/2=110 초가 처음 100초 내에서 전송되므로, 전송 레이트는 약 1.21Mbps 일 것이다. 전송의 100초 이후, 예약 버퍼는 5초일 것이고, 인터리빙 깊이는 10일 것이며, 그 후, 전송 레이트는 이하 1.1Mbps 일 것이다. 100초 직전의 몇 초 동안 스트리밍이 발생하며, 전송 레이트는 1.21Mbps 로부터 1.1Mbps 로 평활하게 천이할 것이다. 또한, 전반부에서, 전송 레이트는 인코딩된 스트림 레이트에 따르며, 인터리빙 깊이 및 예약 버퍼가 평활하게 증가함에 따라, 전송 레이트는 평활하게 되고, 더욱 더 근접하게 평균 인코딩된 스트림 레이트에 매칭한다.
상술된 동적 인터리빙 방법에 대응하는 수신기에 의해 경험된 콘텐츠 재핑 시간이 도 11을 참조하여 설명된다. 콘텐츠 재핑 시간 (1105) 의 컴포넌트들 중 몇몇은, 수신기가 제 1 소스 블록을 디코딩하기에 충분한 스트림의 제 1 인코딩된 블록을 수신하는데 걸릴 시간 (1110), 수신기가 제 1 인코딩된 블록의 수신 부분들로부터 제 1 소스 블록을 디코딩하는데 걸리는 시간 (1120), 및 기대된 네트워크 지터 지연, 소스 블록 지속기간 변화들, 및 스트림의 수신 동안의 수신되는 인코딩된 블록들의 일부로부터의 소스 블록들의 디코드 시간들에 대해 예약된 초기 예약 버퍼 시간 (1130) 을 포함한다.
동적 인터리빙을 사용할 경우 시간에 걸쳐 예약 버퍼가 구축되기 때문에, 초기 예약 버퍼 시간 (1130) 은, 예약 버퍼 사이즈가 스트림 전송의 전체 지속기간 동안 고정되는 경우보다 동적 인터리빙을 사용하는 경우 훨씬 더 짧을 수 있다. 예를 들어, 기본적인 스트림 전송기를 사용하여, 최대 2초의 롱-텀 네트워크 지터에 대하여 버퍼링하기 위해 예약 버퍼 사이즈가 2초로 셋팅될 수도 있지만, 스트림 전송의 처음 몇 초 동안 네트워크 지터가 거의 없을 수도 있고, 그 때까지 예약 버퍼가 실질적으로 구축되기 때문에, 동적 인터리빙된 전송 방법으로, 초기 예약 버퍼 시간 (1130) 은 훨씬 더 짧게, 예를 들어, 200 밀리초로 셋팅될 수 있다.
동적 인터리빙을 사용할 경우, 각각의 소스 블록에 대한 보호 주기가 점진적으로 구축되기 때문에, 초기 소스 블록 지속기간은, 스트림 전송의 전체 지속기간 동안 보호 주기가 소스 블록 지속기간인 경우보다 동적 인터리빙을 사용할 경우 훨씬 더 짧을 수 있다. 예를 들어, 기본적인 스트림 전송기를 사용하여, 소스 블 록 지속기간은 5초로 셋팅될 수도 있고, 보호량은 500 밀리초의 짧은 버스트 패킷 손실들에 대해 보호하도록 20% 로 셋팅될 수도 있지만, 스트림을 전송하는 처음 몇 초 동안 그러한 버스트가 발생하고, 그 때까지 그러한 버스트에 대해 보호하기 위해, 예를 들어, 본래의 소스 블록 지속기간 플러스 10초의 인터리빙 깊이로 보호 주기가 실질적으로 구축되지 않을 수도 있기 때문에, 동적 인터리빙된 전송 방법으로, 소스 블록 지속기간은 훨씬 더 짧게, 예를 들어, 500 밀리초로 셋팅될 수 있고, 보호량은 그러한 버스트에 대해 동일한 보호 레벨을 제공하도록 훨씬 더 작게, 예를 들어, 5% 로 셋팅될 수 있다.
따라서, 전체적으로, 동적 인터리빙 방법을 사용하여, 콘텐츠 재핑 시간, 예를 들어, 동일한 네트워크 조건에서 기본적인 스트림 전송 방법을 사용하는 수 초에 대한 1초 하의 콘텐츠 재핑 시간은 짧을 수 있지만, 동적 인터리빙 방법은 네트워크 지터 및 버스트 패킷 손실에 대해 우수한 롱-텀 보호를 제공할 수 있다.
파라미터들이 특정될 수 있는 방법에 대한 많은 변형들이 존재한다. 예를 들어, 대신, 테이프 상의 초기 시작 위치, 인터리빙의 초기량, 인터리빙의 최종량, 및 초기 인터리빙으로부터 최종 인터리빙으로 평활하게 천이하는 시간 주기를 특정할 수 있다. 다른 방법으로, 초기 인터리빙으로부터 최종 인터리빙으로 평활하게 천이하는 시잔 주기를 특정하는 것 대신, 그 천이를 행하는 콘텐츠 스트리밍 레이트에 대한 레이트를 특정할 수 있다. 변형의 또 다른 예로서, 부가적인 파라미터들이 전송기에 알려지거나 수신기에 의해 특정될 수 있으며, 예를 들어, 수신기는 그 수신기가 콘텐츠를 재생하기 시작할 시작 위치 S를 명시적으로 시그널 링할 수 있다.
당업자가 인식할 바와 같이, 동적 인터리빙 방법들의 많은 변형들이 존재한다. 예를 들어, 몇몇 또는 모든 인코딩된 블록들로부터의 인코딩된 데이터의 일부를 필터링하고 개별 수신기들로 전송하지 않기로 결정할 수도 있는데, 그 이유는 이들 수신기들이 더 큰 손실을 경험하지 않고 있기 때문이다. 또 다른 변형으로서, 소스 블록 구조가 미리 결정될 수 있지만, 전송 프로세스가 동작함에 따라, FEC 인코딩은 개별 수신기들에 대한 인코딩된 블록들을 생성하도록 동작하고 있거나, 가끔, 이전의 수신기보다 더 큰 보호량을 필요로 하는 수신기들을 조우할 때마다, 몇몇 인코딩된 블록들에 대한 많은 양의 리페어 심볼들을 생성한다.
종종 바람직한 또 다른 변형으로서, 수신기는 동적 인터리빙 방법들에 대한 초기 파라미터들의 셋팅을 제어할 수 있으며, 서버 또는 서버들의 세트는 동적 인터리빙 방법들에 대한 최종 타겟 파라미터들을 결정할 수 있다. 예를 들어, 수신기는, 콘텐츠 스트림이 2초의 인터리빙 깊이 및 1초의 예약 버퍼로 시작될 것을 특정할 수도 있으며, 그 후, 서버는 10초의 예약 버퍼와 20초의 인터리빙 깊이가 전송의 처음 2분에서 달성되는 방식으로 그 서버가 전송할 것을 결정할 수도 있다. 서버 또는 서버들이 동적 인터리빙 방법에 대한 최종 파라미터들을 지시하게 하는 일 이점은, 라이브 스트리밍을 지원하는 것을 훨씬 더 용이하게 하는 것이며, 여기서, 현재의 시간 이상의 콘텐츠 스트림의 일부가 이용가능하지 않고, 따라서, 서버는 소정의 제약들 하에서 동작하는 최종 셋팅으로 동적 인터리빙 파라미터들을 안내할 수 있다. 서버가 최종 파라미터들을 지시하게 하는 일 이점의 또 다른 예는, 몇몇 경우, 최종적으로 다수의 수신기들이 동일한 최종 파라미터들을 향해 안내되는 방식으로, 서버가 스트림내의 본질적으로 동일한 위치로부터 동일한 콘텐츠 스트림을 서빙하고 있는 다수의 클라이언트들에 대한 파라미터들을 조정할 수 있다는 것이며, 이는, 동일한 시점에서 동일한 패킷이 콘텐츠 스트림으로부터 모든 이들 수신기들로 전송될 것이므로, 패킷들을 이들 수신기들로 전송할 시에 서버 효율도를 유도한다.
콘텐츠 세그먼트 천이에 대한 동적 인터리빙 방법
동적 인터리빙 방법의 일 예시적인 사용은, 수신기가 콘텐츠 세그먼트들의 리스트내의 일 콘텐츠 세그먼트로부터 다음의 콘텐츠 세그먼트로 천이하는 경우, 예를 들어, 쇼의 일 에피소드의 일 세그먼트로부터 광고로, 그 후, 다시 그 쇼의 다음 세그먼트로 천이할 경우이며, 여기서, 모든 천이는 임의의 수신기 상호작용 없이 발생한다. 상이한 콘텐츠 세그먼트들은 상이한 전송기들에 의해 전송될 수도 있으며, 예를 들어, 쇼 에피소드의 세그먼트들은 콘텐츠 서버에 의해 수신기로 전송될 수도 있지만, 중간 광고는 광고 서버에 의해 수신기로 전송될 수도 있다.
제 1 예는, 상술된 동적 인터리빙 방법들을 사용하여 제 1 전송기에 의해 전송되는 제 1 콘텐츠 세그먼트를 수신기가 워칭하는 경우이며, 제 1 전송기는 풀 인터리빙 깊이 D 및 예약 버퍼 시간 R이 구축되기에 충분히 길게 전송된다. 그 후, 제 2 콘텐츠 세그먼트로의 평활한 천이가, 동적 인터리빙 방법을 사용하여 다음과 같이 달성될 수 있다.
1. 제 1 콘텐츠 세그먼트의 전송 종료 전의 D+R 초에서, 제 1 세그먼트에 대한 전송 레이트는, D초의 주기에 걸쳐 인코딩된 스트림 레이트로부터 제로로 선형적으로 감소할 것이며, 그 포인트에서 제 1 전송기는 제 1 세그먼트에 대한 전송을 중지할 것이다.
2. 제 1 콘텐츠 세그먼트가 재생하기를 종료하기 전의 D+R 초에서, 수신기는 제 2 서버로부터 파라미터들 UI=0, LI=-D, UF=0, LF=-D, T=0 을 갖는 제 2 콘텐츠 세그먼트를 요청한다. 네트워크 레이턴시가 없다고 가정하면, 제 2 서버는 제 2 콘텐츠 세그먼트에 대한 스트림을 전송하기 시작할 것이며, 전송의 첫번째 D 초에 걸쳐 선형적으로 레이트를 증가시키고, 이 후, 전송은 인코딩된 스트림 레이트에 존재한다.
3. 제 1 콘텐츠 세그먼트가 재생하기를 종료할 경우, 제 2 콘텐츠에 대한 예약 버퍼는 R초로 구축되며, 인터리브 깊이는 D초로 구축된다. 이러한 시점에서, 제 2 콘텐츠의 재생이 시작될 수 있다.
따라서, 제 1 콘텐츠 세그먼트로부터 제 2 콘텐츠 세그먼트로의 천이는 수신기에서의 수신 레이트를 인코딩된 스트림 레이트로 유지하며, 즉, 제 1 콘텐츠 세그먼트에 대한 전송 레이트가 선형적으로 램핑 다운 (ramping down) 되지만, 연속하여 전송되고 있는 하나의 콘텐츠 세그먼트가 존재하는 것처럼 천이에 걸친 결합된 레이트가 동일하다는 방식으로, 제 2 콘텐츠 세그먼트에 대한 전송 레이트가 선형적으로 램핑 업된다. 또한, 제 2 스트림에 대한 인터리브 보호 및 예약 버퍼 보호는 정상 상태에서 제 1 스트림에 대한 것과 동일하다. 도 12는 이것의 예 시이다.
제 1 콘텐츠 세그먼트의 전송 종료와 비교하여 제 2 콘텐츠 세그먼트에 대한 스트림 전송의 시작에 관한 타이밍이 일 비트 오프 (off) 되더라도, 램프 다운 레이트 및 램프 업 레이트가 평활하게 선형이므로, 스트리밍 레이트에서의 넷 에러 (net error) 는 작다. 예를 들어, 2개의 스트림들 사이에서의 천이의 타이밍에서 500 밀리초의 에러가 존재하고, 인터리빙 깊이가 10초이면, 스트리밍 레이트에서의 에러는 최대 5% 이다. 또한, 이것은, 즉, 제 2 콘텐츠 세그먼트에 대한 파라미터들이 제 1 스트림에 대한 것과 동일하게 이들 값들을 유지하는 것을 시도하는 것 대신에, 예약 버퍼 및 인터리브 시간을 1 비트 더 크게 구축하려는 것을 시도하는 방식으로, 그 제 2 콘텐츠 세그먼트에 대한 파라미터들이 상술된 것보다 일 비트 더 크게 보존적으로 셋팅될 수 있다는 것을 의미하며, 콘텐츠 세그먼트 천이 동안의 결합된 스트리밍 레이트에서의 결과적인 증가는 작을 것이다.
콘텐츠 세그먼트 천이의 제 2 예는, 수신기가 상술된 동적 인터리빙 방법들을 사용하여 제 1 전송기에 의해 전송되는 제 1 콘텐츠 세그먼트를 워칭하고 있지만, 풀 인터리빙 깊이 D 및 예약 버퍼 시간 R 이 구축되기에 충분히 길게 그 제 1 전송기가 전송하고 있지 않는 경우이다. 그 후, 제 2 콘텐츠 세그먼트로의 평활한 천이가 동적 인터리빙 방법을 사용하여 다음과 같이 달성될 수 있으며, 여기서, 이러한 경우, 수신기가 행하는 것은, 제 1 스트림으로부터 제 2 스트림으로의 천이가 2개의 콘텐츠 세그먼트들이 함께 연접되고 하나의 서버에 의해 전송되는 것처럼 되는 방식으로, 파라미터들을 셋팅하고 제 2 스트림을 요청하는 것이다. 당업자는, 동적 인터리빙 방법들을 사용하여 이러한 타입의 천이를 달성하는 방법의 세부사항들을 작업할 수 있다.
콘텐츠 세그먼트 천이의 제 3 예는, 상술된 동적 인터리빙 방법들을 사용하여 제 1 전송기에 의해 전송되는 제 1 콘텐츠 세그먼트를 수신기가 워칭하고 있고, 그 후, 제 1 콘텐츠 세그먼트 재생이 수신기에서 종료한 시간과 제 2 콘텐츠 세그먼트가 시작할 시간 사이의 시간 주기 사이에서 갭이 존재하는 경우이다. 예를 들어, 재생을 종료하는 쇼의 에피소드의 제 1 세그먼트가 존재하고, 후속하여, 예를 들어, 30초의 지속기간의 비-스트리밍 광고가 존재하며, 후속하여, 쇼의 에피소드의 제 2 콘텐츠 세그먼트의 즉시 재생이 존재하는 경우, 이것은 원하는 작동일 수도 있다. 이러한 경우, 동적 인터리빙 방법들은, 간략화를 위해, 풀 인터리빙 깊이 D 및 예약 버퍼 시간 R이 구축되는데 충분히 길게 제 1 콘텐츠 세그먼트가 수신기로 전송된다고 가정하여, 다음과 같이 사용될 수 있다. 이러한 경우, 상기 제 1 예에 대한 경우와 같이, 수신기는, 제 1 콘텐츠 세그먼트의 재생 종료 이전에 D+R 초에서 제 2 콘텐츠 세그먼트에 대한 요청을 전송하며, 파라미터들은 UI=0, LI=-D, UF=0, LF=-D, T=0 이다. 이것은, 제 1 콘텐츠 세그먼트의 레이트와 결합될 경우 전체 레이트가 단일 전송 스트림의 레이트인 레이트에서, 제 2 서버가 제 2 콘텐츠 세그먼트를 전송하기 시작하게 한다. 그 후, 제 1 콘텐츠 세그먼트가 수신기에서 재생하기를 종료하는 시간에서, 수신기는 제 2 콘텐츠 세그먼트에 대한 스트림을 전송하기를 종료하도록 제 2 서버에 시그널링하며, 수신기에 대한 전송 레이트는 즉시 제로로 드롭된다. 그 후, 갭이, 즉, 30초 동안 발생한다. 갭의 종료시에, 수신기는 제 2 콘텐츠 세그먼트를 즉시 재생하기 시작하고, 동시에, 제 2 콘텐츠에 대한 시작 전송 요청을 제 2 서버에 전송하며, 파라미터들은 UI=D+R, LI=R, UF=D+R, LF=R, T=0 이다. 이것은, 제 2 서버가 갭 직전에 종료되는 제 2 콘텐츠를 계속 전송하게 한다. 전체 효과는, 스케줄링된 시간에서 제 2 콘텐츠의 즉시 재생이면서, 동시에, 천이 동안 모든 포인트에서의 수신기에 대한 결합된 전송 레이트가 2개의 콘텐츠 세그먼트들의 재생 동안 하나의 인코딩된 스트림 레이트와 동일하다는 것이며, 전송 레이트는 2개의 콘텐츠 세그먼트들 어느 하나도 재생하고 있지 않은 경우 제로이다. 도 13은 이것의 예시이다.
당업자가 인식할 바와 같이, 상술된 동적 인터리빙 방법들의 많은 다른 사용들 및 변형들이 존재한다.
서브-스트림 기반 전달 방법들
서브-스트림 기반 전달은, 예를 들어, 대략적으로 동일한 양의 각각의 인코딩된 블록이 각각의 서브-스트림에 포함되도록, FEC 인코딩된 스트림을 취하고 그것을 서브-스트림들로 분할하기 위한 방법이다. 예를 들어, 인코딩된 스트림은 40개의 서브-스트림들로 분할될 수도 있으며, 각각의 서브-스트림은 약 5% 의 각각의 소스 블록들로 이루어지고, 따라서, 이러한 예에서, FEC 인코딩을 사용하여 각각의 소스 블록에 대해 생성된 리페어 데이터의 양은 소스 블록의 사이즈와 거의 동일하다. 더 일반적으로, FEC 인코딩이 각각의 소스 블록에 적용되고, 그 후, 서브-스트림 기반-전달이 적용될 경우, 각각의 소스 블록에 대한 총 인코딩된 데이 터는, 대략적으로 동일한 양의 각각의 서브 블록의 인코딩이 각각의 서브-스트림에 포함되도록 서브-스트림들로 분할되며, 여기서, FEC 코딩이 시스템매틱이면, 각각의 소스 블록의 인코딩된 데이터는 각각의 소스 블록의 본래의 데이터 플러스 생성된 리페어 데이터를 포함하고, FEC 코딩이 시스템매틱이 아니면, 각각의 소스 블록의 인코딩된 데이터는 리페어 데이터를 포함할 수도 있다.
서브-스트림 기반 전달의 주요 아이디어 중 하나는, 다수의 원하는 목적들을 달성하기 위해, 잠재적으로 상이한 경로 및 잠재적으로 상이한 서버들을 통해 스트림에 대한 서브-스트림들을 전송하는 것이다. 일 예로서, 이하, 서브-스트림 기반 전달 시스템으로 콘텐츠 스트림을 수집하는 헤드-엔드 서버 (HES) 로 지칭되는 서버가 존재할 수도 있으며, 여기서, HES가 수행하는 프로세스들 중 몇몇은, 콘텐츠 스트림에 대한 소스 블록 구조를 생성하고, 그 스트림을 FEC 인코딩하고, 그 인코딩된 스트림을 서브-스트림들로 분할하며, 그 후, 상이한 데이터 센터 또는 이종 (disparate) 네트워크 위치내에 분산될 수도 있는 이하 분산 서버 (DS) 로 지칭되는 다른 서버들로 그 서브-스트림들을 전송하는 것이다. 이것의 일 예가 도 14에서 관측될 수 있다. 도 14에서, DS들 (1430) 의 각각은 HES (1410) 로부터 인코딩된 콘텐츠 스트림 (1420) 의 상이한 세그먼트를 수신한다. DS가 수행하는 프로세스들 중 몇몇은, 예를 들어, 특정한 서브-스트림들에 대한 수신기 요청 또는 수신기 가입에 기초하여, 수신기들로부터의 특정한 콘텐츠 스트림들로부터의 서브-스트림들에 대한 요청을 수용하고 서브-스트림들을 수신기에 전송하기 위해, 진행중에 수신기로 그들이 전달하는 바와 같이, 그 콘텐츠 스트림들의 서브-스트림 들을 캐싱하는 것을 포함한다. 서브-스트리밍의 특수한 경우는, 추가적으로 분할되지 않는 본래의 인코딩된 스트림을 포함한다.
서브-스트림 기반 전달 시스템에서의 수신기들은, 동일한 시작 위치에서 시작하는 동일한 콘텐츠 세그먼트에 대한 서브-스트림들을 요청 및 수신할 수도 있으며, 여기서, 그 요청들은 상이한 서브-스트림들에 대한 상이한 DS들로 전송될 수도 있고, 이러한 경우, 동일한 시작 위치를 갖는 동일한 인코딩된 스트림에 대한 수 개의 상이한 서브-스트림들은 상이한 DS들로부터 동일한 수신기로 전송될 수도 있다. 이것의 일 예가 도 15에서 관측될 수 있다. 도 15에서, 수신기 (1530) 는 다양한 DS들 (1510, 1520) 로부터 콘텐츠 스트림을 요청한다. 이러한 인스턴스에서, DS들 중 하나의 DS (1520) 는 수신기로부터의 요청에 응답하지 않지만, 다른 DS들 (1510) 은 수신기로 서브-스트림들을 전송한다. 콘텐츠 스트림을 완전하게 복원하는 것을 달성하기 위해, 응답하는 DS들이 충분한 데이터를 수신기에 송신하면, FEC 인코딩을 사용하여 그 콘텐츠 스트림을 완전하게 복원하는 것이 가능할 수도 있다.
일 예로서, 본래의 1Mbps 콘텐츠 스트림이 HES에서 수집될 수도 있으며, 그 HES는, 콘텐츠 스트림이 관통하고 본래의 스트림에 소스 데이터가 존재하는 것만큼 많이 리페어 데이터를 부가 (100% 리페어) 할 경우 소스 블록 구조를 형성하고, 100Kbps의 서브-스트림들로 2Mbps의 인코딩된 스트림을 분할하며, 결과적인 20개의 서브-스트림들을 20개의 상이한 DS들로 전송한다. 스트림내의 특정한 위치로부터 시작하는 콘텐츠 스트림을 재생하기를 원하는 수신기는, DS가 특정된 시작 위치 에서 시작하는 콘텐츠에 대해 갖는 서브-스트림을 요청하는 20개의 DS들 중 12개로 요청을 전송할 수도 있다. 응답에서, 모든 12개의 DS들은 특정된 시작 포인트로부터 시작하는 인코딩된 스트림에 대해 그들이 갖는 서브-스트림을 수신기로 동시에 전송하며, 따라서, 12개의 DS들 각각은 100Kbps 의 레이트로 수신기에 전송하므로, 총 레이트는 1.2Mbps 이다.
상술된 바와 같은 서브-스트림 기반 전달 시스템에 대해 수 개의 이점들이 존재하며, 이들 중 몇몇 또는 전부는, 1) 대역폭 용량 및 저장 용량을 서버에 서빙하는 내추럴 (natural) 로드 밸런싱 이점들을 갖는, 파퓰러 (popular) 한 것을 파퓰러하지 않은 것과의 혼합하는 콘텐츠의 내추럴 로드 밸런싱, 2) 경로 실패 복원력 (resilience), 즉, 하나의 경로가 다운되지만, 콘텐츠 스트림이 FEC 디코딩을 사용하여 여전히 완전하게 복원될 수 있도록 다른 경로로부터 수신기가 수신하고 있는 여전히 충분한 데이터가 존재함, 3) DS 고장, DS 디스크 실패 등에 대한 강인성, 및 4) 총 전송 레이트가 수신기에 대해 유지되고, 수신기에서 버퍼 부족이 존재하지 않는 더 큰 기회를, 단일 서버에 대한 다수의 DS들로부터의 데이터의 전송이 제공하는 것을 포함하는 본 발명의 실시형태들에서 발견될 수도 있다. 특히, 이는 TCP 또는 HTTP 가 DS들로부터 수신기로 서브-스트림들을 전송하기 위해 사용되는 경우이지만, UDP가 DS들로부터 수신기로 서브-스트림을 전송하기 위해 사용되는 경우에도 참이며, 또한, 본 발명의 실시형태들은 5) 전체 시스템에서의 단일 실패 포인트는 HES 및 수신기의 진입 포인트에 존재하며, 임의의 위치에 존재할 필요는 없다는 것을 포함한다.
동적 인터리빙 방법들과 서브-스트림 기반 전달 방법들과의 결합
여기에 설명된 동적 인터리빙 방법들 및 서브-스트림 기반 전달 방법들은 큰 이점을 위해 결합될 수 있으며, 즉, 양자의 방법들의 모든 이점들은 결합된 솔루션에서 발견된다. 예를 들어, 동적 인터리빙 방법들을 사용하여, 콘텐츠 스트림에 대한 소스 블록 구조 및 FEC 인코딩은, 그 콘텐츠 스트림이 시스템으로 진입될 때마다 HES에 의해 수행될 수 있다. 서브-스트림 방법들은 HES에서 FEC 인코딩된 스트림의 서브-스트림들을 생성하기 위해 사용될 수 있으며, 그 후, 이들 서브-스트림들은 저장을 위해 상이한 DS들로 전송될 수 있다. 수신기가 스트림내의 특정한 위치로부터 콘텐츠 스트림을 수신하기를 원할 경우, 그 수신기는 그 수신기로 서브-스트림을 전송하는 모든 DS들로 적절한 동적 인터리빙 파라미터들을 전송할 수 있으며, 그 DS들은 이들 파라미터들에 따라 서브-스트림들을 수신기로 전송할 것이다. 수신기는 재생을 위해 본래의 콘텐츠 스트림을 재생성하도록, 소스 블록들에 대한 서브-스트림들로부터의 패킷들을 조립할 수 있다. 동적 인터리빙 방법들은, 스트리밍 동안 예약 버퍼 및 인터리빙 깊이가 증가하게 하며, 이는 버스트 패킷 손실 및 네트워크 지터에 대한 우수한 보호를 제공하고, 동시에, 신속한 채널 재핑 시간들을 수신기에 제공한다. 이러한 예시적인 솔루션에서, DS들은 FEC 코딩을 수행할 필요가 없지만, 분산된 경로들을 통해 네트워크의 상이한 부분들로부터 수신기에 콘텐츠 스트림을 전달할 수 있으며, 따라서, 그 전달의 경로 다이버시티 및 서버 다이버시티를 증가시키고, 그에 의해, 서버 및 네트워크 실패에 대한 신뢰성 및 강인성을 증가시킨다.
또한, 이러한 예에서, 각각의 소스 블록에 대한 보호량은 DS들과 수신기 사이보다 HES와 DS 사이에서 실질적으로 더 높을 수도 있다. 예를 들어, 20개의 서브-스트림들이 생성될 수도 있고 HES 로부터 20개의 DS들로 전송될 수도 있지만, 10개의 서브-스트림들만이 본래의 콘텐츠 스트림을 복원하는데 필요할 수도 있지만 (100% 의 보호량), 수신기는, 예를 들어, 20개의 DS들 중 12개로부터 12개의 서브-스트림들만, 즉, DS들 중 하나가 실패하고, 수신기가 서브-스트림들을 수신하는 나머지 11개의 DS로부터 모든 경로들 통하여 전체적으로 최대 10%의 패킷 손실이 존재하는 경우라도 본래의 콘텐츠 스트림을 수신기가 여전히 복원할 수 있게 하는 20% 의 보호량을 요청할 수도 있다.
상술된 예시적인 솔루션은, 20개의 DS들 중 12개 보다 많은 리스트를 갖는 수신기에 포함된 적절한 로직으로, 수신기가 서브-스트림을 수신하고 있는 12개의 DS들 중 하나가 실패할 경우, 수신기는 이것을 자동으로 검출하고, 수신기가 현재 서브-스트림을 수신하고 있지 않은 다른 DS들 중 하나로부터 또 다른 서브-스트림을 요청할 수 있으며, 그에 의해, 11개의 수신 서브-스트림들로부터 12개의 상이한 DS들로부터의 12개의 수신 서브-스트림들로 스트림의 신뢰도를 다시 증가시킨다는 부가적인 특성을 갖는다.
동적 인터리빙 방법들과 서브-스트림 방법들을 결합하는데 필요한 방법들에서의 변화는 비교적 작다. 예를 들어, 동적 인터리빙 방법들에 대한 전송 시간을 결정하기 위해, 인코딩된 블록내의 데이터 포인트들을 확산시키기 위한 방법들은, 각각의 DS가 인코딩된 블록내의 각각의 서브-스트림에 대해 갖는 데이터를, 인 코딩된 스트림 테이프내의 인코딩된 블록 영역에 걸쳐 균일하게 확산시키는 방법에 대한 판정을 그 각각의 DS가 행할 수 있도록 향상될 필요가 있다 (도 7 참조). 데이터를 균일하게 확산시키기 위하여 DS에 의해 행해진 판정들은, 수신기로 전송하는 모든 DS들로부터의 인코딩된 블록내의 모든 서브-스트림들로부터의 데이터의 총 확산이, 인코딩된 스트림 테이프내의 인코딩된 블록 영역에 걸쳐 매우 균일하도록 다른 DS들에 의해 행해진 판정들과 독립적인 방식으로 행해질 수 있다.
그들을 결합할 필요가 있는 방법들에서의 변화들의 또 다른 예로서, 서브-스트림들을 전송하는 DS들에 대한 스트림내의 특정한 위치를 수신기가 특정할 경우, 동일한 콘텐츠에 대한 서브-스트림을 수신기에 전송하는 다른 모든 DS들의 해석과 일치하는 방식으로, DS들이 수신기에 전송할 서브-스트림에 대한 특정한 위치를 해석할 수 있도록, 각각의 패킷으로 전송된 정보를 증가시키는 것이 바람직하다. 당업자가 인식할 바와 같이, 이들 및 잠재적으로 몇몇의 다른 작은 변화들은 당업자로 하여금, 큰 이점을 위해, 인터리빙된 스트리밍 방법들과 서브-스트림 기반 전달 방법들을 결합하게 한다.
본 발명이 예시적인 실시형태에 관해 설명되었지만, 당업자는, 다수의 변형들이 가능하다는 것을 인식할 것이며, 당업자의 그러한 인식은 본 명세서의 판독으로부터 도래할 수 있다. 예를 들어, 여기에 설명된 프로세스들은, 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 및/또는 이들의 임의의 조합을 사용하여 구현될 수도 있다. 따라서, 본 발명이 예시적인 실시형태에 관해 설명되었지만, 본 발명이 다음의 청구항의 범위내의 모든 변형들 및 등가물들을 커버링하도록 의도된다 는 것을 인식할 것이다.

Claims (17)

  1. 적어도 하나의 전송기 및 적어도 하나의 수신기를 포함하는 통신 시스템에서, 콘텐츠 스트림을 송신하는 방법으로서,
    수신기와 제 1 전송기 사이의 접속을 형성하는 단계;
    상기 수신기에서, 상기 제 1 전송기로부터 송신된 제 1 콘텐츠 스트림을 수신하는 단계로서, 상기 제 1 콘텐츠 스트림은 인터리빙의 초기량을 포함하는, 상기 제 1 콘텐츠 스트림을 수신하는 단계; 및
    상기 제 1 콘텐츠 스트림의 소스 블록 구조와 독립하여, 상기 제 1 콘텐츠 스트림의 송신 동안, 상기 제 1 콘텐츠 스트림에 포함된 인터리빙의 양을 조정하는 단계를 포함하는, 콘텐츠 스트림 송신 방법.
  2. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림내의 상기 인터리빙의 초기량은, 상기 제 1 콘텐츠 스트림에 초기의 인터리빙이 존재하지 않도록 구성되는, 콘텐츠 스트림 송신 방법.
  3. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림내의 인터리빙의 양은, 상기 초기량으로부터 정상 상태 양으로 조정되는, 콘텐츠 스트림 송신 방법.
  4. 제 3 항에 있어서,
    상기 제 1 콘텐츠 스트림내의 인터리빙은, 상기 초기량과 상기 정상 상태 양 사이에서 선형적으로 천이하는, 콘텐츠 스트림 송신 방법.
  5. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림에 포함된 인터리빙의 양은, 시간의 함수로서 조정되는, 콘텐츠 스트림 송신 방법.
  6. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림에 포함된 인터리빙의 양은, 상기 제 1 콘텐츠 스트림의 재생 레이트와 상기 제 1 콘텐츠 스트림의 송신 레이트 사이의 차이의 함수로서 조정되는, 콘텐츠 스트림 송신 방법.
  7. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림에 포함된 인터리빙의 양은, 상기 수신기에서 경험되는 데이터 손실의 양의 함수로서 조정되는, 콘텐츠 스트림 송신 방법.
  8. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림의 소스 블록 구조는, 상기 제 1 콘텐츠 스트림의 송신 동안 변하지 않는, 콘텐츠 스트림 송신 방법.
  9. 제 1 항에 있어서,
    상기 제 1 콘텐츠 스트림으로부터의 콘텐츠의 예약 버퍼를 구축하는 단계를 더 포함하는, 콘텐츠 스트림 송신 방법.
  10. 제 9 항에 있어서,
    상기 예약 버퍼는, 상기 제 1 콘텐츠 스트림에서의 인터리빙의 양에 대해 행해지는 임의의 조정들과 동시에 구축되는, 콘텐츠 스트림 송신 방법.
  11. 제 1 항에 있어서,
    상기 수신기와 제 2 전송기 사이의 제 2 접속을 형성하는 단계;
    상기 수신기에서, 상기 수신기에 접속된 상기 제 2 전송기로부터 송신되는 제 2 콘텐츠 스트림을 수신하는 단계로서, 상기 제 2 콘텐츠 스트림은 인터리빙의 초기량을 포함하는, 상기 제 2 콘텐츠 스트림을 수신하는 단계;
    상기 제 2 콘텐츠 스트림의 소스 블록 구조와 독립하여, 상기 제 2 콘텐츠 스트림의 송신 동안, 상기 수신기에 전달되는 상기 제 2 콘텐츠 스트림에 포함된 인터리빙의 양을 조정하는 단계; 및
    상기 콘텐츠 스트림들의 총 송신 레이트를 대략 동일하게 유지하는 방식으로, 상기 제 1 콘텐츠 스트림과 상기 제 2 콘텐츠 스트림 사이에서 천이하는 단계를 더 포함하는, 콘텐츠 스트림 송신 방법.
  12. 제 11 항에 있어서,
    상기 제 1 콘텐츠 스트림과 상기 제 2 콘텐츠 스트림 사이에서의 천이는, 상기 2개의 콘텐츠 스트림들에 포함된 인터리빙의 양의 함수로서 시간에 걸쳐 수행되는, 콘텐츠 스트림 송신 방법.
  13. 채널을 통해 데이터를 송신하는 전송기에서, 콘텐츠 스트림을 송신하는 방법으로서,
    전송기와 수신기 사이의 접속을 형성하는 단계;
    상기 수신기에 콘텐츠 스트림을 전송하는 단계로서, 상기 콘텐츠 스트림은 인터리빙의 초기량을 포함하는, 상기 콘텐츠 스트림을 전송하는 단계; 및
    상기 콘텐츠 스트림의 소스 블록 구조와 독립하여, 상기 콘텐츠 스트림의 송신 동안, 상기 콘텐츠 스트림내에 포함된 인터리빙의 양을 조정하는 단계를 포함하는, 콘텐츠 스트림 송신 방법.
  14. 채널을 통해 데이터를 수신하는 수신기에서, 콘텐츠 스트림을 수신하는 방법으로서,
    수신기와 제 1 전송기 사이의 접속을 형성하는 단계; 및
    상기 제 1 전송기로부터 송신된 제 1 콘텐츠 스트림을 수신하는 단계를 포함하며,
    상기 제 1 콘텐츠 스트림은, 상기 콘텐츠 스트림의 소스 블록 구조와 독립하여, 상기 콘텐츠 스트림의 송신 동안 조정될 수 있는 인터리빙의 초기량을 포함하는, 콘텐츠 스트림 수신 방법.
  15. 적어도 하나의 전송기 및 적어도 하나의 수신기를 포함하는 통신 시스템에서, 콘텐츠 스트림을 송신하는 방법으로서,
    수신기와 복수의 전송기들 사이의 접속을 형성하는 단계;
    상기 수신기에서, 상기 복수의 전송기들로부터 송신된 콘텐츠 스트림을 수신하는 단계로서, 각각의 전송기는 상기 콘텐츠 스트림의 상이한 서브-스트림을 상기 수신기에 송신하고, 각각의 서브-스트림은 인터리빙의 초기량을 포함하는, 상기 콘텐츠 스트림을 수신하는 단계; 및
    콘텐츠 서브-스트림들의 소스 블록 구조와 독립하여, 상기 콘텐츠 서브-스트림들의 송신 동안, 상기 콘텐츠 서브-스트림들 각각에 포함된 인터리빙의 양을 조정하는 단계를 포함하는, 콘텐츠 스트림 송신 방법.
  16. 제 15 항에 있어서,
    상기 콘텐츠 서브-스트림들의 소스 블록 구조는 상기 콘텐츠 서브-스트림들의 송신 동안 변하지 않는, 콘텐츠 스트림 송신 방법.
  17. 제 15 항에 있어서,
    각각의 콘텐츠 서브-스트림에 포함된 인터리빙의 양은, 다른 콘텐츠 서브-스트림에 포함된 인터리빙의 양과는 독립적인, 콘텐츠 스트림 송신 방법.
KR1020097023766A 2007-04-16 2008-04-16 동적 스트림 인터리빙 및 서브-스트림 기반 전달 KR101275432B1 (ko)

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 US9178535B2 (en) 2006-06-09 2008-04-15 Dynamic stream interleaving and sub-stream based delivery
US12/103,605 2008-04-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020127016782A Division KR101290965B1 (ko) 2007-04-16 2008-04-16 동적 스트림 인터리빙 및 서브-스트림 기반 전달

Publications (2)

Publication Number Publication Date
KR20100007876A true KR20100007876A (ko) 2010-01-22
KR101275432B1 KR101275432B1 (ko) 2013-06-14

Family

ID=39854876

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127016782A KR101290965B1 (ko) 2007-04-16 2008-04-16 동적 스트림 인터리빙 및 서브-스트림 기반 전달
KR1020097023766A KR101275432B1 (ko) 2007-04-16 2008-04-16 동적 스트림 인터리빙 및 서브-스트림 기반 전달

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020127016782A KR101290965B1 (ko) 2007-04-16 2008-04-16 동적 스트림 인터리빙 및 서브-스트림 기반 전달

Country Status (13)

Country Link
US (1) US9178535B2 (ko)
EP (1) EP2145390B1 (ko)
JP (3) JP5096560B2 (ko)
KR (2) KR101290965B1 (ko)
CN (1) CN101675594B (ko)
AU (1) AU2008242911B2 (ko)
BR (1) BRPI0810142A2 (ko)
CA (1) CA2681730A1 (ko)
IL (1) IL201147A0 (ko)
MX (1) MX2009011094A (ko)
RU (1) RU2440670C2 (ko)
UA (1) UA94811C2 (ko)
WO (1) WO2008131023A1 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
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
US6909383B2 (en) 2002-10-05 2005-06-21 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN101834610B (zh) 2003-10-06 2013-01-30 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法和装置
KR101161193B1 (ko) 2004-05-07 2012-07-02 디지털 파운튼, 인크. 파일 다운로드 및 스트리밍 시스템
EP1985021A4 (en) 2006-02-13 2013-05-29 Digital Fountain Inc CONTINUOUS TRANSMISSION AND BUFFER DELIVERY USING CONTINUOUS MONITORING OVERVIEW AND PERIODS OF PROTECTION
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
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
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
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
WO2009036378A1 (en) 2007-09-12 2009-03-19 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)
US7818441B2 (en) * 2008-10-15 2010-10-19 Patentvc Ltd. Methods and systems for using a distributed storage to its maximum bandwidth
US20100094972A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Hybrid distributed streaming system comprising high-bandwidth servers and peer-to-peer devices
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
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing 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
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
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
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 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
US9386062B2 (en) * 2012-12-28 2016-07-05 Qualcomm Incorporated Elastic response time to hypertext transfer protocol (HTTP) requests
US9037679B2 (en) * 2012-12-31 2015-05-19 Futurewei Technologies, Inc. Efficient high availability storage systems
US9363131B2 (en) * 2013-03-15 2016-06-07 Imagine Communications Corp. Generating a plurality of streams
US9673841B2 (en) 2013-03-15 2017-06-06 Quanta Computer, Inc. Error-correcting code
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
EP3799044B1 (en) * 2014-09-04 2023-12-20 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

Family Cites Families (551)

* Cited by examiner, † Cited by third party
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
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5421031A (en) * 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
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 株式会社東芝 データ再送制御方法及びデータ再送制御システム
EP0823153A4 (en) 1995-04-27 1999-10-20 Stevens Inst Technology HIGH INTEGRITY TRANSPORT METHOD FOR TIME-CRITICAL MULTIMEDIA NETWORK 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 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
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
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
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
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
EP1024672A1 (en) 1997-03-07 2000-08-02 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
JPH1141211A (ja) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
JP4110593B2 (ja) 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
EP0933768A4 (en) 1997-05-19 2000-10-04 Sanyo Electric Co DIGITAL MODULATION AND DEMODULATION
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
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6195777B1 (en) * 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
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
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
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
US6459811B1 (en) 1998-04-02 2002-10-01 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
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
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
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
JP3464981B2 (ja) 1998-12-03 2003-11-10 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 情報送信装置及びその方法並びに情報受信装置及びその方法
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
US6535920B1 (en) * 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
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 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
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
KR100784652B1 (ko) 1999-05-06 2007-12-12 소니 가부시끼 가이샤 데이터 처리 방법/장치, 데이터 재생 방법/장치, 및 기록매체
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
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
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 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
JP2003510734A (ja) 1999-09-27 2003-03-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストリーミングのエミュレート用ファイル分割
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
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
US6678855B1 (en) * 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
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
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
US20020009137A1 (en) * 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
WO2001057667A1 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Data streaming
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
JP2001251287A (ja) 2000-02-24 2001-09-14 Geneticware Corp Ltd ハードウエア保護内部秘匿鍵及び可変パスコードを利用する機密データ伝送方法
US6765866B1 (en) 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
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
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 情報データ伝送システムとその送信装置及び受信装置
US6851086B2 (en) * 2000-03-31 2005-02-01 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
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
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
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
AU2092702A (en) 2000-12-15 2002-06-24 British Telecomm Transmission and reception of audio and/or video material
ATE464740T1 (de) 2000-12-15 2010-04-15 British Telecomm Übertagung von ton- und/oder bildmaterial
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
US7003712B2 (en) * 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
EP1479245A1 (en) 2002-01-23 2004-11-24 Nokia Corporation Grouping of image frames in video coding
JP4472347B2 (ja) * 2002-01-30 2010-06-02 エヌエックスピー ビー ヴィ 可変の帯域を有するネットワーク上でのマルチメディアデータのストリーミング
WO2003071440A1 (en) 2002-02-15 2003-08-28 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
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP4134027B2 (ja) 2002-04-25 2008-08-13 シャープ株式会社 画像符号化装置、画像復号装置、及び画像記録装置
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
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US6856263B2 (en) 2002-06-11 2005-02-15 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
AU2002368007A1 (en) 2002-06-11 2003-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Generation of mixed media streams
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 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
CN101232616B (zh) 2002-07-16 2015-07-22 诺基亚有限公司 用于在视频编码中随机存取和逐步更新图像的方法
AU2003252347A1 (en) 2002-07-31 2004-03-11 Sharp Kabushiki Kaisha Data communication device, its intermittent communication method, program describing its method, and recording medium on which program is recorded
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
DK1529389T3 (en) 2002-08-13 2016-05-30 Nokia Technologies Oy Symbol Interleaving
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
US6909383B2 (en) 2002-10-05 2005-06-21 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
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
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
US8320301B2 (en) 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
WO2004040831A1 (en) 2002-10-30 2004-05-13 Koninklijke Philips Electronics N.V. Adaptative forward error control scheme
JP2004165922A (ja) 2002-11-12 2004-06-10 Sony Corp 情報処理装置および方法、並びにプログラム
WO2004047455A1 (en) 2002-11-18 2004-06-03 British Telecommunications Public Limited Company Transmission of video
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
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
US7525994B2 (en) * 2003-01-30 2009-04-28 Avaya Inc. Packet data flow identification for multiplexing
US7756002B2 (en) 2003-01-30 2010-07-13 Texas Instruments Incorporated Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer
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 サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
MXPA05013237A (es) 2003-06-07 2006-03-09 Samsung Electronics Co Ltd Aparato y metodo para la organizacion e interpretacion de datos multimedia en un medio de grabacion.
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
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
CN1871804B (zh) 2003-08-21 2010-09-01 高通股份有限公司 广播/多播内容的外部编码方法及其相关装置
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 三洋電機株式会社 映像表示装置
WO2005029237A2 (en) 2003-09-15 2005-03-31 Digital Networks North America, 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
CN101834610B (zh) 2003-10-06 2013-01-30 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法和装置
US7516232B2 (en) * 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
US7614071B2 (en) * 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
WO2005036811A2 (en) * 2003-10-14 2005-04-21 Matsushita Electric Industrial Co., Ltd. Data converter
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 送信装置および方法、記録媒体、並びにプログラム
EP1528702B1 (en) * 2003-11-03 2008-01-23 Broadcom Corporation FEC (forward error correction) decoding with dynamic parameters
US20050102371A1 (en) * 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
WO2005055016A2 (en) 2003-12-01 2005-06-16 Digital Fountain, Inc. Protection of data from erasures using subsymbol based codes
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
WO2005094020A1 (en) 2004-03-19 2005-10-06 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
KR20070007810A (ko) 2004-03-30 2007-01-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 디스크 기반 멀티미디어 콘텐츠에 대한 개선된 트릭 모드수행을 지원하는 시스템 및 방법
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
KR101161193B1 (ko) 2004-05-07 2012-07-02 디지털 파운튼, 인크. 파일 다운로드 및 스트리밍 시스템
US7633970B2 (en) 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
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
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
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
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response 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
JP5053097B2 (ja) 2004-11-22 2012-10-17 トムソン リサーチ ファンディング コーポレイション Dslシステムにおけるチャンネル切り替えの方法及び装置
US8015474B2 (en) * 2004-12-02 2011-09-06 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
WO2006096104A1 (en) 2005-03-07 2006-09-14 Telefonaktiebolaget Lm Ericsson (Publ) Multimedia channel switching
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
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
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
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
EP1869891A4 (en) 2005-04-13 2014-06-11 CODING, STORAGE AND SIGNALING 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
KR20100037659A (ko) 2005-05-24 2010-04-09 노키아 코포레이션 디지털 방송에서 계층적인 전송/수신을 위한 방법 및 장치
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
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
ATE514246T1 (de) 2005-08-19 2011-07-15 Hewlett Packard Development Co Andeutung von verlorenen segmenten über schichtgrenzen
CN101053249B (zh) * 2005-09-09 2011-02-16 松下电器产业株式会社 图像处理方法、图像存储方法、图像处理装置及文件格式
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
US9113147B2 (en) * 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on 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 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
RU2407217C2 (ru) 2005-10-11 2010-12-20 Нокиа Корпорейшн Система и способ для эффективной адаптации масштабируемых потоков
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
JP5587552B2 (ja) 2005-10-19 2014-09-10 トムソン ライセンシング スケーラブル映像符号化を用いた多視点映像符号化
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
CN101416526B (zh) 2006-01-05 2013-06-19 艾利森电话股份有限公司 媒体容器文件管理方法和服务器
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US8767818B2 (en) 2006-01-11 2014-07-01 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
EP1977593A4 (en) 2006-01-12 2010-06-16 Lg Electronics Inc PROCESSING MORE VIEW VIDEO
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
CN101379712B (zh) * 2006-02-08 2011-12-14 汤姆森特许公司 瑞普特代码的解码
EP1985021A4 (en) 2006-02-13 2013-05-29 Digital Fountain Inc CONTINUOUS TRANSMISSION AND BUFFER DELIVERY USING CONTINUOUS MONITORING OVERVIEW AND PERIODS OF PROTECTION
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
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
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
US20090100496A1 (en) * 2006-04-24 2009-04-16 Andreas Bechtolsheim Media server system
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
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
TWM302355U (en) 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
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
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
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
WO2008023328A2 (en) 2006-08-24 2008-02-28 Nokia Corporation System and method for indicating track relationships in media files
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
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
US8428013B2 (en) 2006-10-30 2013-04-23 Lg Electronics Inc. Method of performing random access in a wireless communcation 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
CA2668670C (en) 2006-11-14 2013-04-30 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
ES2709208T3 (es) 2007-01-05 2019-04-15 Sonic Ip Inc Sistema de distribución de vídeo que incluye reproducción progresiva
US20080168516A1 (en) 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
EP2122874A1 (en) 2007-01-09 2009-11-25 Nokia Corporation Method for supporting file versioning in mbms file repair
MX2009000619A (es) 2007-01-11 2009-04-16 Panasonic Corp Metodo para la reproduccion de truco de datos multimedia en flujo y encriptados.
US20080172430A1 (en) 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
WO2008085013A1 (en) 2007-01-12 2008-07-17 University-Industry Cooperation Group Of Kyung Hee University Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format, qos control algorithm and apparatus for ipv6 label switching using the format
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 コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
US8275002B2 (en) 2007-05-14 2012-09-25 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
JP5317222B2 (ja) 2007-05-16 2013-10-16 トムソン ライセンシング 信号を符号化および復号する方法および装置
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
EP2158747B1 (en) 2007-06-20 2016-11-23 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for improved media session management
RU2010102823A (ru) * 2007-06-26 2011-08-10 Нокиа Корпорейшн (Fi) Система и способ индикации точек переключения временных уровней
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
WO2009036378A1 (en) * 2007-09-12 2009-03-19 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
US8635360B2 (en) * 2007-10-19 2014-01-21 Google 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
US8543720B2 (en) 2007-12-05 2013-09-24 Google 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
EP2263341B1 (en) 2008-04-14 2018-09-19 Amazon Technologies, Inc. Method and apparatus for performing random access procedures
US20100049865A1 (en) 2008-04-16 2010-02-25 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
CA2723386A1 (en) 2008-05-07 2009-11-12 Digital Fountain, Inc. 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
US8099476B2 (en) 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
AU2010206977B2 (en) 2009-01-26 2016-02-25 Interdigital Vc Holdings, Inc. Frame packing for video coding
CN104780385B (zh) 2009-01-29 2018-01-16 杜比实验室特许公司 视频装置、用于将多视图帧的序列编码为比特流的装置
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
WO2010120804A1 (en) 2009-04-13 2010-10-21 Reald Inc. Encoding, decoding, and distributing enhanced resolution stereoscopic video
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
KR101598317B1 (ko) 2009-09-02 2016-02-26 애플 인크. 무선 시스템들의 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 コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
CN107911332B (zh) 2009-11-04 2021-01-08 阿莫泰克有限公司 媒体内容流播的方法、系统和计算机可读介质
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
US8510375B2 (en) 2009-12-11 2013-08-13 Nokia Corporation Apparatus and methods for time mapping media segments in streaming media files
JP5996439B2 (ja) 2010-02-19 2016-09-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Httpストリーミングにおける表現切り替えのための方法及び装置
CA2786257C (en) 2010-02-19 2018-03-06 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for adaptation in http streaming
JP5071495B2 (ja) 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
EP3079269B1 (en) * 2010-03-11 2020-10-28 Electronics and Telecommunications Research Institute Method and apparatus for transceiving data in a mimo system
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing 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
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
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
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates 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
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
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
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

Also Published As

Publication number Publication date
KR101290965B1 (ko) 2013-07-30
AU2008242911A1 (en) 2008-10-30
WO2008131023A1 (en) 2008-10-30
JP5763019B2 (ja) 2015-08-12
KR101275432B1 (ko) 2013-06-14
AU2008242911B2 (en) 2011-05-26
EP2145390A4 (en) 2012-11-07
KR20120099741A (ko) 2012-09-11
US9178535B2 (en) 2015-11-03
EP2145390B1 (en) 2014-06-11
RU2009141988A (ru) 2011-05-27
JP5635040B2 (ja) 2014-12-03
MX2009011094A (es) 2009-12-11
IL201147A0 (en) 2010-05-17
JP2010535435A (ja) 2010-11-18
BRPI0810142A2 (pt) 2014-11-25
CN101675594A (zh) 2010-03-17
CN101675594B (zh) 2014-10-08
CA2681730A1 (en) 2008-10-30
US20080256418A1 (en) 2008-10-16
JP2013031173A (ja) 2013-02-07
JP2013042487A (ja) 2013-02-28
JP5096560B2 (ja) 2012-12-12
UA94811C2 (uk) 2011-06-10
EP2145390A1 (en) 2010-01-20
RU2440670C2 (ru) 2012-01-20

Similar Documents

Publication Publication Date Title
KR101275432B1 (ko) 동적 스트림 인터리빙 및 서브-스트림 기반 전달
JP5847577B2 (ja) より低いレベルのパケット構造から導かれる記号識別子を用いた放送チャネル上の高品質ストリーム保護
CN101272495B (zh) 用于传输基于分组的图像帧的方法和装置
KR101184242B1 (ko) 순방향 오류 정정 코딩 및 스트리밍
KR101656969B1 (ko) 계층 인식 순방향 에러 정정을 위한 인터리빙
Nazir et al. Application layer systematic network coding for sliced H. 264/AVC video streaming
Al-Jobouri et al. Multicast and unicast video streaming with rateless channel-coding over wireless broadband
Demircin et al. Finite-horizon FEC-rate adaptation for real-time wireless multimedia
Gotta et al. Quality of Experience in Satellite video streaming transmissions in urban vehicular environment
Mattoussi et al. Application of AL-FEC to HbbTV DVB-T2 systems for the provision of VoD services in portable and fixed TV reception
Liu et al. An intelligent video streaming delivery of SVC based on rateless UEP convolutional code
Cerezo-Costas et al. Feasibility analysis of zero-overhead near video-on-demand protocols in satellite channels

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 6